vintage-frames 0.5.6 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -94,6 +94,21 @@
94
94
  "name": "VfPositioned",
95
95
  "module": "src/position.ts"
96
96
  }
97
+ },
98
+ {
99
+ "kind": "field",
100
+ "name": "fixed",
101
+ "type": {
102
+ "text": "boolean"
103
+ },
104
+ "default": "false",
105
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
106
+ "attribute": "fixed",
107
+ "reflects": true,
108
+ "inheritedFrom": {
109
+ "name": "VfPositioned",
110
+ "module": "src/position.ts"
111
+ }
97
112
  }
98
113
  ],
99
114
  "attributes": [
@@ -138,6 +153,19 @@
138
153
  "name": "VfPositioned",
139
154
  "module": "src/position.ts"
140
155
  }
156
+ },
157
+ {
158
+ "name": "fixed",
159
+ "type": {
160
+ "text": "boolean"
161
+ },
162
+ "default": "false",
163
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
164
+ "fieldName": "fixed",
165
+ "inheritedFrom": {
166
+ "name": "VfPositioned",
167
+ "module": "src/position.ts"
168
+ }
141
169
  }
142
170
  ],
143
171
  "mixins": [
@@ -405,6 +433,21 @@
405
433
  "module": "src/position.ts"
406
434
  }
407
435
  },
436
+ {
437
+ "kind": "field",
438
+ "name": "fixed",
439
+ "type": {
440
+ "text": "boolean"
441
+ },
442
+ "default": "false",
443
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
444
+ "attribute": "fixed",
445
+ "reflects": true,
446
+ "inheritedFrom": {
447
+ "name": "VfPositioned",
448
+ "module": "src/position.ts"
449
+ }
450
+ },
408
451
  {
409
452
  "kind": "field",
410
453
  "name": "bridgedAriaAttributes",
@@ -1051,6 +1094,19 @@
1051
1094
  "module": "src/position.ts"
1052
1095
  }
1053
1096
  },
1097
+ {
1098
+ "name": "fixed",
1099
+ "type": {
1100
+ "text": "boolean"
1101
+ },
1102
+ "default": "false",
1103
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
1104
+ "fieldName": "fixed",
1105
+ "inheritedFrom": {
1106
+ "name": "VfPositioned",
1107
+ "module": "src/position.ts"
1108
+ }
1109
+ },
1054
1110
  {
1055
1111
  "name": "description",
1056
1112
  "type": {
@@ -1351,6 +1407,21 @@
1351
1407
  "module": "src/position.ts"
1352
1408
  }
1353
1409
  },
1410
+ {
1411
+ "kind": "field",
1412
+ "name": "fixed",
1413
+ "type": {
1414
+ "text": "boolean"
1415
+ },
1416
+ "default": "false",
1417
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
1418
+ "attribute": "fixed",
1419
+ "reflects": true,
1420
+ "inheritedFrom": {
1421
+ "name": "VfPositioned",
1422
+ "module": "src/position.ts"
1423
+ }
1424
+ },
1354
1425
  {
1355
1426
  "kind": "field",
1356
1427
  "name": "externallyCoordinated",
@@ -1904,6 +1975,19 @@
1904
1975
  "module": "src/position.ts"
1905
1976
  }
1906
1977
  },
1978
+ {
1979
+ "name": "fixed",
1980
+ "type": {
1981
+ "text": "boolean"
1982
+ },
1983
+ "default": "false",
1984
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
1985
+ "fieldName": "fixed",
1986
+ "inheritedFrom": {
1987
+ "name": "VfPositioned",
1988
+ "module": "src/position.ts"
1989
+ }
1990
+ },
1907
1991
  {
1908
1992
  "name": "disabled",
1909
1993
  "type": {
@@ -2126,6 +2210,21 @@
2126
2210
  "name": "VfPositioned",
2127
2211
  "module": "src/position.ts"
2128
2212
  }
2213
+ },
2214
+ {
2215
+ "kind": "field",
2216
+ "name": "fixed",
2217
+ "type": {
2218
+ "text": "boolean"
2219
+ },
2220
+ "default": "false",
2221
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
2222
+ "attribute": "fixed",
2223
+ "reflects": true,
2224
+ "inheritedFrom": {
2225
+ "name": "VfPositioned",
2226
+ "module": "src/position.ts"
2227
+ }
2129
2228
  }
2130
2229
  ],
2131
2230
  "attributes": [
@@ -2192,6 +2291,19 @@
2192
2291
  "name": "VfPositioned",
2193
2292
  "module": "src/position.ts"
2194
2293
  }
2294
+ },
2295
+ {
2296
+ "name": "fixed",
2297
+ "type": {
2298
+ "text": "boolean"
2299
+ },
2300
+ "default": "false",
2301
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
2302
+ "fieldName": "fixed",
2303
+ "inheritedFrom": {
2304
+ "name": "VfPositioned",
2305
+ "module": "src/position.ts"
2306
+ }
2195
2307
  }
2196
2308
  ],
2197
2309
  "mixins": [
@@ -2752,6 +2864,21 @@
2752
2864
  "name": "VfPositioned",
2753
2865
  "module": "src/position.ts"
2754
2866
  }
2867
+ },
2868
+ {
2869
+ "kind": "field",
2870
+ "name": "fixed",
2871
+ "type": {
2872
+ "text": "boolean"
2873
+ },
2874
+ "default": "false",
2875
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
2876
+ "attribute": "fixed",
2877
+ "reflects": true,
2878
+ "inheritedFrom": {
2879
+ "name": "VfPositioned",
2880
+ "module": "src/position.ts"
2881
+ }
2755
2882
  }
2756
2883
  ],
2757
2884
  "events": [
@@ -2814,6 +2941,19 @@
2814
2941
  "name": "VfPositioned",
2815
2942
  "module": "src/position.ts"
2816
2943
  }
2944
+ },
2945
+ {
2946
+ "name": "fixed",
2947
+ "type": {
2948
+ "text": "boolean"
2949
+ },
2950
+ "default": "false",
2951
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
2952
+ "fieldName": "fixed",
2953
+ "inheritedFrom": {
2954
+ "name": "VfPositioned",
2955
+ "module": "src/position.ts"
2956
+ }
2817
2957
  }
2818
2958
  ],
2819
2959
  "mixins": [
@@ -3817,6 +3957,21 @@
3817
3957
  "name": "VfPositioned",
3818
3958
  "module": "src/position.ts"
3819
3959
  }
3960
+ },
3961
+ {
3962
+ "kind": "field",
3963
+ "name": "fixed",
3964
+ "type": {
3965
+ "text": "boolean"
3966
+ },
3967
+ "default": "false",
3968
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
3969
+ "attribute": "fixed",
3970
+ "reflects": true,
3971
+ "inheritedFrom": {
3972
+ "name": "VfPositioned",
3973
+ "module": "src/position.ts"
3974
+ }
3820
3975
  }
3821
3976
  ],
3822
3977
  "attributes": [
@@ -3852,6 +4007,19 @@
3852
4007
  "name": "VfPositioned",
3853
4008
  "module": "src/position.ts"
3854
4009
  }
4010
+ },
4011
+ {
4012
+ "name": "fixed",
4013
+ "type": {
4014
+ "text": "boolean"
4015
+ },
4016
+ "default": "false",
4017
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
4018
+ "fieldName": "fixed",
4019
+ "inheritedFrom": {
4020
+ "name": "VfPositioned",
4021
+ "module": "src/position.ts"
4022
+ }
3855
4023
  }
3856
4024
  ],
3857
4025
  "mixins": [
@@ -4031,6 +4199,21 @@
4031
4199
  "name": "VfPositioned",
4032
4200
  "module": "src/position.ts"
4033
4201
  }
4202
+ },
4203
+ {
4204
+ "kind": "field",
4205
+ "name": "fixed",
4206
+ "type": {
4207
+ "text": "boolean"
4208
+ },
4209
+ "default": "false",
4210
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
4211
+ "attribute": "fixed",
4212
+ "reflects": true,
4213
+ "inheritedFrom": {
4214
+ "name": "VfPositioned",
4215
+ "module": "src/position.ts"
4216
+ }
4034
4217
  }
