@fusion.dev/helix-headless 0.103.2 → 0.103.3

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.
@@ -55518,15 +55518,43 @@
55518
55518
  }
55519
55519
  ],
55520
55520
  "members": [
55521
+ {
55522
+ "kind": "field",
55523
+ "name": "label",
55524
+ "type": {
55525
+ "text": "string"
55526
+ },
55527
+ "default": "''",
55528
+ "description": "Accessible name for the map, which is the one thing a consumer must write.\n\nThere is no sensible default. \"Map\" names the widget rather than the place,\nand a reader meeting three of them on a page learns nothing from hearing the\nsame word three times.\n\n**The region is a tab stop**, so the keys are reachable however the controls\nare configured: the listener is on the region, and without a stop of its own\na frame at `controls=\"none\"` around a map with nothing focusable in it had\narrow keys no reader could ever press. `aria-keyshortcuts` says which keys\nrather than spelling them into the name, which would otherwise be read out\nat every encounter.",
55529
+ "attribute": "label"
55530
+ },
55531
+ {
55532
+ "kind": "field",
55533
+ "name": "controlsLabel",
55534
+ "type": {
55535
+ "text": "string"
55536
+ },
55537
+ "privacy": "protected",
55538
+ "description": "What the group of controls is called.\n\nThe surface is shared and this is the half that is a map: a reader meeting\nthe group hears what it drives rather than \"view controls\", which names the\nmechanism.",
55539
+ "readonly": true,
55540
+ "inheritedFrom": {
55541
+ "name": "MixinViewport",
55542
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55543
+ }
55544
+ },
55521
55545
  {
55522
55546
  "kind": "field",
55523
55547
  "name": "controls",
55524
55548
  "type": {
55525
55549
  "text": "string | undefined"
55526
55550
  },
55527
- "description": "Which of the controls this frame draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.**\nEvery map library draws zoom controls and none of them draws pan buttons:\nMapLibre's navigation control is zoom and a compass, Leaflet's is zoom,\nGoogle's is zoom. So a consumer slotting one of those has our zoom twice\nover and our pan pad not at all, and a single switch would make them choose\nbetween a duplicate and nothing.\n\n`none` draws none of them, which is the right answer where the slotted map\nalready has controls a reader can find: what this family argues for is that\n*a* findable control exists, never that it is ours. The methods stay public\neither way, so a consumer drawing their own chrome can still drive the\nframe.\n\nAbsent is all three, which is this library's rule that a resting value is an\nattribute's absence, and it is what the stylesheet asks about: the layout\nrules are written against `[controls]:not([controls~=\"zoom\"])` rather than\nthe bare negation, or a frame that named no list at all would be laid out as\nthough it had dropped everything.",
55551
+ "description": "Which of the controls this surface draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.** A\nsurface a consumer brings often has zoom controls of its own and almost\nnever has pan buttons, so a single switch would make them choose between\na duplicate and nothing.\n\n`none` draws none of them, which is the right answer where what was\nslotted already has controls a reader can find: what this argues for is\nthat *a* findable control exists, never that it is ours. The methods stay\npublic either way, so a consumer drawing their own chrome can still drive\nthe surface.\n\nAbsent is all three, which is this library's rule that a resting value is\nan attribute's absence, and it is what the stylesheet asks about: the\nlayout rules are written against `[controls]:not([controls~=\"zoom\"])`\nrather than the bare negation, or a surface that named no list at all\nwould be laid out as though it had dropped everything.",
55528
55552
  "attribute": "controls",
55529
- "reflects": true
55553
+ "reflects": true,
55554
+ "inheritedFrom": {
55555
+ "name": "MixinViewport",
55556
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55557
+ }
55530
55558
  },
55531
55559
  {
55532
55560
  "kind": "field",
@@ -55534,9 +55562,13 @@
55534
55562
  "type": {
55535
55563
  "text": "'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | undefined"
55536
55564
  },
55537
- "description": "Which corner the controls sit in.\n\n**Configurable because there is no safe default**, and this is a collision\nrather than a taste: MapLibre puts its own controls at the top end, Leaflet\nand OpenLayers at the top start, Google's zoom at the bottom end. Whichever\ncorner this took would land on somebody's, which is why every one of those\nlibraries made it a setting too.\n\nLogical corners rather than left and right, so a right-to-left page moves\nthem without a consumer writing a second rule.\n\nAbsent is the top end, which is this library's rule that a resting value is\nan attribute's absence: a default that reflected would write an attribute\nonto every host that no server sent and nobody asked for.",
55565
+ "description": "Which corner the controls sit in.\n\n**Configurable because there is no safe default**, which is a collision\nrather than a taste: whatever a consumer slots may put its own controls\nin any corner, and every library that draws some made this a setting for\nthe same reason.\n\nLogical corners rather than left and right, so a right-to-left page moves\nthem without a consumer writing a second rule. Absent is the top end, a\nresting value being an attribute's absence: a default that reflected\nwould write an attribute onto every host that no server sent.",
55538
55566
  "attribute": "controls-placement",
55539
- "reflects": true
55567
+ "reflects": true,
55568
+ "inheritedFrom": {
55569
+ "name": "MixinViewport",
55570
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55571
+ }
55540
55572
  },
55541
55573
  {
55542
55574
  "kind": "field",
@@ -55546,7 +55578,11 @@
55546
55578
  },
55547
55579
  "default": "'Fill the screen'",
55548
55580
  "description": "What the control that fills the screen is called.",
55549
- "attribute": "fullscreen-label"
55581
+ "attribute": "fullscreen-label",
55582
+ "inheritedFrom": {
55583
+ "name": "MixinViewport",
55584
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55585
+ }
55550
55586
  },
