@fusion.dev/helix 0.150.0 → 0.152.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.
@@ -2895,6 +2895,14 @@
2895
2895
  "name": "HelixHeadlessAppHeader",
2896
2896
  "module": "src/app-header/root/app-header-root.ts"
2897
2897
  }
2898
+ },
2899
+ {
2900
+ "description": "Replaces the glyph inside the toggle that opens a folded middle region.",
2901
+ "name": "menu-icon",
2902
+ "inheritedFrom": {
2903
+ "name": "HelixHeadlessAppHeader",
2904
+ "module": "src/app-header/root/app-header-root.ts"
2905
+ }
2898
2906
  }
2899
2907
  ],
2900
2908
  "members": [
@@ -2919,6 +2927,20 @@
2919
2927
  "attribute": "sticky",
2920
2928
  "reflects": true
2921
2929
  },
2930
+ {
2931
+ "kind": "field",
2932
+ "name": "words",
2933
+ "type": {
2934
+ "text": "string"
2935
+ },
2936
+ "static": true,
2937
+ "default": "'helix-app-header'",
2938
+ "description": "The key this family's words are registered under, its styled tag:\n`registerWords('de', { 'helix-app-header': { menuLabel: 'Menü' } })`.",
2939
+ "inheritedFrom": {
2940
+ "name": "HelixHeadlessAppHeader",
2941
+ "module": "src/app-header/root/app-header-root.ts"
2942
+ }
2943
+ },
2922
2944
  {
2923
2945
  "kind": "field",
2924
2946
  "name": "contentAlign",
@@ -2933,6 +2955,236 @@
2933
2955
  "module": "src/app-header/root/app-header-root.ts"
2934
2956
  }
2935
2957
  },
2958
+ {
2959
+ "kind": "field",
2960
+ "name": "foldBelow",
2961
+ "type": {
2962
+ "text": "number | undefined"
2963
+ },
2964
+ "description": "The width of the bar, in pixels, below which the middle region folds behind\na toggle. Unset, it never folds.",
2965
+ "attribute": "fold-below",
2966
+ "inheritedFrom": {
2967
+ "name": "HelixHeadlessAppHeader",
2968
+ "module": "src/app-header/root/app-header-root.ts"
2969
+ }
2970
+ },
2971
+ {
2972
+ "kind": "field",
2973
+ "name": "hideOnScroll",
2974
+ "type": {
2975
+ "text": "boolean"
2976
+ },
2977
+ "default": "false",
2978
+ "description": "Hides the bar as the page scrolls down past it, and shows it again as the\npage scrolls up.",
2979
+ "attribute": "hide-on-scroll",
2980
+ "inheritedFrom": {
2981
+ "name": "HelixHeadlessAppHeader",
2982
+ "module": "src/app-header/root/app-header-root.ts"
2983
+ }
2984
+ },
2985
+ {
2986
+ "kind": "field",
2987
+ "name": "folded",
2988
+ "type": {
2989
+ "text": "boolean"
2990
+ },
2991
+ "privacy": "private",
2992
+ "default": "false",
2993
+ "description": "Whether the bar is narrower than `fold-below`, which only the observer sets.",
2994
+ "inheritedFrom": {
2995
+ "name": "HelixHeadlessAppHeader",
2996
+ "module": "src/app-header/root/app-header-root.ts"
2997
+ }
2998
+ },
2999
+ {
3000
+ "kind": "field",
3001
+ "name": "unfolded",
3002
+ "type": {
3003
+ "text": "boolean"
3004
+ },
3005
+ "privacy": "private",
3006
+ "default": "false",
3007
+ "description": "Whether the folded middle region is open.",
3008
+ "inheritedFrom": {
3009
+ "name": "HelixHeadlessAppHeader",
3010
+ "module": "src/app-header/root/app-header-root.ts"
3011
+ }
3012
+ },
3013
+ {
3014
+ "kind": "field",
3015
+ "name": "widths",
3016
+ "type": {
3017
+ "text": "ResizeObserver | undefined"
3018
+ },
3019
+ "privacy": "private",
3020
+ "description": "Watches the bar's own width while `fold-below` is set.",
3021
+ "inheritedFrom": {
3022
+ "name": "HelixHeadlessAppHeader",
3023
+ "module": "src/app-header/root/app-header-root.ts"
3024
+ }
3025
+ },
3026
+ {
3027
+ "kind": "method",
3028
+ "name": "watchWidth",
3029
+ "privacy": "private",
3030
+ "return": {
3031
+ "type": {
3032
+ "text": "void"
3033
+ }
3034
+ },
3035
+ "description": "Starts or stops watching the width, according to `fold-below`.",
3036
+ "inheritedFrom": {
3037
+ "name": "HelixHeadlessAppHeader",
3038
+ "module": "src/app-header/root/app-header-root.ts"
3039
+ }
3040
+ },
3041
+ {
3042
+ "kind": "method",
3043
+ "name": "fold",
3044
+ "privacy": "private",
3045
+ "return": {
3046
+ "type": {
3047
+ "text": "void"
3048
+ }
3049
+ },
3050
+ "parameters": [
3051
+ {
3052
+ "name": "width",
3053
+ "type": {
3054
+ "text": "number"
3055
+ }
3056
+ }
3057
+ ],
3058
+ "description": "Folds the middle region where the bar is narrower than `fold-below`.",
3059
+ "inheritedFrom": {
3060
+ "name": "HelixHeadlessAppHeader",
3061
+ "module": "src/app-header/root/app-header-root.ts"
3062
+ }
3063
+ },
3064
+ {
3065
+ "kind": "field",
3066
+ "name": "handleToggle",
3067
+ "privacy": "private",
3068
+ "readonly": true,
3069
+ "description": "Opens or closes the folded middle region.",
3070
+ "inheritedFrom": {
3071
+ "name": "HelixHeadlessAppHeader",
3072
+ "module": "src/app-header/root/app-header-root.ts"
3073
+ }
3074
+ },
3075
+ {
3076
+ "kind": "field",
3077
+ "name": "handleKeydown",
3078
+ "privacy": "private",
3079
+ "readonly": true,
3080
+ "description": "Escape in the open region closes it and puts focus back on the toggle.",
3081
+ "inheritedFrom": {
3082
+ "name": "HelixHeadlessAppHeader",
3083
+ "module": "src/app-header/root/app-header-root.ts"
3084
+ }
3085
+ },
3086
+ {
3087
+ "kind": "field",
3088
+ "name": "away",
3089
+ "type": {
3090
+ "text": "boolean"
3091
+ },
3092
+ "privacy": "private",
3093
+ "default": "false",
3094
+ "description": "Whether the bar is out of the way, under `hide-on-scroll`.",
3095
+ "inheritedFrom": {
3096
+ "name": "HelixHeadlessAppHeader",
3097
+ "module": "src/app-header/root/app-header-root.ts"
3098
+ }
3099
+ },
3100
+ {
3101
+ "kind": "field",
3102
+ "name": "lastY",
3103
+ "type": {
3104
+ "text": "number"
3105
+ },
3106
+ "privacy": "private",
3107
+ "default": "0",
3108
+ "description": "Where the page was last scrolled to, to tell down from up.",
3109
+ "inheritedFrom": {
3110
+ "name": "HelixHeadlessAppHeader",
3111
+ "module": "src/app-header/root/app-header-root.ts"
3112
+ }
3113
+ },
3114
+ {
3115
+ "kind": "field",
3116
+ "name": "handleFocusIn",
3117
+ "privacy": "private",
3118
+ "readonly": true,
3119
+ "description": "Shows a hidden bar again when focus moves into it.",
3120
+ "inheritedFrom": {
3121
+ "name": "HelixHeadlessAppHeader",
3122
+ "module": "src/app-header/root/app-header-root.ts"
3123
+ }
3124
+ },
3125
+ {
3126
+ "kind": "method",
3127
+ "name": "hide",
3128
+ "privacy": "private",
3129
+ "return": {
3130
+ "type": {
3131
+ "text": "void"
3132
+ }
3133
+ },
3134
+ "parameters": [
3135
+ {
3136
+ "name": "away",
3137
+ "type": {
3138
+ "text": "boolean"
3139
+ }
3140
+ }
3141
+ ],
3142
+ "description": "Hides the bar or shows it again, under `hide-on-scroll`.",
3143
+ "inheritedFrom": {
3144
+ "name": "HelixHeadlessAppHeader",
3145
+ "module": "src/app-header/root/app-header-root.ts"
3146
+ }
3147
+ },
3148
+ {
3149
+ "kind": "method",
3150
+ "name": "follow",
3151
+ "privacy": "private",
3152
+ "return": {
3153
+ "type": {
3154
+ "text": "void"
3155
+ }
3156
+ },
3157
+ "parameters": [
3158
+ {
3159
+ "name": "y",
3160
+ "type": {
3161
+ "text": "number"
3162
+ }
3163
+ }
3164
+ ],
3165
+ "description": "Hides the bar on a scroll down past its own height, and shows it on a\nscroll up. A few pixels either way are not a direction, so a bar does not\nflicker under a hand resting on a trackpad. Not while focus is in the bar\nor its folded region is open, which a reader is using.",
3166
+ "inheritedFrom": {
3167
+ "name": "HelixHeadlessAppHeader",
3168
+ "module": "src/app-header/root/app-header-root.ts"
3169
+ }
3170
+ },
3171
+ {
3172
+ "kind": "field",
3173
+ "name": "menuLabel",
3174
+ "type": {
3175
+ "text": "string"
3176
+ },
3177
+ "default": "'Menu'",
3178
+ "description": "The name of the toggle that opens a folded middle region.",
3179
+ "attribute": "menu-label",
3180
+ "helix": {
3181
+ "words": true
3182
+ },
3183
+ "inheritedFrom": {
3184
+ "name": "HelixHeadlessAppHeader",
3185
+ "module": "src/app-header/root/app-header-root.ts"
3186
+ }
3187
+ },
2936
3188
  {
2937
3189
  "kind": "field",
2938
3190
  "name": "scroller",
@@ -3041,6 +3293,34 @@
3041
3293
  "module": "src/app-header/root/app-header-root.ts"
3042
3294
  }
3043
3295
  },
3296
+ {
3297
+ "kind": "field",
3298
+ "name": "watchedFor",
3299
+ "type": {
3300
+ "text": "number | undefined"
3301
+ },
3302
+ "privacy": "private",
3303
+ "description": "The `fold-below` the width watch was started for, so a change is measured at once.",
3304
+ "inheritedFrom": {
3305
+ "name": "HelixHeadlessAppHeader",
3306
+ "module": "src/app-header/root/app-header-root.ts"
3307
+ }
3308
+ },
3309
+ {
3310
+ "kind": "method",
3311
+ "name": "renderMenuIcon",
3312
+ "privacy": "protected",
3313
+ "return": {
3314
+ "type": {
3315
+ "text": "TemplateResult"
3316
+ }
3317
+ },
3318
+ "description": "The glyph on the toggle that opens a folded middle region, behind a seam:\nslot fallback, so a consumer replaces it by slotting, and a method, so a\ntier above replaces it by overriding.",
3319
+ "inheritedFrom": {
3320
+ "name": "HelixHeadlessAppHeader",
3321
+ "module": "src/app-header/root/app-header-root.ts"
3322
+ }
3323
+ },
3044
3324
  {
3045
3325
  "kind": "field",
3046
3326
  "name": "tier",
@@ -3411,6 +3691,44 @@
3411
3691
  "module": "src/app-header/root/app-header-root.ts"
3412
3692
  }
3413
3693
  },
3694
+ {
3695
+ "name": "fold-below",
3696
+ "type": {
3697
+ "text": "number | undefined"
3698
+ },
3699
+ "description": "The width of the bar, in pixels, below which the middle region folds behind\na toggle. Unset, it never folds.",
3700
+ "fieldName": "foldBelow",
3701
+ "inheritedFrom": {
3702
+ "name": "HelixHeadlessAppHeader",
3703
+ "module": "src/app-header/root/app-header-root.ts"
3704
+ }
3705
+ },
3706
+ {
3707
+ "name": "hide-on-scroll",
3708
+ "type": {
3709
+ "text": "boolean"
3710
+ },
3711
+ "default": "false",
3712
+ "description": "Hides the bar as the page scrolls down past it, and shows it again as the\npage scrolls up.",
3713
+ "fieldName": "hideOnScroll",
3714
+ "inheritedFrom": {
3715
+ "name": "HelixHeadlessAppHeader",
3716
+ "module": "src/app-header/root/app-header-root.ts"
3717
+ }
3718
+ },
3719
+ {
3720
+ "name": "menu-label",
3721
+ "type": {
3722
+ "text": "string"
3723
+ },
3724
+ "default": "'Menu'",
3725
+ "description": "The name of the toggle that opens a folded middle region.",
3726
+ "fieldName": "menuLabel",
3727
+ "inheritedFrom": {
3728
+ "name": "HelixHeadlessAppHeader",
3729
+ "module": "src/app-header/root/app-header-root.ts"
3730
+ }
3731
+ },
3414
3732
  {
3415
3733
  "name": "scroller",
3416
3734
  "type": {
@@ -3504,6 +3822,22 @@
3504
3822
  "name": "HelixHeadlessAppHeader",
3505
3823
  "module": "src/app-header/root/app-header-root.ts"
3506
3824
  }
3825
+ },
3826
+ {
3827
+ "description": "The control that opens and closes the folded middle region, drawn while the bar is narrower than `fold-below`.",
3828
+ "name": "toggle",
3829
+ "inheritedFrom": {
3830
+ "name": "HelixHeadlessAppHeader",
3831
+ "module": "src/app-header/root/app-header-root.ts"
3832
+ }
3833
+ },
3834
+ {
3835
+ "description": "The glyph on the toggle, where none is slotted.",
3836
+ "name": "toggle-mark",
3837
+ "inheritedFrom": {
3838
+ "name": "HelixHeadlessAppHeader",
3839
+ "module": "src/app-header/root/app-header-root.ts"
3840
+ }
3507
3841
  }
3508
3842
  ],
3509
3843
  "events": [
@@ -3521,6 +3855,30 @@
3521
3855
  }
3522
3856
  ],