4035
4218
  ],
4036
4219
  "attributes": [
@@ -4119,6 +4302,19 @@
4119
4302
  "name": "VfPositioned",
4120
4303
  "module": "src/position.ts"
4121
4304
  }
4305
+ },
4306
+ {
4307
+ "name": "fixed",
4308
+ "type": {
4309
+ "text": "boolean"
4310
+ },
4311
+ "default": "false",
4312
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
4313
+ "fieldName": "fixed",
4314
+ "inheritedFrom": {
4315
+ "name": "VfPositioned",
4316
+ "module": "src/position.ts"
4317
+ }
4122
4318
  }
4123
4319
  ],
4124
4320
  "mixins": [
@@ -4746,6 +4942,21 @@
4746
4942
  "name": "VfPositioned",
4747
4943
  "module": "src/position.ts"
4748
4944
  }
4945
+ },
4946
+ {
4947
+ "kind": "field",
4948
+ "name": "fixed",
4949
+ "type": {
4950
+ "text": "boolean"
4951
+ },
4952
+ "default": "false",
4953
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
4954
+ "attribute": "fixed",
4955
+ "reflects": true,
4956
+ "inheritedFrom": {
4957
+ "name": "VfPositioned",
4958
+ "module": "src/position.ts"
4959
+ }
4749
4960
  }
4750
4961
  ],
4751
4962
  "events": [
@@ -4883,6 +5094,19 @@
4883
5094
  "name": "VfPositioned",
4884
5095
  "module": "src/position.ts"
4885
5096
  }
5097
+ },
5098
+ {
5099
+ "name": "fixed",
5100
+ "type": {
5101
+ "text": "boolean"
5102
+ },
5103
+ "default": "false",
5104
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
5105
+ "fieldName": "fixed",
5106
+ "inheritedFrom": {
5107
+ "name": "VfPositioned",
5108
+ "module": "src/position.ts"
5109
+ }
4886
5110
  }
4887
5111
  ],
4888
5112
  "mixins": [
@@ -5058,6 +5282,21 @@
5058
5282
  "name": "VfPositioned",
5059
5283
  "module": "src/position.ts"
5060
5284
  }
5285
+ },
5286
+ {
5287
+ "kind": "field",
5288
+ "name": "fixed",
5289
+ "type": {
5290
+ "text": "boolean"
5291
+ },
5292
+ "default": "false",
5293
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
5294
+ "attribute": "fixed",
5295
+ "reflects": true,
5296
+ "inheritedFrom": {
5297
+ "name": "VfPositioned",
5298
+ "module": "src/position.ts"
5299
+ }
5061
5300
  }
5062
5301
  ],
5063
5302
  "attributes": [
@@ -5100,6 +5339,19 @@
5100
5339
  "name": "VfPositioned",
5101
5340
  "module": "src/position.ts"
5102
5341
  }
5342
+ },
5343
+ {
5344
+ "name": "fixed",
5345
+ "type": {
5346
+ "text": "boolean"
5347
+ },
5348
+ "default": "false",
5349
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
5350
+ "fieldName": "fixed",
5351
+ "inheritedFrom": {
5352
+ "name": "VfPositioned",
5353
+ "module": "src/position.ts"
5354
+ }
5103
5355
  }
5104
5356
  ],
5105
5357
  "mixins": [
@@ -5337,6 +5589,21 @@
5337
5589
  "name": "VfPositioned",
5338
5590
  "module": "src/position.ts"
5339
5591
  }
5592
+ },
5593
+ {
5594
+ "kind": "field",
5595
+ "name": "fixed",
5596
+ "type": {
5597
+ "text": "boolean"
5598
+ },
5599
+ "default": "false",
5600
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
5601
+ "attribute": "fixed",
5602
+ "reflects": true,
5603
+ "inheritedFrom": {
5604
+ "name": "VfPositioned",
5605
+ "module": "src/position.ts"
5606
+ }
5340
5607
  }
5341
5608
  ],
5342
5609
  "attributes": [
@@ -5412,6 +5679,19 @@
5412
5679
  "name": "VfPositioned",
5413
5680
  "module": "src/position.ts"
5414
5681
  }
5682
+ },
5683
+ {
5684
+ "name": "fixed",
5685
+ "type": {
5686
+ "text": "boolean"
5687
+ },
5688
+ "default": "false",
5689
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
5690
+ "fieldName": "fixed",
5691
+ "inheritedFrom": {
5692
+ "name": "VfPositioned",
5693
+ "module": "src/position.ts"
5694
+ }
5415
5695
  }
5416
5696
  ],
5417
5697
  "mixins": [
@@ -5564,6 +5844,21 @@
5564
5844
  "name": "VfPositioned",
5565
5845
  "module": "src/position.ts"
5566
5846
  }
5847
+ },
5848
+ {
5849
+ "kind": "field",
5850
+ "name": "fixed",
5851
+ "type": {
5852
+ "text": "boolean"
5853
+ },
5854
+ "default": "false",
5855
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
5856
+ "attribute": "fixed",
5857
+ "reflects": true,
5858
+ "inheritedFrom": {
5859
+ "name": "VfPositioned",
5860
+ "module": "src/position.ts"
5861
+ }
5567
5862
  }
5568
5863
  ],
5569
5864
  "attributes": [
@@ -5617,6 +5912,19 @@
5617
5912
  "name": "VfPositioned",
5618
5913
  "module": "src/position.ts"
5619
5914
  }
5915
+ },
5916
+ {
5917
+ "name": "fixed",
5918
+ "type": {
5919
+ "text": "boolean"
5920
+ },
5921
+ "default": "false",
5922
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
5923
+ "fieldName": "fixed",
5924
+ "inheritedFrom": {
5925
+ "name": "VfPositioned",
5926
+ "module": "src/position.ts"
5927
+ }
5620
5928
  }
5621
5929
  ],
5622
5930
  "mixins": [
@@ -6083,6 +6391,21 @@
6083
6391
  "name": "VfPositioned",
6084
6392
  "module": "src/position.ts"
6085
6393
  }
6394
+ },
6395
+ {
6396
+ "kind": "field",
6397
+ "name": "fixed",
6398
+ "type": {
6399
+ "text": "boolean"
6400
+ },
6401
+ "default": "false",
6402
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
6403
+ "attribute": "fixed",
6404
+ "reflects": true,
6405
+ "inheritedFrom": {
6406
+ "name": "VfPositioned",
6407
+ "module": "src/position.ts"
6408
+ }
6086
6409
  }
6087
6410
  ],
6088
6411
  "events": [
@@ -6151,6 +6474,19 @@
6151
6474
  "name": "VfPositioned",
6152
6475
  "module": "src/position.ts"
6153
6476
  }
6477
+ },
6478
+ {
6479
+ "name": "fixed",
6480
+ "type": {
6481
+ "text": "boolean"
6482
+ },
6483
+ "default": "false",
6484
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
6485
+ "fieldName": "fixed",
6486
+ "inheritedFrom": {
6487
+ "name": "VfPositioned",
6488
+ "module": "src/position.ts"
6489
+ }
6154
6490
  }
6155
6491
  ],
6156
6492
  "mixins": [
@@ -6507,6 +6843,21 @@
6507
6843
  "name": "VfPositioned",
6508
6844
  "module": "src/position.ts"
6509
6845
  }
6846
+ },
6847
+ {
6848
+ "kind": "field",
6849
+ "name": "fixed",
6850
+ "type": {
6851
+ "text": "boolean"
6852
+ },
6853
+ "default": "false",
6854
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
6855
+ "attribute": "fixed",
6856
+ "reflects": true,
6857
+ "inheritedFrom": {
6858
+ "name": "VfPositioned",
6859
+ "module": "src/position.ts"
6860
+ }
6510
6861
  }
6511
6862
  ],
6512
6863
  "attributes": [
@@ -6560,6 +6911,19 @@
6560
6911
  "name": "VfPositioned",
6561
6912
  "module": "src/position.ts"
6562
6913
  }