55551
55587
  {
55552
55588
  "kind": "field",
@@ -55555,18 +55591,12 @@
55555
55591
  "text": "number"
55556
55592
  },
55557
55593
  "default": "0",
55558
- "description": "How long the reader may be still before the chrome hides, in milliseconds.\n\nZero keeps it up, which is the default: a map's controls are how a keyboard\nreader operates it, and chrome that hides itself by default would be this\ncomponent undoing its own argument. Set it for a display map nobody drives.",
55559
- "attribute": "idle-delay"
55560
- },
55561
- {
55562
- "kind": "field",
55563
- "name": "label",
55564
- "type": {
55565
- "text": "string"
55566
- },
55567
- "default": "''",
55568
- "description": "Accessible name for the map, which is the one thing a consumer must write.\n\nThere is no sensible default. \"Map\" names the widget rather than the place,\nand a reader meeting three of them on a page learns nothing from hearing the\nsame word three times.\n\n**The region is a tab stop**, so the keys are reachable however the controls\nare configured: the listener is on the region, and without a stop of its own\na frame at `controls=\"none\"` around a map with nothing focusable in it had\narrow keys no reader could ever press. `aria-keyshortcuts` says which keys\nrather than spelling them into the name, which would otherwise be read out\nat every encounter.",
55569
- "attribute": "label"
55594
+ "description": "How long the reader may be still before the chrome hides, in milliseconds.\n\nZero keeps it up, which is the default: these controls are how a keyboard\nreader operates the surface, and chrome that hid itself by default would\nbe the component undoing its own argument. Set it for a display nobody\ndrives.",
55595
+ "attribute": "idle-delay",
55596
+ "inheritedFrom": {
55597
+ "name": "MixinViewport",
55598
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55599
+ }
55570
55600
  },
55571
55601
  {
55572
55602
  "kind": "field",
@@ -55575,8 +55605,12 @@
55575
55605
  "text": "string"
55576
55606
  },
55577
55607
  "default": "'Pan {way}'",
55578
- "description": "What the controls are called, for a page not in English.",
55579
- "attribute": "pan-label"
55608
+ "description": "What one pan control is called, with `{way}` filled in.",
55609
+ "attribute": "pan-label",
55610
+ "inheritedFrom": {
55611
+ "name": "MixinViewport",
55612
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55613
+ }
55580
55614
  },
55581
55615
  {
55582
55616
  "kind": "field",
@@ -55585,8 +55619,12 @@
55585
55619
  "text": "number"
55586
55620
  },
55587
55621
  "default": "0.25",
55588
- "description": "How far one press moves the map, as a fraction of what is on screen.\n\nA fraction rather than a distance, because this frame does not know the\nscale of what is inside it: a quarter of the viewport is the same gesture at\nstreet level and at country level, and a consumer who wants metres can\nmultiply by their own.",
55589
- "attribute": "pan-step"
55622
+ "description": "How far one press moves the view, as a fraction of what is on screen.\n\nA fraction rather than a distance, because this surface does not know the\nscale of what is inside it: a quarter of the viewport is the same gesture\nat any zoom, and a consumer who wants their own units multiplies by them.",
55623
+ "attribute": "pan-step",
55624
+ "inheritedFrom": {
55625
+ "name": "MixinViewport",
55626
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55627
+ }
55590
55628
  },