3523
3857
  "cssStates": [
3858
+ {
3859
+ "description": "While the bar is narrower than `fold-below`, and the middle region is behind the toggle.",
3860
+ "name": "folded",
3861
+ "inheritedFrom": {
3862
+ "name": "HelixHeadlessAppHeader",
3863
+ "module": "src/app-header/root/app-header-root.ts"
3864
+ }
3865
+ },
3866
+ {
3867
+ "description": "While `hide-on-scroll` has the bar out of the way, after a scroll down.",
3868
+ "name": "hidden",
3869
+ "inheritedFrom": {
3870
+ "name": "HelixHeadlessAppHeader",
3871
+ "module": "src/app-header/root/app-header-root.ts"
3872
+ }
3873
+ },
3874
+ {
3875
+ "description": "While the folded middle region is open.",
3876
+ "name": "open",
3877
+ "inheritedFrom": {
3878
+ "name": "HelixHeadlessAppHeader",
3879
+ "module": "src/app-header/root/app-header-root.ts"
3880
+ }
3881
+ },
3524
3882
  {
3525
3883
  "description": "While the page is scrolled down from the top, which is when the bar lifts off it.",
3526
3884
  "name": "scrolled",
@@ -3632,6 +3990,14 @@
3632
3990
  {
3633
3991
  "description": "Thickness of a band's top edge. Area Chart, Line Chart, and Bar Chart's `lines` all read this one property. `--area-chart-width` overrides it here.",
3634
3992
  "name": "--chart-stroke"
3993
+ },
3994
+ {
3995
+ "description": "The width of the axis, in `ch`, set from the widest number on it. Written by the component on the axis.",
3996
+ "name": "--area-chart-axis",
3997
+ "inheritedFrom": {
3998
+ "name": "HelixHeadlessAreaChart",
3999
+ "module": "src/area-chart/root/area-chart-root.ts"
4000
+ }
3635
4001
  }
3636
4002
  ],
3637
4003
  "members": [
@@ -4052,6 +4418,21 @@
4052
4418
  "module": "src/area-chart/root/area-chart-root.ts"
4053
4419
  }
4054
4420
  },
4421
+ {
4422
+ "kind": "field",
4423
+ "name": "valueAxis",
4424
+ "type": {
4425
+ "text": "boolean"
4426
+ },
4427
+ "default": "false",
4428
+ "description": "Draws the scale's numbers beside the plot, the `axis` part, at the levels\n`gridlines` rules: amounts, or percentages under `share`.\n\nAbsent draws none: bands read as a composition need no numbers beside\nthem, and the tooltip and the table hold every reading.",
4429
+ "attribute": "value-axis",
4430
+ "reflects": true,
4431
+ "inheritedFrom": {
4432
+ "name": "HelixHeadlessAreaChart",
4433
+ "module": "src/area-chart/root/area-chart-root.ts"
4434
+ }
4435
+ },
4055
4436
  {
4056
4437
  "kind": "field",
4057
4438
  "name": "warnedAboutNegatives",
@@ -4122,6 +4503,35 @@
4122
4503
  "module": "src/area-chart/root/area-chart-root.ts"
4123
4504
  }
4124
4505
  },
4506
+ {
4507
+ "kind": "method",
4508
+ "name": "renderAxis",
4509
+ "privacy": "protected",
4510
+ "return": {
4511
+ "type": {
4512
+ "text": "TemplateResult"
4513
+ }
4514
+ },
4515
+ "parameters": [
4516
+ {
4517
+ "name": "y",
4518
+ "type": {
4519
+ "text": "(value: number) => number"
4520
+ }
4521
+ },
4522
+ {
4523
+ "name": "domain",
4524
+ "type": {
4525
+ "text": "[number, number]"
4526
+ }
4527
+ }
4528
+ ],
4529
+ "description": "The scale's numbers beside the plot, under `value-axis`: amounts written\nin the chart's locale, or percentages under `share`. A seam, so a\nsubclass can write the numbers its own way, such as a currency.",
4530
+ "inheritedFrom": {
4531
+ "name": "HelixHeadlessAreaChart",
4532
+ "module": "src/area-chart/root/area-chart-root.ts"
4533
+ }
4534
+ },
4125
4535
  {
4126
4536
  "kind": "method",
4127
4537
  "name": "renderPlot",
@@ -4762,6 +5172,10 @@
4762
5172
  "min": 300,
4763
5173
  "slug": "with-a-tooltip"
4764
5174
  },
5175
+ {
5176
+ "description": "Each part's share with the percentages beside the plot, so a band can be measured off the drawing.",
5177
+ "slug": "with-a-value-axis"
5178
+ },
4765
5179
  {
4766
5180
  "description": "Rules at the levels the total reaches, drawn over the bands.",
4767
5181
  "min": 300,
@@ -4900,6 +5314,19 @@
4900
5314
  "name": "HelixHeadlessAreaChart",
4901
5315
  "module": "src/area-chart/root/area-chart-root.ts"
4902
5316
  }
5317
+ },
5318
+ {
5319
+ "name": "value-axis",
5320
+ "type": {
5321
+ "text": "boolean"
5322
+ },
5323
+ "default": "false",
5324
+ "description": "Draws the scale's numbers beside the plot, the `axis` part, at the levels\n`gridlines` rules: amounts, or percentages under `share`.\n\nAbsent draws none: bands read as a composition need no numbers beside\nthem, and the tooltip and the table hold every reading.",
5325
+ "fieldName": "valueAxis",
5326
+ "inheritedFrom": {
5327
+ "name": "HelixHeadlessAreaChart",
5328
+ "module": "src/area-chart/root/area-chart-root.ts"
5329
+ }
4903
5330
  }
4904
5331
  ],
4905
5332
  "cssParts": [
@@ -4911,6 +5338,14 @@
4911
5338
  "module": "src/area-chart/root/area-chart-root.ts"
4912
5339
  }
4913
5340
  },
5341
+ {
5342
+ "description": "The numbers of the scale beside the plot, under `value-axis`.",
5343
+ "name": "axis",
5344
+ "inheritedFrom": {
5345
+ "name": "HelixHeadlessAreaChart",
5346
+ "module": "src/area-chart/root/area-chart-root.ts"
5347
+ }
5348
+ },
4914
5349
  {
4915
5350
  "description": "The rule at zero, which is the floor of the drawing.",
4916
5351
  "name": "baseline",
@@ -4999,6 +5434,14 @@
4999
5434
  "module": "src/area-chart/root/area-chart-root.ts"
5000
5435
  }
5001
5436
  },
5437
+ {
5438
+ "description": "One number on the axis, placed with `inset-block-start` at its level.",
5439
+ "name": "tick",
5440
+ "inheritedFrom": {
5441
+ "name": "HelixHeadlessAreaChart",
5442
+ "module": "src/area-chart/root/area-chart-root.ts"
5443
+ }
5444
+ },
5002
5445
  {
5003
5446
  "description": "The bubble, forwarded from `Tooltip`.",
5004
5447
  "name": "tooltip",
@@ -5128,6 +5571,32 @@
5128
5571
  }
5129
5572
  }
5130
5573
  ],
5574
+ "events": [
5575
+ {
5576
+ "type": {
5577
+ "text": "HelixReadingChangeEvent"
5578
+ },
5579
+ "description": "The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it.",
5580
+ "name": "helix-reading-change",
5581
+ "reactProp": "onhelix-reading-change",
5582
+ "inheritedFrom": {
5583
+ "name": "HelixHeadlessAreaChart",
5584
+ "module": "src/area-chart/root/area-chart-root.ts"
5585
+ }
5586
+ },
5587
+ {
5588
+ "type": {
5589
+ "text": "HelixReadingPressEvent"
5590
+ },
5591
+ "description": "A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`.",
5592
+ "name": "helix-reading-press",
5593
+ "reactProp": "onhelix-reading-press",
5594
+ "inheritedFrom": {
5595
+ "name": "HelixHeadlessAreaChart",
5596
+ "module": "src/area-chart/root/area-chart-root.ts"
5597
+ }
5598
+ }
5599
+ ],
5131
5600
  "cssStates": [
5132
5601
  {
5133
5602
  "description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
@@ -9616,6 +10085,21 @@
9616
10085
  "module": "src/bar-chart/root/bar-chart-root.ts"
9617
10086
  }
9618
10087
  },
10088
+ {
10089
+ "kind": "field",
10090
+ "name": "valueAxis",
10091
+ "type": {
10092
+ "text": "boolean"
10093
+ },
10094
+ "default": "false",
10095
+ "description": "Draws the numbers of the scale the bars are measured on, the `axis` part,\nat the levels `gridlines` rules: down the side of columns, and along the\nbottom of bars under `orientation=\"horizontal\"`.\n\nAbsent draws none with one scale, since bars compared with each other need\nno numbers. With `secondary` both scales are drawn whatever this says.",
10096
+ "attribute": "value-axis",
10097
+ "reflects": true,
10098
+ "inheritedFrom": {
10099
+ "name": "HelixHeadlessBarChart",
10100
+ "module": "src/bar-chart/root/bar-chart-root.ts"
10101
+ }
10102
+ },
9619
10103
  {
9620
10104
  "kind": "field",
9621
10105
  "name": "scaled",
@@ -9838,7 +10322,7 @@
9838
10322
  }
9839
10323
  }
9840
10324
  ],
9841
- "description": "The numbers along one scale, drawn only where there are two of them.\n\n**A chart with one scale renders no axis, on purpose.** Columns measured\nagainst each other need no numbers to be compared, and a row of them beside\na small chart is furniture that makes the drawing smaller for no reading a\nreader was going to do. With two scales that argument inverts: a reader\ncannot tell there are two, cannot tell which series is on which, and cannot\nrecover either from the picture. So this appears with `secondary` and never\nwithout it.\n\n**Beside the plot and not inside it.** Inside, the numbers are drawn over\nthe drawing, and a horizontal chart shows it immediately: its value axis\nruns along the bottom, which is where the last row of bars is. The vertical\ncase has the same fault and enough slack to hide it. The plot is also the\npointer's catchment and the tooltip's containing block, both measured from\nits box, so padding it to make room would move every reading half an axis\nto the right.\n\nA column of the host grid instead, which the stylesheet grows only when\n`secondary` is set. That is what the property reflects for.\n\nThe primary hugs the edge the drawing starts at and the secondary the edge\nit ends at: down the two sides for columns, along the bottom and top for\nbars, which is where each axis is when the chart is turned.",
10325
+ "description": "The numbers along one scale, drawn only where there are two of them.\n\n**A chart with one scale renders no axis, on purpose.** Columns measured\nagainst each other need no numbers to be compared, and a row of them beside\na small chart is furniture that makes the drawing smaller for no reading a\nreader was going to do. With two scales that argument inverts: a reader\ncannot tell there are two, cannot tell which series is on which, and cannot\nrecover either from the picture. So this appears with `secondary`, and\nwith one scale only where `value-axis` asks for its numbers.\n\n**Beside the plot and not inside it.** Inside, the numbers are drawn over\nthe drawing, and a horizontal chart shows it immediately: its value axis\nruns along the bottom, which is where the last row of bars is. The vertical\ncase has the same fault and enough slack to hide it. The plot is also the\npointer's catchment and the tooltip's containing block, both measured from\nits box, so padding it to make room would move every reading half an axis\nto the right.\n\nA column of the host grid instead, which the stylesheet grows only when\n`secondary` or `value-axis` is set. That is what the two reflect for.\n\nThe primary hugs the edge the drawing starts at and the secondary the edge\nit ends at: down the two sides for columns, along the bottom and top for\nbars, which is where each axis is when the chart is turned.",
9842
10326
  "inheritedFrom": {
9843
10327
  "name": "HelixHeadlessBarChart",
9844
10328
  "module": "src/bar-chart/root/bar-chart-root.ts"
@@ -10511,6 +10995,19 @@
10511
10995
  "name": "HelixHeadlessBarChart",
10512
10996
  "module": "src/bar-chart/root/bar-chart-root.ts"
10513
10997
  }
10998
+ },
10999
+ {
11000
+ "name": "value-axis",
11001
+ "type": {
11002
+ "text": "boolean"
11003
+ },
11004
+ "default": "false",
11005
+ "description": "Draws the numbers of the scale the bars are measured on, the `axis` part,\nat the levels `gridlines` rules: down the side of columns, and along the\nbottom of bars under `orientation=\"horizontal\"`.\n\nAbsent draws none with one scale, since bars compared with each other need\nno numbers. With `secondary` both scales are drawn whatever this says.",
11006
+ "fieldName": "valueAxis",
11007
+ "inheritedFrom": {
11008
+ "name": "HelixHeadlessBarChart",
11009
+ "module": "src/bar-chart/root/bar-chart-root.ts"
11010
+ }
10514
11011
  }
10515
11012
  ],
10516
11013
  "superclass": {
@@ -10574,6 +11071,10 @@
10574
11071
  "description": "A tooltip that shows the whole row under the pointer, including a column the chart does not plot.",
10575
11072
  "slug": "with-a-tooltip"
10576
11073
  },