6914
+ },
6915
+ {
6916
+ "name": "fixed",
6917
+ "type": {
6918
+ "text": "boolean"
6919
+ },
6920
+ "default": "false",
6921
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
6922
+ "fieldName": "fixed",
6923
+ "inheritedFrom": {
6924
+ "name": "VfPositioned",
6925
+ "module": "src/position.ts"
6926
+ }
6563
6927
  }
6564
6928
  ],
6565
6929
  "mixins": [
@@ -6910,6 +7274,21 @@
6910
7274
  "name": "VfPositioned",
6911
7275
  "module": "src/position.ts"
6912
7276
  }
7277
+ },
7278
+ {
7279
+ "kind": "field",
7280
+ "name": "fixed",
7281
+ "type": {
7282
+ "text": "boolean"
7283
+ },
7284
+ "default": "false",
7285
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
7286
+ "attribute": "fixed",
7287
+ "reflects": true,
7288
+ "inheritedFrom": {
7289
+ "name": "VfPositioned",
7290
+ "module": "src/position.ts"
7291
+ }
6913
7292
  }
6914
7293
  ],
6915
7294
  "events": [
@@ -6995,6 +7374,19 @@
6995
7374
  "name": "VfPositioned",
6996
7375
  "module": "src/position.ts"
6997
7376
  }
7377
+ },
7378
+ {
7379
+ "name": "fixed",
7380
+ "type": {
7381
+ "text": "boolean"
7382
+ },
7383
+ "default": "false",
7384
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
7385
+ "fieldName": "fixed",
7386
+ "inheritedFrom": {
7387
+ "name": "VfPositioned",
7388
+ "module": "src/position.ts"
7389
+ }
6998
7390
  }
6999
7391
  ],
7000
7392
  "mixins": [
@@ -7455,6 +7847,21 @@
7455
7847
  "name": "VfPositioned",
7456
7848
  "module": "src/position.ts"
7457
7849
  }
7850
+ },
7851
+ {
7852
+ "kind": "field",
7853
+ "name": "fixed",
7854
+ "type": {
7855
+ "text": "boolean"
7856
+ },
7857
+ "default": "false",
7858
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
7859
+ "attribute": "fixed",
7860
+ "reflects": true,
7861
+ "inheritedFrom": {
7862
+ "name": "VfPositioned",
7863
+ "module": "src/position.ts"
7864
+ }
7458
7865
  }
7459
7866
  ],
7460
7867
  "attributes": [
@@ -7508,6 +7915,19 @@
7508
7915
  "name": "VfPositioned",
7509
7916
  "module": "src/position.ts"
7510
7917
  }
7918
+ },
7919
+ {
7920
+ "name": "fixed",
7921
+ "type": {
7922
+ "text": "boolean"
7923
+ },
7924
+ "default": "false",
7925
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
7926
+ "fieldName": "fixed",
7927
+ "inheritedFrom": {
7928
+ "name": "VfPositioned",
7929
+ "module": "src/position.ts"
7930
+ }
7511
7931
  }
7512
7932
  ],
7513
7933
  "mixins": [
@@ -7803,6 +8223,21 @@
7803
8223
  "module": "src/position.ts"
7804
8224
  }
7805
8225
  },
8226
+ {
8227
+ "kind": "field",
8228
+ "name": "fixed",
8229
+ "type": {
8230
+ "text": "boolean"
8231
+ },
8232
+ "default": "false",
8233
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
8234
+ "attribute": "fixed",
8235
+ "reflects": true,
8236
+ "inheritedFrom": {
8237
+ "name": "VfPositioned",
8238
+ "module": "src/position.ts"
8239
+ }
8240
+ },
7806
8241
  {
7807
8242
  "kind": "field",
7808
8243
  "name": "shadowRootOptions",
@@ -8715,6 +9150,19 @@
8715
9150
  "module": "src/position.ts"
8716
9151
  }
8717
9152
  },
9153
+ {
9154
+ "name": "fixed",
9155
+ "type": {
9156
+ "text": "boolean"
9157
+ },
9158
+ "default": "false",
9159
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
9160
+ "fieldName": "fixed",
9161
+ "inheritedFrom": {
9162
+ "name": "VfPositioned",
9163
+ "module": "src/position.ts"
9164
+ }
9165
+ },
8718
9166
  {
8719
9167
  "name": "value",
8720
9168
  "type": {
@@ -8970,6 +9418,21 @@
8970
9418
  "name": "VfPositioned",
8971
9419
  "module": "src/position.ts"
8972
9420
  }
9421
+ },
9422
+ {
9423
+ "kind": "field",
9424
+ "name": "fixed",
9425
+ "type": {
9426
+ "text": "boolean"
9427
+ },
9428
+ "default": "false",
9429
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
9430
+ "attribute": "fixed",
9431
+ "reflects": true,
9432
+ "inheritedFrom": {
9433
+ "name": "VfPositioned",
9434
+ "module": "src/position.ts"
9435
+ }
8973
9436
  }
8974
9437
  ],
8975
9438
  "attributes": [
@@ -9032,6 +9495,19 @@
9032
9495
  "name": "VfPositioned",
9033
9496
  "module": "src/position.ts"
9034
9497
  }
9498
+ },
9499
+ {
9500
+ "name": "fixed",
9501
+ "type": {
9502
+ "text": "boolean"
9503
+ },
9504
+ "default": "false",
9505
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
9506
+ "fieldName": "fixed",
9507
+ "inheritedFrom": {
9508
+ "name": "VfPositioned",
9509
+ "module": "src/position.ts"
9510
+ }
9035
9511
  }
9036
9512
  ],
9037
9513
  "mixins": [
@@ -9190,6 +9666,21 @@
9190
9666
  "name": "VfPositioned",
9191
9667
  "module": "src/position.ts"
9192
9668
  }
9669
+ },
9670
+ {
9671
+ "kind": "field",
9672
+ "name": "fixed",
9673
+ "type": {
9674
+ "text": "boolean"
9675
+ },
9676
+ "default": "false",
9677
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
9678
+ "attribute": "fixed",
9679
+ "reflects": true,
9680
+ "inheritedFrom": {
9681
+ "name": "VfPositioned",
9682
+ "module": "src/position.ts"
9683
+ }
9193
9684
  }
9194
9685
  ],
9195
9686
  "attributes": [
@@ -9257,6 +9748,19 @@
9257
9748
  "name": "VfPositioned",
9258
9749
  "module": "src/position.ts"
9259
9750
  }
9751
+ },
9752
+ {
9753
+ "name": "fixed",
9754
+ "type": {
9755
+ "text": "boolean"
9756
+ },
9757
+ "default": "false",
9758
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
9759
+ "fieldName": "fixed",
9760
+ "inheritedFrom": {
9761
+ "name": "VfPositioned",
9762
+ "module": "src/position.ts"
9763
+ }
9260
9764
  }
9261
9765
  ],
9262
9766
  "mixins": [
@@ -9489,6 +9993,21 @@
9489
9993
  "name": "VfPositioned",
9490
9994
  "module": "src/position.ts"
9491
9995
  }
9996
+ },
9997
+ {
9998
+ "kind": "field",
9999
+ "name": "fixed",
10000
+ "type": {
10001
+ "text": "boolean"
10002
+ },
10003
+ "default": "false",
10004
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
10005
+ "attribute": "fixed",
10006
+ "reflects": true,
10007
+ "inheritedFrom": {
10008
+ "name": "VfPositioned",
10009
+ "module": "src/position.ts"
10010
+ }
9492
10011
  }
9493
10012
  ],
9494
10013
  "attributes": [
@@ -9551,6 +10070,19 @@
9551
10070
  "name": "VfPositioned",
9552
10071
  "module": "src/position.ts"
9553
10072
  }
10073
+ },
10074
+ {
10075
+ "name": "fixed",
10076
+ "type": {
10077
+ "text": "boolean"
10078
+ },
10079
+ "default": "false",
10080
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
10081
+ "fieldName": "fixed",
10082
+ "inheritedFrom": {
10083
+ "name": "VfPositioned",
10084
+ "module": "src/position.ts"
10085
+ }
9554
10086
  }
9555
10087
  ],
