@fusion.dev/helix-headless 0.103.0 → 0.103.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.
- package/custom-elements.json +12 -0
- package/dist/map/root/map-root.d.ts +15 -0
- package/dist/map/root/map-root.js +9 -3
- package/package.json +5 -5
- package/types/jsx.d.ts +6 -0
package/custom-elements.json
CHANGED
|
@@ -55446,14 +55446,26 @@
|
|
|
55446
55446
|
"description": "**Helix draws no map.** There are no tiles here, no projection and no\nnetwork, and there should not be: a tile renderer is a library, and what a\ndesign system can add to MapLibre or Leaflet is the frame. The consumer slots\ntheir map and this owns the box, the name, the controls and the way out,\nwhich is the shape `VideoPlaylist` uses for a player it never renders.\n\n**The accessibility argument is the reason this exists**, and it was measured\nrather than assumed: a map embedded the ordinary way is a canvas with no role\nand no name, and it has *no node at all* in the accessibility tree. A reader\nusing a screen reader does not walk past it so much as never meet it. A named\nregion with controls in it is the whole of the difference.\n\n**The controls are buttons, and that is a deliberate choice against arrow\nkeys.** Arrows work here too, but what a screen reader does with them is not\nours to decide: macOS passes them through, Windows readers hold them for\ntheir own reading mode unless a page takes `role=\"application\"`, which costs\nthe reader their normal way of reading everything else in the frame. A button\nis findable and operable in every screen reader on every platform without\nthat bargain, so panning and zooming are buttons first and keys second.\n\n**Nothing here moves the map.** Both controls ask, through `helix-map-pan`\nand `helix-map-zoom`, and the consumer answers against whatever they slotted.\nA frame that moved the map would have to know whose map it was.",
|
|
55447
55447
|
"name": "HelixHeadlessMap",
|
|
55448
55448
|
"cssParts": [
|
|
55449
|
+
{
|
|
55450
|
+
"description": "The strip the credit sits in, under the map.",
|
|
55451
|
+
"name": "attribution"
|
|
55452
|
+
},
|
|
55449
55453
|
{
|
|
55450
55454
|
"description": "The group the pan and zoom buttons sit in.",
|
|
55451
55455
|
"name": "controls"
|
|
55452
55456
|
},
|
|
55457
|
+
{
|
|
55458
|
+
"description": "The strip below the map, for what a consumer slots there.",
|
|
55459
|
+
"name": "footer"
|
|
55460
|
+
},
|
|
55453
55461
|
{
|
|
55454
55462
|
"description": "The button that fills the screen.",
|
|
55455
55463
|
"name": "fullscreen"
|
|
55456
55464
|
},
|
|
55465
|
+
{
|
|
55466
|
+
"description": "The strip above the map, for what a consumer slots there.",
|
|
55467
|
+
"name": "header"
|
|
55468
|
+
},
|
|
55457
55469
|
{
|
|
55458
55470
|
"description": "The button that moves the map down.",
|
|
55459
55471
|
"name": "pan-down"
|
|
@@ -46,8 +46,11 @@ export type MapControlsPlacement = 'top-start' | 'top-end' | 'bottom-start' | 'b
|
|
|
46
46
|
* @event {HelixMapPanEvent} helix-map-pan - The reader asked the map to move. Answer it against your own map.
|
|
47
47
|
* @event {HelixMapZoomEvent} helix-map-zoom - The reader asked the map to zoom, by a direction rather than to a level.
|
|
48
48
|
*
|
|
49
|
+
* @csspart attribution - The strip the credit sits in, under the map.
|
|
49
50
|
* @csspart controls - The group the pan and zoom buttons sit in.
|
|
51
|
+
* @csspart footer - The strip below the map, for what a consumer slots there.
|
|
50
52
|
* @csspart fullscreen - The button that fills the screen.
|
|
53
|
+
* @csspart header - The strip above the map, for what a consumer slots there.
|
|
51
54
|
* @csspart pan-down - The button that moves the map down.
|
|
52
55
|
* @csspart pan-end - The button that moves the map the way the text ends, which is right on an English page.
|
|
53
56
|
* @csspart pan-start - The button that moves the map the way the text starts, which is left on an English page.
|
|
@@ -185,6 +188,18 @@ export declare class HelixHeadlessMap extends HelixElement {
|
|
|
185
188
|
* `drawIcon` names for `Trend`.
|
|
186
189
|
*/
|
|
187
190
|
private renderControls;
|
|
191
|
+
/**
|
|
192
|
+
* The frame, with each region in a box of its own.
|
|
193
|
+
*
|
|
194
|
+
* **The boxes are load-bearing rather than tidiness.** A `<slot>` is
|
|
195
|
+
* `display: contents`, so what lands in the grid is whatever a consumer
|
|
196
|
+
* assigned rather than the slot itself: with no header slotted, the viewport
|
|
197
|
+
* took the first row and the attribution took the `1fr`, and the map collapsed
|
|
198
|
+
* to the height of one line of text. Which slots a consumer fills is not
|
|
199
|
+
* something the layout may depend on, so each region is a box that holds its
|
|
200
|
+
* row whether or not anything is in it, and an empty one is a row of no
|
|
201
|
+
* height.
|
|
202
|
+
*/
|
|
188
203
|
protected render(): TemplateResult;
|
|
189
204
|
}
|
|
190
205
|
declare global {
|
|
@@ -132,13 +132,19 @@ let HelixHeadlessMap = class HelixHeadlessMap extends HelixElement {
|
|
|
132
132
|
@pointerleave=${this.idle.leave}
|
|
133
133
|
@pointermove=${this.idle.stir}
|
|
134
134
|
>
|
|
135
|
-
<
|
|
135
|
+
<div part="header">
|
|
136
|
+
<slot name="header"></slot>
|
|
137
|
+
</div>
|
|
136
138
|
<div part="viewport">
|
|
137
139
|
<slot></slot>
|
|
138
140
|
</div>
|
|
139
141
|
${this.renderControls()}
|
|
140
|
-
<
|
|
141
|
-
|
|
142
|
+
<div part="footer">
|
|
143
|
+
<slot name="footer"></slot>
|
|
144
|
+
</div>
|
|
145
|
+
<div part="attribution">
|
|
146
|
+
<slot name="attribution"></slot>
|
|
147
|
+
</div>
|
|
142
148
|
</div>`;
|
|
143
149
|
}
|
|
144
150
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusion.dev/helix-headless",
|
|
3
3
|
"description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
|
|
4
|
-
"version": "0.103.
|
|
4
|
+
"version": "0.103.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ross Sheppard <ross.sheppard@fusion.dev>",
|
|
7
7
|
"repository": {
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
},
|
|
47
47
|
"bugs": "https://github.com/project-fusion/fusion/issues",
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@fusion.dev/helix-core": "0.103.
|
|
50
|
-
"@fusion.dev/helix-icons": "0.103.
|
|
49
|
+
"@fusion.dev/helix-core": "0.103.1",
|
|
50
|
+
"@fusion.dev/helix-icons": "0.103.1",
|
|
51
51
|
"uqr": "^0.1.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@fusion.dev/helix-cem": "0.103.
|
|
55
|
-
"@fusion.dev/helix-testing": "0.103.
|
|
54
|
+
"@fusion.dev/helix-cem": "0.103.1",
|
|
55
|
+
"@fusion.dev/helix-testing": "0.103.1",
|
|
56
56
|
"@fusion.dev/scripts": "0.0.0-dev",
|
|
57
57
|
"@happy-dom/global-registrator": "^20.0.0",
|
|
58
58
|
"@lit-labs/ssr": "^4.1.0",
|
package/types/jsx.d.ts
CHANGED
|
@@ -27719,8 +27719,11 @@ export type CustomElements = {
|
|
|
27719
27719
|
*
|
|
27720
27720
|
* Custom selectors for styling elements within the component.
|
|
27721
27721
|
*
|
|
27722
|
+
* - `attribution`: The strip the credit sits in, under the map.
|
|
27722
27723
|
* - `controls`: The group the pan and zoom buttons sit in.
|
|
27724
|
+
* - `footer`: The strip below the map, for what a consumer slots there.
|
|
27723
27725
|
* - `fullscreen`: The button that fills the screen.
|
|
27726
|
+
* - `header`: The strip above the map, for what a consumer slots there.
|
|
27724
27727
|
* - `pan-down`: The button that moves the map down.
|
|
27725
27728
|
* - `pan-end`: The button that moves the map the way the text ends, which is right on an English page.
|
|
27726
27729
|
* - `pan-start`: The button that moves the map the way the text starts, which is left on an English page.
|
|
@@ -46221,8 +46224,11 @@ export type CustomElementsSolidJs = {
|
|
|
46221
46224
|
*
|
|
46222
46225
|
* Custom selectors for styling elements within the component.
|
|
46223
46226
|
*
|
|
46227
|
+
* - `attribution`: The strip the credit sits in, under the map.
|
|
46224
46228
|
* - `controls`: The group the pan and zoom buttons sit in.
|
|
46229
|
+
* - `footer`: The strip below the map, for what a consumer slots there.
|
|
46225
46230
|
* - `fullscreen`: The button that fills the screen.
|
|
46231
|
+
* - `header`: The strip above the map, for what a consumer slots there.
|
|
46226
46232
|
* - `pan-down`: The button that moves the map down.
|
|
46227
46233
|
* - `pan-end`: The button that moves the map the way the text ends, which is right on an English page.
|
|
46228
46234
|
* - `pan-start`: The button that moves the map the way the text starts, which is left on an English page.
|