55591
55629
  {
55592
55630
  "kind": "field",
@@ -55595,8 +55633,12 @@
55595
55633
  "text": "string"
55596
55634
  },
55597
55635
  "default": "'Zoom in'",
55598
- "description": "What the zoom controls are called.",
55599
- "attribute": "zoom-in-label"
55636
+ "description": "What the control that zooms in is called.",
55637
+ "attribute": "zoom-in-label",
55638
+ "inheritedFrom": {
55639
+ "name": "MixinViewport",
55640
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55641
+ }
55600
55642
  },
55601
55643
  {
55602
55644
  "kind": "field",
@@ -55605,8 +55647,12 @@
55605
55647
  "text": "string"
55606
55648
  },
55607
55649
  "default": "'Zoom out'",
55608
- "description": "What the zoom control that goes the other way is called.",
55609
- "attribute": "zoom-out-label"
55650
+ "description": "What the control that zooms out is called.",
55651
+ "attribute": "zoom-out-label",
55652
+ "inheritedFrom": {
55653
+ "name": "MixinViewport",
55654
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55655
+ }
55610
55656
  },
55611
55657
  {
55612
55658
  "kind": "field",
@@ -55614,9 +55660,13 @@
55614
55660
  "type": {
55615
55661
  "text": "boolean"
55616
55662
  },
55617
- "privacy": "private",
55663
+ "privacy": "protected",
55618
55664
  "default": "false",
55619
- "description": "Whether the reader has been still long enough to hide the chrome."
55665
+ "description": "Whether the reader has been still long enough to hide the chrome.",
55666
+ "inheritedFrom": {
55667
+ "name": "MixinViewport",
55668
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55669
+ }
55620
55670
  },
55621
55671
  {
55622
55672
  "kind": "field",
@@ -55624,54 +55674,80 @@
55624
55674
  "type": {
55625
55675
  "text": "boolean"
55626
55676
  },
55627
- "privacy": "private",
55677
+ "privacy": "protected",
55628
55678
  "default": "false",
55629
- "description": "Whether the frame is filling the screen."
55679
+ "description": "Whether the surface is filling the screen.",
55680
+ "inheritedFrom": {
55681
+ "name": "MixinViewport",
55682
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55683
+ }
55630
55684
  },
55631
55685
  {
55632
55686
  "kind": "field",
55633
55687
  "name": "fullscreen",
55634
- "privacy": "private",
55688
+ "privacy": "protected",
55635
55689
  "readonly": true,
55636
- "default": "new FullscreenController(this, (full) => { this.filled = full })"
55690
+ "default": "new FullscreenController(this, (full) => { this.filled = full })",
55691
+ "inheritedFrom": {
55692
+ "name": "MixinViewport",
55693
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55694
+ }
55637
55695
  },
55638
55696
  {
55639
55697
  "kind": "field",
55640
55698
  "name": "idle",
55641
- "privacy": "private",
55699
+ "privacy": "protected",
55642
55700
  "readonly": true,
55643
- "default": "new IdleController( this, () => this.idleDelay, (resting) => { this.resting = resting }, )"
55701
+ "default": "new IdleController( this, () => this.idleDelay, (resting) => { this.resting = resting }, )",
55702
+ "inheritedFrom": {
55703
+ "name": "MixinViewport",
55704
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55705
+ }
55644
55706
  },
55645
55707
  {
55646
55708
  "kind": "method",
55647
- "name": "draws",
55648
- "privacy": "private",
55709
+ "name": "panEvent",
55710
+ "privacy": "protected",
55649
55711
  "return": {
55650
55712
  "type": {
55651
- "text": "boolean"
55713
+ "text": "Event"
55652
55714
  }
55653
55715
  },
55654
55716
  "parameters": [
55655
55717
  {
55656
- "name": "group",
55718
+ "name": "detail",
55657
55719
  "type": {
55658
- "text": "'pan' | 'zoom' | 'fullscreen'"
55720
+ "text": "ViewportPanDetail"
55659
55721
  }
55660
55722
  }
55661
55723
  ],
55662
- "description": "Whether a named group of controls is one this frame draws."
55724
+ "description": "The pan event, built and not dispatched.\n\nA factory for the reason `MixinDismissible` has one: the surface is\nshared and the name is not. `Map` sends `helix-map-pan` because that is\nwhat a consumer of a map listens for, and the next family names its own.",
55725
+ "inheritedFrom": {
55726
+ "name": "MixinViewport",
55727
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55728
+ }
55663
55729
  },