11074
+ {
11075
+ "description": "The numbers of the scale the columns are measured on, beside the plot, with one scale.",
11076
+ "slug": "with-a-value-axis"
11077
+ },
10577
11078
  {
10578
11079
  "description": "Gridlines on both axes of a horizontal chart.",
10579
11080
  "slug": "with-gridlines"
@@ -10585,7 +11086,7 @@
10585
11086
  "customElement": true,
10586
11087
  "cssParts": [
10587
11088
  {
10588
- "description": "The numbers of one scale, drawn only when `secondary` splits the chart into two scales.",
11089
+ "description": "The numbers of one scale: the primary under `value-axis`, and both when `secondary` splits the chart into two scales.",
10589
11090
  "name": "axis",
10590
11091
  "inheritedFrom": {
10591
11092
  "name": "HelixHeadlessBarChart",
@@ -10857,6 +11358,32 @@
10857
11358
  }
10858
11359
  }
10859
11360
  ],
11361
+ "events": [
11362
+ {
11363
+ "type": {
11364
+ "text": "HelixReadingChangeEvent"
11365
+ },
11366
+ "description": "The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it.",
11367
+ "name": "helix-reading-change",
11368
+ "reactProp": "onhelix-reading-change",
11369
+ "inheritedFrom": {
11370
+ "name": "HelixHeadlessBarChart",
11371
+ "module": "src/bar-chart/root/bar-chart-root.ts"
11372
+ }
11373
+ },
11374
+ {
11375
+ "type": {
11376
+ "text": "HelixReadingPressEvent"
11377
+ },
11378
+ "description": "A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`.",
11379
+ "name": "helix-reading-press",
11380
+ "reactProp": "onhelix-reading-press",
11381
+ "inheritedFrom": {
11382
+ "name": "HelixHeadlessBarChart",
11383
+ "module": "src/bar-chart/root/bar-chart-root.ts"
11384
+ }
11385
+ }
11386
+ ],
10860
11387
  "cssStates": [
10861
11388
  {
10862
11389
  "description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
@@ -12560,6 +13087,17 @@
12560
13087
  "module": "src/breadcrumbs/root/breadcrumbs-root.ts"
12561
13088
  }
12562
13089
  },
13090
+ {
13091
+ "kind": "field",
13092
+ "name": "markLast",
13093
+ "privacy": "private",
13094
+ "readonly": true,
13095
+ "description": "Says the last slotted crumb is the current page where none is marked\n`current`, as React Aria's trail does. Through a property the crumb does\nnot reflect, so nothing is written onto your markup.",
13096
+ "inheritedFrom": {
13097
+ "name": "HelixHeadlessBreadcrumbs",
13098
+ "module": "src/breadcrumbs/root/breadcrumbs-root.ts"
13099
+ }
13100
+ },
12563
13101
  {
12564
13102
  "kind": "method",
12565
13103
  "name": "renderItems",
@@ -16204,6 +16742,29 @@
16204
16742
  "module": "src/callout/root/callout-root.ts"
16205
16743
  }
16206
16744
  },
16745
+ {
16746
+ "kind": "method",
16747
+ "name": "dismissName",
16748
+ "privacy": "private",
16749
+ "return": {
16750
+ "type": {
16751
+ "text": "string"
16752
+ }
16753
+ },
16754
+ "parameters": [
16755
+ {
16756
+ "name": "tone",
16757
+ "type": {
16758
+ "text": "string"
16759
+ }
16760
+ }
16761
+ ],
16762
+ "description": "The dismiss button's name: `dismissLabel` with the heading's words, or the\ntone's name.\n\nThe heading is read from the children, so a server and a hydrating render\nname the button for the tone, and the update after names it for the\nheading.",
16763
+ "inheritedFrom": {
16764
+ "name": "HelixHeadlessCallout",
16765
+ "module": "src/callout/root/callout-root.ts"
16766
+ }
16767
+ },
16207
16768
  {
16208
16769
  "kind": "field",
16209
16770
  "name": "tier",
@@ -27046,6 +27607,32 @@
27046
27607
  "module": "src/chat/composer/chat-composer.ts"
27047
27608
  }
27048
27609
  },
27610
+ {
27611
+ "kind": "field",
27612
+ "name": "maxLength",
27613
+ "type": {
27614
+ "text": "number | undefined"
27615
+ },
27616
+ "description": "The most characters a draft can have. The field stops taking more.",
27617
+ "attribute": "maxlength",
27618
+ "inheritedFrom": {
27619
+ "name": "HelixHeadlessChatComposer",
27620
+ "module": "src/chat/composer/chat-composer.ts"
27621
+ }
27622
+ },
27623
+ {
27624
+ "kind": "field",
27625
+ "name": "minLength",
27626
+ "type": {
27627
+ "text": "number | undefined"
27628
+ },
27629
+ "description": "The fewest characters a draft can have, once the reader has written in\nthe field, as on a `<textarea>`.",
27630
+ "attribute": "minlength",
27631
+ "inheritedFrom": {
27632
+ "name": "HelixHeadlessChatComposer",
27633
+ "module": "src/chat/composer/chat-composer.ts"
27634
+ }
27635
+ },
27049
27636
  {
27050
27637
  "kind": "field",
27051
27638
  "name": "placeholder",
@@ -27060,6 +27647,20 @@
27060
27647
  "module": "src/chat/composer/chat-composer.ts"
27061
27648
  }
27062
27649
  },
27650
+ {
27651
+ "kind": "field",
27652
+ "name": "required",
27653
+ "type": {
27654
+ "text": "boolean"
27655
+ },
27656
+ "default": "false",
27657
+ "description": "Whether the form needs a draft to submit. An empty draft never sends,\nrequired or not.",
27658
+ "attribute": "required",
27659
+ "inheritedFrom": {
27660
+ "name": "HelixHeadlessChatComposer",
27661
+ "module": "src/chat/composer/chat-composer.ts"
27662
+ }
27663
+ },
27063
27664
  {
27064
27665
  "kind": "field",
27065
27666
  "name": "rows",
@@ -27147,6 +27748,34 @@
27147
27748
  "module": "src/chat/composer/chat-composer.ts"
27148
27749
  }
27149
27750
  },
27751
+ {
27752
+ "kind": "field",
27753
+ "name": "touched",
27754
+ "type": {
27755
+ "text": "boolean"
27756
+ },
27757
+ "privacy": "private",
27758
+ "default": "false",
27759
+ "description": "Whether the reader has tried to send or submit the draft, or edited it and left.",
27760
+ "inheritedFrom": {
27761
+ "name": "HelixHeadlessChatComposer",
27762
+ "module": "src/chat/composer/chat-composer.ts"
27763
+ }
27764
+ },
27765
+ {
27766
+ "kind": "field",
27767
+ "name": "shownInvalid",
27768
+ "type": {
27769
+ "text": "boolean"
27770
+ },
27771
+ "privacy": "private",
27772
+ "default": "false",
27773
+ "description": "Whether the composer shows that its draft is wrong.",
27774
+ "inheritedFrom": {
27775
+ "name": "HelixHeadlessChatComposer",
27776
+ "module": "src/chat/composer/chat-composer.ts"
27777
+ }
27778
+ },
27150
27779
  {
27151
27780
  "kind": "field",
27152
27781
  "name": "pause",
@@ -27243,6 +27872,17 @@
27243
27872
  "text": "formResetCallback() => void"
27244
27873
  }
27245
27874
  },
27875
+ {
27876
+ "kind": "field",
27877
+ "name": "touch",
27878
+ "privacy": "private",
27879
+ "readonly": true,
27880
+ "description": "The reader has had a go at the draft, so whether it is wrong can be shown.",
27881
+ "inheritedFrom": {
27882
+ "name": "HelixHeadlessChatComposer",
27883
+ "module": "src/chat/composer/chat-composer.ts"
27884
+ }
27885
+ },
27246
27886
  {
27247
27887
  "kind": "method",
27248
27888
  "name": "formStateRestoreCallback",
@@ -28133,6 +28773,30 @@
28133
28773
  "module": "src/chat/composer/chat-composer.ts"
28134
28774
  }
28135
28775
  },
28776
+ {
28777
+ "name": "maxlength",
28778
+ "type": {
28779
+ "text": "number | undefined"
28780
+ },
28781
+ "description": "The most characters a draft can have. The field stops taking more.",
28782
+ "fieldName": "maxLength",
28783
+ "inheritedFrom": {
28784
+ "name": "HelixHeadlessChatComposer",
28785
+ "module": "src/chat/composer/chat-composer.ts"
28786
+ }
28787
+ },
28788
+ {
28789
+ "name": "minlength",
28790
+ "type": {
28791
+ "text": "number | undefined"
28792
+ },
28793
+ "description": "The fewest characters a draft can have, once the reader has written in\nthe field, as on a `<textarea>`.",
28794
+ "fieldName": "minLength",
28795
+ "inheritedFrom": {
28796
+ "name": "HelixHeadlessChatComposer",
28797
+ "module": "src/chat/composer/chat-composer.ts"
28798
+ }
28799
+ },
28136
28800
  {
28137
28801
  "name": "placeholder",
28138
28802
  "type": {
@@ -28146,6 +28810,19 @@
28146
28810
  "module": "src/chat/composer/chat-composer.ts"
28147
28811
  }
28148
28812
  },
28813
+ {
28814
+ "name": "required",
28815
+ "type": {
28816
+ "text": "boolean"
28817
+ },
28818
+ "default": "false",
28819
+ "description": "Whether the form needs a draft to submit. An empty draft never sends,\nrequired or not.",
28820
+ "fieldName": "required",
28821
+ "inheritedFrom": {
28822
+ "name": "HelixHeadlessChatComposer",
28823
+ "module": "src/chat/composer/chat-composer.ts"
28824
+ }
28825
+ },
28149
28826
  {
28150
28827
  "name": "rows",
28151
28828
  "type": {
@@ -28277,6 +28954,14 @@
28277
28954
  }
28278
28955
  ],
28279
28956
  "cssStates": [
28957
+ {
28958
+ "description": "The draft fails `required`, `minlength`, `maxlength`, or a custom error, and the reader has tried to send or submit it, or edited the field and left it.",
28959
+ "name": "invalid",
28960
+ "inheritedFrom": {
28961
+ "name": "HelixHeadlessChatComposer",
28962
+ "module": "src/chat/composer/chat-composer.ts"
28963
+ }
28964
+ },
28280
28965
  {
28281
28966
  "description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
28282
28967
  "name": "settled",
@@ -30009,6 +30694,20 @@
30009
30694
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
30010
30695
  }
30011
30696
  },
30697
+ {
30698
+ "kind": "field",
30699
+ "name": "statusSlots",
30700
+ "type": {
30701
+ "text": "boolean"
30702
+ },
30703
+ "privacy": "protected",
30704
+ "default": "false",
30705
+ "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.",
30706
+ "inheritedFrom": {
30707
+ "name": "MixinCollection",
30708
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
30709
+ }
30710
+ },
30012
30711
  {
30013
30712
  "kind": "field",
30014
30713
  "name": "shadowRootOptions",
@@ -30547,6 +31246,21 @@
30547
31246
  "module": "src/chat/root/chat-root.ts"
30548
31247
  }
30549
31248
  },
31249
+ {
31250
+ "kind": "method",
31251
+ "name": "markScroller",
31252
+ "privacy": "private",
31253
+ "return": {
31254
+ "type": {
31255
+ "text": "void"
31256
+ }
31257
+ },
31258
+ "description": "Makes the log a tab stop while it scrolls, and takes the stop away when it\ndoes not.\n\n**A reader on a keyboard scrolls the history from the log itself.**\nChromium and Firefox make a box that scrolls focusable on their own, and\nSafari does not, so there the arrow keys could not reach a long history.\nA log that fits is no stop at all, so Tab goes straight to the composer.",
31259
+ "inheritedFrom": {
31260
+ "name": "HelixHeadlessChat",
31261
+ "module": "src/chat/root/chat-root.ts"
31262
+ }
31263
+ },
30550
31264
  {
30551
31265
  "kind": "field",
30552
31266
  "name": "atBottom",
@@ -52000,6 +52714,14 @@
52000
52714
  "module": "src/data-table/root/data-table-root.ts"
52001
52715
  }
52002
52716
  },
52717
+ {
52718
+ "description": "Content shown when there are no rows to show and none are loading, such as a picture and a link. Falls back to `empty-text`, which the live region still says.",
52719
+ "name": "empty",
52720
+ "inheritedFrom": {
52721
+ "name": "HelixHeadlessDataTable",
52722
+ "module": "src/data-table/root/data-table-root.ts"
52723
+ }
52724
+ },
52003
52725
  {
52004
52726
  "description": "Content below the grid. It replaces the built-in pagination.",
52005
52727
  "name": "footer",
@@ -52008,6 +52730,14 @@
52008
52730
  "module": "src/data-table/root/data-table-root.ts"
52009
52731
  }
52010
52732
  },
52733
+ {
52734
+ "description": "Content shown while the rows load, such as a spinner. Falls back to `loading-text`, which the live region still says.",
52735
+ "name": "loading",
52736
+ "inheritedFrom": {
52737
+ "name": "HelixHeadlessDataTable",
52738
+ "module": "src/data-table/root/data-table-root.ts"
52739
+ }
52740
+ },
52011
52741
  {
52012
52742
  "description": "Content above the grid, such as a search field or actions.",
52013
52743
  "name": "toolbar",
@@ -52241,6 +52971,20 @@
52241
52971
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
52242
52972
  }
52243
52973
  },
52974
+ {
52975
+ "kind": "field",
52976
+ "name": "statusSlots",
52977
+ "type": {
52978
+ "text": "boolean"
52979
+ },
52980
+ "privacy": "protected",
52981
+ "default": "false",
52982
+ "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.",
52983
+ "inheritedFrom": {
52984
+ "name": "MixinCollection",
52985
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
52986
+ }
52987
+ },
52244
52988
  {
52245
52989
  "kind": "field",
52246
52990
  "name": "shadowRootOptions",
@@ -52899,6 +53643,20 @@
52899
53643
  "module": "src/data-table/root/data-table-root.ts"
52900
53644
  }
52901
53645
  },
53646
+ {
53647
+ "kind": "field",
53648
+ "name": "selectionBehavior",
53649
+ "type": {
53650
+ "text": "'replace' | 'toggle'"
53651
+ },
53652
+ "default": "'toggle'",
53653
+ "description": "What a key or a press on a row does to the rows already selected, in a\n`selectable` table. `toggle`, the default, keeps them: Space adds or takes\nout the row. `replace` selects the row alone, as a file list does: Down and\nUp carry the selection with them, and a press on a row selects it. Control\nor Command with a press or Space adds or takes out one row, and with a move\ngoes without selecting. The checkboxes add or take out one row either way.",
53654
+ "attribute": "selection-behavior",
53655
+ "inheritedFrom": {
53656
+ "name": "HelixHeadlessDataTable",
53657
+ "module": "src/data-table/root/data-table-root.ts"
53658
+ }
53659
+ },
52902
53660
  {
52903
53661
  "kind": "field",
52904
53662
  "name": "selectRowLabel",
@@ -54402,7 +55160,7 @@
54402
55160
  "text": "void"
54403
55161
  }
54404
55162
  },