9556
10088
  "mixins": [
@@ -9833,6 +10365,21 @@
9833
10365
  "module": "src/position.ts"
9834
10366
  }
9835
10367
  },
10368
+ {
10369
+ "kind": "field",
10370
+ "name": "fixed",
10371
+ "type": {
10372
+ "text": "boolean"
10373
+ },
10374
+ "default": "false",
10375
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
10376
+ "attribute": "fixed",
10377
+ "reflects": true,
10378
+ "inheritedFrom": {
10379
+ "name": "VfPositioned",
10380
+ "module": "src/position.ts"
10381
+ }
10382
+ },
9836
10383
  {
9837
10384
  "kind": "field",
9838
10385
  "name": "formAssociated",
@@ -10294,6 +10841,19 @@
10294
10841
  "module": "src/position.ts"
10295
10842
  }
10296
10843
  },
10844
+ {
10845
+ "name": "fixed",
10846
+ "type": {
10847
+ "text": "boolean"
10848
+ },
10849
+ "default": "false",
10850
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
10851
+ "fieldName": "fixed",
10852
+ "inheritedFrom": {
10853
+ "name": "VfPositioned",
10854
+ "module": "src/position.ts"
10855
+ }
10856
+ },
10297
10857
  {
10298
10858
  "name": "disabled",
10299
10859
  "type": {
@@ -10552,6 +11112,21 @@
10552
11112
  "module": "src/position.ts"
10553
11113
  }
10554
11114
  },
11115
+ {
11116
+ "kind": "field",
11117
+ "name": "fixed",
11118
+ "type": {
11119
+ "text": "boolean"
11120
+ },
11121
+ "default": "false",
11122
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
11123
+ "attribute": "fixed",
11124
+ "reflects": true,
11125
+ "inheritedFrom": {
11126
+ "name": "VfPositioned",
11127
+ "module": "src/position.ts"
11128
+ }
11129
+ },
10555
11130
  {
10556
11131
  "kind": "field",
10557
11132
  "name": "scale",
@@ -10711,6 +11286,19 @@
10711
11286
  "name": "VfPositioned",
10712
11287
  "module": "src/position.ts"
10713
11288
  }
11289
+ },
11290
+ {
11291
+ "name": "fixed",
11292
+ "type": {
11293
+ "text": "boolean"
11294
+ },
11295
+ "default": "false",
11296
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
11297
+ "fieldName": "fixed",
11298
+ "inheritedFrom": {
11299
+ "name": "VfPositioned",
11300
+ "module": "src/position.ts"
11301
+ }
10714
11302
  }
10715
11303
  ],
10716
11304
  "mixins": [
@@ -10756,7 +11344,7 @@
10756
11344
  "declarations": [
10757
11345
  {
10758
11346
  "kind": "class",
10759
- "description": "`<vf-scroll-area>` — a container whose scrollbars look like System 7.\n\nWhite box with a 1px black frame, an inner scrolling viewport, and scroll\nrails the kit draws itself as shadow DOM (the shared `vfScrollRail` recipe):\nboxed arrow buttons at each end, a loose 1-bit dot-dither trough, and the\nclassic fixed 16px thumb. The native scrollbar is hidden, never the native\nscrolling — wheel, trackpad momentum, keyboard, touch and assistive-tech\nscrolling stay the platform's, and ScrollRailController keeps the\nrail in sync while driving the classic interactions (thumb drag, trough\npaging, arrow stepping with auto-repeat). Every engine renders the same\nrail — there is no Firefox fallback skin anymore.\n\nEach reserved scroll rail is a permanent placeholder: arrow buttons on an\nempty white channel sit in the gutter even when the content fits, the\ndither and thumb filling in only once that axis overflows (System 7 drew\nan active window's no-overflow bar as arrows on a bare channel; driven\nby ScrollStateController). Which rails are reserved is set by\naxis; when both are reserved the bottom-right corner joins them,\nand corner reserves that cell on a single-axis rail too — the\nrail stops 15px short of the frame, for a grow box to land in.\n\nSize the host (width/height) from the outside; the viewport fills it. The\nviewport insets its content 8px; flush drops that inset so content\nruns to the frame and the rails.",
11347
+ "description": "`<vf-scroll-area>` — a container whose scrollbars look like System 7.\n\nWhite box with a 1px black frame, an inner scrolling viewport, and scroll\nrails the kit draws itself as shadow DOM (the shared `vfScrollRail` recipe):\nboxed arrow buttons at each end, a loose 1-bit dot-dither trough, and the\nclassic fixed 16px thumb. The native scrollbar is hidden, never the native\nscrolling — wheel, trackpad momentum, keyboard, touch and assistive-tech\nscrolling stay the platform's, and ScrollRailController keeps the\nrail in sync while driving the classic interactions (thumb drag, trough\npaging, arrow stepping with auto-repeat). Every engine renders the same\nrail — there is no Firefox fallback skin anymore.\n\nEach reserved scroll rail is a permanent placeholder: arrow buttons on an\nempty white channel sit in the gutter even when the content fits, the\ndither and thumb filling in only once that axis overflows (System 7 drew\nan active window's no-overflow bar as arrows on a bare channel; driven\nby ScrollStateController). Which rails are reserved is set by\naxis; when both are reserved the bottom-right corner joins them,\nand corner reserves that cell on a single-axis rail too — the\nrail stops 15px short of the frame, for a grow box to land in.\n\nSize the host (width/height) from the outside; the viewport fills it.\nContent runs to the frame and the rails — the area adds no inset of its\nown; an inset is the content's (a `vf-stack pad`).\n\nThe scrolled plane sizes to its content never narrower than the\nviewport, as wide as content that cannot wrap — so the rails follow a row\nthat grows sideways the way they follow copy that grows down, and a\n`slotchange` re-measures. measure covers a scroll range that\nchanges with no box changing (a placed child moved through `top`/`left`).",
10760
11348
  "name": "VfScrollArea",
10761
11349
  "cssProperties": [
10762
11350
  {
@@ -10807,17 +11395,6 @@
10807
11395
  "attribute": "axis",
10808
11396
  "reflects": true
10809
11397
  },
10810
- {
10811
- "kind": "field",
10812
- "name": "flush",
10813
- "type": {
10814
- "text": "boolean"
10815
- },
10816
- "default": "false",
10817
- "description": "Drop the viewport's 8px inset: slotted content and the (0,0) of placed\nchildren sit at the frame's inner edge, one system px from the frame\nbox (the border-floor compensation stays — see the viewport rule).\n`vf-window[scrollbars]` forwards its own `flush` here.",
10818
- "attribute": "flush",
10819
- "reflects": true
10820
- },
10821
11398
  {
10822
11399
  "kind": "field",
10823
11400
  "name": "corner",
@@ -10900,6 +11477,27 @@
10900
11477
  ],
10901
11478
  "description": "Moves keyboard focus to the scrolling viewport — the focusable element\nlives inside the shadow root, where the platform's `focus()` can't reach\n(no `delegatesFocus`, no host tabindex), so `vf-label for` and consumer\nscripts silently no-opped on the host."
10902
11479
  },
11480
+ {
11481
+ "kind": "method",
11482
+ "name": "measure",
11483
+ "return": {
11484
+ "type": {
11485
+ "text": "void"
11486
+ }
11487
+ },
11488
+ "description": "Re-measure overflow and re-sync the rails. The area tracks its content's\nbox and its slot by itself; call this for a scroll range that changes\nwith no box changing anywhere — a placed child moved through\n`top`/`left`, a transform — the way the kit's own fields re-measure on\ninput."
11489
+ },
11490
+ {
11491
+ "kind": "method",
11492
+ "name": "_onSlotChange",
11493
+ "privacy": "private",
11494
+ "return": {
11495
+ "type": {
11496
+ "text": "void"
11497
+ }
11498
+ },
11499
+ "description": "Content added or removed under the fixed box — re-measure."
11500
+ },
10903
11501
  {
10904
11502
  "kind": "field",
10905
11503
  "name": "top",
@@ -10925,6 +11523,21 @@
10925
11523
  "name": "VfPositioned",
10926
11524
  "module": "src/position.ts"
10927
11525
  }
11526
+ },
11527
+ {
11528
+ "kind": "field",
11529
+ "name": "fixed",
11530
+ "type": {
11531
+ "text": "boolean"
11532
+ },
11533
+ "default": "false",
11534
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
11535
+ "attribute": "fixed",
11536
+ "reflects": true,
11537
+ "inheritedFrom": {
11538
+ "name": "VfPositioned",
11539
+ "module": "src/position.ts"
11540
+ }
10928
11541
  }
10929
11542
  ],
10930
11543
  "attributes": [
@@ -10933,18 +11546,9 @@
10933
11546
  "type": {
10934
11547
  "text": "'vertical' | 'horizontal' | 'both'"
10935
11548
  },
10936
- "default": "'vertical'",
10937
- "description": "Which scroll rails to reserve as permanent placeholders: `vertical`\n(default), `horizontal`, or `both`. Each reserved rail shows an empty white\nchannel until its axis overflows; the unreserved axis still scrolls\nnatively (wheel, keyboard) but draws no rail.",
10938
- "fieldName": "axis"
10939
- },
10940
- {
10941
- "name": "flush",
10942
- "type": {
10943
- "text": "boolean"
10944
- },
10945
- "default": "false",
10946
- "description": "Drop the viewport's 8px inset: slotted content and the (0,0) of placed\nchildren sit at the frame's inner edge, one system px from the frame\nbox (the border-floor compensation stays — see the viewport rule).\n`vf-window[scrollbars]` forwards its own `flush` here.",
10947
- "fieldName": "flush"
11549
+ "default": "'vertical'",
11550
+ "description": "Which scroll rails to reserve as permanent placeholders: `vertical`\n(default), `horizontal`, or `both`. Each reserved rail shows an empty white\nchannel until its axis overflows; the unreserved axis still scrolls\nnatively (wheel, keyboard) but draws no rail.",
11551
+ "fieldName": "axis"
10948
11552
  },
10949
11553
  {
10950
11554
  "name": "corner",
@@ -10987,6 +11591,19 @@
10987
11591
  "name": "VfPositioned",
10988
11592
  "module": "src/position.ts"
10989
11593
  }
11594
+ },
11595
+ {
11596
+ "name": "fixed",
11597
+ "type": {
11598
+ "text": "boolean"
11599
+ },
11600
+ "default": "false",
11601
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
11602
+ "fieldName": "fixed",
11603
+ "inheritedFrom": {
11604
+ "name": "VfPositioned",
11605
+ "module": "src/position.ts"
11606
+ }
10990
11607
  }