55664
55730
  {
55665
55731
  "kind": "method",
55666
- "name": "toggleFullscreen",
55732
+ "name": "zoomEvent",
55733
+ "privacy": "protected",
55667
55734
  "return": {
55668
55735
  "type": {
55669
- "text": "void"
55736
+ "text": "Event"
55670
55737
  }
55671
55738
  },
55672
- "description": "Fills the screen with the frame, or comes back.",
55673
- "type": {
55674
- "text": "toggleFullscreen() => void"
55739
+ "parameters": [
55740
+ {
55741
+ "name": "detail",
55742
+ "type": {
55743
+ "text": "ViewportZoomDetail"
55744
+ }
55745
+ }
55746
+ ],
55747
+ "description": "The zoom event, built and not dispatched, for the same reason.",
55748
+ "inheritedFrom": {
55749
+ "name": "MixinViewport",
55750
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55675
55751
  }
55676
55752
  },
55677
55753
  {
@@ -55686,13 +55762,17 @@
55686
55762
  {
55687
55763
  "name": "to",
55688
55764
  "type": {
55689
- "text": "Way"
55765
+ "text": "ViewportWay"
55690
55766
  }
55691
55767
  }
55692
55768
  ],
55693
- "description": "Asks for the map to move, which the consumer answers.",
55769
+ "description": "Asks for the view to move, which the consumer answers.",
55770
+ "inheritedFrom": {
55771
+ "name": "MixinViewport",
55772
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55773
+ },
55694
55774
  "type": {
55695
- "text": "pan(to: Way) => void"
55775
+ "text": "pan(to: ViewportWay) => void"
55696
55776
  }
55697
55777
  },
55698
55778
  {
@@ -55711,17 +55791,54 @@
55711
55791
  }
55712
55792
  }
55713
55793
  ],
55714
- "description": "Asks for the map to zoom, `1` in and `-1` out.",
55794
+ "description": "Asks for the view to zoom, `1` in and `-1` out.",
55795
+ "inheritedFrom": {
55796
+ "name": "MixinViewport",
55797
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55798
+ },
55715
55799
  "type": {
55716
55800
  "text": "zoom(by: number) => void"
55717
55801
  }
55718
55802
  },
55719
55803
  {
55720
- "kind": "field",
55721
- "name": "handleKeydown",
55804
+ "kind": "method",
55805
+ "name": "toggleFullscreen",
55806
+ "return": {
55807
+ "type": {
55808
+ "text": "void"
55809
+ }
55810
+ },
55811
+ "description": "Fills the screen with the surface, or comes back.",
55812
+ "inheritedFrom": {
55813
+ "name": "MixinViewport",
55814
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55815
+ },
55816
+ "type": {
55817
+ "text": "toggleFullscreen() => void"
55818
+ }
55819
+ },
55820
+ {
55821
+ "kind": "method",
55822
+ "name": "draws",
55722
55823
  "privacy": "private",
55723
- "readonly": true,
55724
- "description": "The arrow keys, which are the second way rather than the only one.\n\n`inlineStep` rather than a test against `ArrowLeft`, so the reader on a\nright-to-left page gets `end` from the key that points the way their text\nruns, which is what the pan buttons say too.\n\n**Only from this frame's own chrome, and that is the difference between one\nmove and two.** MapLibre and Leaflet both answer the arrow keys themselves,\nso a press inside a slotted map moves it once on its own and once more on\nthe event this would have sent: every press moving twice, and the consumer\nwith no way to tell which half to turn off. A press that started in the\nshadow root is this frame's to relay; anything from the map belongs to the\nmap."
55824
+ "return": {
55825
+ "type": {
55826
+ "text": "boolean"
55827
+ }
55828
+ },
55829
+ "parameters": [
55830
+ {
55831
+ "name": "group",
55832
+ "type": {
55833
+ "text": "'pan' | 'zoom' | 'fullscreen'"
55834
+ }
55835
+ }
55836
+ ],
55837
+ "description": "Whether a named group of controls is one this surface draws.",
55838
+ "inheritedFrom": {
55839
+ "name": "MixinViewport",
55840
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55841
+ }
55725
55842
  },