54405
- "description": "The columns into the header row, everything else into the toolbar and footer.\n\nManual assignment, so a consumer's own markup is never written to.",
55163
+ "description": "The columns into the header row, everything else into the slot it names.\n\nManual assignment, so a consumer's own markup is never written to.",
54406
55164
  "inheritedFrom": {
54407
55165
  "name": "HelixHeadlessDataTable",
54408
55166
  "module": "src/data-table/root/data-table-root.ts"
@@ -54921,6 +55679,54 @@
54921
55679
  "module": "src/data-table/root/data-table-root.ts"
54922
55680
  }
54923
55681
  },
55682
+ {
55683
+ "kind": "field",
55684
+ "name": "replaces",
55685
+ "type": {
55686
+ "text": "boolean"
55687
+ },
55688
+ "privacy": "private",
55689
+ "description": "Whether a press or a move on a row selects it alone.",
55690
+ "readonly": true,
55691
+ "inheritedFrom": {
55692
+ "name": "HelixHeadlessDataTable",
55693
+ "module": "src/data-table/root/data-table-root.ts"
55694
+ }
55695
+ },
55696
+ {
55697
+ "kind": "method",
55698
+ "name": "chooseOnly",
55699
+ "privacy": "private",
55700
+ "return": {
55701
+ "type": {
55702
+ "text": "void"
55703
+ }
55704
+ },
55705
+ "parameters": [
55706
+ {
55707
+ "name": "row",
55708
+ "type": {
55709
+ "text": "number"
55710
+ }
55711
+ }
55712
+ ],
55713
+ "description": "Selects the row at `row` on the page alone, and makes it where a range\nruns from. Asks nothing where it is already the only one selected.",
55714
+ "inheritedFrom": {
55715
+ "name": "HelixHeadlessDataTable",
55716
+ "module": "src/data-table/root/data-table-root.ts"
55717
+ }
55718
+ },
55719
+ {
55720
+ "kind": "field",
55721
+ "name": "handleRowClick",
55722
+ "privacy": "private",
55723
+ "readonly": true,
55724
+ "description": "A press on a row under `selection-behavior=\"replace\"`: it selects the row\nalone, Control or Command adds or takes out the row, and Shift selects\nevery row from the one last chosen. A press on a control in a cell, or on\nthe checkbox or grip column, is the control's.",
55725
+ "inheritedFrom": {
55726
+ "name": "HelixHeadlessDataTable",
55727
+ "module": "src/data-table/root/data-table-root.ts"
55728
+ }
55729
+ },
54924
55730
  {
54925
55731
  "kind": "field",
54926
55732
  "name": "handleHeadClick",
@@ -56305,6 +57111,19 @@
56305
57111
  "module": "src/data-table/root/data-table-root.ts"
56306
57112
  }
56307
57113
  },
57114
+ {
57115
+ "name": "selection-behavior",
57116
+ "type": {
57117
+ "text": "'replace' | 'toggle'"
57118
+ },
57119
+ "default": "'toggle'",
57120
+ "description": "What a key or a press on a row does to the rows already selected, in a\n`selectable` table. `toggle`, the default, keeps them: Space adds or takes\nout the row. `replace` selects the row alone, as a file list does: Down and\nUp carry the selection with them, and a press on a row selects it. Control\nor Command with a press or Space adds or takes out one row, and with a move\ngoes without selecting. The checkboxes add or take out one row either way.",
57121
+ "fieldName": "selectionBehavior",
57122
+ "inheritedFrom": {
57123
+ "name": "HelixHeadlessDataTable",
57124
+ "module": "src/data-table/root/data-table-root.ts"
57125
+ }
57126
+ },
56308
57127
  {
56309
57128
  "name": "select-row-label",
56310
57129
  "type": {
@@ -66034,7 +66853,7 @@
66034
66853
  "type": {
66035
66854
  "text": "'any' | 'closerequest' | 'none' | undefined"
66036
66855
  },
66037
- "description": "Which close requests the browser handles on its own.\n\n`<dialog closedby>`, forwarded, and safe to forward because every path it\nopens still comes back through this element: a close request fires `cancel`\nfirst, `handleCancel` prevents it, and `requestOpen` decides. So\n`closedby=\"any\"` gains light dismiss without giving up the refusal, which is\nthe property this component exists to keep.\n\nAbsent by default, which is the platform's `auto` and this library's rule\nthat a resting value is an attribute's absence.",
66856
+ "description": "Which close requests the browser handles on its own.\n\n`<dialog closedby>`, forwarded, and safe to forward because every path it\nopens still comes back through this element: a close request fires `cancel`\nfirst, `handleCancel` prevents it, and `requestOpen` decides. So\n`closedby=\"any\"` gains light dismiss without giving up the refusal, which is\nthe property this component exists to keep.\n\nThe press on the backdrop that this element handles itself follows it too:\n`closerequest` and `none` leave the dialog open on that press, as the\nplatform does, and `none` also keeps it open on Escape in a browser without\n`closedby`.\n\nAbsent by default, which is the platform's `auto` and this library's rule\nthat a resting value is an attribute's absence. Absent, a press on the\nbackdrop closes the dialog.",
66038
66857
  "attribute": "closedby",
66039
66858
  "reflects": true,
66040
66859
  "inheritedFrom": {
@@ -66815,7 +67634,7 @@
66815
67634
  "type": {
66816
67635
  "text": "'any' | 'closerequest' | 'none' | undefined"
66817
67636
  },
66818
- "description": "Which close requests the browser handles on its own.\n\n`<dialog closedby>`, forwarded, and safe to forward because every path it\nopens still comes back through this element: a close request fires `cancel`\nfirst, `handleCancel` prevents it, and `requestOpen` decides. So\n`closedby=\"any\"` gains light dismiss without giving up the refusal, which is\nthe property this component exists to keep.\n\nAbsent by default, which is the platform's `auto` and this library's rule\nthat a resting value is an attribute's absence.",
67637
+ "description": "Which close requests the browser handles on its own.\n\n`<dialog closedby>`, forwarded, and safe to forward because every path it\nopens still comes back through this element: a close request fires `cancel`\nfirst, `handleCancel` prevents it, and `requestOpen` decides. So\n`closedby=\"any\"` gains light dismiss without giving up the refusal, which is\nthe property this component exists to keep.\n\nThe press on the backdrop that this element handles itself follows it too:\n`closerequest` and `none` leave the dialog open on that press, as the\nplatform does, and `none` also keeps it open on Escape in a browser without\n`closedby`.\n\nAbsent by default, which is the platform's `auto` and this library's rule\nthat a resting value is an attribute's absence. Absent, a press on the\nbackdrop closes the dialog.",
66819
67638
  "fieldName": "closedBy",
66820
67639
  "inheritedFrom": {
66821
67640
  "name": "HelixHeadlessDialog",
@@ -67277,7 +68096,7 @@
67277
68096
  "text": "boolean"
67278
68097
  },
67279
68098
  "default": "false",
67280
- "description": "Whether screen readers announce the line as a separator, which they now do\nby default.\n\nIt dates from when the line was decorative by default. It is still read,\nand it wins over `decorative`, so a divider written with it stays a\nseparator.",
68099
+ "description": "Whether screen readers announce the line as a separator, which they now do\nby default.",
67281
68100
  "attribute": "announced",
67282
68101
  "reflects": true,
67283
68102
  "inheritedFrom": {
@@ -67698,7 +68517,7 @@
67698
68517
  "text": "boolean"
67699
68518
  },
67700
68519
  "default": "false",
67701
- "description": "Whether screen readers announce the line as a separator, which they now do\nby default.\n\nIt dates from when the line was decorative by default. It is still read,\nand it wins over `decorative`, so a divider written with it stays a\nseparator.",
68520
+ "description": "Whether screen readers announce the line as a separator, which they now do\nby default.",
67702
68521
  "fieldName": "announced",
67703
68522
  "inheritedFrom": {
67704
68523
  "name": "HelixHeadlessDivider",
@@ -69686,6 +70505,20 @@
69686
70505
  "module": "src/drawer/root/drawer-root.ts"
69687
70506
  }
69688
70507
  },
70508
+ {
70509
+ "kind": "field",
70510
+ "name": "refusesDismissal",
70511
+ "type": {
70512
+ "text": "boolean"
70513
+ },
70514
+ "privacy": "private",
70515
+ "description": "Whether a request to dismiss the drawer, by Escape or a swipe, is refused.",
70516
+ "readonly": true,
70517
+ "inheritedFrom": {
70518
+ "name": "HelixHeadlessDrawer",
70519
+ "module": "src/drawer/root/drawer-root.ts"
70520
+ }
70521
+ },
69689
70522
  {
69690
70523
  "kind": "field",
69691
70524
  "name": "dismissLabel",
@@ -69734,6 +70567,20 @@
69734
70567
  "module": "src/drawer/root/drawer-root.ts"
69735
70568
  }
69736
70569
  },
70570
+ {
70571
+ "kind": "field",
70572
+ "name": "modal",
70573
+ "type": {
70574
+ "text": "boolean"
70575
+ },
70576
+ "default": "true",
70577
+ "description": "Whether the drawer blocks the page behind it.\n\nTurning this off removes the focus trap and the scrim together, because\nthey are one decision: a panel that traps focus without covering the page\nstrands the reader, and one that covers without trapping lets them tab\nbehind the cover.\n\nNot reflected. It stays `true` by default, since a drawer that silently\nlost its focus trap because a consumer forgot a word would be worse than an\nattribute on the host, and nothing selects on it: the scrim is rendered or\nnot, rather than shown or hidden by CSS.",
70578
+ "attribute": "modal",
70579
+ "inheritedFrom": {
70580
+ "name": "HelixHeadlessDrawer",
70581
+ "module": "src/drawer/root/drawer-root.ts"
70582
+ }
70583
+ },
69737
70584
  {
69738
70585
  "kind": "field",
69739
70586
  "name": "aria",
@@ -69747,13 +70594,14 @@
69747
70594
  },
69748
70595
  {
69749
70596
  "kind": "field",
69750
- "name": "modal",
70597
+ "name": "persistent",
69751
70598
  "type": {
69752
70599
  "text": "boolean"
69753
70600
  },
69754
- "default": "true",
69755
- "description": "Whether the drawer blocks the page behind it.\n\nTurning this off removes the focus trap and the scrim together, because\nthey are one decision: a panel that traps focus without covering the page\nstrands the reader, and one that covers without trapping lets them tab\nbehind the cover.\n\nNot reflected. It stays `true` by default, since a drawer that silently\nlost its focus trap because a consumer forgot a word would be worse than an\nattribute on the host, and nothing selects on it: the scrim is rendered or\nnot, rather than shown or hidden by CSS.",
69756
- "attribute": "modal",
70601
+ "default": "false",
70602
+ "description": "Stops Escape, a press outside, and a swipe from closing the drawer, for a\ndrawer that has to be answered.\n\nThe close control and `close()` still close it, as on `Dialog`: a panel\nwith no way out at all is a trap.",
70603
+ "attribute": "persistent",
70604
+ "reflects": true,
69757
70605
  "inheritedFrom": {
69758
70606
  "name": "HelixHeadlessDrawer",
69759
70607
  "module": "src/drawer/root/drawer-root.ts"
@@ -70197,6 +71045,35 @@
70197
71045
  "module": "src/drawer/root/drawer-root.ts"
70198
71046
  }
70199
71047
  },
71048
+ {
71049
+ "kind": "field",
71050
+ "name": "describedByBody",
71051
+ "type": {
71052
+ "text": "boolean"
71053
+ },
71054
+ "privacy": "private",
71055
+ "default": "false",
71056
+ "description": "Whether the body's words are what currently describe the panel.",
71057
+ "inheritedFrom": {
71058
+ "name": "HelixHeadlessDrawer",
71059
+ "module": "src/drawer/root/drawer-root.ts"
71060
+ }
71061
+ },
71062
+ {
71063
+ "kind": "method",
71064
+ "name": "describeByBody",
71065
+ "privacy": "private",
71066
+ "return": {
71067
+ "type": {
71068
+ "text": "void"
71069
+ }
71070
+ },
71071
+ "description": "Describes the panel by the words at the start of its body, where nothing\nelse describes it, as `Dialog` does. An `aria-describedby` on the host\ncomes first.",
71072
+ "inheritedFrom": {
71073
+ "name": "HelixHeadlessDrawer",
71074
+ "module": "src/drawer/root/drawer-root.ts"
71075
+ }
71076
+ },
70200
71077
  {
70201
71078
  "kind": "method",
70202
71079
  "name": "renderDismissIcon",
@@ -70663,6 +71540,19 @@
70663
71540
  "module": "src/drawer/root/drawer-root.ts"
70664
71541
  }
70665
71542
  },
71543
+ {
71544
+ "name": "persistent",
71545
+ "type": {
71546
+ "text": "boolean"
71547
+ },
71548
+ "default": "false",
71549
+ "description": "Stops Escape, a press outside, and a swipe from closing the drawer, for a\ndrawer that has to be answered.\n\nThe close control and `close()` still close it, as on `Dialog`: a panel\nwith no way out at all is a trap.",
71550
+ "fieldName": "persistent",
71551
+ "inheritedFrom": {
71552
+ "name": "HelixHeadlessDrawer",
71553
+ "module": "src/drawer/root/drawer-root.ts"
71554
+ }
71555
+ },
70666
71556
  {
70667
71557
  "name": "placement",
70668
71558
  "type": {
@@ -71943,6 +72833,20 @@
71943
72833
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
71944
72834
  }
71945
72835
  },
72836
+ {
72837
+ "kind": "field",
72838
+ "name": "statusSlots",
72839
+ "type": {
72840
+ "text": "boolean"
72841
+ },
72842
+ "privacy": "protected",
72843
+ "default": "false",
72844
+ "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.",
72845
+ "inheritedFrom": {
72846
+ "name": "MixinCollection",
72847
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
72848
+ }
72849
+ },
71946
72850
  {
71947
72851
  "kind": "field",
71948
72852
  "name": "label",
@@ -98045,7 +98949,7 @@
98045
98949
  "text": "TemplateResult"
98046
98950
  }
98047
98951
  },