10991
11608
  ],
10992
11609
  "mixins": [
@@ -12043,6 +12660,21 @@
12043
12660
  "module": "src/position.ts"
12044
12661
  }
12045
12662
  },
12663
+ {
12664
+ "kind": "field",
12665
+ "name": "fixed",
12666
+ "type": {
12667
+ "text": "boolean"
12668
+ },
12669
+ "default": "false",
12670
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
12671
+ "attribute": "fixed",
12672
+ "reflects": true,
12673
+ "inheritedFrom": {
12674
+ "name": "VfPositioned",
12675
+ "module": "src/position.ts"
12676
+ }
12677
+ },
12046
12678
  {
12047
12679
  "kind": "field",
12048
12680
  "name": "bridgedAriaAttributes",
@@ -12600,6 +13232,19 @@
12600
13232
  "module": "src/position.ts"
12601
13233
  }
12602
13234
  },
13235
+ {
13236
+ "name": "fixed",
13237
+ "type": {
13238
+ "text": "boolean"
13239
+ },
13240
+ "default": "false",
13241
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
13242
+ "fieldName": "fixed",
13243
+ "inheritedFrom": {
13244
+ "name": "VfPositioned",
13245
+ "module": "src/position.ts"
13246
+ }
13247
+ },
12603
13248
  {
12604
13249
  "name": "description",
12605
13250
  "type": {
@@ -12759,6 +13404,21 @@
12759
13404
  "name": "VfPositioned",
12760
13405
  "module": "src/position.ts"
12761
13406
  }
13407
+ },
13408
+ {
13409
+ "kind": "field",
13410
+ "name": "fixed",
13411
+ "type": {
13412
+ "text": "boolean"
13413
+ },
13414
+ "default": "false",
13415
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
13416
+ "attribute": "fixed",
13417
+ "reflects": true,
13418
+ "inheritedFrom": {
13419
+ "name": "VfPositioned",
13420
+ "module": "src/position.ts"
13421
+ }
12762
13422
  }
12763
13423
  ],
12764
13424
  "attributes": [
@@ -12794,6 +13454,19 @@
12794
13454
  "name": "VfPositioned",
12795
13455
  "module": "src/position.ts"
12796
13456
  }
13457
+ },
13458
+ {
13459
+ "name": "fixed",
13460
+ "type": {
13461
+ "text": "boolean"
13462
+ },
13463
+ "default": "false",
13464
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
13465
+ "fieldName": "fixed",
13466
+ "inheritedFrom": {
13467
+ "name": "VfPositioned",
13468
+ "module": "src/position.ts"
13469
+ }
12797
13470
  }
12798
13471
  ],
12799
13472
  "mixins": [
@@ -13211,6 +13884,21 @@
13211
13884
  "module": "src/position.ts"
13212
13885
  }
13213
13886
  },
13887
+ {
13888
+ "kind": "field",
13889
+ "name": "fixed",
13890
+ "type": {
13891
+ "text": "boolean"
13892
+ },
13893
+ "default": "false",
13894
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
13895
+ "attribute": "fixed",
13896
+ "reflects": true,
13897
+ "inheritedFrom": {
13898
+ "name": "VfPositioned",
13899
+ "module": "src/position.ts"
13900
+ }
13901
+ },
13214
13902
  {
13215
13903
  "kind": "field",
13216
13904
  "name": "formAssociated",
@@ -13708,6 +14396,19 @@
13708
14396
  "module": "src/position.ts"
13709
14397
  }
13710
14398
  },
14399
+ {
14400
+ "name": "fixed",
14401
+ "type": {
14402
+ "text": "boolean"
14403
+ },
14404
+ "default": "false",
14405
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
14406
+ "fieldName": "fixed",
14407
+ "inheritedFrom": {
14408
+ "name": "VfPositioned",
14409
+ "module": "src/position.ts"
14410
+ }
14411
+ },
13711
14412
  {
13712
14413
  "name": "disabled",
13713
14414
  "type": {
@@ -13928,6 +14629,21 @@
13928
14629
  "name": "VfPositioned",
13929
14630
  "module": "src/position.ts"
13930
14631
  }
14632
+ },
14633
+ {
14634
+ "kind": "field",
14635
+ "name": "fixed",
14636
+ "type": {
14637
+ "text": "boolean"
14638
+ },
14639
+ "default": "false",
14640
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
14641
+ "attribute": "fixed",
14642
+ "reflects": true,
14643
+ "inheritedFrom": {
14644
+ "name": "VfPositioned",
14645
+ "module": "src/position.ts"
14646
+ }
13931
14647
  }
13932
14648
  ],
13933
14649
  "attributes": [
@@ -14012,6 +14728,19 @@
14012
14728
  "name": "VfPositioned",
14013
14729
  "module": "src/position.ts"
14014
14730
  }
14731
+ },
14732
+ {
14733
+ "name": "fixed",
14734
+ "type": {
14735
+ "text": "boolean"
14736
+ },
14737
+ "default": "false",
14738
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
14739
+ "fieldName": "fixed",
14740
+ "inheritedFrom": {
14741
+ "name": "VfPositioned",
14742
+ "module": "src/position.ts"
14743
+ }
14015
14744
  }
14016
14745
  ],
14017
14746
  "mixins": [
@@ -14210,6 +14939,21 @@
14210
14939
  "module": "src/position.ts"
14211
14940
  }
14212
14941
  },