55726
55843
  {
55727
55844
  "kind": "method",
@@ -55736,22 +55853,41 @@
55736
55853
  {
55737
55854
  "name": "way",
55738
55855
  "type": {
55739
- "text": "Way"
55856
+ "text": "ViewportWay"
55740
55857
  }
55741
55858
  }
55742
55859
  ],
55743
- "description": "What one pan button is called, with the way it goes filled in.\n\nLeft and right rather than start and end, because the label is read aloud\nand a reader knows which way left is. The event keeps the reading-order\nname, which is the one a right-to-left page needs."
55860
+ "description": "What one pan control is called, with the way it goes filled in.\n\nLeft and right rather than start and end, because the label is read aloud\nand a reader knows which way left is. The event keeps the reading-order\nname, which is the one a right-to-left page needs.",
55861
+ "inheritedFrom": {
55862
+ "name": "MixinViewport",
55863
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55864
+ }
55865
+ },
55866
+ {
55867
+ "kind": "field",
55868
+ "name": "handleKeydown",
55869
+ "privacy": "protected",
55870
+ "readonly": true,
55871
+ "description": "The arrow keys, which are the second way rather than the only one.\n\n`inlineStep` rather than a test against `ArrowLeft`, so the reader on a\nright-to-left page moves the way their text runs, which is what the pan\ncontrols say too.\n\n**Only from the surface's own frame, and that is the difference between\none move and two.** What a consumer slots may answer the arrow keys\nitself, and a press relayed from inside it moves their view once on its\nown and once more on the event this would send. The rule is the region\nand the controls rather than the whole shadow root, because a family with\nits own focusable content in there, a list of notes beside a canvas,\nwould otherwise pan the surface out from under a reader arrowing through\nit.",
55872
+ "inheritedFrom": {
55873
+ "name": "MixinViewport",
55874
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55875
+ }
55744
55876
  },
55745
55877
  {
55746
55878
  "kind": "method",
55747
55879
  "name": "renderControls",
55748
- "privacy": "private",
55880
+ "privacy": "protected",
55749
55881
  "return": {
55750
55882
  "type": {
55751
55883
  "text": "TemplateResult | typeof nothing"
55752
55884
  }
55753
55885
  },
55754
- "description": "The controls, or nothing where a consumer kept none of them.\n\n**Written out rather than generated**, because a part name behind an\ninterpolation is a part the manifest cannot see: it would publish `pan-`\nand a consumer's `::part(pan-up)` would match nothing. The same cost\n`drawIcon` names for `Trend`."
55886
+ "description": "The controls, or nothing where a consumer kept none of them.\n\n**Written out rather than generated**, because a part name behind an\ninterpolation is a part the manifest cannot see: a loop would publish\n`pan-` and a consumer's `::part(pan-up)` would match nothing.",
55887
+ "inheritedFrom": {
55888
+ "name": "MixinViewport",
55889
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
55890
+ }
55755
55891
  },
55756
55892
  {
55757
55893
  "kind": "field",
@@ -56097,21 +56233,38 @@
56097
56233
  }
56098
56234
  ],