98048
- "description": "The chord under `caps`, a part for each key and for each `+` between two,\nso a sheet can draw a cap per key. Written with no space between, so a\nchord reads as the one label it was.",
98952
+ "description": "The chord under `caps`, a part for each key and for each `+` between two,\nso a sheet can draw a cap per key. Written with no space between, so a\nchord reads as the one label it was. Where the chord is said in words,\nthe parts are hidden from a screen reader, which reads the words.",
98049
98953
  "inheritedFrom": {
98050
98954
  "name": "HelixHeadlessKbd",
98051
98955
  "module": "src/kbd/root/kbd-root.ts"
@@ -100863,6 +101767,17 @@
100863
101767
  "module": "src/lightbox/root/lightbox-root.ts"
100864
101768
  }
100865
101769
  },
101770
+ {
101771
+ "kind": "field",
101772
+ "name": "scope",
101773
+ "privacy": "protected",
101774
+ "readonly": true,
101775
+ "default": "new FocusScopeController(this, { contain: () => this.open, contents: () => [ ...['header', '', 'footer'].flatMap( (name) => this.renderRoot ?.querySelector<HTMLSlotElement>(name ? `slot[name=\"${name}\"]` : 'slot:not([name])') ?.assignedElements({ flatten: true }) ?? [], ), /* And the controls the viewer draws itself. */ ...[...(this.dialog?.children ?? [])].filter((one) => one.localName === 'button'), ], surface: () => this.dialog, })",
101776
+ "inheritedFrom": {
101777
+ "name": "HelixHeadlessLightbox",
101778
+ "module": "src/lightbox/root/lightbox-root.ts"
101779
+ }
101780
+ },
100866
101781
  {
100867
101782
  "kind": "field",
100868
101783
  "name": "zoomer",
@@ -101183,6 +102098,29 @@
101183
102098
  "module": "src/lightbox/root/lightbox-root.ts"
101184
102099
  }
101185
102100
  },
102101
+ {
102102
+ "kind": "method",
102103
+ "name": "panKey",
102104
+ "privacy": "private",
102105
+ "return": {
102106
+ "type": {
102107
+ "text": "boolean"
102108
+ }
102109
+ },
102110
+ "parameters": [
102111
+ {
102112
+ "name": "key",
102113
+ "type": {
102114
+ "text": "string"
102115
+ }
102116
+ }
102117
+ ],
102118
+ "description": "The arrow keys on a zoomed item, which move about it rather than to\nanother item. Returns whether it was one.",
102119
+ "inheritedFrom": {
102120
+ "name": "HelixHeadlessLightbox",
102121
+ "module": "src/lightbox/root/lightbox-root.ts"
102122
+ }
102123
+ },
101186
102124
  {
101187
102125
  "kind": "method",
101188
102126
  "name": "zoomIn",
@@ -101252,7 +102190,76 @@
101252
102190
  "name": "handleBackdrop",
101253
102191
  "privacy": "private",
101254
102192
  "readonly": true,
101255
- "description": "A press on the backdrop, which lands on the dialog element itself.\n\nThe point is compared against the panel's box rather than trusting the\ntarget alone, for the reason `Dialog` gives: a modal `<dialog>` attributes\nbackdrop presses to itself, so any padding the styled tier gives the panel\nis a strip where a press on the panel looks like a press outside it.",
102193
+ "description": "A press on the backdrop or on the empty area around the item.\n\nA modal `<dialog>` attributes backdrop presses to itself, and the styled\ntier draws the viewer over the whole screen, so a press beside the item\nlands on the dialog, the viewport, or the item's own box. Any of those is\na reader done with the viewer, as a press on a dark room around a picture\nis. Not a press that dragged, which was a swipe or a pan.",
102194
+ "inheritedFrom": {
102195
+ "name": "HelixHeadlessLightbox",
102196
+ "module": "src/lightbox/root/lightbox-root.ts"
102197
+ }
102198
+ },
102199
+ {
102200
+ "kind": "field",
102201
+ "name": "pressedAt",
102202
+ "type": {
102203
+ "text": "{ x: number; y: number } | undefined"
102204
+ },
102205
+ "privacy": "private",
102206
+ "description": "Where the last press began, so a press that dragged closes nothing.",
102207
+ "inheritedFrom": {
102208
+ "name": "HelixHeadlessLightbox",
102209
+ "module": "src/lightbox/root/lightbox-root.ts"
102210
+ }
102211
+ },
102212
+ {
102213
+ "kind": "field",
102214
+ "name": "handlePointerDown",
102215
+ "privacy": "private",
102216
+ "readonly": true,
102217
+ "inheritedFrom": {
102218
+ "name": "HelixHeadlessLightbox",
102219
+ "module": "src/lightbox/root/lightbox-root.ts"
102220
+ }
102221
+ },
102222
+ {
102223
+ "kind": "method",
102224
+ "name": "dragged",
102225
+ "privacy": "private",
102226
+ "return": {
102227
+ "type": {
102228
+ "text": "boolean"
102229
+ }
102230
+ },
102231
+ "parameters": [
102232
+ {
102233
+ "name": "event",
102234
+ "type": {
102235
+ "text": "MouseEvent"
102236
+ }
102237
+ }
102238
+ ],
102239
+ "description": "Whether the press moved further than a click does, as a swipe or a pan does.",
102240
+ "inheritedFrom": {
102241
+ "name": "HelixHeadlessLightbox",
102242
+ "module": "src/lightbox/root/lightbox-root.ts"
102243
+ }
102244
+ },
102245
+ {
102246
+ "kind": "method",
102247
+ "name": "onEmptyArea",
102248
+ "privacy": "private",
102249
+ "return": {
102250
+ "type": {
102251
+ "text": "boolean"
102252
+ }
102253
+ },
102254
+ "parameters": [
102255
+ {
102256
+ "name": "event",
102257
+ "type": {
102258
+ "text": "MouseEvent"
102259
+ }
102260
+ }
102261
+ ],
102262
+ "description": "Whether a press landed on the empty area around the item: the viewer's\nown surface, the viewport, or an item's box beside what it holds. The\nlast two not where `max-zoom` lets a reader zoom, since a double press\nthere zooms.",
101256
102263
  "inheritedFrom": {
101257
102264
  "name": "HelixHeadlessLightbox",
101258
102265
  "module": "src/lightbox/root/lightbox-root.ts"
@@ -102447,6 +103454,14 @@
102447
103454
  "name": "HelixHeadlessLineChart",
102448
103455
  "module": "src/line-chart/root/line-chart-root.ts"
102449
103456
  }
103457
+ },
103458
+ {
103459
+ "description": "The width of the axis, in `ch`, set from the widest number on it. Written by the component on the axis.",
103460
+ "name": "--line-chart-axis",
103461
+ "inheritedFrom": {
103462
+ "name": "HelixHeadlessLineChart",
103463
+ "module": "src/line-chart/root/line-chart-root.ts"
103464
+ }
102450
103465
  }
102451
103466
  ],
102452
103467
  "members": [
@@ -102909,6 +103924,21 @@
102909
103924
  "module": "src/line-chart/root/line-chart-root.ts"
102910
103925
  }
102911
103926
  },
103927
+ {
103928
+ "kind": "field",
103929
+ "name": "valueAxis",
103930
+ "type": {
103931
+ "text": "boolean"
103932
+ },
103933
+ "default": "false",
103934
+ "description": "Draws the scale's numbers beside the plot, the `axis` part, at the levels\n`gridlines` rules, so a reading can be measured off the drawing as well\nas read from the tooltip.\n\nAbsent draws none: a line read for its shape needs no numbers beside it,\nand the tooltip and the table hold every reading.",
103935
+ "attribute": "value-axis",
103936
+ "reflects": true,
103937
+ "inheritedFrom": {
103938
+ "name": "HelixHeadlessLineChart",
103939
+ "module": "src/line-chart/root/line-chart-root.ts"
103940
+ }
103941
+ },
102912
103942
  {
102913
103943
  "kind": "method",
102914
103944
  "name": "range",
@@ -102982,6 +104012,35 @@
102982
104012
  "module": "src/line-chart/root/line-chart-root.ts"
102983
104013
  }
102984
104014
  },
104015
+ {
104016
+ "kind": "method",
104017
+ "name": "renderAxis",
104018
+ "privacy": "protected",
104019
+ "return": {
104020
+ "type": {
104021
+ "text": "TemplateResult"
104022
+ }
104023
+ },
104024
+ "parameters": [
104025
+ {
104026
+ "name": "y",
104027
+ "type": {
104028
+ "text": "(value: number) => number"
104029
+ }
104030
+ },
104031
+ {
104032
+ "name": "domain",
104033
+ "type": {
104034
+ "text": "[number, number]"
104035
+ }
104036
+ }
104037
+ ],
104038
+ "description": "The scale's numbers beside the plot, under `value-axis`, written in the\nchart's locale. A seam, so a subclass can write the numbers its own way,\nsuch as a currency.",
104039
+ "inheritedFrom": {
104040
+ "name": "HelixHeadlessLineChart",
104041
+ "module": "src/line-chart/root/line-chart-root.ts"
104042
+ }
104043
+ },
102985
104044
  {
102986
104045
  "kind": "method",
102987
104046
  "name": "renderSummary",
@@ -103763,6 +104822,19 @@
103763
104822
  "module": "src/line-chart/root/line-chart-root.ts"
103764
104823
  }
103765
104824
  },
104825
+ {
104826
+ "name": "value-axis",
104827
+ "type": {
104828
+ "text": "boolean"
104829
+ },
104830
+ "default": "false",
104831
+ "description": "Draws the scale's numbers beside the plot, the `axis` part, at the levels\n`gridlines` rules, so a reading can be measured off the drawing as well\nas read from the tooltip.\n\nAbsent draws none: a line read for its shape needs no numbers beside it,\nand the tooltip and the table hold every reading.",
104832
+ "fieldName": "valueAxis",
104833
+ "inheritedFrom": {
104834
+ "name": "HelixHeadlessLineChart",
104835
+ "module": "src/line-chart/root/line-chart-root.ts"
104836
+ }
104837
+ },
103766
104838
  {
103767
104839
  "name": "zero",
103768
104840
  "type": {
@@ -103850,6 +104922,10 @@
103850
104922
  "description": "A tooltip on the reading under the pointer, showing the whole row, including a column that is not plotted.",
103851
104923
  "slug": "with-a-tooltip"
103852
104924
  },
104925
+ {
104926
+ "description": "The scale's numbers beside the plot, at the levels the grid rules, so a reading can be measured off the drawing.",
104927
+ "slug": "with-a-value-axis"
104928
+ },
103853
104929
  {
103854
104930
  "description": "Rules at evenly spaced levels, so you can read each value against one.",
103855
104931
  "slug": "with-gridlines"
@@ -103868,6 +104944,14 @@
103868
104944
  "module": "src/line-chart/root/line-chart-root.ts"
103869
104945
  }
103870
104946
  },
104947
+ {
104948
+ "description": "The numbers of the scale beside the plot, under `value-axis`.",
104949
+ "name": "axis",
104950
+ "inheritedFrom": {
104951
+ "name": "HelixHeadlessLineChart",
104952
+ "module": "src/line-chart/root/line-chart-root.ts"
104953
+ }
104954
+ },
103871
104955
  {
103872
104956
  "description": "The band around the reading under the pointer.",
103873
104957
  "name": "band",
@@ -103996,6 +105080,14 @@
103996
105080
  "module": "src/line-chart/root/line-chart-root.ts"
103997
105081
  }
103998
105082
  },
105083
+ {
105084
+ "description": "One number on the axis, placed with `inset-block-start` at its level.",
105085
+ "name": "tick",
105086
+ "inheritedFrom": {
105087
+ "name": "HelixHeadlessLineChart",
105088
+ "module": "src/line-chart/root/line-chart-root.ts"
105089
+ }
105090
+ },
103999
105091
  {
104000
105092
  "description": "The bubble, forwarded from `Tooltip`.",
104001
105093
  "name": "tooltip",
@@ -104125,6 +105217,32 @@
104125
105217
  }
104126
105218
  }
104127
105219
  ],
105220
+ "events": [
105221
+ {
105222
+ "type": {
105223
+ "text": "HelixReadingChangeEvent"
105224
+ },
105225
+ "description": "The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it.",
105226
+ "name": "helix-reading-change",
105227
+ "reactProp": "onhelix-reading-change",
105228
+ "inheritedFrom": {
105229
+ "name": "HelixHeadlessLineChart",
105230
+ "module": "src/line-chart/root/line-chart-root.ts"
105231
+ }
105232
+ },
105233
+ {
105234
+ "type": {
105235
+ "text": "HelixReadingPressEvent"
105236
+ },
105237
+ "description": "A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`.",
105238
+ "name": "helix-reading-press",
105239
+ "reactProp": "onhelix-reading-press",
105240
+ "inheritedFrom": {
105241
+ "name": "HelixHeadlessLineChart",
105242
+ "module": "src/line-chart/root/line-chart-root.ts"
105243
+ }
105244
+ }
105245
+ ],
104128
105246
  "cssStates": [
104129
105247
  {
104130
105248
  "description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
@@ -107080,6 +108198,20 @@
107080
108198
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
107081
108199
  }
107082
108200
  },
108201
+ {
108202
+ "kind": "field",
108203
+ "name": "statusSlots",
108204
+ "type": {
108205
+ "text": "boolean"
108206
+ },
108207
+ "privacy": "protected",
108208
+ "default": "false",
108209
+ "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.",
108210
+ "inheritedFrom": {
108211
+ "name": "MixinCollection",
108212
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
108213
+ }
108214
+ },
107083
108215
  {
107084
108216
  "kind": "field",
107085
108217
  "name": "defaultValue",
@@ -125095,6 +126227,20 @@
125095
126227
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
125096
126228
  }
125097
126229
  },