14942
+ {
14943
+ "kind": "field",
14944
+ "name": "fixed",
14945
+ "type": {
14946
+ "text": "boolean"
14947
+ },
14948
+ "default": "false",
14949
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
14950
+ "attribute": "fixed",
14951
+ "reflects": true,
14952
+ "inheritedFrom": {
14953
+ "name": "VfPositioned",
14954
+ "module": "src/position.ts"
14955
+ }
14956
+ },
14213
14957
  {
14214
14958
  "kind": "field",
14215
14959
  "name": "bridgedAriaAttributes",
@@ -14818,6 +15562,19 @@
14818
15562
  "module": "src/position.ts"
14819
15563
  }
14820
15564
  },
15565
+ {
15566
+ "name": "fixed",
15567
+ "type": {
15568
+ "text": "boolean"
15569
+ },
15570
+ "default": "false",
15571
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
15572
+ "fieldName": "fixed",
15573
+ "inheritedFrom": {
15574
+ "name": "VfPositioned",
15575
+ "module": "src/position.ts"
15576
+ }
15577
+ },
14821
15578
  {
14822
15579
  "name": "description",
14823
15580
  "type": {
@@ -15000,6 +15757,21 @@
15000
15757
  "module": "src/position.ts"
15001
15758
  }
15002
15759
  },
15760
+ {
15761
+ "kind": "field",
15762
+ "name": "fixed",
15763
+ "type": {
15764
+ "text": "boolean"
15765
+ },
15766
+ "default": "false",
15767
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
15768
+ "attribute": "fixed",
15769
+ "reflects": true,
15770
+ "inheritedFrom": {
15771
+ "name": "VfPositioned",
15772
+ "module": "src/position.ts"
15773
+ }
15774
+ },
15003
15775
  {
15004
15776
  "kind": "field",
15005
15777
  "name": "shadowRootOptions",
@@ -15873,6 +16645,19 @@
15873
16645
  "module": "src/position.ts"
15874
16646
  }
15875
16647
  },
16648
+ {
16649
+ "name": "fixed",
16650
+ "type": {
16651
+ "text": "boolean"
16652
+ },
16653
+ "default": "false",
16654
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
16655
+ "fieldName": "fixed",
16656
+ "inheritedFrom": {
16657
+ "name": "VfPositioned",
16658
+ "module": "src/position.ts"
16659
+ }
16660
+ },
15876
16661
  {
15877
16662
  "name": "value",
15878
16663
  "type": {
@@ -16114,6 +16899,21 @@
16114
16899
  "module": "src/position.ts"
16115
16900
  }
16116
16901
  },
16902
+ {
16903
+ "kind": "field",
16904
+ "name": "fixed",
16905
+ "type": {
16906
+ "text": "boolean"
16907
+ },
16908
+ "default": "false",
16909
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
16910
+ "attribute": "fixed",
16911
+ "reflects": true,
16912
+ "inheritedFrom": {
16913
+ "name": "VfPositioned",
16914
+ "module": "src/position.ts"
16915
+ }
16916
+ },
16117
16917
  {
16118
16918
  "kind": "field",
16119
16919
  "name": "shadowRootOptions",
@@ -16994,6 +17794,19 @@
16994
17794
  "module": "src/position.ts"
16995
17795
  }
16996
17796
  },
17797
+ {
17798
+ "name": "fixed",
17799
+ "type": {
17800
+ "text": "boolean"
17801
+ },
17802
+ "default": "false",
17803
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
17804
+ "fieldName": "fixed",
17805
+ "inheritedFrom": {
17806
+ "name": "VfPositioned",
17807
+ "module": "src/position.ts"
17808
+ }
17809
+ },
16997
17810
  {
16998
17811
  "name": "value",
16999
17812
  "type": {
@@ -17190,6 +18003,10 @@
17190
18003
  "description": "The content area.",
17191
18004
  "name": "body"
17192
18005
  },
18006
+ {
18007
+ "description": "The header strip between the title bar and the body (when the `header` slot is populated).",
18008
+ "name": "header"
18009
+ },
17193
18010
  {
17194
18011
  "description": "The bottom status strip (when the `status` slot is populated).",
17195
18012
  "name": "status-bar"
@@ -17208,6 +18025,10 @@
17208
18025
  "description": "Default slot: window body content.",
17209
18026
  "name": ""
17210
18027
  },
18028
+ {
18029
+ "description": "Optional header content — a band between the title bar and the body, the full width of the window (the Finder window's header line): a white interior over a 1px rule, no inset of its own, a positioning anchor for placed children. As tall as its content unless `header-height` states it. Under `scrollbars` the vertical rail begins below it, so the header spans the rail's column. Takes no space until populated.",
18030
+ "name": "header"
18031
+ },
17211
18032
  {
17212
18033
  "description": "Optional status-bar content — the classic bottom readout strip (\"40px x 40px\"): a 1px rule over a 15px white band under the body, body-face text on its native line. Takes no space until populated; a `resizable` window's grow box sits flush in its right end.",
17213
18034
  "name": "status"
@@ -17327,24 +18148,32 @@
17327
18148
  },
17328
18149
  {
17329
18150
  "kind": "field",
17330
- "name": "flush",
18151
+ "name": "scrollbars",
17331
18152
  "type": {
17332
- "text": "boolean"
18153
+ "text": "'vertical' | 'horizontal' | 'both' | undefined"
17333
18154
  },
17334
- "default": "false",
17335
- "description": "Remove the default 12px body padding. Under `scrollbars` the body has\nnone to remove, so the flag reaches the built-in scroll area instead\nand drops its viewport's 8px inset: content runs to the frame and the\nrails, and the (0,0) of placed children is the content region's corner.",
17336
- "attribute": "flush",
18155
+ "description": "Put System 7 scroll rails on the window edge — the classic document\nwindow. The body slot renders inside a built-in `vf-scroll-area` pulled\none system pixel under the frame on every side, so the rails repaint the\nborder lines and a `resizable` window's grow box lands in the corner\ncell — reserved on a single-axis rail too (the area's `corner`), unless\na populated status strip holds the grow box, when the rail runs edge to\nedge onto the strip's rule. Values mirror `vf-scroll-area`'s `axis`; the\n`heading` names the scroll region; the viewport part is re-exported.\nContent runs to the frame and the rails; an inset is the content's own.\nThe slotted composition (SPEC §5 vf-scroll-area) still works for a well\nplaced inside the body.",
18156
+ "attribute": "scrollbars",
17337
18157
  "reflects": true
17338
18158
  },
17339
18159
  {
17340
18160
  "kind": "field",
17341
- "name": "scrollbars",
18161
+ "name": "headerHeight",
17342
18162
  "type": {
17343
- "text": "'vertical' | 'horizontal' | 'both' | undefined"
18163
+ "text": "| number\n | null | undefined"
17344
18164
  },
17345
- "description": "Put System 7 scroll rails on the window edge — the classic document\nwindow. The body slot renders inside a built-in `vf-scroll-area` pulled\none system pixel under the frame on every side, so the rails repaint the\nborder lines and a `resizable` window's grow box lands in the corner\ncell reserved on a single-axis rail too (the area's `corner`), unless\na populated status strip holds the grow box, when the rail runs edge to\nedge onto the strip's rule. Values mirror `vf-scroll-area`'s `axis`; the\n`heading` names the scroll region; the viewport part is re-exported.\nThe body's own padding goes; the viewport keeps its 8px inset unless\n`flush`, which passes through. The slotted composition (SPEC §5\nvf-scroll-area) still works for windows that want an inset well instead.",
17346
- "attribute": "scrollbars",
17347
- "reflects": true
18165
+ "description": "The header's height in whole system px, rule included the way every\nkit bar counts its rule (an 18px title bar is 17 + 1). Unset, the header\nis as tall as what is slotted into it, plus the rule. Only matters while\nthe `header` slot is populated.",
18166
+ "attribute": "header-height"
18167
+ },
18168
+ {
18169
+ "kind": "field",
18170
+ "name": "_hasHeader",
18171
+ "type": {
18172
+ "text": "boolean"
18173
+ },
18174
+ "privacy": "private",
18175
+ "default": "false",
18176
+ "description": "Whether the `header` slot has assigned content (drives the header)."
17348
18177
  },
17349
18178
  {
17350
18179
  "kind": "field",
@@ -17501,6 +18330,25 @@
17501
18330
  ],
17502
18331
  "description": "The `.empty` gate: the strip renders only while the slot is populated."
17503
18332
  },