56099
56235
  "attributes": [
56236
+ {
56237
+ "name": "label",
56238
+ "type": {
56239
+ "text": "string"
56240
+ },
56241
+ "default": "''",
56242
+ "description": "Accessible name for the map, which is the one thing a consumer must write.\n\nThere is no sensible default. \"Map\" names the widget rather than the place,\nand a reader meeting three of them on a page learns nothing from hearing the\nsame word three times.\n\n**The region is a tab stop**, so the keys are reachable however the controls\nare configured: the listener is on the region, and without a stop of its own\na frame at `controls=\"none\"` around a map with nothing focusable in it had\narrow keys no reader could ever press. `aria-keyshortcuts` says which keys\nrather than spelling them into the name, which would otherwise be read out\nat every encounter.",
56243
+ "fieldName": "label"
56244
+ },
56100
56245
  {
56101
56246
  "name": "controls",
56102
56247
  "type": {
56103
56248
  "text": "string | undefined"
56104
56249
  },
56105
- "description": "Which of the controls this frame draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.**\nEvery map library draws zoom controls and none of them draws pan buttons:\nMapLibre's navigation control is zoom and a compass, Leaflet's is zoom,\nGoogle's is zoom. So a consumer slotting one of those has our zoom twice\nover and our pan pad not at all, and a single switch would make them choose\nbetween a duplicate and nothing.\n\n`none` draws none of them, which is the right answer where the slotted map\nalready has controls a reader can find: what this family argues for is that\n*a* findable control exists, never that it is ours. The methods stay public\neither way, so a consumer drawing their own chrome can still drive the\nframe.\n\nAbsent is all three, which is this library's rule that a resting value is an\nattribute's absence, and it is what the stylesheet asks about: the layout\nrules are written against `[controls]:not([controls~=\"zoom\"])` rather than\nthe bare negation, or a frame that named no list at all would be laid out as\nthough it had dropped everything.",
56106
- "fieldName": "controls"
56250
+ "description": "Which of the controls this surface draws, as a list of what to keep.\n\n**A list rather than a switch, because the overlap is not symmetric.** A\nsurface a consumer brings often has zoom controls of its own and almost\nnever has pan buttons, so a single switch would make them choose between\na duplicate and nothing.\n\n`none` draws none of them, which is the right answer where what was\nslotted already has controls a reader can find: what this argues for is\nthat *a* findable control exists, never that it is ours. The methods stay\npublic either way, so a consumer drawing their own chrome can still drive\nthe surface.\n\nAbsent is all three, which is this library's rule that a resting value is\nan attribute's absence, and it is what the stylesheet asks about: the\nlayout rules are written against `[controls]:not([controls~=\"zoom\"])`\nrather than the bare negation, or a surface that named no list at all\nwould be laid out as though it had dropped everything.",
56251
+ "fieldName": "controls",
56252
+ "inheritedFrom": {
56253
+ "name": "MixinViewport",
56254
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56255
+ }
56107
56256
  },
56108
56257
  {
56109
56258
  "name": "controls-placement",
56110
56259
  "type": {
56111
56260
  "text": "'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | undefined"
56112
56261
  },
56113
- "description": "Which corner the controls sit in.\n\n**Configurable because there is no safe default**, and this is a collision\nrather than a taste: MapLibre puts its own controls at the top end, Leaflet\nand OpenLayers at the top start, Google's zoom at the bottom end. Whichever\ncorner this took would land on somebody's, which is why every one of those\nlibraries made it a setting too.\n\nLogical corners rather than left and right, so a right-to-left page moves\nthem without a consumer writing a second rule.\n\nAbsent is the top end, which is this library's rule that a resting value is\nan attribute's absence: a default that reflected would write an attribute\nonto every host that no server sent and nobody asked for.",
56114
- "fieldName": "controlsPlacement"
56262
+ "description": "Which corner the controls sit in.\n\n**Configurable because there is no safe default**, which is a collision\nrather than a taste: whatever a consumer slots may put its own controls\nin any corner, and every library that draws some made this a setting for\nthe same reason.\n\nLogical corners rather than left and right, so a right-to-left page moves\nthem without a consumer writing a second rule. Absent is the top end, a\nresting value being an attribute's absence: a default that reflected\nwould write an attribute onto every host that no server sent.",
56263
+ "fieldName": "controlsPlacement",
56264
+ "inheritedFrom": {
56265
+ "name": "MixinViewport",
56266
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56267
+ }
56115
56268
  },
56116
56269
  {
56117
56270
  "name": "fullscreen-label",
@@ -56120,7 +56273,11 @@
56120
56273
  },
56121
56274
  "default": "'Fill the screen'",
56122
56275
  "description": "What the control that fills the screen is called.",
56123
- "fieldName": "fullscreenLabel"
56276
+ "fieldName": "fullscreenLabel",
56277
+ "inheritedFrom": {
56278
+ "name": "MixinViewport",
56279
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56280
+ }
56124
56281
  },
56125
56282
  {
56126
56283
  "name": "idle-delay",
@@ -56128,17 +56285,12 @@
56128
56285
  "text": "number"
56129
56286
  },
56130
56287
  "default": "0",