126230
+ {
126231
+ "kind": "field",
126232
+ "name": "statusSlots",
126233
+ "type": {
126234
+ "text": "boolean"
126235
+ },
126236
+ "privacy": "protected",
126237
+ "default": "false",
126238
+ "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.",
126239
+ "inheritedFrom": {
126240
+ "name": "MixinCollection",
126241
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
126242
+ }
126243
+ },
125098
126244
  {
125099
126245
  "kind": "field",
125100
126246
  "name": "defaultOpen",
@@ -128344,7 +129490,7 @@
128344
129490
  "name": "indicator",
128345
129491
  "privacy": "private",
128346
129492
  "readonly": true,
128347
- "default": "new IndicatorController(this, { active: () => { const items = this.items const marked = (item: HTMLElement): boolean => { const current = item.getAttribute('aria-current') return current !== null && current !== 'false' } return ( items.find((item) => item.getAttribute('aria-current') === 'page') ?? items.find(marked) ) }, indicator: () => this.partNamed('indicator'), observe: () => this.items, surface: () => this.partNamed('nav'), })",
129493
+ "default": "new IndicatorController(this, { active: () => { const items = this.items const marked = (item: HTMLElement): boolean => { const current = markOf(item)?.getAttribute('aria-current') return current !== null && current !== undefined && current !== 'false' } return ( items.find((item) => markOf(item)?.getAttribute('aria-current') === 'page') ?? items.find(marked) ) }, indicator: () => this.partNamed('indicator'), observe: () => this.items, surface: () => this.partNamed('nav'), })",
128348
129494
  "inheritedFrom": {
128349
129495
  "name": "HelixHeadlessNavigation",
128350
129496
  "module": "src/navigation/root/navigation-root.ts"
@@ -128437,7 +129583,7 @@
128437
129583
  "text": "HTMLElement[]"
128438
129584
  },
128439
129585
  "privacy": "private",
128440
- "description": "The destinations the consumer slotted.",
129586
+ "description": "The destinations the consumer slotted, and the items of a slotted list in\nplace of the list.",
128441
129587
  "readonly": true,
128442
129588
  "inheritedFrom": {
128443
129589
  "name": "HelixHeadlessNavigation",
@@ -131497,6 +132643,20 @@
131497
132643
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
131498
132644
  }
131499
132645
  },
132646
+ {
132647
+ "kind": "field",
132648
+ "name": "statusSlots",
132649
+ "type": {
132650
+ "text": "boolean"
132651
+ },
132652
+ "privacy": "protected",
132653
+ "default": "false",
132654
+ "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.",
132655
+ "inheritedFrom": {
132656
+ "name": "MixinCollection",
132657
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
132658
+ }
132659
+ },
131500
132660
  {
131501
132661
  "kind": "field",
131502
132662
  "name": "shadowRootOptions",
@@ -131843,6 +133003,29 @@
131843
133003
  "module": "src/notifications/root/notifications-root.ts"
131844
133004
  }
131845
133005
  },
133006
+ {
133007
+ "kind": "method",
133008
+ "name": "leave",
133009
+ "privacy": "private",
133010
+ "return": {
133011
+ "type": {
133012
+ "text": "void"
133013
+ }
133014
+ },
133015
+ "parameters": [
133016
+ {
133017
+ "name": "event",
133018
+ "type": {
133019
+ "text": "KeyboardEvent"
133020
+ }
133021
+ }
133022
+ ],
133023
+ "description": "`Control+End` and `Control+Home`, which leave the feed for the first\ncontrol after it or the nearest one before it, as the APG feed pattern\ndoes. A feed of many rows is otherwise a long walk to get past.",
133024
+ "inheritedFrom": {
133025
+ "name": "HelixHeadlessNotifications",
133026
+ "module": "src/notifications/root/notifications-root.ts"
133027
+ }
133028
+ },
131846
133029
  {
131847
133030
  "kind": "method",
131848
133031
  "name": "rove",
@@ -148553,7 +149736,7 @@
148553
149736
  },
148554
149737
  "privacy": "private",
148555
149738
  "default": "false",
148556
- "description": "Whether a reader has pressed the trigger, which is after any hydration.",
149739
+ "description": "Whether the trigger may be told, from a frame after the first render or a reader's press.",
148557
149740
  "inheritedFrom": {
148558
149741
  "name": "HelixHeadlessPopover",
148559
149742
  "module": "src/popover/root/popover-root.ts"
@@ -148581,7 +149764,7 @@
148581
149764
  "text": "void"
148582
149765
  }
148583
149766
  },
148584
- "description": "Tells a slotted trigger the disclosure state.\n\nA Helix trigger by property, through `tellDisclosure`. A plain element,\nwhich has no shadow root to keep the state out of the markup, by\n`aria-expanded`, and only from a reader's first press on: by then a server\nor a framework has long finished writing the element, so the write cannot\nbe a hydration mismatch. One that already carries `aria-expanded` is the\nconsumer's to keep, and is left alone.",
149767
+ "description": "Tells a slotted trigger the disclosure state.\n\nA Helix trigger by property, through `tellDisclosure`. A plain element,\nwhich has no shadow root to keep the state out of the markup, by\n`aria-expanded`, from a frame after the first render or a reader's first\npress on, so a closed panel is said to be closed before anyone presses. One that already carries `aria-expanded` is the\nconsumer's to keep, and is left alone.",
148585
149768
  "inheritedFrom": {
148586
149769
  "name": "HelixHeadlessPopover",
148587
149770
  "module": "src/popover/root/popover-root.ts"
@@ -158130,7 +159313,7 @@
158130
159313
  "declarations": [
158131
159314
  {
158132
159315
  "kind": "class",
158133
- "description": "A source pane dispatches `helix-before-edit`, which bubbles, and the sandbox\npasses the value to the preview slotted into it. The source pane and the\npreview do not reference each other, so you can replace either one or use it\nalone.\n\nThe event carries the pane's `name`, so one sandbox can hold several panes.\n`html` sets the preview's markup and `css` sets its stylesheet. The sandbox\nignores a pane with any other name, so that pane can show content without\nchanging the preview.\n\n**The dividers are two nested `helix-splitter` elements**, which handle the\npointer, the keyboard, and the corner. The inner splitter holds the panes and\nthe outer one holds the panel, so the panel spans the full width.",
159316
+ "description": "A source pane dispatches `helix-before-edit`, which bubbles, and the sandbox\npasses the value to the preview slotted into it. The source pane and the\npreview do not reference each other, so you can replace either one or use it\nalone.\n\nThe event carries the pane's `name`, so one sandbox can hold several panes.\n`html` sets the preview's markup and `css` sets its stylesheet. The sandbox\nignores a pane with any other name, so that pane can show content without\nchanging the preview.\n\n**The dividers are two nested `helix-splitter` elements**, which handle the\npointer, the keyboard, and the corner. The inner splitter holds the panes and\nthe outer one holds the panel, so the panel spans the full width.\n\nOn a focused divider, the arrow keys move it, and `Home` and `End` move it\nto its ends. `Enter` on the panes divider shuts the lead pane, and pressed\nagain it opens the pane where it was. `Enter` on the panel divider shuts the\npanel to `panel-collapsed-size`, and pressed again it opens the panel to its\nlast height.",
158134
159317
  "name": "HelixSandbox",
158135
159318
  "cssProperties": [
158136
159319
  {
@@ -158610,6 +159793,67 @@
158610
159793
  "readonly": true,
158611
159794
  "description": "Refuses a pane of either splitter declaring itself shut.\n\n**The collapse is a second state, and this element has nowhere to put\none.** A splitter's `collapsed` overrides its `position` and remembers what\nit was open at, and it answers to neither `split` nor `panel-size`. Allowed\nin here, it would leave the arrangement in a state nothing outside this\nelement can see or set: assigning `panel-size` back moves nothing while\n`collapsed` stands, and a consumer who stored the two numbers this element\npublishes and restored a sandbox from them would get it open. That is one\nelement holding the arrangement and the other showing it, which is the state\nthe two requests above were rewritten to end.\n\n**So \"shut\" is spelled in pixels here.** `panel-collapsed-size` is the floor\n`handlePanelChange` holds the panel to, `panel-size` reads it when the\ndivider is at the end, and `helix-before-panel-resize` is where a consumer\nhears about it, in the units they already store. That is the same trade the\nother two make: the sandbox is the single decision point because it refuses\nwhat the splitter asks and re-announces the move in its own vocabulary.\n\n**Stopped as well as refused**, because `start` and `end` name the panes of\na splitter a consumer of this element is not supposed to know about, and the\ntwo events above already say which divider moved. A collapse from something\nslotted into a pane is somebody else's and passes through untouched, which\nis what `target` against `currentTarget` is asking.\n\nReached at all only since Splitter stopped returning on a refused\n`helix-before-resize`. While it did, every collapse in here was unreachable\nand `panel-collapsed-size` was inert with it."
158612
159795
  },
159796
+ {
159797
+ "kind": "field",
159798
+ "name": "reopenSplit",
159799
+ "type": {
159800
+ "text": "number | undefined"
159801
+ },
159802
+ "privacy": "private",
159803
+ "description": "Where the lead pane opens back to after `Enter` shut it."
159804
+ },
159805
+ {
159806
+ "kind": "field",
159807
+ "name": "reopenPanel",
159808
+ "type": {
159809
+ "text": "number | undefined"
159810
+ },
159811
+ "privacy": "private",
159812
+ "description": "Where the panel opens back to after `Enter` shut it, in pixels."
159813
+ },
159814
+ {
159815
+ "kind": "field",
159816
+ "name": "handleDividerKey",
159817
+ "privacy": "private",
159818
+ "readonly": true,
159819
+ "description": "Shuts a pane on `Enter`, or opens it again, in this element's own units.\n\nThe window splitter pattern's key. The splitter's own toggle asks for a\ncollapse, which `handleCollapse` refuses, so the key is answered here: the\npanes divider moves `split` to zero and back, and the panel divider moves\n`panel-size` to `panel-collapsed-size` and back. Each goes through the same\nrequest a drag makes, so a consumer hears `helix-before-split` or\n`helix-before-panel-resize` and can refuse it.\n\nOnly `Enter` on a divider of this sandbox's own splitters. The key comes up\nfrom the source pane too, and an `Enter` typed there is a new line."
159820
+ },
159821
+ {
159822
+ "kind": "method",
159823
+ "name": "toggleLead",
159824
+ "privacy": "private",
159825
+ "return": {
159826
+ "type": {
159827
+ "text": "void"
159828
+ }
159829
+ },
159830
+ "parameters": [
159831
+ {
159832
+ "name": "splitter",
159833
+ "type": {
159834
+ "text": "EventTarget"
159835
+ }
159836
+ }
159837
+ ]
159838
+ },
159839
+ {
159840
+ "kind": "method",
159841
+ "name": "togglePanel",
159842
+ "privacy": "private",
159843
+ "return": {
159844
+ "type": {
159845
+ "text": "void"
159846
+ }
159847
+ },
159848
+ "parameters": [
159849
+ {
159850
+ "name": "splitter",
159851
+ "type": {
159852
+ "text": "EventTarget"
159853
+ }
159854
+ }
159855
+ ]
159856
+ },
158613
159857
  {
158614
159858
  "kind": "method",
158615
159859
  "name": "answer",
@@ -159462,6 +160706,25 @@
159462
160706
  "privacy": "private",
159463
160707
  "readonly": true
159464
160708
  },
160709
+ {
160710
+ "kind": "method",
160711
+ "name": "indent",
160712
+ "privacy": "private",
160713
+ "return": {
160714
+ "type": {
160715
+ "text": "void"
160716
+ }
160717
+ },
160718
+ "parameters": [
160719
+ {
160720
+ "name": "field",
160721
+ "type": {
160722
+ "text": "HTMLTextAreaElement"
160723
+ }
160724
+ }
160725
+ ],
160726
+ "description": "Writes the two spaces Tab inserts, as typing would.\n\n**Through `insertText`, so undo takes the indent back.** Assigning\n`field.value` empties the textarea's undo history: a reader who typed,\npressed Tab and then Cmd+Z or Ctrl+Z lost the indent and everything typed\nbefore it. `insertText` is the edit a keystroke makes, so it joins the\nhistory and sends the `input` event that `handleInput` takes. It writes\ninto whatever has focus, so it is used only while the field has it. Where it\nis not supported, the field is written directly."
160727
+ },
159465
160728
  {
159466
160729
  "kind": "method",
159467
160730
  "name": "renderField",
@@ -162439,6 +163702,46 @@
162439
163702
  "module": "src/scatter-chart/root/scatter-chart-root.ts"
162440
163703
  }
162441
163704
  },
163705
+ {
163706
+ "kind": "field",
163707
+ "name": "handleTap",
163708
+ "privacy": "private",
163709
+ "readonly": true,
163710
+ "description": "The point a tap lands nearest, within twice a pointer's reach, a finger\nbeing broader than a cursor. It stays shown until a tap lands elsewhere.",
163711
+ "inheritedFrom": {
163712
+ "name": "HelixHeadlessScatterChart",
163713
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
163714
+ }
163715
+ },
163716
+ {
163717
+ "kind": "method",
163718
+ "name": "pointNear",
163719
+ "privacy": "private",
163720
+ "return": {
163721
+ "type": {
163722
+ "text": "ScatterPoint | undefined | null"
163723
+ }
163724
+ },
163725
+ "parameters": [
163726
+ {
163727
+ "name": "event",
163728
+ "type": {
163729
+ "text": "PointerEvent"
163730
+ }
163731
+ },
163732
+ {
163733
+ "name": "reach",
163734
+ "type": {
163735
+ "text": "number"
163736
+ }
163737
+ }
163738
+ ],
163739
+ "description": "The drawn point nearest a pointer, within `reach` pixels, `undefined` for\nnone in reach, and `null` with no plot to measure.",
163740
+ "inheritedFrom": {
163741
+ "name": "HelixHeadlessScatterChart",
163742
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
163743
+ }
163744
+ },
162442
163745
  {
162443
163746
  "kind": "field",
162444
163747
  "name": "handleLeave",
@@ -163217,6 +164520,32 @@
163217
164520
  }
163218
164521
  }
163219
164522
  ],
164523
+ "events": [
164524
+ {
164525
+ "type": {
164526
+ "text": "HelixReadingChangeEvent"
164527
+ },
164528
+ "description": "The reading shown moved, or was put away: `index` is the row, or `-1` for none, with its `label`, the `series` the keys rest on, and the `pointerType` that moved it.",
164529
+ "name": "helix-reading-change",
164530
+ "reactProp": "onhelix-reading-change",
164531
+ "inheritedFrom": {
164532
+ "name": "HelixHeadlessScatterChart",
164533
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
164534
+ }
164535
+ },
164536
+ {
164537
+ "type": {
164538
+ "text": "HelixReadingPressEvent"
164539
+ },
164540
+ "description": "A reading was clicked, tapped, or pressed with Enter or Space, with the same detail as `helix-reading-change`.",
164541
+ "name": "helix-reading-press",
164542
+ "reactProp": "onhelix-reading-press",
164543
+ "inheritedFrom": {
164544
+ "name": "HelixHeadlessScatterChart",
164545
+ "module": "src/scatter-chart/root/scatter-chart-root.ts"
164546
+ }
164547
+ }
164548
+ ],
163220
164549
  "cssStates": [
163221
164550
  {
163222
164551
  "description": "Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.",
@@ -175535,6 +176864,95 @@
175535
176864
  "module": "src/splitter/root/splitter-root.ts"
175536
176865
  }
175537
176866
  },
176867
+ {
176868
+ "kind": "field",
176869
+ "name": "primary",
176870
+ "type": {
176871
+ "text": "'end' | 'start' | undefined"
176872
+ },
176873
+ "description": "The pane that keeps its size when the splitter's own size changes. The\nother pane takes all of the change. Unset, both keep their share.",
176874
+ "attribute": "primary",
176875
+ "inheritedFrom": {
176876
+ "name": "HelixHeadlessSplitter",
176877
+ "module": "src/splitter/root/splitter-root.ts"
176878
+ }
176879
+ },
176880
+ {
176881
+ "kind": "field",
176882
+ "name": "lengths",
176883
+ "type": {
176884
+ "text": "ResizeObserver | undefined"
176885
+ },
176886
+ "privacy": "private",
176887
+ "description": "Watches this element's length along its axis while `primary` is set.",
176888
+ "inheritedFrom": {
176889
+ "name": "HelixHeadlessSplitter",
176890
+ "module": "src/splitter/root/splitter-root.ts"
176891
+ }
176892
+ },
176893
+ {
176894
+ "kind": "field",
176895
+ "name": "length",
176896
+ "type": {
176897
+ "text": "number"
176898
+ },
176899
+ "privacy": "private",
176900
+ "default": "0",
176901
+ "description": "The length along the axis last seen, in pixels.",
176902
+ "inheritedFrom": {
176903
+ "name": "HelixHeadlessSplitter",
176904
+ "module": "src/splitter/root/splitter-root.ts"
176905
+ }
176906
+ },
176907
+ {
176908
+ "kind": "method",
176909
+ "name": "watchLength",
176910
+ "privacy": "private",
176911
+ "return": {
176912
+ "type": {
176913
+ "text": "void"
176914
+ }
176915
+ },
176916
+ "description": "Starts or stops watching the length, according to `primary`, and holds\nthe primary pane's size in pixels as the length changes.",
176917
+ "inheritedFrom": {
176918
+ "name": "HelixHeadlessSplitter",
176919
+ "module": "src/splitter/root/splitter-root.ts"
176920
+ }
176921
+ },
176922
+ {
176923
+ "kind": "method",
176924
+ "name": "holdPrimary",
176925
+ "privacy": "private",
176926
+ "return": {
176927
+ "type": {
176928
+ "text": "void"
176929
+ }
176930
+ },
176931
+ "parameters": [
176932
+ {
176933
+ "name": "length",
176934
+ "type": {
176935
+ "text": "number"
176936
+ }
176937
+ }
176938
+ ],
176939
+ "description": "Moves the divider so the primary pane keeps the pixels it had, as the\nsplitter's length goes from the one last seen to `length`. Not while a\npane is shut or a drag holds the divider.",
176940
+ "inheritedFrom": {
176941
+ "name": "HelixHeadlessSplitter",
176942
+ "module": "src/splitter/root/splitter-root.ts"
176943
+ }
176944
+ },
176945
+ {
176946
+ "kind": "field",
176947
+ "name": "handlePaneKeys",
176948
+ "privacy": "private",
176949
+ "readonly": true,
176950
+ "description": "F6, which moves focus between the panes, as the window splitter pattern\nallows: from the start pane to the end pane, and from the end pane or the\ndivider to the start pane. Only a pane that holds a control takes focus.",
176951
+ "inheritedFrom": {
176952
+ "name": "HelixHeadlessSplitter",
176953
+ "module": "src/splitter/root/splitter-root.ts"
176954
+ }
176955
+ },
175538
176956
  {
175539
176957
  "kind": "field",
175540
176958
  "name": "snap",
@@ -176661,6 +178079,18 @@
176661
178079
  "module": "src/splitter/root/splitter-root.ts"
176662
178080
  }
176663
178081
  },
