@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
|
@@ -5,23 +5,24 @@ declare const HelixHeadlessDrawer_base: (new (...args: any[]) => import("@fusion
|
|
|
5
5
|
* @summary A panel that slides in from an edge.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
*
|
|
9
|
-
* `helix-before-open` and `helix-before-close`
|
|
10
|
-
*
|
|
8
|
+
* Uses `MixinControllerOpen`, so `open`, `defaultOpen`, and the
|
|
9
|
+
* `helix-before-open` and `helix-before-close` events work the same way as on
|
|
10
|
+
* an accordion item.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* trapped inside, Escape and an outside press close it, and the page behind is
|
|
14
|
-
* covered. A panel with the look of a modal and none of its behavior is worse
|
|
15
|
-
* than an inline one, because it invites the reader to treat it as blocking.
|
|
12
|
+
* The drawer is modal by default, which means three things:
|
|
16
13
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* `aria-modal` and the scrim come from the element too, and
|
|
21
|
-
* `drawer-root.ssr.spec.ts` asserts the panel carries no hand-written `inert`
|
|
22
|
-
* and no hand-written `role`.
|
|
14
|
+
* - focus is trapped inside
|
|
15
|
+
* - Escape and a press outside close it
|
|
16
|
+
* - the page behind is covered
|
|
23
17
|
*
|
|
24
|
-
*
|
|
18
|
+
* Content stays mounted when the drawer is closed, so it is in the server
|
|
19
|
+
* markup and can animate. A closed `<dialog>` is already out of the tab order
|
|
20
|
+
* and the accessibility tree, so the drawer does not write `inert`. The `role`,
|
|
21
|
+
* `aria-modal`, and the scrim also come from the `<dialog>` element.
|
|
22
|
+
* `drawer-root.ssr.spec.ts` checks that the panel has no hand-written `inert`
|
|
23
|
+
* or `role`.
|
|
24
|
+
*
|
|
25
|
+
* Open the drawer declaratively with the platform's invoker attributes:
|
|
25
26
|
*
|
|
26
27
|
* ```html
|
|
27
28
|
* <helix-headless-button commandfor="nav" command="--toggle">Menu</helix-headless-button>
|
|
@@ -37,10 +38,10 @@ declare const HelixHeadlessDrawer_base: (new (...args: any[]) => import("@fusion
|
|
|
37
38
|
* @slot - The drawer's content.
|
|
38
39
|
* @slot header - Content pinned above the scrolling area.
|
|
39
40
|
*
|
|
40
|
-
* @event {Event} close -
|
|
41
|
+
* @event {Event} close - Sent from the host after the drawer closes, because the native `close` event does not leave the shadow root.
|
|
41
42
|
* @event {HelixBeforeCloseEvent} helix-before-close - Fired before the panel closes, and cancelable.
|
|
42
|
-
* @event {HelixBeforeOpenEvent} helix-before-open - Fired before the panel opens.
|
|
43
|
-
* @event {Event} toggle -
|
|
43
|
+
* @event {HelixBeforeOpenEvent} helix-before-open - Fired before the panel opens, and cancelable. Canceling it keeps the panel closed.
|
|
44
|
+
* @event {Event} toggle - Sent when the drawer opens or closes, with `newState` and `oldState`.
|
|
44
45
|
*
|
|
45
46
|
* @csspart content - The scrolling content region.
|
|
46
47
|
* @csspart header - The header region.
|
|
@@ -51,7 +52,7 @@ declare const HelixHeadlessDrawer_base: (new (...args: any[]) => import("@fusion
|
|
|
51
52
|
export declare class HelixHeadlessDrawer extends HelixHeadlessDrawer_base {
|
|
52
53
|
protected readonly commands: CommandController;
|
|
53
54
|
/**
|
|
54
|
-
* Which close requests the browser
|
|
55
|
+
* Which close requests the browser handles on its own.
|
|
55
56
|
*
|
|
56
57
|
* `<dialog closedby>`, forwarded, and safe to forward because every path it
|
|
57
58
|
* opens still comes back through this element: a close request fires `cancel`
|
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
2
|
import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
/**
|
|
4
|
-
* @summary One row of a drill-down, which
|
|
4
|
+
* @summary One row of a drill-down, which can open a page of its own.
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
|
-
* A row that opens a page
|
|
8
|
-
* children, assigned to the `page` slot.
|
|
9
|
-
*
|
|
7
|
+
* A row that opens a page contains that page: the page's rows are this row's
|
|
8
|
+
* own children, assigned to the `page` slot. There are no ids to wire, and
|
|
9
|
+
* moving a row moves its page with it.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
* rather than its own. On the page showing, it is a row. Showing its own page,
|
|
13
|
-
* it contributes that page's rows and nothing else, because its row belongs to
|
|
14
|
-
* the page above. On neither, it renders nothing at all: the rows are in the
|
|
15
|
-
* light DOM and come back untouched, so there is no state to keep and nothing
|
|
16
|
-
* to hide with an attribute this element would have to write onto itself.
|
|
11
|
+
* What the item renders depends on the stack:
|
|
17
12
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
13
|
+
* - On the page that is showing, it renders its row.
|
|
14
|
+
* - When its own page is showing, it renders only that page's rows. Its row
|
|
15
|
+
* belongs to the page above.
|
|
16
|
+
* - Otherwise it renders nothing. The rows stay in the light DOM untouched, so
|
|
17
|
+
* there is no state to keep.
|
|
20
18
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
19
|
+
* Choosing a row dispatches an event, and the stack decides whether that drills
|
|
20
|
+
* in or runs a command.
|
|
21
|
+
*
|
|
22
|
+
* A row that opens a page shows a caret after its text and sets
|
|
23
|
+
* `aria-haspopup`, the same way `Menu` marks a row with a submenu. The server
|
|
24
|
+
* render leaves both out, because the server cannot see the children.
|
|
25
25
|
*
|
|
26
26
|
* @since 0.1.0
|
|
27
27
|
* @status stable
|
|
28
28
|
* @aliases Panel item, Drill row
|
|
29
29
|
* @documentation https://fusion.dev/helix/components/drilldown
|
|
30
30
|
*
|
|
31
|
-
* @slot - The
|
|
32
|
-
* @slot end -
|
|
33
|
-
* @slot page - The rows of the page this
|
|
34
|
-
* @slot start -
|
|
31
|
+
* @slot - The row's label.
|
|
32
|
+
* @slot end - Content after the label, usually an icon or a count.
|
|
33
|
+
* @slot page - The rows of the page this row opens.
|
|
34
|
+
* @slot start - Content before the label, usually an icon.
|
|
35
35
|
*
|
|
36
|
-
* @event {HelixSelectEvent} helix-select - Fired when the row is chosen. Cancelable:
|
|
36
|
+
* @event {HelixSelectEvent} helix-select - Fired when the row is chosen. Cancelable: canceling it stops the change and leaves the decision to you.
|
|
37
37
|
*
|
|
38
38
|
* @csspart item - The row itself.
|
|
39
|
-
* @csspart label - The
|
|
40
|
-
* @csspart mark - The caret at the end of a row that opens a page, after the `end` slot.
|
|
39
|
+
* @csspart label - The row's label.
|
|
40
|
+
* @csspart mark - The caret at the end of a row that opens a page, after the `end` slot. The caret points, so a stylesheet mirrors it in a right-to-left document.
|
|
41
41
|
*/
|
|
42
42
|
export declare class HelixHeadlessDrilldownItem extends HelixElement {
|
|
43
43
|
/**
|
|
@@ -45,7 +45,7 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
|
|
|
45
45
|
*/
|
|
46
46
|
disabled: boolean;
|
|
47
47
|
/**
|
|
48
|
-
* Whether this row holds the region's tab stop.
|
|
48
|
+
* Whether this row holds the region's tab stop. Set by the drill-down.
|
|
49
49
|
*
|
|
50
50
|
* A drill-down keeps one stop and moves within it on the arrows, so every
|
|
51
51
|
* other row is at `-1`. Leave it off every row, including the first, and
|
|
@@ -77,7 +77,7 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
|
|
|
77
77
|
*/
|
|
78
78
|
showingPage: boolean;
|
|
79
79
|
/**
|
|
80
|
-
* Identifies the row to
|
|
80
|
+
* Identifies the row to your event listeners.
|
|
81
81
|
*/
|
|
82
82
|
value: string;
|
|
83
83
|
/**
|
|
@@ -112,8 +112,8 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
|
|
|
112
112
|
/** Moves focus onto the row itself. */
|
|
113
113
|
focusItem(): void;
|
|
114
114
|
/**
|
|
115
|
-
* Whether this is the row
|
|
116
|
-
*
|
|
115
|
+
* Whether this is the current row, which in a drill-down is the row with
|
|
116
|
+
* focus.
|
|
117
117
|
*
|
|
118
118
|
* A radio group's selection is an answer it holds; a page of rows has no
|
|
119
119
|
* answer, only the row a reader has walked to, so focus is the whole of what
|
|
@@ -129,7 +129,7 @@ export declare class HelixHeadlessDrilldownItem extends HelixElement {
|
|
|
129
129
|
* dereferences what it ran out of.
|
|
130
130
|
*/
|
|
131
131
|
get selected(): boolean;
|
|
132
|
-
/**
|
|
132
|
+
/** Fires `helix-select` for this row. */
|
|
133
133
|
select(): void;
|
|
134
134
|
protected render(): TemplateResult | typeof nothing;
|
|
135
135
|
}
|
|
@@ -2,29 +2,23 @@ import { HelixElement, KeyboardNavigationController } from '@fusion.dev/helix-co
|
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
declare const HelixHeadlessDrilldown_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & typeof HelixElement;
|
|
4
4
|
/**
|
|
5
|
-
* @summary A stack of pages
|
|
5
|
+
* @summary A stack of pages that shows one at a time, with a back button.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
* One panel
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* One panel whose content changes as you move between pages. Use it where there
|
|
9
|
+
* is no room for a second column, such as on a phone, or on a touch screen with
|
|
10
|
+
* no hover to open one.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* sidebar or a settings panel. `Menu` drills too, through the same controller,
|
|
16
|
-
* because a menu deep enough to need pages wants exactly this behavior without
|
|
17
|
-
* being this component.
|
|
12
|
+
* It is a region that stays where you put it, such as inside a drawer, a
|
|
13
|
+
* sidebar, or a settings panel. A `Menu` opens from a trigger and closes when
|
|
14
|
+
* you are done. `Menu` can drill into pages too, through the same controller.
|
|
18
15
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* reported a value would be a `Listbox` whose options happen to nest, and that
|
|
22
|
-
* is the component to reach for instead.
|
|
16
|
+
* Rows are places to go and commands to run. Nothing here is form-associated
|
|
17
|
+
* and nothing is submitted. To choose a value, use a `Listbox`.
|
|
23
18
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* shares.
|
|
19
|
+
* A row that opens a page contains that page, so the stack holds one reference
|
|
20
|
+
* and reads the rest from the DOM. The behavior lives in `DrilldownController`,
|
|
21
|
+
* which `Menu` shares.
|
|
28
22
|
*
|
|
29
23
|
* @since 0.1.0
|
|
30
24
|
* @status stable
|
|
@@ -34,26 +28,26 @@ declare const HelixHeadlessDrilldown_base: (new (...args: any[]) => import("@fus
|
|
|
34
28
|
*
|
|
35
29
|
* @slot - The rows of the top page.
|
|
36
30
|
*
|
|
37
|
-
* @event {HelixSelectEvent} helix-select - Fired when a row with no page is chosen. Cancelable:
|
|
31
|
+
* @event {HelixSelectEvent} helix-select - Fired when a row with no page is chosen. Cancelable: canceling it stops the change and leaves the decision to you.
|
|
38
32
|
*
|
|
39
|
-
* @csspart back - The
|
|
40
|
-
* @csspart back-mark - The
|
|
33
|
+
* @csspart back - The button that goes back one page.
|
|
34
|
+
* @csspart back-mark - The icon on the back button.
|
|
41
35
|
* @csspart empty - Shown when there are no entries to show.
|
|
42
|
-
* @csspart header - The bar above a page,
|
|
43
|
-
* @csspart live -
|
|
44
|
-
* @csspart loading - Shown while the entries
|
|
36
|
+
* @csspart header - The bar above a page, which holds the back button and the page's name.
|
|
37
|
+
* @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.
|
|
38
|
+
* @csspart loading - Shown while the entries load.
|
|
45
39
|
* @csspart page - The region the rows are in.
|
|
46
40
|
* @csspart title - The name of the page showing.
|
|
47
41
|
*
|
|
48
|
-
* @cssstate drilled -
|
|
42
|
+
* @cssstate drilled - A row's page is showing, so a frame around the drilldown can style itself for that depth.
|
|
49
43
|
*/
|
|
50
44
|
export declare class HelixHeadlessDrilldown extends HelixHeadlessDrilldown_base {
|
|
51
45
|
/**
|
|
52
|
-
*
|
|
46
|
+
* The region's name, read by screen readers.
|
|
53
47
|
*/
|
|
54
48
|
label: string;
|
|
55
49
|
/**
|
|
56
|
-
*
|
|
50
|
+
* The text of the back button.
|
|
57
51
|
*/
|
|
58
52
|
backLabel: string;
|
|
59
53
|
/**
|
|
@@ -108,7 +102,7 @@ export declare class HelixHeadlessDrilldown extends HelixHeadlessDrilldown_base
|
|
|
108
102
|
/** Shows a row's page, and puts focus on the first row of it. */
|
|
109
103
|
private enter;
|
|
110
104
|
/**
|
|
111
|
-
*
|
|
105
|
+
* Goes back one page, and returns whether there was a page to go back to.
|
|
112
106
|
*
|
|
113
107
|
* Focus lands on the row that opened the page being left, which is why the
|
|
114
108
|
* row is read before going back rather than after: a reader who drills in and
|
|
@@ -100,7 +100,25 @@ registerElementEvents({
|
|
|
100
100
|
'toggle',
|
|
101
101
|
],
|
|
102
102
|
'helix-headless-listbox': ['change', 'helix-before-change', 'helix-filter', 'input'],
|
|
103
|
-
'helix-headless-map': [
|
|
103
|
+
'helix-headless-map': [
|
|
104
|
+
'helix-activate',
|
|
105
|
+
'helix-map-cluster',
|
|
106
|
+
'helix-map-pan',
|
|
107
|
+
'helix-map-part-change',
|
|
108
|
+
'helix-map-rotate',
|
|
109
|
+
'helix-map-tilt',
|
|
110
|
+
'helix-map-zoom',
|
|
111
|
+
],
|
|
112
|
+
'helix-headless-map-area': ['helix-map-part-change'],
|
|
113
|
+
'helix-headless-map-buildings': ['helix-map-part-change'],
|
|
114
|
+
'helix-headless-map-contours': ['helix-map-part-change'],
|
|
115
|
+
'helix-headless-map-landcover': ['helix-map-part-change'],
|
|
116
|
+
'helix-headless-map-marker': ['helix-map-cluster', 'helix-map-part-change'],
|
|
117
|
+
'helix-headless-map-points': ['helix-activate', 'helix-map-cluster', 'helix-map-part-change'],
|
|
118
|
+
'helix-headless-map-position': ['helix-map-part-change'],
|
|
119
|
+
'helix-headless-map-raster': ['helix-map-part-change'],
|
|
120
|
+
'helix-headless-map-route': ['helix-map-part-change'],
|
|
121
|
+
'helix-headless-map-terrain': ['helix-map-part-change'],
|
|
104
122
|
'helix-headless-megamenu': ['helix-before-close', 'helix-before-open', 'toggle'],
|
|
105
123
|
'helix-headless-menu': ['helix-before-close', 'helix-before-open', 'helix-select', 'toggle'],
|
|
106
124
|
'helix-headless-menu-item': ['helix-select'],
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { ArrivalController, HelixElement } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type TemplateResult } from 'lit';
|
|
3
3
|
/**
|
|
4
|
-
* @summary
|
|
4
|
+
* @summary A message that a region has nothing in it, and the next step to take.
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* one action that would put something here.
|
|
7
|
+
* Shows what would be in a region and the one action that would fill it, so an
|
|
8
|
+
* empty region does not look like one that failed to load.
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* message already in it, which is a region arriving with its words: read
|
|
17
|
-
* inconsistently at best.
|
|
10
|
+
* The message is announced, because an empty view often replaces content that
|
|
11
|
+
* was loading, and the announcement tells a screen reader user that the search
|
|
12
|
+
* returned nothing. It is announced from a status region of its own, which is
|
|
13
|
+
* rendered empty and filled a frame after the view appears. Screen readers read
|
|
14
|
+
* a region that arrives with its text already in it inconsistently.
|
|
18
15
|
*
|
|
19
|
-
* Every region is a bare slot.
|
|
20
|
-
*
|
|
21
|
-
*
|
|
16
|
+
* Every region is a bare slot. There is no `empty-state-heading` or
|
|
17
|
+
* `empty-state-actions` element: assign your own heading and actions to the
|
|
18
|
+
* slots.
|
|
22
19
|
*
|
|
23
20
|
* @since 0.1.0
|
|
24
21
|
* @status stable
|
|
@@ -26,12 +23,12 @@ import { type TemplateResult } from 'lit';
|
|
|
26
23
|
* @aliases Placeholder, NoResults, Blank
|
|
27
24
|
* @documentation https://fusion.dev/helix/components/empty
|
|
28
25
|
*
|
|
29
|
-
* @slot -
|
|
30
|
-
* @slot actions - The
|
|
31
|
-
* @slot heading -
|
|
32
|
-
* @slot icon -
|
|
26
|
+
* @slot - The message: why the region is empty, and what to do about it.
|
|
27
|
+
* @slot actions - The action that would put something in the region.
|
|
28
|
+
* @slot heading - The heading, which names what is missing.
|
|
29
|
+
* @slot icon - An icon above the heading.
|
|
33
30
|
*
|
|
34
|
-
* @csspart live -
|
|
31
|
+
* @csspart live - A copy of the heading and the message, in a live region that screen readers announce when the view appears. Visually hidden in the styled tier.
|
|
35
32
|
*/
|
|
36
33
|
export declare class HelixHeadlessEmpty extends HelixElement {
|
|
37
34
|
/**
|
|
@@ -3,19 +3,18 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
3
3
|
import '../../tag/index.js';
|
|
4
4
|
declare const HelixHeadlessFileInput_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
5
5
|
/**
|
|
6
|
-
* @summary A
|
|
6
|
+
* @summary A field for choosing files from a picker or by dropping them on it.
|
|
7
7
|
*
|
|
8
8
|
* @description
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* screen reader can find where there is one control.
|
|
9
|
+
* File Input keeps a real `<input type="file">` and makes it invisible. Only a
|
|
10
|
+
* file input opens the file picker: the browser opens it for a click on the
|
|
11
|
+
* input or on a `<label>` that points at it, and a script cannot open it on its
|
|
12
|
+
* own. A custom button would still call `.click()` on a hidden input, and a
|
|
13
|
+
* screen reader would find two controls.
|
|
15
14
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
15
|
+
* The input holds the label, the name, the validity, and the focus, and the
|
|
16
|
+
* visible trigger is a `<label for>`. The label is not focusable. The input is,
|
|
17
|
+
* and Enter and Space on it open the picker.
|
|
19
18
|
*
|
|
20
19
|
* @since 0.1.0
|
|
21
20
|
* @status stable
|
|
@@ -23,36 +22,36 @@ declare const HelixHeadlessFileInput_base: (new (...args: any[]) => import("@fus
|
|
|
23
22
|
* @aliases FileUpload, FilePicker, Dropzone, InputFile
|
|
24
23
|
* @documentation https://fusion.dev/helix/components/file-input
|
|
25
24
|
*
|
|
26
|
-
* @slot feedback -
|
|
25
|
+
* @slot feedback - The message that says what is wrong with the chosen files.
|
|
27
26
|
* @slot hint - Help under the field.
|
|
28
|
-
* @slot trigger -
|
|
27
|
+
* @slot trigger - The content that opens the picker when pressed.
|
|
29
28
|
*
|
|
30
|
-
* @event {Event} change -
|
|
31
|
-
* @event {HelixBeforeChangeEvent} helix-before-change - Fired before the chosen files change, with their names.
|
|
32
|
-
* @event {Event} input -
|
|
29
|
+
* @event {Event} change - Fired after the value changes.
|
|
30
|
+
* @event {HelixBeforeChangeEvent} helix-before-change - Fired before the chosen files change, with their names, and cancelable. Canceling it keeps the files the field had, even when the browser has already written a new pick.
|
|
31
|
+
* @event {Event} input - Fired after the value changes.
|
|
33
32
|
*
|
|
34
33
|
* @csspart control - The file input itself, which carries the label and validity.
|
|
35
|
-
* @csspart detail -
|
|
36
|
-
* @csspart feedback -
|
|
37
|
-
* @csspart field - The box
|
|
34
|
+
* @csspart detail - A file's name, with its size and type below it.
|
|
35
|
+
* @csspart feedback - The message that says what is wrong.
|
|
36
|
+
* @csspart field - The box you press or drop files on.
|
|
38
37
|
* @csspart file - One chosen file.
|
|
39
38
|
* @csspart hint - Help under the field, while nothing is wrong.
|
|
40
|
-
* @csspart kind -
|
|
39
|
+
* @csspart kind - A file's type.
|
|
41
40
|
* @csspart kind-dismiss - The remove button, when `dismissible`.
|
|
42
41
|
* @csspart kind-dismiss-mark - The glyph on the dismiss control, where none is slotted.
|
|
43
42
|
* @csspart kind-start - The category before the label.
|
|
44
|
-
* @csspart label - The
|
|
43
|
+
* @csspart label - The label above the field.
|
|
45
44
|
* @csspart list - The chosen files.
|
|
46
|
-
* @csspart meta - The row
|
|
47
|
-
* @csspart name -
|
|
48
|
-
* @csspart remove - The control that
|
|
49
|
-
* @csspart size -
|
|
45
|
+
* @csspart meta - The row that holds a file's size and type.
|
|
46
|
+
* @csspart name - A file's name.
|
|
47
|
+
* @csspart remove - The control that removes a file.
|
|
48
|
+
* @csspart size - A file's size.
|
|
50
49
|
* @csspart size-dismiss - The remove button, when `dismissible`.
|
|
51
50
|
* @csspart size-dismiss-mark - The glyph on the dismiss control, where none is slotted.
|
|
52
51
|
* @csspart size-start - The category before the label.
|
|
53
52
|
* @csspart trigger - The label that opens the picker.
|
|
54
53
|
*
|
|
55
|
-
* @cssstate invalid -
|
|
54
|
+
* @cssstate invalid - The control has an error to show, from the browser's validation or from your `feedback`.
|
|
56
55
|
*/
|
|
57
56
|
export declare class HelixHeadlessFileInput extends HelixHeadlessFileInput_base {
|
|
58
57
|
protected readonly aria: AriaForwardController;
|
|
@@ -75,7 +74,8 @@ export declare class HelixHeadlessFileInput extends HelixHeadlessFileInput_base
|
|
|
75
74
|
*/
|
|
76
75
|
multiple: boolean;
|
|
77
76
|
/**
|
|
78
|
-
*
|
|
77
|
+
* The accessible name of the control that removes a file. `{name}` is
|
|
78
|
+
* replaced with the file's name.
|
|
79
79
|
*
|
|
80
80
|
* **The name goes in**, so a row of them is heard as which one each
|
|
81
81
|
* removes rather than as "Remove" said once per file. A label with no
|
|
@@ -83,7 +83,7 @@ export declare class HelixHeadlessFileInput extends HelixHeadlessFileInput_base
|
|
|
83
83
|
*/
|
|
84
84
|
removeLabel: string;
|
|
85
85
|
/**
|
|
86
|
-
*
|
|
86
|
+
* The trigger's text when nothing is slotted into it.
|
|
87
87
|
*/
|
|
88
88
|
triggerLabel: string;
|
|
89
89
|
/**
|
|
@@ -96,7 +96,7 @@ export declare class HelixHeadlessFileInput extends HelixHeadlessFileInput_base
|
|
|
96
96
|
*/
|
|
97
97
|
private dropping;
|
|
98
98
|
/**
|
|
99
|
-
* The files
|
|
99
|
+
* The chosen files. It is read-only.
|
|
100
100
|
*
|
|
101
101
|
* Read from the input rather than mirrored into a field. The input is what
|
|
102
102
|
* the picker filled and what a form submits, so a copy here could only ever
|
|
@@ -114,7 +114,7 @@ export declare class HelixHeadlessFileInput extends HelixHeadlessFileInput_base
|
|
|
114
114
|
*/
|
|
115
115
|
private get control();
|
|
116
116
|
/**
|
|
117
|
-
*
|
|
117
|
+
* Removes every chosen file.
|
|
118
118
|
*
|
|
119
119
|
* The one change a consumer can ask for. Setting a `FileList` is refused by
|
|
120
120
|
* every browser for a reason worth keeping, but emptying one is not: nothing
|
|
@@ -122,7 +122,7 @@ export declare class HelixHeadlessFileInput extends HelixHeadlessFileInput_base
|
|
|
122
122
|
*/
|
|
123
123
|
clear(): void;
|
|
124
124
|
/**
|
|
125
|
-
*
|
|
125
|
+
* Removes one file, by its index.
|
|
126
126
|
*
|
|
127
127
|
* `removeAt` rather than `remove`, which is `Element`'s own and takes no
|
|
128
128
|
* arguments: shadowing it would break every caller who meant the node.
|
|
@@ -185,10 +185,10 @@ export declare class HelixHeadlessFileInput extends HelixHeadlessFileInput_base
|
|
|
185
185
|
private readonly handleDrop;
|
|
186
186
|
private readonly handleRemove;
|
|
187
187
|
protected firstUpdated(changed: PropertyValues): void;
|
|
188
|
-
/**
|
|
188
|
+
/** Moves focus to the native file input, as a label pointing at it would. */
|
|
189
189
|
focus(options?: FocusOptions): void;
|
|
190
190
|
/**
|
|
191
|
-
*
|
|
191
|
+
* Clears the chosen files when the form resets.
|
|
192
192
|
*
|
|
193
193
|
* Not through `commit`, and that is the point of the split: a reset is the
|
|
194
194
|
* form's decision and there is nothing here for a listener to refuse. What it
|
|
@@ -2,39 +2,35 @@ import { HelixElement } from '@fusion.dev/helix-core';
|
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
declare const HelixHeadlessFilterChip_base: (new (...args: any[]) => import("@fusion.dev/helix-core").DismissibleElement) & typeof HelixElement;
|
|
4
4
|
/**
|
|
5
|
-
* @summary One filter
|
|
5
|
+
* @summary One active filter: a field, a comparison, and the values it is compared to.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
*
|
|
9
|
-
* the
|
|
8
|
+
* Shows one filter declared by a `FilterField`: the field, the operator, and
|
|
9
|
+
* the values, with a control to remove the filter.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
* reason the common case reads as plainly as it does:
|
|
11
|
+
* The operator is shown only when it is not the field's default:
|
|
13
12
|
*
|
|
14
13
|
* ```
|
|
15
|
-
* Disposition refunded, chargeback
|
|
16
|
-
* Disposition is not refunded
|
|
17
|
-
* Created after 1 Aug a scalar
|
|
14
|
+
* Disposition refunded, chargeback default operator, hidden
|
|
15
|
+
* Disposition is not refunded chosen operator, shown
|
|
16
|
+
* Created after 1 Aug a scalar field has no default
|
|
18
17
|
* ```
|
|
19
18
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* field's default operator and pass it for every other.** Whoever builds the
|
|
24
|
-
* chip holds the field, and the field knows which its default is.
|
|
19
|
+
* Omit `operator-label` for the field's default operator and pass it for every
|
|
20
|
+
* other operator. The code that builds the chip has the field, and the field
|
|
21
|
+
* defines its default.
|
|
25
22
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* that control is an action rather than a mode.
|
|
23
|
+
* The chip shows a filter and does not apply it. Dismissing fires
|
|
24
|
+
* `helix-dismiss` as a request, as on `Tag` and `Announcement`. The chip is
|
|
25
|
+
* your element in your list, so you remove it, which keeps your model and the
|
|
26
|
+
* document in step. Call `preventDefault()` on `helix-dismiss` to cancel the
|
|
27
|
+
* dismissal, which is also how you take control of the interaction for one
|
|
28
|
+
* press. `requestChange` documents the pattern.
|
|
33
29
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
30
|
+
* To let the user change the operator, slot a menu trigger into `operator`.
|
|
31
|
+
* With the text fallback, the operator is a label. The chip does not interpret
|
|
32
|
+
* operators: their meaning belongs to your domain, as `FilterOperator`
|
|
33
|
+
* explains.
|
|
38
34
|
*
|
|
39
35
|
* @since 0.23.0
|
|
40
36
|
* @status stable
|
|
@@ -42,32 +38,32 @@ declare const HelixHeadlessFilterChip_base: (new (...args: any[]) => import("@fu
|
|
|
42
38
|
* @aliases FilterToken, FacetChip
|
|
43
39
|
* @documentation https://fusion.dev/helix/components/filter-input
|
|
44
40
|
*
|
|
45
|
-
* @slot -
|
|
46
|
-
*
|
|
47
|
-
* @slot field - Replaces the field's name
|
|
48
|
-
*
|
|
49
|
-
* @slot operator - Replaces the comparison
|
|
50
|
-
*
|
|
41
|
+
* @slot - The values the field is compared to, usually as text. It takes any
|
|
42
|
+
* content you want shown there.
|
|
43
|
+
* @slot field - Replaces the field's name. Use it to put an icon beside the name
|
|
44
|
+
* or to shorten it.
|
|
45
|
+
* @slot operator - Replaces the comparison. Put a control that changes the
|
|
46
|
+
* comparison here.
|
|
51
47
|
*
|
|
52
|
-
* @event {HelixDismissEvent} helix-dismiss - Fired when the
|
|
48
|
+
* @event {HelixDismissEvent} helix-dismiss - Fired when the user asks to remove the filter. Cancelable: call `preventDefault()` to keep the chip.
|
|
53
49
|
*
|
|
54
|
-
* @csspart dismiss - The
|
|
55
|
-
* @csspart dismiss-mark - The
|
|
50
|
+
* @csspart dismiss - The button that removes the filter.
|
|
51
|
+
* @csspart dismiss-mark - The icon on the remove button, shown when no icon is slotted.
|
|
56
52
|
* @csspart field - The name of what is being filtered.
|
|
57
|
-
* @csspart operator -
|
|
58
|
-
* @csspart values -
|
|
53
|
+
* @csspart operator - The comparison, drawn only when there is one to show.
|
|
54
|
+
* @csspart values - The values the field is compared to.
|
|
59
55
|
*/
|
|
60
56
|
export declare class HelixHeadlessFilterChip extends HelixHeadlessFilterChip_base {
|
|
61
57
|
dismissLabel: string;
|
|
62
58
|
/**
|
|
63
|
-
* The field
|
|
59
|
+
* The name of the field the filter is on, as shown on the chip.
|
|
64
60
|
*
|
|
65
61
|
* The slot's fallback rather than the slot's replacement: a consumer who wants
|
|
66
62
|
* a mark beside the name slots `field` and this goes unused.
|
|
67
63
|
*/
|
|
68
64
|
label: string;
|
|
69
65
|
/**
|
|
70
|
-
* The field
|
|
66
|
+
* The name of the field the filter is on, in your data model.
|
|
71
67
|
*
|
|
72
68
|
* Never shown. Reflected, because a consumer removing one filter from a list
|
|
73
69
|
* of them selects on this, and so undefaulted for the reason `operator` gives.
|
|
@@ -83,7 +79,7 @@ export declare class HelixHeadlessFilterChip extends HelixHeadlessFilterChip_bas
|
|
|
83
79
|
*/
|
|
84
80
|
name?: string;
|
|
85
81
|
/**
|
|
86
|
-
*
|
|
82
|
+
* The name of the active comparison in your data model.
|
|
87
83
|
*
|
|
88
84
|
* Never shown, and it is what a consumer matches on when the chip comes back
|
|
89
85
|
* to them. `label` translates; this does not.
|
|
@@ -94,7 +90,8 @@ export declare class HelixHeadlessFilterChip extends HelixHeadlessFilterChip_bas
|
|
|
94
90
|
*/
|
|
95
91
|
operator?: string;
|
|
96
92
|
/**
|
|
97
|
-
* The comparison
|
|
93
|
+
* The comparison as shown on the chip. Leave it empty for the field's usual
|
|
94
|
+
* comparison.
|
|
98
95
|
*
|
|
99
96
|
* **Empty is the whole design and not an oversight.** A chip drawn for the
|
|
100
97
|
* comparison a field is normally filtered by says the field and the values and
|