18333
+ {
18334
+ "kind": "method",
18335
+ "name": "_onHeaderSlotChange",
18336
+ "privacy": "private",
18337
+ "return": {
18338
+ "type": {
18339
+ "text": "void"
18340
+ }
18341
+ },
18342
+ "parameters": [
18343
+ {
18344
+ "name": "event",
18345
+ "type": {
18346
+ "text": "Event"
18347
+ }
18348
+ }
18349
+ ],
18350
+ "description": "The header's own gate, on the same terms."
18351
+ },
17504
18352
  {
17505
18353
  "kind": "method",
17506
18354
  "name": "_onCloseClick",
@@ -17627,6 +18475,21 @@
17627
18475
  "name": "VfPositioned",
17628
18476
  "module": "src/position.ts"
17629
18477
  }
18478
+ },
18479
+ {
18480
+ "kind": "field",
18481
+ "name": "fixed",
18482
+ "type": {
18483
+ "text": "boolean"
18484
+ },
18485
+ "default": "false",
18486
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
18487
+ "attribute": "fixed",
18488
+ "reflects": true,
18489
+ "inheritedFrom": {
18490
+ "name": "VfPositioned",
18491
+ "module": "src/position.ts"
18492
+ }
17630
18493
  }
17631
18494
  ],
17632
18495
  "events": [
@@ -17739,21 +18602,20 @@
17739
18602
  "fieldName": "maxHeight"
17740
18603
  },
17741
18604
  {
17742
- "name": "flush",
18605
+ "name": "scrollbars",
17743
18606
  "type": {
17744
- "text": "boolean"
18607
+ "text": "'vertical' | 'horizontal' | 'both' | undefined"
17745
18608
  },
17746
- "default": "false",
17747
- "description": "Remove the default 12px body padding. Under `scrollbars` the body has\nnone to remove, so the flag reaches the built-in scroll area instead\nand drops its viewport's 8px inset: content runs to the frame and the\nrails, and the (0,0) of placed children is the content region's corner.",
17748
- "fieldName": "flush"
18609
+ "description": "Put System 7 scroll rails on the window edge — the classic document\nwindow. The body slot renders inside a built-in `vf-scroll-area` pulled\none system pixel under the frame on every side, so the rails repaint the\nborder lines and a `resizable` window's grow box lands in the corner\ncell — reserved on a single-axis rail too (the area's `corner`), unless\na populated status strip holds the grow box, when the rail runs edge to\nedge onto the strip's rule. Values mirror `vf-scroll-area`'s `axis`; the\n`heading` names the scroll region; the viewport part is re-exported.\nContent runs to the frame and the rails; an inset is the content's own.\nThe slotted composition (SPEC §5 vf-scroll-area) still works for a well\nplaced inside the body.",
18610
+ "fieldName": "scrollbars"
17749
18611
  },
17750
18612
  {
17751
- "name": "scrollbars",
18613
+ "name": "header-height",
17752
18614
  "type": {
17753
- "text": "'vertical' | 'horizontal' | 'both' | undefined"
18615
+ "text": "| number\n | null | undefined"
17754
18616
  },
17755
- "description": "Put System 7 scroll rails on the window edge — the classic document\nwindow. The body slot renders inside a built-in `vf-scroll-area` pulled\none system pixel under the frame on every side, so the rails repaint the\nborder lines and a `resizable` window's grow box lands in the corner\ncell reserved on a single-axis rail too (the area's `corner`), unless\na populated status strip holds the grow box, when the rail runs edge to\nedge onto the strip's rule. Values mirror `vf-scroll-area`'s `axis`; the\n`heading` names the scroll region; the viewport part is re-exported.\nThe body's own padding goes; the viewport keeps its 8px inset unless\n`flush`, which passes through. The slotted composition (SPEC §5\nvf-scroll-area) still works for windows that want an inset well instead.",
17756
- "fieldName": "scrollbars"
18617
+ "description": "The header's height in whole system px, rule included the way every\nkit bar counts its rule (an 18px title bar is 17 + 1). Unset, the header\nis as tall as what is slotted into it, plus the rule. Only matters while\nthe `header` slot is populated.",
18618
+ "fieldName": "headerHeight"
17757
18619
  },
17758
18620
  {
17759
18621
  "name": "width",
@@ -17802,6 +18664,19 @@
17802
18664
  "name": "VfPositioned",
17803
18665
  "module": "src/position.ts"
17804
18666
  }
18667
+ },
18668
+ {
18669
+ "name": "fixed",
18670
+ "type": {
18671
+ "text": "boolean"
18672
+ },
18673
+ "default": "false",
18674
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
18675
+ "fieldName": "fixed",
18676
+ "inheritedFrom": {
18677
+ "name": "VfPositioned",
18678
+ "module": "src/position.ts"
18679
+ }
17805
18680
  }
17806
18681
  ],
17807
18682
  "mixins": [
@@ -20379,6 +21254,13 @@
20379
21254
  "type": {
20380
21255
  "text": "number | null | undefined"
20381
21256
  }
21257
+ },
21258
+ {
21259
+ "kind": "field",
21260
+ "name": "fixed",
21261
+ "type": {
21262
+ "text": "boolean"
21263
+ }
20382
21264
  }
20383
21265
  ],
20384
21266
  "superclass": {
@@ -20389,7 +21271,7 @@
20389
21271
  },