178082
+ {
178083
+ "name": "primary",
178084
+ "type": {
178085
+ "text": "'end' | 'start' | undefined"
178086
+ },
178087
+ "description": "The pane that keeps its size when the splitter's own size changes. The\nother pane takes all of the change. Unset, both keep their share.",
178088
+ "fieldName": "primary",
178089
+ "inheritedFrom": {
178090
+ "name": "HelixHeadlessSplitter",
178091
+ "module": "src/splitter/root/splitter-root.ts"
178092
+ }
178093
+ },
176664
178094
  {
176665
178095
  "name": "snap",
176666
178096
  "type": {
@@ -179134,7 +180564,7 @@
179134
180564
  "declarations": [
179135
180565
  {
179136
180566
  "kind": "class",
179137
- "description": "",
180567
+ "description": "A step draws its mark, its name as a `helix-button`, and the line that joins\nit to the steps either side. The mark is a tick on a finished step, a dot\non the current one, and an empty ring on one nobody has reached. Where the\nlist sets `variant=\"numeric\"`, it is the step's number.\n\nDown a column, the current step opens to show what is in its `content` slot,\nand the others collapse it. A collapsed stage's content is hidden, so Tab and\na screen reader pass over it as well.",
179138
180568
  "name": "HelixStep",
179139
180569
  "members": [
179140
180570
  {
@@ -183685,6 +185115,14 @@
183685
185115
  "module": "src/table/root/table-root.ts"
183686
185116
  }
183687
185117
  },
185118
+ {
185119
+ "description": "Content shown when there are no rows and none are loading, such as a picture and a link. Falls back to `empty-text`, which the live region still says.",
185120
+ "name": "empty",
185121
+ "inheritedFrom": {
185122
+ "name": "HelixHeadlessTable",
185123
+ "module": "src/table/root/table-root.ts"
185124
+ }
185125
+ },
183688
185126
  {
183689
185127
  "description": "Words that name the table, shown above it in the weight of a heading.",
183690
185128
  "name": "heading",
@@ -183692,6 +185130,14 @@
183692
185130
  "name": "HelixHeadlessTable",
183693
185131
  "module": "src/table/root/table-root.ts"
183694
185132
  }
185133
+ },
185134
+ {
185135
+ "description": "Content shown while the rows load, such as a spinner. Falls back to `loading-text`, which the live region still says.",
185136
+ "name": "loading",
185137
+ "inheritedFrom": {
185138
+ "name": "HelixHeadlessTable",
185139
+ "module": "src/table/root/table-root.ts"
185140
+ }
183695
185141
  }
183696
185142
  ],
183697
185143
  "members": [
@@ -183917,6 +185363,20 @@
183917
185363
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
183918
185364
  }
183919
185365
  },
185366
+ {
185367
+ "kind": "field",
185368
+ "name": "statusSlots",
185369
+ "type": {
185370
+ "text": "boolean"
185371
+ },
185372
+ "privacy": "protected",
185373
+ "default": "false",
185374
+ "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.",
185375
+ "inheritedFrom": {
185376
+ "name": "MixinCollection",
185377
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
185378
+ }
185379
+ },
183920
185380
  {
183921
185381
  "kind": "field",
183922
185382
  "name": "ascendingLabel",
@@ -184336,7 +185796,7 @@
184336
185796
  "name": "gridKeys",
184337
185797
  "privacy": "private",
184338
185798
  "readonly": true,
184339
- "default": "new TableGridController(this, { activate: (place, event) => this.activate(place, event), columns: () => this.tableColumns.filter((column) => column.shown), lead: () => this.lead, on: () => this.grid, part: (name) => this.partNamed(name), rows: () => (this.childrenKnown ? this.arrangedRows : []), selectAll: () => this.selectable && this.requestSelected(new Set(this.everyKey)), })",
185799
+ "default": "new TableGridController(this, { activate: (place, event) => this.activate(place, event), columns: () => this.tableColumns.filter((column) => column.shown), lead: () => this.lead, on: () => this.grid, part: (name) => this.partNamed(name), rows: () => (this.childrenKnown ? this.arrangedRows : []), rowWords: () => this.arrangedRows.map((row) => textOf(row.children[0])), selectAll: () => this.selectable && this.requestSelected(new Set([...this.chosen, ...this.enabledKeys])), selectRange: (to, from) => this.selectRange(to, from), })",
184340
185800
  "description": "The keyboard of a `grid` table, in `grid-controller.ts`.",
184341
185801
  "inheritedFrom": {
184342
185802
  "name": "HelixHeadlessTable",
@@ -184639,6 +186099,43 @@
184639
186099
  "module": "src/table/root/table-root.ts"
184640
186100
  }
184641
186101
  },
186102
+ {
186103
+ "kind": "field",
186104
+ "name": "enabledKeys",
186105
+ "type": {
186106
+ "text": "string[]"
186107
+ },
186108
+ "privacy": "private",
186109
+ "description": "The keys of the rows that can be chosen: every row that is not `disabled`.",
186110
+ "readonly": true,
186111
+ "inheritedFrom": {
186112
+ "name": "HelixHeadlessTable",
186113
+ "module": "src/table/root/table-root.ts"
186114
+ }
186115
+ },
186116
+ {
186117
+ "kind": "method",
186118
+ "name": "isDisabled",
186119
+ "privacy": "private",
186120
+ "return": {
186121
+ "type": {
186122
+ "text": "boolean"
186123
+ }
186124
+ },
186125
+ "parameters": [
186126
+ {
186127
+ "name": "key",
186128
+ "type": {
186129
+ "text": "string"
186130
+ }
186131
+ }
186132
+ ],
186133
+ "description": "Whether the row of that key is `disabled`.",
186134
+ "inheritedFrom": {
186135
+ "name": "HelixHeadlessTable",
186136
+ "module": "src/table/root/table-root.ts"
186137
+ }
186138
+ },
184642
186139
  {
184643
186140
  "kind": "method",
184644
186141
  "name": "chooseAll",
@@ -184648,7 +186145,50 @@
184648
186145
  "text": "void"
184649
186146
  }
184650
186147
  },
184651
- "description": "The checkbox in the heading: every row, or none where every row is chosen.",
186148
+ "description": "The checkbox in the heading: every row that can be chosen, or none of\nthem where each already is. A `disabled` row keeps what it had.",
186149
+ "inheritedFrom": {
186150
+ "name": "HelixHeadlessTable",
186151
+ "module": "src/table/root/table-root.ts"
186152
+ }
186153
+ },
186154
+ {
186155
+ "kind": "field",
186156
+ "name": "anchorKey",
186157
+ "type": {
186158
+ "text": "string | undefined"
186159
+ },
186160
+ "privacy": "private",
186161
+ "default": "undefined",
186162
+ "description": "The key of the row a Shift range runs from: the one last chosen.",
186163
+ "inheritedFrom": {
186164
+ "name": "HelixHeadlessTable",
186165
+ "module": "src/table/root/table-root.ts"
186166
+ }
186167
+ },
186168
+ {
186169
+ "kind": "method",
186170
+ "name": "selectRange",
186171
+ "privacy": "private",
186172
+ "return": {
186173
+ "type": {
186174
+ "text": "boolean"
186175
+ }
186176
+ },
186177
+ "parameters": [
186178
+ {
186179
+ "name": "to",
186180
+ "type": {
186181
+ "text": "number"
186182
+ }
186183
+ },
186184
+ {
186185
+ "name": "from",
186186
+ "type": {
186187
+ "text": "number"
186188
+ }
186189
+ }
186190
+ ],
186191
+ "description": "Selects every row from the one last chosen to the drawn row `to`, keeping\nwhat was already selected. With no row to run from, the range is the row\nthe reader is on, `from`, and it becomes the one to run from. Says whether\nthe table selects at all.",
184652
186192
  "inheritedFrom": {
184653
186193
  "name": "HelixHeadlessTable",
184654
186194
  "module": "src/table/root/table-root.ts"
@@ -184677,7 +186217,7 @@
184677
186217
  }
184678
186218
  }
184679
186219
  ],
184680
- "description": "One row's checkbox, ticked or not.",
186220
+ "description": "One row's checkbox, ticked or not. It becomes the row a range runs from.",
184681
186221
  "inheritedFrom": {
184682
186222
  "name": "HelixHeadlessTable",
184683
186223
  "module": "src/table/root/table-root.ts"
@@ -185836,6 +187376,10 @@
185836
187376
  "description": "The opacity of a row's grip while a sort decides the order.",
185837
187377
  "name": "--table-grip-disabled-opacity"
185838
187378
  },
187379
+ {
187380
+ "description": "The opacity of the cells of a `disabled` row.",
187381
+ "name": "--table-row-disabled-opacity"
187382
+ },
185839
187383
  {
185840
187384
  "description": "The wash across the cells of a row with `href` under the pointer.",
185841
187385
  "name": "--table-row-hover-background-color"
@@ -185866,6 +187410,21 @@
185866
187410
  "module": "src/helix-element/helix-element.ts"
185867
187411
  }
185868
187412
  },
187413
+ {
187414
+ "kind": "field",
187415
+ "name": "disabled",
187416
+ "type": {
187417
+ "text": "boolean"
187418
+ },
187419
+ "default": "false",
187420
+ "description": "Takes the row out of the table's selection and out of its link: the row's\ncheckbox is disabled, Space, Shift ranges, and the checkbox in the heading\npass over it, and a press does not follow `href`. A row already selected\nstays selected. A screen reader hears it as unavailable, and in a `grid`\ntable the arrow keys still reach it, as a disabled cell in a grid is\nreached.",
187421
+ "attribute": "disabled",
187422
+ "reflects": true,
187423
+ "inheritedFrom": {
187424
+ "name": "HelixHeadlessTableRow",
187425
+ "module": "src/table/row/table-row.ts"
187426
+ }
187427
+ },
185869
187428
  {
185870
187429
  "kind": "field",
185871
187430
  "name": "href",
@@ -186460,6 +188019,19 @@
186460
188019
  }