56131
- "description": "How long the reader may be still before the chrome hides, in milliseconds.\n\nZero keeps it up, which is the default: a map's controls are how a keyboard\nreader operates it, and chrome that hides itself by default would be this\ncomponent undoing its own argument. Set it for a display map nobody drives.",
56132
- "fieldName": "idleDelay"
56133
- },
56134
- {
56135
- "name": "label",
56136
- "type": {
56137
- "text": "string"
56138
- },
56139
- "default": "''",
56140
- "description": "Accessible name for the map, which is the one thing a consumer must write.\n\nThere is no sensible default. \"Map\" names the widget rather than the place,\nand a reader meeting three of them on a page learns nothing from hearing the\nsame word three times.\n\n**The region is a tab stop**, so the keys are reachable however the controls\nare configured: the listener is on the region, and without a stop of its own\na frame at `controls=\"none\"` around a map with nothing focusable in it had\narrow keys no reader could ever press. `aria-keyshortcuts` says which keys\nrather than spelling them into the name, which would otherwise be read out\nat every encounter.",
56141
- "fieldName": "label"
56288
+ "description": "How long the reader may be still before the chrome hides, in milliseconds.\n\nZero keeps it up, which is the default: these controls are how a keyboard\nreader operates the surface, and chrome that hid itself by default would\nbe the component undoing its own argument. Set it for a display nobody\ndrives.",
56289
+ "fieldName": "idleDelay",
56290
+ "inheritedFrom": {
56291
+ "name": "MixinViewport",
56292
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56293
+ }
56142
56294
  },
56143
56295
  {
56144
56296
  "name": "pan-label",
@@ -56146,8 +56298,12 @@
56146
56298
  "text": "string"
56147
56299
  },
56148
56300
  "default": "'Pan {way}'",
56149
- "description": "What the controls are called, for a page not in English.",
56150
- "fieldName": "panLabel"
56301
+ "description": "What one pan control is called, with `{way}` filled in.",
56302
+ "fieldName": "panLabel",
56303
+ "inheritedFrom": {
56304
+ "name": "MixinViewport",
56305
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56306
+ }
56151
56307
  },
56152
56308
  {
56153
56309
  "name": "pan-step",
@@ -56155,8 +56311,12 @@
56155
56311
  "text": "number"
56156
56312
  },
56157
56313
  "default": "0.25",
56158
- "description": "How far one press moves the map, as a fraction of what is on screen.\n\nA fraction rather than a distance, because this frame does not know the\nscale of what is inside it: a quarter of the viewport is the same gesture at\nstreet level and at country level, and a consumer who wants metres can\nmultiply by their own.",
56159
- "fieldName": "panStep"
56314
+ "description": "How far one press moves the view, as a fraction of what is on screen.\n\nA fraction rather than a distance, because this surface does not know the\nscale of what is inside it: a quarter of the viewport is the same gesture\nat any zoom, and a consumer who wants their own units multiplies by them.",
56315
+ "fieldName": "panStep",
56316
+ "inheritedFrom": {
56317
+ "name": "MixinViewport",
56318
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56319
+ }
56160
56320
  },
56161
56321
  {
56162
56322
  "name": "zoom-in-label",
@@ -56164,8 +56324,12 @@
56164
56324
  "text": "string"
56165
56325
  },
56166
56326
  "default": "'Zoom in'",
56167
- "description": "What the zoom controls are called.",
56168
- "fieldName": "zoomInLabel"
56327
+ "description": "What the control that zooms in is called.",
56328
+ "fieldName": "zoomInLabel",
56329
+ "inheritedFrom": {
56330
+ "name": "MixinViewport",
56331
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56332
+ }
56169
56333
  },
56170
56334
  {
56171
56335
  "name": "zoom-out-label",
@@ -56173,8 +56337,12 @@
56173
56337
  "text": "string"
56174
56338
  },
56175
56339
  "default": "'Zoom out'",
56176
- "description": "What the zoom control that goes the other way is called.",
56177
- "fieldName": "zoomOutLabel"
56340
+ "description": "What the control that zooms out is called.",
56341
+ "fieldName": "zoomOutLabel",
56342
+ "inheritedFrom": {
56343
+ "name": "MixinViewport",
56344
+ "module": "src/mixins/mixin-viewport/mixin-viewport.ts"
56345
+ }
56178
56346
  }
56179
56347
  ],
56180
56348
  "cssStates": [
@@ -56195,6 +56363,12 @@
56195
56363
  }
56196
56364
  }
56197
56365
  ],
56366
+ "mixins": [
56367
+ {
56368
+ "name": "MixinViewport",
56369
+ "package": "@fusion.dev/helix-core"
56370
+ }
56371
+ ],
56198
56372
  "superclass": {
56199
56373
  "name": "HelixElement",
56200
56374
  "package": "@fusion.dev/helix-core"