20390
21272
  {
20391
21273
  "kind": "mixin",
20392
- "description": "Explicit placement — `top`/`left` in whole system px, on **every** component.\n\nNo exceptions, deliberately. These are web components, and a consumer may put\none wherever they like; the kit does not get to decide that a `vf-option` is\nonly ever a popup row. The rows a container normally owns (`vf-option`,\n`vf-menu-item`, `vf-list-item`) and a bar's `vf-menu` take the pair on the\nsame terms as anything else — and stating an origin on one *inside* its\nmanaging parent does take it out of that parent's flow layout, which is the\nplacement working, not failing. Each of those components documents what its\ncontainer stops doing for it. `vf-dialog` takes the pair in viewport\ncoordinates, the one difference the platform forces (see modal-dialog.ts).\n\nA DITL resource laid a dialog out as a list of items, each with a rectangle\nin the window's own coordinates; arranging controls by stating where they go\nis as native to System 7 as stacking them. This mixin is that mechanism:\ndeclaring `top` or `left` takes the element out of normal flow and\nabsolutely positions it within its parent, both coordinates in the art's own\nunit so the position scales with the display like every other metric. A\nwindow or dialog body can be laid out either way — a tree of `vf-stack`s, or\npositioned children — with no stylesheet in either case.\n\nMechanics, mirroring how `vf-stack` writes its declared size:\n\n- Setting either property writes `position: absolute` and both offsets onto\n the host's inline style as `calc(var(--vf-scale, 1) * Npx)` — live against\n the display, resolved at paint time. The coordinate left unset is 0.\n- `right`/`bottom` are released to `auto` and `margin` zeroed, so the stated\n offsets are the whole story — an auto-width box with both edges set would\n stretch rather than sit (the `vf-icon` seed logic, generalized).\n- Unsetting both returns the element to normal flow: every inline\n declaration this wrote is removed, and stylesheet values resume.\n\nThe anchor is CSS's own: the nearest positioned ancestor's padding box. The\nkit's containers are all deliberate anchors — a desktop's raster, a window's\ncontent region (the frame's inner edge, below the title bar — the 12px body\ninset governs flow content only, exactly the DITL convention), a dialog's\ncontent area, a stack's box, a fieldset's border box, a scroll area's\nscrolled plane. In a non-kit parent, give the parent `position: relative`,\nthe one line of CSS this feature can't write for you.\n\nThe writing rides a ReactiveController (`hostUpdated`) rather than\nan `updated()` override, for a lifecycle reason worth keeping in the source:\nthe mixin sits *under* each component class, and most components override\n`updated()` without calling `super.updated()` — Lit's base is a no-op, so\nnothing ever forced the call — which would silently shadow a mixin-level\noverride. A controller is invoked by ReactiveElement itself, after every\nupdate, no matter what the subclass does.\n\nA gesture writes **through these properties**: `vf-window`'s title-bar drag\nand `vf-icon`'s drag and arrow nudge hand their new origin to a\nPlacementController, which snaps it onto the placement lattice and\nsets `left`/`top`. A moved element is therefore placed exactly the way an\nauthored one is — a live `calc()` in the art's own unit — and stays where it\nwas dropped when the zoom or the display changes what a system px costs.\n\nIt did not always. Writing the resolved CSS px straight to the inline style\nfroze the coordinate in the wrong unit: `--vf-scale` moved under it at every\nzoom step and the same constant read back as a different number of system px,\nso moved windows and icons slid off the grid the rest of the kit stayed on\n(by `3z / round(3z)` — 10% at 110% zoom, where nothing else moves at all).\n\nSetting a property yourself is still the deliberate way to re-place a moved\nelement. The controller re-applies **only when the values changed**, so an\nunrelated update — a heading change, a desktop toggling `active` — never\nre-asserts a coordinate and costs nothing.",
21274
+ "description": "Explicit placement — `top`/`left` in whole system px, on **every** component.\n\nNo exceptions, deliberately. These are web components, and a consumer may put\none wherever they like; the kit does not get to decide that a `vf-option` is\nonly ever a popup row. The rows a container normally owns (`vf-option`,\n`vf-menu-item`, `vf-list-item`) and a bar's `vf-menu` take the pair on the\nsame terms as anything else — and stating an origin on one *inside* its\nmanaging parent does take it out of that parent's flow layout, which is the\nplacement working, not failing. Each of those components documents what its\ncontainer stops doing for it. `vf-dialog` takes the pair in viewport\ncoordinates, the one difference the platform forces (see modal-dialog.ts).\n\nA DITL resource laid a dialog out as a list of items, each with a rectangle\nin the window's own coordinates; arranging controls by stating where they go\nis as native to System 7 as stacking them. This mixin is that mechanism:\ndeclaring `top` or `left` takes the element out of normal flow and\nabsolutely positions it within its parent, both coordinates in the art's own\nunit so the position scales with the display like every other metric. A\nwindow or dialog body can be laid out either way — a tree of `vf-stack`s, or\npositioned children — with no stylesheet in either case.\n\nMechanics, mirroring how `vf-stack` writes its declared size:\n\n- Setting either property writes `position: absolute` and both offsets onto\n the host's inline style as `calc(var(--vf-scale, 1) * Npx)` — live against\n the display, resolved at paint time. The coordinate left unset is 0.\n- `right`/`bottom` are released to `auto` and `margin` zeroed, so the stated\n offsets are the whole story — an auto-width box with both edges set would\n stretch rather than sit (the `vf-icon` seed logic, generalized).\n- Unsetting both returns the element to normal flow: every inline\n declaration this wrote is removed, and stylesheet values resume.\n\nThe anchor is CSS's own: the nearest positioned ancestor's padding box. The\nkit's containers are all deliberate anchors — a desktop's raster, a window's\ncontent region (the frame's inner edge, below the title bar — the 12px body\ninset governs flow content only, exactly the DITL convention), a dialog's\ncontent area, a stack's box, a fieldset's border box, a scroll area's\nscrolled plane. In a non-kit parent, give the parent `position: relative`,\nthe one line of CSS this feature can't write for you.\n\nThe writing rides a ReactiveController (`hostUpdated`) rather than\nan `updated()` override, for a lifecycle reason worth keeping in the source:\nthe mixin sits *under* each component class, and most components override\n`updated()` without calling `super.updated()` — Lit's base is a no-op, so\nnothing ever forced the call — which would silently shadow a mixin-level\noverride. A controller is invoked by ReactiveElement itself, after every\nupdate, no matter what the subclass does.\n\nA gesture writes **through these properties**: `vf-window`'s title-bar drag\nand `vf-icon`'s drag and arrow nudge hand their new origin to a\nPlacementController, which snaps it onto the placement lattice and\nsets `left`/`top`. A moved element is therefore placed exactly the way an\nauthored one is — a live `calc()` in the art's own unit — and stays where it\nwas dropped when the zoom or the display changes what a system px costs.\n\nIt did not always. Writing the resolved CSS px straight to the inline style\nfroze the coordinate in the wrong unit: `--vf-scale` moved under it at every\nzoom step and the same constant read back as a different number of system px,\nso moved windows and icons slid off the grid the rest of the kit stayed on\n(by `3z / round(3z)` — 10% at 110% zoom, where nothing else moves at all).\n\nSetting a property yourself is still the deliberate way to re-place a moved\nelement. The controller re-applies **only when the values changed**, so an\nunrelated update — a heading change, a desktop toggling `active` — never\nre-asserts a coordinate and costs nothing.\n\n**`fixed`** holds the placement against the *visible* region of the nearest\nscrolling ancestor instead of its scrolled plane — a tool strip over a\ndocument, a column header over rows — and the flag alone places at (0,0).\nThe engine underneath is `position: sticky`, the one way the platform holds\na box against a scrollport from inside it on the compositor (a scroll\nlistener counter-translating lags a frame; a layer outside the scroller\nstops wheel and touch over it). Sticky boxes stay in flow, which is not\nwhat a placement is, so the controller erases the footprint: the host is\nblockified (no line box), shrink-wrapped, and given a negative right/bottom\nmargin equal to its own box — a 0×0 margin box that flow content lays out\nas if it weren't there, measured by a ResizeObserver so a relabel or a zoom\nstep keeps it exact. `z-index: 1` puts it over the plane's placed children,\nwhich is where a fixed strip belongs. Two facts of the engine that the\ndocs state as rules: sticky only ever pushes a box *down* from where the\nflow put it, so a fixed child comes before the flow content in its parent;\nand a scroll container that never scrolls (a plain window body is\n`overflow: hidden`) holds it exactly where placement would.",
20393
21275
  "name": "VfPositioned",
20394
21276
  "members": [
20395
21277
  {
@@ -20409,6 +21291,17 @@
20409
21291
  },
20410
21292
  "description": "Offset from the left of the positioning parent, in whole system px.\nSee top.",
20411
21293
  "attribute": "left"
21294
+ },
21295
+ {
21296
+ "kind": "field",
21297
+ "name": "fixed",
21298
+ "type": {
21299
+ "text": "boolean"
21300
+ },
21301
+ "default": "false",
21302
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
21303
+ "attribute": "fixed",
21304
+ "reflects": true
20412
21305
  }
20413
21306
  ],
20414
21307
  "attributes": [
@@ -20427,6 +21320,15 @@
20427
21320
  },
20428
21321
  "description": "Offset from the left of the positioning parent, in whole system px.\nSee top.",
20429
21322
  "fieldName": "left"
21323
+ },
21324
+ {
21325
+ "name": "fixed",
21326
+ "type": {
21327
+ "text": "boolean"
21328
+ },
21329
+ "default": "false",
21330
+ "description": "Hold the placement against the visible region of the nearest scrolling\nancestor: the element keeps its stated `top`/`left` while the content\nscrolls under it, and the flag alone places it at (0,0). It comes\nbefore the flow content in its parent. Where nothing scrolls it renders\nexactly as placed.",
21331
+ "fieldName": "fixed"
20430
21332
  }
20431
21333
  ],
20432
21334
  "parameters": [
@@ -20448,7 +21350,7 @@
20448
21350
  "name": "#host",
20449
21351
  "privacy": "private",
20450
21352
  "type": {
20451
- "text": "HTMLElement & { top?: number | null; left?: number | null }"
21353
+ "text": "PositionedHost"
20452
21354
  },
20453
21355
  "readonly": true,
20454
21356
  "default": "host"
@@ -20550,7 +21452,7 @@
20550
21452
  {
20551
21453
  "name": "host",
20552
21454
  "type": {
20553
- "text": "HTMLElement & { top?: number | null; left?: number | null }"
21455
+ "text": "PositionedHost"
20554
21456
  }
20555
21457
  },
20556
21458
  {