186461
188020
  ],
186462
188021
  "attributes": [
188022
+ {
188023
+ "name": "disabled",
188024
+ "type": {
188025
+ "text": "boolean"
188026
+ },
188027
+ "default": "false",
188028
+ "description": "Takes the row out of the table's selection and out of its link: the row's\ncheckbox is disabled, Space, Shift ranges, and the checkbox in the heading\npass over it, and a press does not follow `href`. A row already selected\nstays selected. A screen reader hears it as unavailable, and in a `grid`\ntable the arrow keys still reach it, as a disabled cell in a grid is\nreached.",
188029
+ "fieldName": "disabled",
188030
+ "inheritedFrom": {
188031
+ "name": "HelixHeadlessTableRow",
188032
+ "module": "src/table/row/table-row.ts"
188033
+ }
188034
+ },
186463
188035
  {
186464
188036
  "name": "href",
186465
188037
  "type": {
@@ -186539,7 +188111,7 @@
186539
188111
  }
186540
188112
  },
186541
188113
  {
186542
- "description": "While the row has `href`, so a press on it follows the link.",
188114
+ "description": "While the row has `href` and is not `disabled`, so a press on it follows the link.",
186543
188115
  "name": "link",
186544
188116
  "inheritedFrom": {
186545
188117
  "name": "HelixHeadlessTableRow",
@@ -187555,6 +189127,20 @@
187555
189127
  "module": "src/tabs/root/tabs-root.ts"
187556
189128
  }
187557
189129
  },
189130
+ {
189131
+ "kind": "field",
189132
+ "name": "held",
189133
+ "type": {
189134
+ "text": "string[]"
189135
+ },
189136
+ "privacy": "private",
189137
+ "default": "[]",
189138
+ "description": "The values of the tabs the last pairing read, to tell a removed tab from one not yet here.",
189139
+ "inheritedFrom": {
189140
+ "name": "HelixHeadlessTabs",
189141
+ "module": "src/tabs/root/tabs-root.ts"
189142
+ }
189143
+ },
187558
189144
  {
187559
189145
  "kind": "method",
187560
189146
  "name": "sync",
@@ -187570,6 +189156,44 @@
187570
189156
  "module": "src/tabs/root/tabs-root.ts"
187571
189157
  }
187572
189158
  },
189159
+ {
189160
+ "kind": "field",
189161
+ "name": "focused",
189162
+ "type": {
189163
+ "text": "HelixHeadlessTab | undefined"
189164
+ },
189165
+ "privacy": "private",
189166
+ "description": "The tab that last had focus, so its removal can hand focus on.",
189167
+ "inheritedFrom": {
189168
+ "name": "HelixHeadlessTabs",
189169
+ "module": "src/tabs/root/tabs-root.ts"
189170
+ }
189171
+ },
189172
+ {
189173
+ "kind": "field",
189174
+ "name": "handleFocusIn",
189175
+ "privacy": "private",
189176
+ "readonly": true,
189177
+ "inheritedFrom": {
189178
+ "name": "HelixHeadlessTabs",
189179
+ "module": "src/tabs/root/tabs-root.ts"
189180
+ }
189181
+ },
189182
+ {
189183
+ "kind": "method",
189184
+ "name": "refocus",
189185
+ "privacy": "private",
189186
+ "return": {
189187
+ "type": {
189188
+ "text": "void"
189189
+ }
189190
+ },
189191
+ "description": "Puts focus on the selected tab where the tab that had it was removed and\nfocus fell to the page, which is where removing a focused element leaves\nit.",
189192
+ "inheritedFrom": {
189193
+ "name": "HelixHeadlessTabs",
189194
+ "module": "src/tabs/root/tabs-root.ts"
189195
+ }
189196
+ },
187573
189197
  {
187574
189198
  "kind": "field",
187575
189199
  "name": "handleSlotChange",
@@ -210697,6 +212321,34 @@
210697
212321
  "module": "src/tour/root/tour-root.ts"
210698
212322
  }
210699
212323
  },
212324
+ {
212325
+ "kind": "field",
212326
+ "name": "revealed",
212327
+ "type": {
212328
+ "text": "HTMLElement | undefined"
212329
+ },
212330
+ "privacy": "private",
212331
+ "description": "The target last scrolled into view, so a render that moved nothing scrolls nothing.",
212332
+ "inheritedFrom": {
212333
+ "name": "HelixHeadlessTour",
212334
+ "module": "src/tour/root/tour-root.ts"
212335
+ }
212336
+ },
212337
+ {
212338
+ "kind": "method",
212339
+ "name": "reveal",
212340
+ "privacy": "private",
212341
+ "return": {
212342
+ "type": {
212343
+ "text": "void"
212344
+ }
212345
+ },
212346
+ "description": "Scrolls the current target into view, by the least distance that brings\nit on screen, before its stop is shown beside it. Zag's tour does the same.\nA target already on screen does not move.",
212347
+ "inheritedFrom": {
212348
+ "name": "HelixHeadlessTour",
212349
+ "module": "src/tour/root/tour-root.ts"
212350
+ }
212351
+ },
210700
212352
  {
210701
212353
  "kind": "field",
210702
212354
  "name": "returnFocus",
@@ -214461,6 +216113,20 @@
214461
216113
  "module": "src/mixins/mixin-collection/mixin-collection.ts"
214462
216114
  }
214463
216115
  },
216116
+ {
216117
+ "kind": "field",
216118
+ "name": "statusSlots",
216119
+ "type": {
216120
+ "text": "boolean"
216121
+ },
216122
+ "privacy": "protected",
216123
+ "default": "false",
216124
+ "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.",
216125
+ "inheritedFrom": {
216126
+ "name": "MixinCollection",
216127
+ "module": "src/mixins/mixin-collection/mixin-collection.ts"
216128
+ }
216129
+ },
214464
216130
  {
214465
216131
  "kind": "field",
214466
216132
  "name": "active",
@@ -214918,6 +216584,52 @@
214918
216584
  "module": "src/tree/root/tree-root.ts"
214919
216585
  }
214920
216586
  },
216587
+ {
216588
+ "kind": "field",
216589
+ "name": "focused",
216590
+ "type": {
216591
+ "text": "HelixHeadlessTreeItem | undefined"
216592
+ },
216593
+ "privacy": "private",
216594
+ "description": "The item that last had focus, so its removal can hand focus on.",
216595
+ "inheritedFrom": {
216596
+ "name": "HelixHeadlessTree",
216597
+ "module": "src/tree/root/tree-root.ts"
216598
+ }
216599
+ },
216600
+ {
216601
+ "kind": "field",
216602
+ "name": "handleFocusIn",
216603
+ "privacy": "private",
216604
+ "readonly": true,
216605
+ "inheritedFrom": {
216606
+ "name": "HelixHeadlessTree",
216607
+ "module": "src/tree/root/tree-root.ts"
216608
+ }
216609
+ },
216610
+ {
216611
+ "kind": "method",
216612
+ "name": "refocus",
216613
+ "privacy": "private",
216614
+ "return": {
216615
+ "type": {
216616
+ "text": "void"
216617
+ }
216618
+ },
216619
+ "parameters": [
216620
+ {
216621
+ "name": "records",
216622
+ "type": {
216623
+ "text": "MutationRecord[]"
216624
+ }
216625
+ }
216626
+ ],
216627
+ "description": "Puts focus back in the tree where the item that had it was removed and\nfocus fell to the page: on the item after it among its siblings, or the\none before, or its parent. Read from the removal itself, which knows where\nthe item stood.",
216628
+ "inheritedFrom": {
216629
+ "name": "HelixHeadlessTree",
216630
+ "module": "src/tree/root/tree-root.ts"
216631
+ }
216632
+ },
214921
216633
  {
214922
216634
  "kind": "field",
214923
216635
  "name": "items",
@@ -219814,6 +221526,20 @@
219814
221526
  "module": "src/video/root/video-root.ts"
219815
221527
  }
219816
221528
  },
221529
+ {
221530
+ "kind": "field",
221531
+ "name": "mediaTitle",
221532
+ "type": {
221533
+ "text": "string"
221534
+ },
221535
+ "default": "''",
221536
+ "description": "The title the device's own media controls show while the video plays,\nsuch as on a lock screen. Empty, the default, shows `label`. A playlist\nwrites the current entry's name here.",
221537
+ "attribute": "media-title",
221538
+ "inheritedFrom": {
221539
+ "name": "HelixHeadlessVideo",
221540
+ "module": "src/video/root/video-root.ts"
221541
+ }
221542
+ },
219817
221543
  {
219818
221544
  "kind": "field",
219819
221545
  "name": "moreLabel",
@@ -221802,6 +223528,19 @@
221802
223528
  "module": "src/video/root/video-root.ts"
221803
223529
  }
221804
223530
  },
223531
+ {
223532
+ "name": "media-title",
223533
+ "type": {
223534
+ "text": "string"
223535
+ },
223536
+ "default": "''",
223537
+ "description": "The title the device's own media controls show while the video plays,\nsuch as on a lock screen. Empty, the default, shows `label`. A playlist\nwrites the current entry's name here.",
223538
+ "fieldName": "mediaTitle",
223539
+ "inheritedFrom": {
223540
+ "name": "HelixHeadlessVideo",
223541
+ "module": "src/video/root/video-root.ts"
223542
+ }
223543
+ },
221805
223544
  {
221806
223545
  "name": "more-label",
221807
223546
  "type": {
@@ -223247,6 +224986,14 @@
223247
224986
  "description": "How tall the scrolling box is.",
223248
224987
  "name": "--virtual-list-block-size"
223249
224988
  },
224989
+ {
224990
+ "description": "The color of the text in the row shown when there are no items.",
224991
+ "name": "--virtual-list-empty-color"
224992
+ },
224993
+ {
224994
+ "description": "The space around the text in the row shown when there are no items.",
224995
+ "name": "--virtual-list-empty-padding"
224996
+ },
223250
224997
  {
223251
224998
  "description": "The color of the text in the row drawn while `loading` is set.",
223252
224999
  "name": "--virtual-list-loading-color"
@@ -223289,6 +225036,14 @@
223289
225036
  "module": "src/virtual-list/root/virtual-list-root.ts"
223290
225037
  }
223291
225038
  },
225039
+ {
225040
+ "description": "The row shown when there are no items and none are loading, where `empty-label` or the `empty` slot gives it content.",
225041
+ "name": "empty",
225042
+ "inheritedFrom": {
225043
+ "name": "HelixHeadlessVirtualList",
225044
+ "module": "src/virtual-list/root/virtual-list-root.ts"
225045
+ }
225046
+ },
223292
225047
  {
223293
225048
  "description": "The row after the last item while `loading` is set.",
223294
225049
  "name": "loading",
@@ -223335,6 +225090,20 @@
223335
225090
  "module": "src/virtual-list/root/virtual-list-root.ts"
223336
225091
  }
223337
225092
  },
225093
+ {
225094
+ "kind": "field",
225095
+ "name": "emptyLabel",
225096
+ "type": {
225097
+ "text": "string"
225098
+ },
225099
+ "default": "''",
225100
+ "description": "The text of the row shown when there are no items and none are loading,\nwhere the `empty` slot is empty. Empty, the default, shows no row.",
225101
+ "attribute": "empty-label",
225102
+ "inheritedFrom": {
225103
+ "name": "HelixHeadlessVirtualList",
225104
+ "module": "src/virtual-list/root/virtual-list-root.ts"
225105
+ }
225106
+ },
223338
225107
  {
223339
225108
  "kind": "field",
223340
225109
  "name": "estimate",
@@ -224084,7 +225853,7 @@
224084
225853
  "name": "handleFocusOut",
224085
225854
  "privacy": "private",
224086
225855
  "readonly": true,
224087
- "description": "The row kept for focus is let go once focus has left it.",
225856
+ "description": "The row kept for focus is let go once focus has left it.\n\n**A task later, and not at once.** Between `focusout` and `focusin` the\npage's focus is on `<body>`, and Chromium runs microtasks there when a key\nmoves focus. An update asked for here ran in that gap: Tab from a kept row\nto its own link found no row holding focus, removed the row, and the link\nwent with it, leaving focus on `<body>`. A move to a control inside this\nlist asks for its own update in `handleFocusIn`, so it needs nothing here.",
224088
225857
  "inheritedFrom": {
224089
225858
  "name": "HelixHeadlessVirtualList",
224090
225859
  "module": "src/virtual-list/root/virtual-list-root.ts"
@@ -224665,6 +226434,14 @@
224665
226434
  "module": "src/virtual-list/root/virtual-list-root.ts"
224666
226435
  }
224667
226436
  },
226437
+ {
226438
+ "description": "Content for the row shown when there are no items and none are loading. Falls back to `empty-label`.",
226439
+ "name": "empty",
226440
+ "inheritedFrom": {
226441
+ "name": "HelixHeadlessVirtualList",
226442
+ "module": "src/virtual-list/root/virtual-list-root.ts"
226443
+ }
226444
+ },
224668
226445
  {
224669
226446
  "description": "Content for the row after the last item while `loading` is set. Falls back to `loading-label`.",
224670
226447
  "name": "loading",
@@ -224688,6 +226465,19 @@
224688
226465
  "module": "src/virtual-list/root/virtual-list-root.ts"
224689
226466
  }
224690
226467
  },
226468
+ {
226469
+ "name": "empty-label",
226470
+ "type": {
226471
+ "text": "string"
226472
+ },
226473
+ "default": "''",
226474
+ "description": "The text of the row shown when there are no items and none are loading,\nwhere the `empty` slot is empty. Empty, the default, shows no row.",
226475
+ "fieldName": "emptyLabel",
226476
+ "inheritedFrom": {
226477
+ "name": "HelixHeadlessVirtualList",
226478
+ "module": "src/virtual-list/root/virtual-list-root.ts"
226479
+ }
226480
+ },
224691
226481
  {
224692
226482
  "name": "estimate",
224693
226483
  "type": {
@@ -224904,6 +226694,6 @@
224904
226694
  ],
224905
226695
  "helix": {
224906
226696
  "package": "@fusion.dev/helix",
224907
- "version": "0.150.0"
226697
+ "version": "0.152.0"
224908
226698
  }
224909
226699
  }