@fusion.dev/helix-headless 0.104.1 → 0.106.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/custom-elements.json +10386 -3813
- package/dist/accordion/item/accordion-item.d.ts +17 -16
- package/dist/accordion/root/accordion-root.d.ts +13 -17
- package/dist/announcement/root/announcement-root.d.ts +24 -31
- package/dist/app-header/root/app-header-root.d.ts +14 -14
- package/dist/area-chart/root/area-chart-root.d.ts +29 -48
- package/dist/avatar/group/avatar-group.d.ts +6 -8
- package/dist/avatar/root/avatar-root.d.ts +11 -11
- package/dist/badge/root/badge-root.d.ts +14 -15
- package/dist/bar-chart/root/bar-chart-root.d.ts +40 -44
- package/dist/blockquote/root/blockquote-root.d.ts +5 -7
- package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +25 -33
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +12 -11
- package/dist/button/root/button-root.d.ts +16 -17
- package/dist/button-group/root/button-group-root.d.ts +9 -10
- package/dist/callout/root/callout-root.d.ts +10 -15
- package/dist/canvas/edge/canvas-edge.d.ts +21 -21
- package/dist/canvas/node/canvas-node.d.ts +43 -45
- package/dist/canvas/root/canvas-root.d.ts +100 -99
- package/dist/card/root/card-root.d.ts +10 -12
- package/dist/carousel/root/carousel-root.d.ts +32 -33
- package/dist/chat/composer/chat-composer.d.ts +24 -26
- package/dist/chat/message/chat-message.d.ts +30 -33
- package/dist/chat/root/chat-root.d.ts +63 -80
- package/dist/checkbox/root/checkbox-root.d.ts +30 -32
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +25 -25
- package/dist/code/root/code-root.d.ts +6 -10
- package/dist/code-block/root/code-block-root.d.ts +35 -48
- package/dist/color-input/root/color-input-root.d.ts +62 -56
- package/dist/color-input/root/color-input-root.js +3 -0
- package/dist/color-picker/root/color-picker-root.d.ts +61 -49
- package/dist/color-picker/root/color-picker-root.js +4 -0
- package/dist/combobox/root/combobox-root.d.ts +52 -53
- package/dist/command/root/command-root.d.ts +40 -40
- package/dist/command/root/command-root.js +1 -0
- package/dist/copy-button/root/copy-button-root.d.ts +24 -26
- package/dist/data-table/root/data-table-root.d.ts +106 -107
- package/dist/date-input/root/date-input-root.d.ts +54 -53
- package/dist/date-picker/root/date-picker-root.d.ts +25 -21
- package/dist/description-list/item/description-list-item.d.ts +7 -7
- package/dist/description-list/root/description-list-root.d.ts +10 -15
- package/dist/dialog/root/dialog-root.d.ts +22 -19
- package/dist/divider/root/divider-root.d.ts +12 -13
- package/dist/donut-chart/root/donut-chart-root.d.ts +19 -20
- package/dist/drawer/root/drawer-root.d.ts +19 -18
- package/dist/drilldown/item/drilldown-item.d.ts +28 -28
- package/dist/drilldown/root/drilldown-root.d.ts +22 -28
- package/dist/element-events.generated.js +19 -1
- package/dist/empty/root/empty-root.d.ts +16 -19
- package/dist/file-input/root/file-input-root.d.ts +32 -32
- package/dist/filter-input/chip/filter-chip.d.ts +36 -39
- package/dist/filter-input/field/filter-field.d.ts +25 -31
- package/dist/filter-input/menu/filter-menu.d.ts +50 -47
- package/dist/filter-input/operator/filter-operator.d.ts +15 -20
- package/dist/filter-input/root/filter-input-root.d.ts +80 -98
- package/dist/format-date/root/format-date-root.d.ts +19 -27
- package/dist/heatmap/root/heatmap-root.d.ts +40 -41
- package/dist/icon/root/icon-root.d.ts +21 -23
- package/dist/icon-button/root/icon-button-root.d.ts +12 -14
- package/dist/image/root/image-root.d.ts +30 -30
- package/dist/input/root/input-root.d.ts +36 -35
- package/dist/kbd/root/kbd-root.d.ts +13 -15
- package/dist/legend/root/legend-root.d.ts +18 -16
- package/dist/lightbox/item/lightbox-item.d.ts +13 -15
- package/dist/lightbox/root/lightbox-root.d.ts +40 -41
- package/dist/line-chart/root/line-chart-root.d.ts +20 -29
- package/dist/list/item/list-item.d.ts +17 -22
- package/dist/list/root/list-root.d.ts +6 -7
- package/dist/listbox/root/listbox-root.d.ts +42 -41
- package/dist/loader/root/loader-root.d.ts +16 -20
- package/dist/map/area/map-area.d.ts +48 -0
- package/dist/map/area/map-area.js +40 -0
- package/dist/map/buildings/map-buildings.d.ts +45 -0
- package/dist/map/buildings/map-buildings.js +37 -0
- package/dist/map/contours/map-contours.d.ts +61 -0
- package/dist/map/contours/map-contours.js +54 -0
- package/dist/map/index.d.ts +14 -0
- package/dist/map/index.js +10 -0
- package/dist/map/landcover/map-landcover.d.ts +47 -0
- package/dist/map/landcover/map-landcover.js +37 -0
- package/dist/map/marker/map-marker.d.ts +120 -0
- package/dist/map/marker/map-marker.js +109 -0
- package/dist/map/points/map-points.d.ts +139 -0
- package/dist/map/points/map-points.js +161 -0
- package/dist/map/position/map-position.d.ts +70 -0
- package/dist/map/position/map-position.js +89 -0
- package/dist/map/raster/map-raster.d.ts +84 -0
- package/dist/map/raster/map-raster.js +96 -0
- package/dist/map/root/map-root.d.ts +269 -52
- package/dist/map/root/map-root.js +473 -5
- package/dist/map/route/map-route.d.ts +73 -0
- package/dist/map/route/map-route.js +52 -0
- package/dist/map/terrain/map-terrain.d.ts +68 -0
- package/dist/map/terrain/map-terrain.js +58 -0
- package/dist/megamenu/root/megamenu-root.d.ts +27 -25
- package/dist/menu/item/menu-item.d.ts +30 -31
- package/dist/menu/root/menu-root.d.ts +25 -29
- package/dist/meter/root/meter-root.d.ts +22 -21
- package/dist/navigation/root/navigation-root.d.ts +13 -16
- package/dist/notifications/group/notification-group.d.ts +27 -28
- package/dist/notifications/notification/notification.d.ts +35 -42
- package/dist/notifications/root/notifications-root.d.ts +22 -24
- package/dist/number-input/root/number-input-root.d.ts +46 -50
- package/dist/object-inspector/root/object-inspector-root.d.ts +46 -58
- package/dist/option/group/option-group.d.ts +11 -11
- package/dist/option/root/option-root.d.ts +28 -33
- package/dist/outline/root/outline-root.d.ts +18 -17
- package/dist/pagination/root/pagination-root.d.ts +37 -39
- package/dist/pagination/size/pagination-size.d.ts +37 -43
- package/dist/pagination/summary/pagination-summary.d.ts +12 -14
- package/dist/pin-input/root/pin-input-root.d.ts +32 -38
- package/dist/popover/root/popover-root.d.ts +16 -21
- package/dist/progress/root/progress-root.d.ts +16 -14
- package/dist/qr-code/root/qr-code-root.d.ts +22 -25
- package/dist/quote/root/quote-root.d.ts +5 -6
- package/dist/radio/group/radio-group.d.ts +26 -28
- package/dist/radio/root/radio-root.d.ts +24 -28
- package/dist/rating/root/rating-root.d.ts +27 -30
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +43 -55
- package/dist/scroll-area/root/scroll-area-root.d.ts +15 -21
- package/dist/select/root/select-root.d.ts +41 -44
- package/dist/skeleton/root/skeleton-root.d.ts +7 -8
- package/dist/skip-link/root/skip-link-root.d.ts +21 -28
- package/dist/slider/root/slider-root.d.ts +36 -39
- package/dist/sparkline/root/sparkline-root.d.ts +22 -28
- package/dist/speed-dial/item/speed-dial-item.d.ts +21 -21
- package/dist/speed-dial/root/speed-dial-root.d.ts +25 -27
- package/dist/splitter/root/splitter-root.d.ts +37 -41
- package/dist/stat/group/stat-group.d.ts +4 -4
- package/dist/stat/root/stat-root.d.ts +8 -9
- package/dist/steps/root/steps-root.d.ts +11 -14
- package/dist/steps/step/step.d.ts +22 -29
- package/dist/switch/root/switch-root.d.ts +20 -24
- package/dist/table/cell/table-cell.d.ts +18 -8
- package/dist/table/cell/table-cell.js +5 -1
- package/dist/table/column/table-column.d.ts +62 -55
- package/dist/table/root/table-root.d.ts +16 -17
- package/dist/table/row/table-row.d.ts +3 -3
- package/dist/tabs/panel/tab-panel.d.ts +3 -3
- package/dist/tabs/root/tabs-root.d.ts +19 -17
- package/dist/tabs/tab/tab.d.ts +6 -6
- package/dist/tag/root/tag-root.d.ts +11 -12
- package/dist/textarea/root/textarea-root.d.ts +29 -32
- package/dist/time-input/root/time-input-root.d.ts +70 -69
- package/dist/time-picker/root/time-picker-root.d.ts +58 -66
- package/dist/timeline/item/timeline-item.d.ts +18 -24
- package/dist/timeline/root/timeline-root.d.ts +13 -21
- package/dist/toast/item/toast-item.d.ts +21 -22
- package/dist/toast/root/toast-root.d.ts +18 -23
- package/dist/toggle/group/toggle-group.d.ts +23 -25
- package/dist/toggle/root/toggle-root.d.ts +8 -8
- package/dist/toolbar/root/toolbar-root.d.ts +7 -10
- package/dist/tooltip/root/tooltip-root.d.ts +41 -47
- package/dist/tour/root/tour-root.d.ts +24 -26
- package/dist/tour/stop/tour-stop.d.ts +39 -48
- package/dist/tree/item/tree-item.d.ts +23 -25
- package/dist/tree/root/tree-root.d.ts +13 -12
- package/dist/trend/root/trend-root.d.ts +18 -19
- package/dist/video/root/video-root.d.ts +108 -101
- package/dist/video-playlist/item/video-playlist-item.d.ts +23 -28
- package/dist/video-playlist/menu/video-playlist-menu.d.ts +17 -21
- package/dist/video-playlist/root/video-playlist-root.d.ts +21 -25
- package/dist/virtual-list/root/virtual-list-root.d.ts +27 -26
- package/package.json +5 -5
- package/types/jsx.d.ts +14011 -11983
- package/types/svelte.d.ts +10 -0
- package/types/vue.d.ts +2143 -1497
|
@@ -4,26 +4,21 @@ import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
|
4
4
|
* @summary One row of a list.
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
|
-
*
|
|
7
|
+
* Provides layout and semantics. The row is a target only when you set `href`.
|
|
8
8
|
*
|
|
9
|
-
* **`href` makes the row
|
|
10
|
-
*
|
|
11
|
-
* own.
|
|
12
|
-
*
|
|
9
|
+
* **`href` makes the whole row a link.** The component wraps its own layout in
|
|
10
|
+
* an `<a part="row">`, as `Tree.Item` does. An anchor of your own cannot wrap
|
|
11
|
+
* slots it does not own. With the anchor, the whole row is a target, Enter
|
|
12
|
+
* follows it, middle click opens a new tab, the status bar shows the
|
|
13
|
+
* destination, and all of it works before JavaScript runs.
|
|
13
14
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* Client-side routing needs your own handling. A router cannot render its
|
|
16
|
+
* anchor inside the shadow root, so to navigate without a page load, intercept
|
|
17
|
+
* the click: the anchor is in `composedPath()`. Handle only a plain primary
|
|
18
|
+
* click, so native gestures keep working.
|
|
17
19
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* root, so a framework wanting a soft navigation intercepts the click on the
|
|
21
|
-
* way out: the anchor is in `composedPath()`, and taking only a plain primary
|
|
22
|
-
* press leaves every native gesture alone.
|
|
23
|
-
*
|
|
24
|
-
* **`data-list-item` is still the answer for a row that is not a destination.**
|
|
25
|
-
* A list row is often a container of controls rather than a place to go, and a
|
|
26
|
-
* row with `href` unset behaves exactly as it always did.
|
|
20
|
+
* **For a row that holds controls and is not a destination, use
|
|
21
|
+
* `data-list-item`.** With `href` unset, the row is not a link.
|
|
27
22
|
*
|
|
28
23
|
* @since 0.1.0
|
|
29
24
|
* @status stable
|
|
@@ -35,11 +30,11 @@ import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
|
35
30
|
* @slot end - Trailing content.
|
|
36
31
|
* @slot start - Leading content, usually an icon or an avatar.
|
|
37
32
|
*
|
|
38
|
-
* @csspart row - The layout
|
|
33
|
+
* @csspart row - The row's layout. It sits inside the host so the host can carry a list marker.
|
|
39
34
|
*/
|
|
40
35
|
export declare class HelixHeadlessListItem extends HelixElement {
|
|
41
36
|
/**
|
|
42
|
-
*
|
|
37
|
+
* The URL the row links to. Leave it empty for a row that is not a link.
|
|
43
38
|
*
|
|
44
39
|
* Empty rather than optional, and unset by default: a list is not always a
|
|
45
40
|
* list of links, and an empty `href` written onto every row would be a link
|
|
@@ -47,12 +42,12 @@ export declare class HelixHeadlessListItem extends HelixElement {
|
|
|
47
42
|
*/
|
|
48
43
|
href: string;
|
|
49
44
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
45
|
+
* The link's `rel` value. You set it yourself. It is not derived from
|
|
46
|
+
* `target`, for the reason `Tree.Item` gives.
|
|
52
47
|
*/
|
|
53
48
|
rel: string;
|
|
54
49
|
/**
|
|
55
|
-
* Where the link opens
|
|
50
|
+
* Where the link opens. Use it for a row that leaves the site.
|
|
56
51
|
*/
|
|
57
52
|
target: string;
|
|
58
53
|
protected willUpdate(changed: PropertyValues): void;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
/**
|
|
4
|
-
* @summary A set of rows,
|
|
4
|
+
* @summary A set of rows, announced as a list.
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
|
-
* `role="list"` on the host, so
|
|
8
|
-
*
|
|
9
|
-
* use a list rather than a stack of divs.
|
|
7
|
+
* Sets `role="list"` on the host, so a screen reader counts the rows and
|
|
8
|
+
* announces each one's position, such as "1 of 7".
|
|
10
9
|
*
|
|
11
10
|
* @since 0.1.0
|
|
12
11
|
* @status stable
|
|
@@ -18,7 +17,7 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
18
17
|
*/
|
|
19
18
|
export declare class HelixHeadlessList extends HelixElement {
|
|
20
19
|
/**
|
|
21
|
-
*
|
|
20
|
+
* The kind of list, which follows from the content.
|
|
22
21
|
*
|
|
23
22
|
* On the headless tier because it is meaning rather than decoration, the same
|
|
24
23
|
* argument `severity` makes on `Callout`. A numbered list is numbered because
|
|
@@ -41,11 +40,11 @@ export declare class HelixHeadlessList extends HelixElement {
|
|
|
41
40
|
*/
|
|
42
41
|
kind?: 'default' | 'description' | 'ordered' | 'unordered';
|
|
43
42
|
/**
|
|
44
|
-
*
|
|
43
|
+
* The list's name, read by screen readers.
|
|
45
44
|
*/
|
|
46
45
|
label: string;
|
|
47
46
|
/**
|
|
48
|
-
*
|
|
47
|
+
* The markers an ordered list draws. It takes the five values of `<ol type>`.
|
|
49
48
|
*
|
|
50
49
|
* Reflected, because this is one of the things a stylesheet selects on, each
|
|
51
50
|
* value mapping to a `list-style-type`. The platform's spellings rather than
|
|
@@ -3,22 +3,22 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
3
3
|
import { HelixHeadlessOption } from '../../option/root/option-root.js';
|
|
4
4
|
declare const HelixHeadlessListbox_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
5
5
|
/**
|
|
6
|
-
* @summary A list of options,
|
|
6
|
+
* @summary A list of options, from which you choose one or several.
|
|
7
7
|
*
|
|
8
8
|
* @description
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* The listbox is the control, and options are its items. A Select is a listbox
|
|
10
|
+
* with a trigger in front of it, a Combobox is a listbox with a text input, and
|
|
11
|
+
* a command palette is a listbox in a dialog. They differ only in what opens
|
|
12
|
+
* the list and what filters it.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
* `Checkbox.Group`'s
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* With `multiple` set, `value` is a comma-separated string, like
|
|
15
|
+
* `Checkbox.Group`'s, because `MixinControllerValue` holds a string. The form
|
|
16
|
+
* receives one entry per selected option, as a native `<select multiple>` sends
|
|
17
|
+
* it, so your server does not split on commas.
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
* is where the keyboard is
|
|
21
|
-
* `aria-activedescendant`
|
|
19
|
+
* Selected and active are separate. The selected option is the value. The
|
|
20
|
+
* active option is where the keyboard is: the arrow keys move it, and
|
|
21
|
+
* `aria-activedescendant` points to it while focus stays on the list.
|
|
22
22
|
*
|
|
23
23
|
* @since 0.1.0
|
|
24
24
|
* @status stable
|
|
@@ -27,28 +27,28 @@ declare const HelixHeadlessListbox_base: (new (...args: any[]) => import("@fusio
|
|
|
27
27
|
* @documentation https://fusion.dev/helix/components/listbox
|
|
28
28
|
*
|
|
29
29
|
* @slot - The options, and any groups of them.
|
|
30
|
-
* @slot filter-icon - The
|
|
31
|
-
* @slot hint -
|
|
32
|
-
* @slot label -
|
|
30
|
+
* @slot filter-icon - The icon in the filter field. Defaults to a magnifying glass.
|
|
31
|
+
* @slot hint - The hint, for content richer than plain text.
|
|
32
|
+
* @slot label - The label, for content richer than plain text.
|
|
33
33
|
*
|
|
34
|
-
* @event {Event} change -
|
|
35
|
-
* @event {HelixBeforeChangeEvent} helix-before-change - Fired when the
|
|
36
|
-
* @event {HelixFilterEvent} helix-filter - Fired before the list
|
|
37
|
-
* @event {Event} input -
|
|
34
|
+
* @event {Event} change - Fired after the value changes.
|
|
35
|
+
* @event {HelixBeforeChangeEvent} helix-before-change - Fired when the value is about to change, and cancelable.
|
|
36
|
+
* @event {HelixFilterEvent} helix-filter - Fired before the list is filtered, and cancelable.
|
|
37
|
+
* @event {Event} input - Fired after the value changes.
|
|
38
38
|
*
|
|
39
|
-
* @csspart empty -
|
|
40
|
-
* @csspart feedback -
|
|
41
|
-
* @csspart filter-icon - The
|
|
42
|
-
* @csspart filter-mark - The
|
|
39
|
+
* @csspart empty - The text shown when the filter hides every option.
|
|
40
|
+
* @csspart feedback - The message that says what is wrong with the value.
|
|
41
|
+
* @csspart filter-icon - The icon beside the filter field.
|
|
42
|
+
* @csspart filter-mark - The default icon beside the filter field, shown when none is slotted.
|
|
43
43
|
* @csspart hint - Help under the list.
|
|
44
|
-
* @csspart items - The list
|
|
45
|
-
* @csspart label - The
|
|
46
|
-
* @csspart live -
|
|
47
|
-
* @csspart loading -
|
|
48
|
-
* @csspart search - The region
|
|
49
|
-
* @csspart search-field - The field
|
|
44
|
+
* @csspart items - The list of options.
|
|
45
|
+
* @csspart label - The label above the list.
|
|
46
|
+
* @csspart live - A copy of the empty and loading text, in a region that screen readers announce when it changes. Visually hidden in the styled tier.
|
|
47
|
+
* @csspart loading - The text shown while the options load.
|
|
48
|
+
* @csspart search - The region that holds the filter field.
|
|
49
|
+
* @csspart search-field - The filter field.
|
|
50
50
|
*
|
|
51
|
-
* @cssstate invalid -
|
|
51
|
+
* @cssstate invalid - The control has an error to show, from the browser's validation or from your `feedback`.
|
|
52
52
|
*/
|
|
53
53
|
export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
54
54
|
protected readonly aria: AriaForwardController;
|
|
@@ -62,11 +62,11 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
62
62
|
*/
|
|
63
63
|
autocomplete: string;
|
|
64
64
|
/**
|
|
65
|
-
*
|
|
65
|
+
* The filter text the list starts with, when `filter` is not set.
|
|
66
66
|
*/
|
|
67
67
|
defaultFilter: string;
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* The text shown when the filter hides every option.
|
|
70
70
|
*
|
|
71
71
|
* From `MixinCollection`, which every collection in the library now shares,
|
|
72
72
|
* and re-declared here only to keep this list's own wording: "No matches" is
|
|
@@ -77,7 +77,7 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
77
77
|
/** What the list is narrowed to, whoever set it. */
|
|
78
78
|
private filterState;
|
|
79
79
|
/**
|
|
80
|
-
*
|
|
80
|
+
* The text the list is filtered by, if any.
|
|
81
81
|
*
|
|
82
82
|
* Filtering hides rather than removes, so nothing about the value changes and
|
|
83
83
|
* the list is still the consumer's own elements in their own order. Reading
|
|
@@ -87,7 +87,7 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
87
87
|
get filter(): string;
|
|
88
88
|
set filter(next: string);
|
|
89
89
|
/**
|
|
90
|
-
* Whether the list
|
|
90
|
+
* Whether the list shows a field for filtering it.
|
|
91
91
|
*
|
|
92
92
|
* The field lives here rather than in whatever frames the list, because the
|
|
93
93
|
* filtering already does: `filter`, the empty state and the keyboard are all
|
|
@@ -96,11 +96,11 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
96
96
|
*/
|
|
97
97
|
filterable: boolean;
|
|
98
98
|
/**
|
|
99
|
-
* Placeholder for the field
|
|
99
|
+
* Placeholder text for the filter field.
|
|
100
100
|
*/
|
|
101
101
|
filterLabel: string;
|
|
102
102
|
/**
|
|
103
|
-
* Whether more than one option can be
|
|
103
|
+
* Whether more than one option can be chosen.
|
|
104
104
|
*/
|
|
105
105
|
multiple: boolean;
|
|
106
106
|
/**
|
|
@@ -151,14 +151,15 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
151
151
|
get selectedIndex(): number;
|
|
152
152
|
set selectedIndex(at: number);
|
|
153
153
|
/**
|
|
154
|
-
*
|
|
154
|
+
* The kind of list, as the platform names it: `select-one` or
|
|
155
|
+
* `select-multiple`.
|
|
155
156
|
*
|
|
156
157
|
* Derived rather than declared, because `multiple` already decides it and a
|
|
157
158
|
* second property could disagree.
|
|
158
159
|
*/
|
|
159
160
|
get type(): string;
|
|
160
161
|
/**
|
|
161
|
-
* Every option, in the order
|
|
162
|
+
* Every option, in the order they appear.
|
|
162
163
|
*
|
|
163
164
|
* Descendants rather than children, because a group puts a level between the
|
|
164
165
|
* list and its options and the keyboard has to move through a grouped list
|
|
@@ -179,7 +180,7 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
179
180
|
private get groups();
|
|
180
181
|
/** The options a filter has left showing. */
|
|
181
182
|
private get shown();
|
|
182
|
-
/** The chosen values,
|
|
183
|
+
/** The chosen values, as an array whether or not `multiple` is set. */
|
|
183
184
|
get values(): string[];
|
|
184
185
|
/**
|
|
185
186
|
* Applies a choice, announcing first so a listener can refuse it.
|
|
@@ -219,7 +220,7 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
219
220
|
*/
|
|
220
221
|
navigate(event: KeyboardEvent): void;
|
|
221
222
|
/**
|
|
222
|
-
*
|
|
223
|
+
* Scrolls the chosen option to the middle of the list.
|
|
223
224
|
*
|
|
224
225
|
* A method rather than something this does on its own, because a listbox
|
|
225
226
|
* opening on its answer usually wants it merely *visible* and the browser
|
|
@@ -266,7 +267,7 @@ export declare class HelixHeadlessListbox extends HelixHeadlessListbox_base {
|
|
|
266
267
|
* their answer moved when it did not is worse than telling them nothing.
|
|
267
268
|
*/
|
|
268
269
|
private readonly handleFilter;
|
|
269
|
-
/** Requests a
|
|
270
|
+
/** Requests a new filter, and returns whether the request went through. */
|
|
270
271
|
requestFilter(next: string): boolean;
|
|
271
272
|
/**
|
|
272
273
|
* Sends the keys that belong to the list to the list.
|
|
@@ -1,28 +1,23 @@
|
|
|
1
1
|
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
/**
|
|
4
|
-
* @summary
|
|
4
|
+
* @summary Shows that work of unknown length is in progress.
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* on its own, and it costs one element.
|
|
7
|
+
* Draws two concentric circles: a track and a moving arc. The track shows the
|
|
8
|
+
* arc as a proportion of a whole, and costs one element.
|
|
10
9
|
*
|
|
11
|
-
* **The center is a slot
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* wraps it. Nothing is rendered when nothing is slotted, so an unbranded loader
|
|
15
|
-
* is still two circles and no extra box.
|
|
10
|
+
* **The center is a slot, empty by default.** Put your logo there once, where
|
|
11
|
+
* your app wraps the loader. When nothing is slotted, nothing extra is
|
|
12
|
+
* rendered.
|
|
16
13
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* wordmark upside down twice a second is worse than no wordmark.
|
|
14
|
+
* Slotted content does not rotate. Only the arc moves, so a logo stays
|
|
15
|
+
* readable.
|
|
20
16
|
*
|
|
21
|
-
* The
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* never had.
|
|
17
|
+
* The role is set on the host through `ElementInternals`. A `role` in the
|
|
18
|
+
* shadow root would leave the host itself without a role in the light DOM, and
|
|
19
|
+
* a `role` attribute on the host would be missing from React server-rendered
|
|
20
|
+
* markup.
|
|
26
21
|
*
|
|
27
22
|
* @since 0.1.0
|
|
28
23
|
* @status stable
|
|
@@ -30,16 +25,17 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
30
25
|
* @aliases Spinner, Busy, Activity
|
|
31
26
|
* @documentation https://fusion.dev/helix/components/loader
|
|
32
27
|
*
|
|
33
|
-
* @slot -
|
|
28
|
+
* @slot - An icon or logo that stays still at the center. Empty by default.
|
|
34
29
|
*
|
|
35
30
|
* @csspart indicator - The arc that turns.
|
|
36
|
-
* @csspart mark - The region
|
|
31
|
+
* @csspart mark - The region that holds the slotted content at the center.
|
|
37
32
|
* @csspart svg - The rotating circle pair.
|
|
38
33
|
* @csspart track - The full circle behind the indicator.
|
|
39
34
|
*/
|
|
40
35
|
export declare class HelixHeadlessLoader extends HelixElement {
|
|
41
36
|
/**
|
|
42
|
-
*
|
|
37
|
+
* The loader's name, announced by screen readers while the work is in
|
|
38
|
+
* progress.
|
|
43
39
|
*/
|
|
44
40
|
label: string;
|
|
45
41
|
protected willUpdate(changed: PropertyValues): void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { nothing, type PropertyValues } from 'lit';
|
|
3
|
+
import { type MapPoint } from '../route/map-route.js';
|
|
4
|
+
/**
|
|
5
|
+
* @summary A shape on a map, such as a delivery zone.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* `connectMap` fills the shape as a layer of the map, under its place names.
|
|
9
|
+
* The frame lists each area by its `label` and `description` for screen
|
|
10
|
+
* readers.
|
|
11
|
+
*
|
|
12
|
+
* @since 0.105.0
|
|
13
|
+
* @status experimental
|
|
14
|
+
* @category media
|
|
15
|
+
* @aliases Map region, Polygon, Zone
|
|
16
|
+
* @documentation https://fusion.dev/helix/components/map
|
|
17
|
+
*
|
|
18
|
+
* @event {HelixMapPartChangeEvent} helix-map-part-change - The area's points, name, or color changed. Used by `connectMap`; pages do not need to listen for it.
|
|
19
|
+
*/
|
|
20
|
+
export declare class HelixHeadlessMapArea extends HelixElement {
|
|
21
|
+
/** More about the area. Read after its label in the frame's list. */
|
|
22
|
+
description?: string;
|
|
23
|
+
/**
|
|
24
|
+
* A name this layer shares with other layers, such as a route and its
|
|
25
|
+
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
26
|
+
* named by the first of them, and its checkbox shows or hides them all.
|
|
27
|
+
*/
|
|
28
|
+
group?: string;
|
|
29
|
+
/** Marks this as a layer for the frame and the connector, whatever its tag. */
|
|
30
|
+
readonly isMapLayer = true;
|
|
31
|
+
/** @internal Which kind of layer, which is how the connector draws it. */
|
|
32
|
+
readonly layerKind: 'area' | 'route';
|
|
33
|
+
/** The area's name, used in the frame's list. */
|
|
34
|
+
label?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The corners of the shape, in order. The last point connects back to the
|
|
37
|
+
* first.
|
|
38
|
+
*/
|
|
39
|
+
points?: MapPoint[];
|
|
40
|
+
/** Tells the frame and the connector the shape moved, was renamed or was retoned. */
|
|
41
|
+
protected updated(changed: PropertyValues): void;
|
|
42
|
+
protected render(): typeof nothing;
|
|
43
|
+
}
|
|
44
|
+
declare global {
|
|
45
|
+
interface HTMLElementTagNameMap {
|
|
46
|
+
'helix-headless-map-area': HelixHeadlessMapArea;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement, HelixElement, HelixMapPartChangeEvent } from '@fusion.dev/helix-core';
|
|
8
|
+
import { nothing } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
import { pointsConverter } from '../route/map-route.js';
|
|
11
|
+
let HelixHeadlessMapArea = class HelixHeadlessMapArea extends HelixElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.isMapLayer = true;
|
|
15
|
+
this.layerKind = 'area';
|
|
16
|
+
}
|
|
17
|
+
updated(changed) {
|
|
18
|
+
super.updated(changed);
|
|
19
|
+
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'layer' }));
|
|
20
|
+
}
|
|
21
|
+
render() {
|
|
22
|
+
return nothing;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
__decorate([
|
|
26
|
+
property()
|
|
27
|
+
], HelixHeadlessMapArea.prototype, "description", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
property()
|
|
30
|
+
], HelixHeadlessMapArea.prototype, "group", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
property()
|
|
33
|
+
], HelixHeadlessMapArea.prototype, "label", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
property({ converter: pointsConverter })
|
|
36
|
+
], HelixHeadlessMapArea.prototype, "points", void 0);
|
|
37
|
+
HelixHeadlessMapArea = __decorate([
|
|
38
|
+
customElement('helix-headless-map-area')
|
|
39
|
+
], HelixHeadlessMapArea);
|
|
40
|
+
export { HelixHeadlessMapArea };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { nothing, type PropertyValues } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary The buildings on a map, raised to their real heights in 3D.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* `connectMap` raises the buildings in the map's tiles to the heights the tiles
|
|
8
|
+
* record, under the map's place names. Tilt the map to see the heights. The
|
|
9
|
+
* buildings appear from zoom 13, where the tiles start to carry them.
|
|
10
|
+
*
|
|
11
|
+
* MapLibre draws the buildings. Leaflet draws maps flat, so a Leaflet map shows
|
|
12
|
+
* none. The frame lists the layer by its `label` for screen readers.
|
|
13
|
+
*
|
|
14
|
+
* @since 0.105.0
|
|
15
|
+
* @status experimental
|
|
16
|
+
* @category media
|
|
17
|
+
* @aliases 3D buildings, Extrusion
|
|
18
|
+
* @documentation https://fusion.dev/helix/components/map
|
|
19
|
+
*
|
|
20
|
+
* @event {HelixMapPartChangeEvent} helix-map-part-change - The layer's name or color changed. Used by `connectMap`; pages do not need to listen for it.
|
|
21
|
+
*/
|
|
22
|
+
export declare class HelixHeadlessMapBuildings extends HelixElement {
|
|
23
|
+
/** More about the buildings. Read after the label in the frame's list. */
|
|
24
|
+
description?: string;
|
|
25
|
+
/**
|
|
26
|
+
* A name this layer shares with other layers, such as a route and its
|
|
27
|
+
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
28
|
+
* named by the first of them, and its checkbox shows or hides them all.
|
|
29
|
+
*/
|
|
30
|
+
group?: string;
|
|
31
|
+
/** Marks this as a layer for the frame and the connector, whatever its tag. */
|
|
32
|
+
readonly isMapLayer = true;
|
|
33
|
+
/** @internal Which kind of layer, which is how the connector draws it. */
|
|
34
|
+
readonly layerKind: 'buildings';
|
|
35
|
+
/** The layer's name in the frame's list. */
|
|
36
|
+
label: string;
|
|
37
|
+
/** Tells the frame and the connector the layer was renamed or recolored. */
|
|
38
|
+
protected updated(changed: PropertyValues): void;
|
|
39
|
+
protected render(): typeof nothing;
|
|
40
|
+
}
|
|
41
|
+
declare global {
|
|
42
|
+
interface HTMLElementTagNameMap {
|
|
43
|
+
'helix-headless-map-buildings': HelixHeadlessMapBuildings;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement, HelixElement, HelixMapPartChangeEvent } from '@fusion.dev/helix-core';
|
|
8
|
+
import { nothing } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
let HelixHeadlessMapBuildings = class HelixHeadlessMapBuildings extends HelixElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.isMapLayer = true;
|
|
14
|
+
this.layerKind = 'buildings';
|
|
15
|
+
this.label = '3D buildings';
|
|
16
|
+
}
|
|
17
|
+
updated(changed) {
|
|
18
|
+
super.updated(changed);
|
|
19
|
+
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'layer' }));
|
|
20
|
+
}
|
|
21
|
+
render() {
|
|
22
|
+
return nothing;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
__decorate([
|
|
26
|
+
property()
|
|
27
|
+
], HelixHeadlessMapBuildings.prototype, "description", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
property()
|
|
30
|
+
], HelixHeadlessMapBuildings.prototype, "group", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
property()
|
|
33
|
+
], HelixHeadlessMapBuildings.prototype, "label", void 0);
|
|
34
|
+
HelixHeadlessMapBuildings = __decorate([
|
|
35
|
+
customElement('helix-headless-map-buildings')
|
|
36
|
+
], HelixHeadlessMapBuildings);
|
|
37
|
+
export { HelixHeadlessMapBuildings };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { nothing, type PropertyValues } from 'lit';
|
|
3
|
+
import type { MapTerrainEncoding } from '../terrain/map-terrain.js';
|
|
4
|
+
/**
|
|
5
|
+
* @summary Contour lines on a map, each at one height, labeled at every fifth.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* `connectMap` traces lines of equal height from elevation tiles, the same
|
|
9
|
+
* tiles `helix-map-terrain` reads, and draws them under the roads. The lines
|
|
10
|
+
* are closer together as the map zooms in, and every fifth, the index line,
|
|
11
|
+
* is heavier and labeled with its height. They show from zoom 9.
|
|
12
|
+
*
|
|
13
|
+
* Set `src` to an elevation tile URL with `{z}`, `{x}`, and `{y}` in it, and
|
|
14
|
+
* `encoding` to how its tiles store heights. Set `unit` to `feet` to label
|
|
15
|
+
* the heights in feet. Put the provider's credit in `attribution`.
|
|
16
|
+
*
|
|
17
|
+
* MapLibre draws the lines. The frame lists the layer by its `label` for
|
|
18
|
+
* screen readers.
|
|
19
|
+
*
|
|
20
|
+
* @since 0.105.0
|
|
21
|
+
* @status experimental
|
|
22
|
+
* @category media
|
|
23
|
+
* @aliases Contours, Topographic lines, Elevation lines, Isolines
|
|
24
|
+
* @documentation https://fusion.dev/helix/components/map
|
|
25
|
+
*
|
|
26
|
+
* @event {HelixMapPartChangeEvent} helix-map-part-change - The tiles, the unit, or the layer's name or color changed. Used by `connectMap`; pages do not need to listen for it.
|
|
27
|
+
*/
|
|
28
|
+
export declare class HelixHeadlessMapContours extends HelixElement {
|
|
29
|
+
/** The elevation provider's credit, shown in the frame's footer. Links in it stay links. */
|
|
30
|
+
attribution?: string;
|
|
31
|
+
/** More about the lines. Read after the label in the frame's list. */
|
|
32
|
+
description?: string;
|
|
33
|
+
/** How the tiles store heights in their colors: `terrarium` or `mapbox`. */
|
|
34
|
+
encoding: MapTerrainEncoding;
|
|
35
|
+
/**
|
|
36
|
+
* A name this layer shares with other layers, such as a route and its
|
|
37
|
+
* dotted legs. The layers menu shows layers in the same group as one entry,
|
|
38
|
+
* named by the first of them, and its checkbox shows or hides them all.
|
|
39
|
+
*/
|
|
40
|
+
group?: string;
|
|
41
|
+
/** Marks this as a layer for the frame and the connector, whatever its tag. */
|
|
42
|
+
readonly isMapLayer = true;
|
|
43
|
+
/** @internal Which kind of layer, which is how the connector draws it. */
|
|
44
|
+
readonly layerKind: 'contours';
|
|
45
|
+
/** The layer's name in the frame's list. */
|
|
46
|
+
label: string;
|
|
47
|
+
/** The deepest zoom the provider has tiles for. */
|
|
48
|
+
maxZoom?: number;
|
|
49
|
+
/** One elevation tile URL with `{z}`, `{x}`, and `{y}` in it. */
|
|
50
|
+
src?: string;
|
|
51
|
+
/** The unit the heights are labeled in: `meters` or `feet`. */
|
|
52
|
+
unit: 'feet' | 'meters';
|
|
53
|
+
/** Tells the frame and the connector the layer changed. */
|
|
54
|
+
protected updated(changed: PropertyValues): void;
|
|
55
|
+
protected render(): typeof nothing;
|
|
56
|
+
}
|
|
57
|
+
declare global {
|
|
58
|
+
interface HTMLElementTagNameMap {
|
|
59
|
+
'helix-headless-map-contours': HelixHeadlessMapContours;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement, HelixElement, HelixMapPartChangeEvent } from '@fusion.dev/helix-core';
|
|
8
|
+
import { nothing } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
let HelixHeadlessMapContours = class HelixHeadlessMapContours extends HelixElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.encoding = 'terrarium';
|
|
14
|
+
this.isMapLayer = true;
|
|
15
|
+
this.layerKind = 'contours';
|
|
16
|
+
this.label = 'Contour lines';
|
|
17
|
+
this.unit = 'meters';
|
|
18
|
+
}
|
|
19
|
+
updated(changed) {
|
|
20
|
+
super.updated(changed);
|
|
21
|
+
this.dispatchEvent(new HelixMapPartChangeEvent({ kind: 'layer' }));
|
|
22
|
+
}
|
|
23
|
+
render() {
|
|
24
|
+
return nothing;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
__decorate([
|
|
28
|
+
property()
|
|
29
|
+
], HelixHeadlessMapContours.prototype, "attribution", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
property()
|
|
32
|
+
], HelixHeadlessMapContours.prototype, "description", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
property()
|
|
35
|
+
], HelixHeadlessMapContours.prototype, "encoding", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
property()
|
|
38
|
+
], HelixHeadlessMapContours.prototype, "group", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
property()
|
|
41
|
+
], HelixHeadlessMapContours.prototype, "label", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
property({ attribute: 'max-zoom', type: Number })
|
|
44
|
+
], HelixHeadlessMapContours.prototype, "maxZoom", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
property()
|
|
47
|
+
], HelixHeadlessMapContours.prototype, "src", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
property()
|
|
50
|
+
], HelixHeadlessMapContours.prototype, "unit", void 0);
|
|
51
|
+
HelixHeadlessMapContours = __decorate([
|
|
52
|
+
customElement('helix-headless-map-contours')
|
|
53
|
+
], HelixHeadlessMapContours);
|
|
54
|
+
export { HelixHeadlessMapContours };
|