@fusion.dev/helix 0.100.0 → 0.102.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/svelte.d.ts CHANGED
@@ -65,11 +65,14 @@ declare module 'svelte/elements' {
65
65
  'helix-input': CustomElements['helix-input']
66
66
  'helix-kbd': CustomElements['helix-kbd']
67
67
  'helix-legend': CustomElements['helix-legend']
68
+ 'helix-lightbox-item': CustomElements['helix-lightbox-item']
69
+ 'helix-lightbox': CustomElements['helix-lightbox']
68
70
  'helix-line-chart': CustomElements['helix-line-chart']
69
71
  'helix-list-item': CustomElements['helix-list-item']
70
72
  'helix-list': CustomElements['helix-list']
71
73
  'helix-listbox': CustomElements['helix-listbox']
72
74
  'helix-loader': CustomElements['helix-loader']
75
+ 'helix-map': CustomElements['helix-map']
73
76
  'helix-megamenu': CustomElements['helix-megamenu']
74
77
  'helix-menu-item': CustomElements['helix-menu-item']
75
78
  'helix-menu': CustomElements['helix-menu']
package/types/vue.d.ts CHANGED
@@ -57,11 +57,14 @@ import type {
57
57
  HelixInput,
58
58
  HelixKbd,
59
59
  HelixLegend,
60
+ HelixLightboxItem,
61
+ HelixLightbox,
60
62
  HelixLineChart,
61
63
  HelixListItem,
62
64
  HelixList,
63
65
  HelixListbox,
64
66
  HelixLoader,
67
+ HelixMap,
65
68
  HelixMegamenu,
66
69
  HelixMenuItem,
67
70
  HelixMenu,
@@ -159,8 +162,11 @@ import type {
159
162
  HelixFacetEvent,
160
163
  HelixResizeEvent,
161
164
  HelixShortcutEvent,
162
- HelixReadEvent,
163
165
  HelixActivateEvent,
166
+ HelixBeforeActivateEvent,
167
+ HelixMapPanEvent,
168
+ HelixMapZoomEvent,
169
+ HelixReadEvent,
164
170
  HelixCompleteEvent,
165
171
  HelixConsoleEvent,
166
172
  HelixBeforeEditEvent,
@@ -169,7 +175,6 @@ import type {
169
175
  HelixCaretEvent,
170
176
  HelixBeforeCollapseEvent,
171
177
  HelixBeforeResizeEvent,
172
- HelixBeforeActivateEvent,
173
178
  HelixTourAskEvent,
174
179
  HelixNextEvent,
175
180
  HelixPreviousEvent,
@@ -5383,6 +5388,116 @@ shadow root reads a table in that root rather than one in the document.
5383
5388
 
5384
5389
  export type HelixLegendVueEvents = {};
5385
5390
 
5391
+ export type HelixLightboxItemVueProps = {
5392
+ /** Whether this is the one being shown.
5393
+
5394
+ Written by the root, which is the only thing that sees the set. */
5395
+ current?: (HelixLightboxItem["current"]) | undefined;
5396
+ /** What this item is called, for the reading that says where the reader is. */
5397
+ label?: (HelixLightboxItem["label"]) | undefined;
5398
+ /** What names this item, and what `active` on the root is compared against. */
5399
+ value?: (HelixLightboxItem["value"]) | undefined;
5400
+ };
5401
+
5402
+ export type HelixLightboxItemVueEvents = {};
5403
+
5404
+ /** `HelixLightbox` component event */
5405
+ export type HelixLightboxElementEvent<E = Event> = TypedEvent<HelixLightbox, E>;
5406
+ /** `helix-activate` event type */
5407
+ export type HelixLightboxHelixActivateElementEvent =
5408
+ HelixLightboxElementEvent<HelixActivateEvent>;
5409
+ /** `helix-before-activate` event type */
5410
+ export type HelixLightboxHelixBeforeActivateElementEvent =
5411
+ HelixLightboxElementEvent<HelixBeforeActivateEvent>;
5412
+ /** `helix-before-close` event type */
5413
+ export type HelixLightboxHelixBeforeCloseElementEvent =
5414
+ HelixLightboxElementEvent<HelixBeforeCloseEvent>;
5415
+ /** `helix-before-open` event type */
5416
+ export type HelixLightboxHelixBeforeOpenElementEvent =
5417
+ HelixLightboxElementEvent<HelixBeforeOpenEvent>;
5418
+
5419
+ export type HelixLightboxVueProps = {
5420
+ /** Which item is current, by its `value`.
5421
+
5422
+ Not `option.active`, which is the option the keyboard is on: that is a
5423
+ different question from which one is chosen.
5424
+
5425
+ Writing always applies, so `<helix-tabs active="one">` starts on that
5426
+ tab, and `default-active` is how markup says where to start without
5427
+ naming the current one. */
5428
+ active?: (HelixLightbox["active"]) | undefined;
5429
+ /** Which item the markup declared current.
5430
+
5431
+ Ignored once `active` is written. */
5432
+ "default-active"?: (HelixLightbox["defaultActive"]) | undefined;
5433
+ /** Which item the markup declared current.
5434
+
5435
+ Ignored once `active` is written. */
5436
+ defaultActive?: (HelixLightbox["defaultActive"]) | undefined;
5437
+ /** Whether the element is open.
5438
+
5439
+ One property, not two, so `dialog.open` answers the question anyone
5440
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
5441
+ same statement in markup.
5442
+
5443
+ **Not reflected, and that is required rather than tidy.** Reflection
5444
+ writes the resolved state back as an attribute, so an element that opened
5445
+ itself would put `open` on its own host: cloned, serialized for
5446
+ hydration, or diffed by a framework, it comes back holding whatever the
5447
+ last reader did rather than what the author wrote. `:state(open)` carries
5448
+ the resolved state for stylesheets, which is what the mirror is for. */
5449
+ open?: (HelixLightbox["open"]) | undefined;
5450
+ /** Whether the markup declared it open. Ignored once `open` is written. */
5451
+ "default-open"?: (HelixLightbox["defaultOpen"]) | undefined;
5452
+ /** Whether the markup declared it open. Ignored once `open` is written. */
5453
+ defaultOpen?: (HelixLightbox["defaultOpen"]) | undefined;
5454
+ /** How long the reader may be still before the chrome hides, in milliseconds.
5455
+
5456
+ Zero keeps it up, which is what a viewer with a caption worth reading
5457
+ wants. The wait is only ever about idling: whether anything else should
5458
+ keep the chrome up is the consumer's to decide with this. */
5459
+ "idle-delay"?: (HelixLightbox["idleDelay"] | `${number}`) | undefined;
5460
+ /** How long the reader may be still before the chrome hides, in milliseconds.
5461
+
5462
+ Zero keeps it up, which is what a viewer with a caption worth reading
5463
+ wants. The wait is only ever about idling: whether anything else should
5464
+ keep the chrome up is the consumer's to decide with this. */
5465
+ idleDelay?: (HelixLightbox["idleDelay"]) | undefined;
5466
+ /** Accessible name for the viewer. */
5467
+ label?: (HelixLightbox["label"]) | undefined;
5468
+ /** Whether walking past the end comes back to the beginning. */
5469
+ loop?: (HelixLightbox["loop"]) | undefined;
5470
+ /** The reading that says where in the set the reader is, with `{index}` and
5471
+ `{count}` filled in.
5472
+
5473
+ Announced rather than only drawn, because the picture changing under a
5474
+ reader who cannot see it is otherwise silent. A consumer who has their own
5475
+ counter in the chrome can empty this and say it themselves. */
5476
+ "status-label"?: (HelixLightbox["statusLabel"]) | undefined;
5477
+ /** The reading that says where in the set the reader is, with `{index}` and
5478
+ `{count}` filled in.
5479
+
5480
+ Announced rather than only drawn, because the picture changing under a
5481
+ reader who cannot see it is otherwise silent. A consumer who has their own
5482
+ counter in the chrome can empty this and say it themselves. */
5483
+ statusLabel?: (HelixLightbox["statusLabel"]) | undefined;
5484
+ };
5485
+
5486
+ export type HelixLightboxVueEvents = {
5487
+ /** Fired once the shown item has moved, so the element already holds it. */
5488
+ "helix-activate": HelixLightboxHelixActivateElementEvent;
5489
+ /** Relayed, because the platform's own does not escape. */
5490
+ close: HelixLightboxElementEvent;
5491
+ /** Fired before the shown item changes, and cancelable. The only way to refuse one. */
5492
+ "helix-before-activate": HelixLightboxHelixBeforeActivateElementEvent;
5493
+ /** Fired before it closes, and cancelable. */
5494
+ "helix-before-close": HelixLightboxHelixBeforeCloseElementEvent;
5495
+ /** Fired before it opens, and cancelable. */
5496
+ "helix-before-open": HelixLightboxHelixBeforeOpenElementEvent;
5497
+ /** Says the state moved, carrying `newState` and `oldState`. */
5498
+ toggle: HelixLightboxElementEvent;
5499
+ };
5500
+
5386
5501
  export type HelixLineChartVueProps = {
5387
5502
  /** How much ink the lines claim.
5388
5503
 
@@ -5755,6 +5870,73 @@ around a logo reads as chrome bolted to the brand. */
5755
5870
 
5756
5871
  export type HelixLoaderVueEvents = {};
5757
5872
 
5873
+ /** `HelixMap` component event */
5874
+ export type HelixMapElementEvent<E = Event> = TypedEvent<HelixMap, E>;
5875
+ /** `helix-map-pan` event type */
5876
+ export type HelixMapHelixMapPanElementEvent =
5877
+ HelixMapElementEvent<HelixMapPanEvent>;
5878
+ /** `helix-map-zoom` event type */
5879
+ export type HelixMapHelixMapZoomElementEvent =
5880
+ HelixMapElementEvent<HelixMapZoomEvent>;
5881
+
5882
+ export type HelixMapVueProps = {
5883
+ /** What the control that fills the screen is called. */
5884
+ "fullscreen-label"?: (HelixMap["fullscreenLabel"]) | undefined;
5885
+ /** What the control that fills the screen is called. */
5886
+ fullscreenLabel?: (HelixMap["fullscreenLabel"]) | undefined;
5887
+ /** How long the reader may be still before the chrome hides, in milliseconds.
5888
+
5889
+ Zero keeps it up, which is the default: a map's controls are how a keyboard
5890
+ reader operates it, and chrome that hides itself by default would be this
5891
+ component undoing its own argument. Set it for a display map nobody drives. */
5892
+ "idle-delay"?: (HelixMap["idleDelay"] | `${number}`) | undefined;
5893
+ /** How long the reader may be still before the chrome hides, in milliseconds.
5894
+
5895
+ Zero keeps it up, which is the default: a map's controls are how a keyboard
5896
+ reader operates it, and chrome that hides itself by default would be this
5897
+ component undoing its own argument. Set it for a display map nobody drives. */
5898
+ idleDelay?: (HelixMap["idleDelay"]) | undefined;
5899
+ /** Accessible name for the map, which is the one thing a consumer must write.
5900
+
5901
+ There is no sensible default. "Map" names the widget rather than the place,
5902
+ and a reader meeting three of them on a page learns nothing from hearing the
5903
+ same word three times. */
5904
+ label?: (HelixMap["label"]) | undefined;
5905
+ /** What the controls are called, for a page not in English. */
5906
+ "pan-label"?: (HelixMap["panLabel"]) | undefined;
5907
+ /** What the controls are called, for a page not in English. */
5908
+ panLabel?: (HelixMap["panLabel"]) | undefined;
5909
+ /** How far one press moves the map, as a fraction of what is on screen.
5910
+
5911
+ A fraction rather than a distance, because this frame does not know the
5912
+ scale of what is inside it: a quarter of the viewport is the same gesture at
5913
+ street level and at country level, and a consumer who wants metres can
5914
+ multiply by their own. */
5915
+ "pan-step"?: (HelixMap["panStep"] | `${number}`) | undefined;
5916
+ /** How far one press moves the map, as a fraction of what is on screen.
5917
+
5918
+ A fraction rather than a distance, because this frame does not know the
5919
+ scale of what is inside it: a quarter of the viewport is the same gesture at
5920
+ street level and at country level, and a consumer who wants metres can
5921
+ multiply by their own. */
5922
+ panStep?: (HelixMap["panStep"]) | undefined;
5923
+ /** What the zoom controls are called. */
5924
+ "zoom-in-label"?: (HelixMap["zoomInLabel"]) | undefined;
5925
+ /** What the zoom controls are called. */
5926
+ zoomInLabel?: (HelixMap["zoomInLabel"]) | undefined;
5927
+ /** What the zoom control that goes the other way is called. */
5928
+ "zoom-out-label"?: (HelixMap["zoomOutLabel"]) | undefined;
5929
+ /** What the zoom control that goes the other way is called. */
5930
+ zoomOutLabel?: (HelixMap["zoomOutLabel"]) | undefined;
5931
+ };
5932
+
5933
+ export type HelixMapVueEvents = {
5934
+ /** The reader asked the map to move. Answer it against your own map. */
5935
+ "helix-map-pan": HelixMapHelixMapPanElementEvent;
5936
+ /** The reader asked the map to zoom, by a direction rather than to a level. */
5937
+ "helix-map-zoom": HelixMapHelixMapZoomElementEvent;
5938
+ };
5939
+
5758
5940
  /** `HelixMegamenu` component event */
5759
5941
  export type HelixMegamenuElementEvent<E = Event> = TypedEvent<HelixMegamenu, E>;
5760
5942
  /** `helix-before-close` event type */
@@ -11471,6 +11653,18 @@ export type CustomCssProperties = {
11471
11653
  "--legend-swatch-size"?: (string) | undefined;
11472
11654
  /** Width of the edge an `outlined` or `subtle` swatch is drawn with. */
11473
11655
  "--legend-swatch-stroke"?: (string) | undefined;
11656
+ /** Color of the line under the content. */
11657
+ "--lightbox-item-description-color"?: (string) | undefined;
11658
+ /** Space between the content and the line under it. */
11659
+ "--lightbox-item-gap"?: (string) | undefined;
11660
+ /** Color of the chrome drawn over the content. */
11661
+ "--lightbox-foreground"?: (string) | undefined;
11662
+ /** Space between the chrome and the content. */
11663
+ "--lightbox-gap"?: (string) | undefined;
11664
+ /** Inset from the edges of the screen. */
11665
+ "--lightbox-padding"?: (string) | undefined;
11666
+ /** The wash over the page behind the viewer. Set on the host, where a token still resolves: a `var()` written inside `::backdrop` cannot see one. */
11667
+ "--lightbox-scrim"?: (string) | undefined;
11474
11668
  /** A fill for the middle of a `ring` terminus, which is otherwise open. One name across this family and Sparkline, the two reading one shared sheet. */
11475
11669
  "--chart-terminus-hole"?: (string) | undefined;
11476
11670
  /** Size of the mark on each series' last reading. One name across this family and Sparkline, the two reading one shared sheet. */
@@ -11519,6 +11713,14 @@ export type CustomCssProperties = {
11519
11713
  "--loader-size"?: (string) | undefined;
11520
11714
  /** Color of the circle behind it. */
11521
11715
  "--loader-track-color"?: (string) | undefined;
11716
+ /** The well behind the map, seen while tiles are on their way. */
11717
+ "--map-background-color"?: (string) | undefined;
11718
+ /** How tall the frame is. A length, since the map fills it. */
11719
+ "--map-block-size"?: (string) | undefined;
11720
+ /** Color of the frame's edge. */
11721
+ "--map-border-color"?: (string) | undefined;
11722
+ /** The ground under the pan and zoom buttons. */
11723
+ "--map-control-background-color"?: (string) | undefined;
11522
11724
  /** A filter behind the panel, which is `none` until one is asked for: this family carries no `material`, so the pair is two hooks rather than a word. */
11523
11725
  "--megamenu-backdrop"?: (string) | undefined;
11524
11726
  /** The panel's own fill. */
@@ -12381,6 +12583,18 @@ export interface WcToolkitVueGlobalComponents {
12381
12583
  HelixLegendVueProps,
12382
12584
  HelixLegendVueEvents
12383
12585
  >;
12586
+ /** Presentation only: the box centers what it was given and holds it inside the viewport rather than sizing it, because what is in here is the consumer's and may be a picture, a frame of video or a chart. Which item is shown, and the arithmetic that decides, is the base class. */
12587
+ "helix-lightbox-item": DefineCustomElement<
12588
+ HelixLightboxItem,
12589
+ HelixLightboxItemVueProps,
12590
+ HelixLightboxItemVueEvents
12591
+ >;
12592
+ /** **A takeover rather than a panel, which is the whole difference from 'Dialog'.** A dialog is a thing over the page and stops short of the edges to say so; a lightbox is the page for as long as it is open. The scrim is heavier for the same reason: what is behind it is not meant to be read. **A dark region that says so once**, with 'color-scheme: dark' on the host, which is 'Video''s answer to the same problem: the chrome is the consumer's own components and they resolve their own tokens, so without a scheme on the region they draw page-colored ink on a black room and disappear into it. The chrome fades rather than leaves while the reader is still, because a bar that is removed from the layout takes the picture's size with it and the reader watches it jump every time they stop moving. */
12593
+ "helix-lightbox": DefineCustomElement<
12594
+ HelixLightbox,
12595
+ HelixLightboxVueProps,
12596
+ HelixLightboxVueEvents
12597
+ >;
12384
12598
  /** The lines take the series palette in order, so a chart of one is series one and a chart of four is the first four, and a legend beside it maps the same twenty-four. The stroke does not scale with the box. 'preserveAspectRatio="none"' is what lets one drawing fill a narrow card and a wide panel, and without 'vector-effect: non-scaling-stroke' the same line comes out hairline in the first and heavy in the second. It rescues strokes and not geometry, which is why nothing inside the drawing marks a reading: a circle in a stretched coordinate space is an ellipse, and there is no vector-effect that answers for a shape. **The last reading of each series is marked, and that is the same rule rather than an exception to it.** 'terminus' draws an HTML element placed over the plot by percentage instead of a shape inside it, so it keeps its shape at any width. It is on by default, as a dot, because the column of marks at the far edge is where a reader looks for "and what is it now". */
12385
12599
  "helix-line-chart": DefineCustomElement<
12386
12600
  HelixLineChart,
@@ -12411,6 +12625,12 @@ export interface WcToolkitVueGlobalComponents {
12411
12625
  HelixLoaderVueProps,
12412
12626
  HelixLoaderVueEvents
12413
12627
  >;
12628
+ /** Presentation only: a bordered well with the controls over it, at the corner every map puts them. What the frame is for, and why the controls are buttons rather than arrow keys, is the base class. **The controls do not fade with the chrome.** A reader who has gone still has not stopped needing the only controls this frame offers, so the idle state takes the header and footer a consumer slotted and leaves the buttons alone. */
12629
+ "helix-map": DefineCustomElement<
12630
+ HelixMap,
12631
+ HelixMapVueProps,
12632
+ HelixMapVueEvents
12633
+ >;
12414
12634
  /** Presentation only: the trigger, and the panel it opens as a grid of columns. Everything about what opens it and what closes it is the base class. */
12415
12635
  "helix-megamenu": DefineCustomElement<
12416
12636
  HelixMegamenu,