@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
|
@@ -31,51 +31,49 @@ export declare const at: (row: Readonly<Record<string, unknown>>, path: string)
|
|
|
31
31
|
*/
|
|
32
32
|
export declare const edgeOf: (align: string | undefined) => string | undefined;
|
|
33
33
|
/**
|
|
34
|
-
* @summary One column of a table: its heading,
|
|
34
|
+
* @summary One column of a table: its heading, its width, and the field it reads from each row.
|
|
35
35
|
*
|
|
36
36
|
* @description
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* that is accidentally the headings is invalid CSS a grid ignores in silence,
|
|
41
|
-
* drawing the whole table as one column. `Table`'s `columns` is dealt out a
|
|
42
|
-
* track at a time against the columns declared under it, so a heading among the
|
|
43
|
-
* widths costs its own column a width and no more, and a list longer or shorter
|
|
44
|
-
* than the columns is trimmed or shared rather than being a second count of
|
|
45
|
-
* them. A column's own `width` wins over the track in its place.
|
|
37
|
+
* Each column provides both its heading and its grid track. Adding a column
|
|
38
|
+
* adds a track, and removing one removes it. `Table`'s `columns` is applied one
|
|
39
|
+
* track at a time to the columns declared under it:
|
|
46
40
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* the values line up against, and `cell` takes a function for anything the
|
|
51
|
-
* field alone cannot express. The schema is markup and the data is a property:
|
|
52
|
-
* a schema is small, declarative, and something a reader should be able to see
|
|
53
|
-
* in the HTML, and data is large and windowed.
|
|
41
|
+
* - A heading name in the list affects only its own column's width.
|
|
42
|
+
* - A list longer or shorter than the columns is trimmed or shared.
|
|
43
|
+
* - A column's own `width` overrides the track in its place.
|
|
54
44
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
45
|
+
* This protects the table from a track list that contains the headings by
|
|
46
|
+
* mistake, which is invalid CSS that the grid ignores silently, drawing the
|
|
47
|
+
* whole table as one column.
|
|
58
48
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* in a wrapper that has to be kept the same width.
|
|
49
|
+
* Every per-column setting goes on the column, so `DataTable` needs no column
|
|
50
|
+
* configuration object:
|
|
62
51
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* `DataTable` draws the cells, so it leaves out the ones under a hidden column.
|
|
68
|
-
* A `Table`'s cells are markup the consumer wrote, so hide them with the
|
|
69
|
-
* column, as removing a column means removing its cells: a row with a cell more
|
|
70
|
-
* than the table has tracks wraps into the next.
|
|
52
|
+
* - `field` names the key the cell reads.
|
|
53
|
+
* - `sortable` lets people sort by the column.
|
|
54
|
+
* - `text-align` sets which edge the values line up against.
|
|
55
|
+
* - `cell` takes a function for anything `field` alone cannot express.
|
|
71
56
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
57
|
+
* The same element works in both `Table` and `DataTable`. It is identified by a
|
|
58
|
+
* flag, so the two roots share nothing else.
|
|
59
|
+
*
|
|
60
|
+
* The column generates no box of its own, the same as a row. The heading is a
|
|
61
|
+
* grid item of the table, so it lines up with the cells below it.
|
|
62
|
+
*
|
|
63
|
+
* `hidden` takes the column out of the grid, both its heading and its track, so
|
|
64
|
+
* the other columns keep their widths and every row keeps its cells under their
|
|
65
|
+
* headings. `hidden="until-found"` keeps the track and leaves the heading
|
|
66
|
+
* drawn, as it does on every Helix element. `DataTable` leaves out the cells
|
|
67
|
+
* under a hidden column. In a `Table` the cells are markup you wrote, so hide
|
|
68
|
+
* them with the column: a row with more cells than the table has tracks wraps
|
|
69
|
+
* onto the next line.
|
|
70
|
+
*
|
|
71
|
+
* A heading that does something holds a control. A column header is not
|
|
72
|
+
* focusable, so a sortable heading contains a `<button>`, which is the pattern
|
|
73
|
+
* for a sortable table and the only way to reach the sort by keyboard. A
|
|
74
|
+
* resizable column has a `separator` on its end edge, moved by dragging or with
|
|
75
|
+
* the arrow keys. In a table with reorderable columns, each column has a grip
|
|
76
|
+
* that the table moves.
|
|
79
77
|
*
|
|
80
78
|
* @since 0.1.0
|
|
81
79
|
* @status stable
|
|
@@ -84,20 +82,21 @@ export declare const edgeOf: (align: string | undefined) => string | undefined;
|
|
|
84
82
|
*
|
|
85
83
|
* @slot - The heading.
|
|
86
84
|
*
|
|
87
|
-
* @event {HelixBeforeResizeEvent} helix-before-resize -
|
|
85
|
+
* @event {HelixBeforeResizeEvent} helix-before-resize - The column is about to be resized, with the requested width. Cancelable: cancel it to keep the current width.
|
|
88
86
|
*
|
|
89
87
|
* @csspart column - The heading cell.
|
|
90
|
-
* @csspart grip - The handle
|
|
91
|
-
* @csspart grip-mark - The
|
|
92
|
-
* @csspart resizer - The edge
|
|
93
|
-
* @csspart sort - The button a sortable heading
|
|
88
|
+
* @csspart grip - The handle for moving the column, when the table allows it.
|
|
89
|
+
* @csspart grip-mark - The icon on the grip.
|
|
90
|
+
* @csspart resizer - The edge that is dragged to change the width, when the column is resizable.
|
|
91
|
+
* @csspart sort - The button that a sortable heading renders as.
|
|
94
92
|
*
|
|
95
93
|
* @cssstate sorted-ascending - While the table is sorted by this column, smallest first.
|
|
96
94
|
* @cssstate sorted-descending - While the table is sorted by this column, largest first.
|
|
97
95
|
*/
|
|
98
96
|
export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
99
97
|
/**
|
|
100
|
-
*
|
|
98
|
+
* A function that reads the cell's content from a row, for cells that `field`
|
|
99
|
+
* alone cannot read.
|
|
101
100
|
*
|
|
102
101
|
* A property and not an attribute, because it is a function. Set it from a Lit
|
|
103
102
|
* template with `.cell=${...}`, or assign it in script. A column with neither
|
|
@@ -106,7 +105,8 @@ export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
|
106
105
|
*/
|
|
107
106
|
cell: CellReader | undefined;
|
|
108
107
|
/**
|
|
109
|
-
*
|
|
108
|
+
* A function that reads the value used for sorting and filtering, when it
|
|
109
|
+
* differs from the cell.
|
|
110
110
|
*
|
|
111
111
|
* **The one that is easy to leave out and expensive to add later.** A cell
|
|
112
112
|
* showing `2.4 MB` sorts as a string unless something says the underlying value
|
|
@@ -132,15 +132,15 @@ export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
|
132
132
|
*/
|
|
133
133
|
field: string;
|
|
134
134
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
135
|
+
* The accessible name of the grip that moves the column. `{name}` is replaced
|
|
136
|
+
* with the heading text.
|
|
137
137
|
*
|
|
138
138
|
* **Every word a column speaks is a property**, so a table in another
|
|
139
139
|
* language hears its own rather than English around its own headings.
|
|
140
140
|
*/
|
|
141
141
|
moveLabel: string;
|
|
142
142
|
/**
|
|
143
|
-
* Whether
|
|
143
|
+
* Whether the column can be resized.
|
|
144
144
|
*
|
|
145
145
|
* By dragging the edge at the end of the heading, or with the arrow keys once
|
|
146
146
|
* it has focus, a step at a time and four with Shift. The width lands in
|
|
@@ -149,12 +149,12 @@ export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
|
149
149
|
*/
|
|
150
150
|
resizable: boolean;
|
|
151
151
|
/**
|
|
152
|
-
*
|
|
153
|
-
*
|
|
152
|
+
* The accessible name of the separator that resizes the column. `{name}` is
|
|
153
|
+
* replaced with the heading text.
|
|
154
154
|
*/
|
|
155
155
|
resizeLabel: string;
|
|
156
156
|
/**
|
|
157
|
-
* Whether
|
|
157
|
+
* Whether the table can be sorted by this column.
|
|
158
158
|
*
|
|
159
159
|
* Ignored without a `field`, and silently: a column with nothing to sort by
|
|
160
160
|
* has no order to offer, and refusing loudly would mean an actions column
|
|
@@ -226,7 +226,8 @@ export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
|
226
226
|
*/
|
|
227
227
|
width: string;
|
|
228
228
|
/**
|
|
229
|
-
*
|
|
229
|
+
* The text screen readers announce for the column's width. `{width}` is
|
|
230
|
+
* replaced with the width.
|
|
230
231
|
*/
|
|
231
232
|
widthLabel: string;
|
|
232
233
|
/**
|
|
@@ -257,7 +258,7 @@ export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
|
257
258
|
/** Watches `hidden`, which is the platform's attribute and no property of this element's. */
|
|
258
259
|
private hiding;
|
|
259
260
|
/**
|
|
260
|
-
* The narrowest a
|
|
261
|
+
* The narrowest width a column can be dragged to, in pixels.
|
|
261
262
|
*
|
|
262
263
|
* Three characters and the inset around them. Narrower and the heading has
|
|
263
264
|
* nothing left to be read by, and the separator is a grab target with no
|
|
@@ -275,7 +276,10 @@ export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
|
275
276
|
* exactly when the heading stops being drawn.
|
|
276
277
|
*/
|
|
277
278
|
get shown(): boolean;
|
|
278
|
-
/**
|
|
279
|
+
/**
|
|
280
|
+
* Whether the table can be sorted by this column, which needs `sortable` and
|
|
281
|
+
* a `field`.
|
|
282
|
+
*/
|
|
279
283
|
get canSort(): boolean;
|
|
280
284
|
/**
|
|
281
285
|
* The value this column shows for a row.
|
|
@@ -285,7 +289,10 @@ export declare class HelixHeadlessTableColumn extends HelixElement {
|
|
|
285
289
|
* default back for the rows it has nothing to say about.
|
|
286
290
|
*/
|
|
287
291
|
read(row: Readonly<Record<string, unknown>>): unknown;
|
|
288
|
-
/**
|
|
292
|
+
/**
|
|
293
|
+
* The value this column sorts and filters by for a row, which can differ from
|
|
294
|
+
* what it shows.
|
|
295
|
+
*/
|
|
289
296
|
order(row: Readonly<Record<string, unknown>>): unknown;
|
|
290
297
|
protected willUpdate(changed: PropertyValues): void;
|
|
291
298
|
/** The words of the heading, for naming the controls on it. */
|
|
@@ -3,23 +3,22 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
3
3
|
import { type HelixHeadlessTableColumn } from '../column/table-column.js';
|
|
4
4
|
declare const HelixHeadlessTable_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & typeof HelixElement;
|
|
5
5
|
/**
|
|
6
|
-
* @summary
|
|
6
|
+
* @summary A table of data, laid out on a grid.
|
|
7
7
|
*
|
|
8
8
|
* @description
|
|
9
|
-
*
|
|
9
|
+
* Lays out the rows on a CSS grid, so every column lines up across rows and
|
|
10
10
|
* each row stays a real element that can be styled, hidden, or made
|
|
11
|
-
* interactive.
|
|
12
|
-
*
|
|
11
|
+
* interactive. A `<table>` layout aligns columns but limits almost everything
|
|
12
|
+
* else.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* items of the one grid that does the aligning.
|
|
14
|
+
* A grid of elements has no table structure for assistive technology, so the
|
|
15
|
+
* roles are set explicitly: `table`, `row`, `cell`, and `columnheader`. Rows
|
|
16
|
+
* are `display: contents`, so their cells become items of the one grid.
|
|
18
17
|
*
|
|
19
|
-
* The
|
|
20
|
-
* it.
|
|
21
|
-
* and CSS cannot,
|
|
22
|
-
* without measuring anything
|
|
18
|
+
* The CSS custom properties listed for this component are written by it and
|
|
19
|
+
* read by the stylesheet that draws it. Do not set them. Each holds a number
|
|
20
|
+
* the component computes and CSS cannot, so the stylesheet can draw the table
|
|
21
|
+
* without measuring anything.
|
|
23
22
|
*
|
|
24
23
|
* @since 0.1.0
|
|
25
24
|
* @status stable
|
|
@@ -29,13 +28,13 @@ declare const HelixHeadlessTable_base: (new (...args: any[]) => import("@fusion.
|
|
|
29
28
|
*
|
|
30
29
|
* @slot - The table's rows.
|
|
31
30
|
*
|
|
32
|
-
* @csspart empty -
|
|
33
|
-
* @csspart head - The row the column headings
|
|
34
|
-
* @csspart live -
|
|
35
|
-
* @csspart loading -
|
|
31
|
+
* @csspart empty - The text shown when there are no rows.
|
|
32
|
+
* @csspart head - The row that holds the column headings. It has `display: contents`, so it takes no space of its own.
|
|
33
|
+
* @csspart live - A live region that repeats the empty and loading text, so screen readers announce it when it changes. Visually hidden in the styled tier.
|
|
34
|
+
* @csspart loading - The text shown while the rows are loading.
|
|
36
35
|
* @csspart table - The grid.
|
|
37
36
|
*
|
|
38
|
-
* @cssproperty --table-template - The column track list
|
|
37
|
+
* @cssproperty --table-template - The column track list the table works out from its columns. The component writes it inline on the element that reads it, so setting it has no effect. Set `columns` to change the tracks.
|
|
39
38
|
*/
|
|
40
39
|
export declare class HelixHeadlessTable extends HelixHeadlessTable_base {
|
|
41
40
|
/**
|
|
@@ -5,9 +5,9 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
7
|
* The row renders its cells straight through and lays out none of them, so a
|
|
8
|
-
*
|
|
9
|
-
* across
|
|
10
|
-
*
|
|
8
|
+
* stylesheet can place them in the table's grid and every column lines up
|
|
9
|
+
* across rows. The row still exists as an element, so you can style it, hide
|
|
10
|
+
* it, or make it interactive.
|
|
11
11
|
*
|
|
12
12
|
* @since 0.1.0
|
|
13
13
|
* @status stable
|
|
@@ -4,9 +4,9 @@ import { type PropertyValues, type TemplateResult } from 'lit';
|
|
|
4
4
|
* @summary The content shown for one tab.
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
|
-
*
|
|
8
|
-
* still there when the
|
|
9
|
-
* server
|
|
7
|
+
* An inactive panel is hidden and stays mounted. Anything typed into it is
|
|
8
|
+
* still there when the person comes back, and the content of every panel is in
|
|
9
|
+
* the server-rendered markup for crawlers, whichever tab is open.
|
|
10
10
|
*
|
|
11
11
|
* @since 0.1.0
|
|
12
12
|
* @status stable
|
|
@@ -5,15 +5,16 @@ declare const HelixHeadlessTabs_base: (new (...args: any[]) => import("@fusion.d
|
|
|
5
5
|
* @summary A row of tabs and the panel each one shows.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
* Selection
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Selection works through an event, the same as in the accordion and the tree.
|
|
9
|
+
* A tab dispatches `helix-select`, and the root pairs it with the panel of the
|
|
10
|
+
* same value. Nothing registers with anything, so tabs added later work with no
|
|
11
|
+
* extra setup.
|
|
12
12
|
*
|
|
13
|
-
* The tab list is a single tab stop,
|
|
14
|
-
* `KeyboardNavigationController`, the same
|
|
15
|
-
* Selection follows focus, which
|
|
16
|
-
*
|
|
13
|
+
* The tab list is a single tab stop, and the arrow keys move between tabs
|
|
14
|
+
* through `KeyboardNavigationController`, the same as in the radio and toggle
|
|
15
|
+
* groups. Selection follows focus, which suits a small set where showing a
|
|
16
|
+
* panel is cheap. Set `manual` when showing a panel is expensive, so focus can
|
|
17
|
+
* move without selecting.
|
|
17
18
|
*
|
|
18
19
|
* @since 0.1.0
|
|
19
20
|
* @status stable
|
|
@@ -21,14 +22,14 @@ declare const HelixHeadlessTabs_base: (new (...args: any[]) => import("@fusion.d
|
|
|
21
22
|
* @aliases TabList, Segmented control
|
|
22
23
|
* @documentation https://fusion.dev/helix/components/tabs
|
|
23
24
|
*
|
|
24
|
-
* @slot - The tabs,
|
|
25
|
-
* @slot panels - The panels,
|
|
25
|
+
* @slot - The tabs, as direct children of this element.
|
|
26
|
+
* @slot panels - The panels, as direct children of this element. Panels inside a wrapper are not paired with tabs, because pairing reads only the direct children.
|
|
26
27
|
*
|
|
27
|
-
* @event {HelixActivateEvent} helix-activate - Fired
|
|
28
|
-
* @event {HelixBeforeActivateEvent} helix-before-activate - Fired before the
|
|
29
|
-
* @event {HelixSelectEvent} helix-select - Fired when a tab is chosen.
|
|
28
|
+
* @event {HelixActivateEvent} helix-activate - Fired after the active tab changes, so the element already holds the new value.
|
|
29
|
+
* @event {HelixBeforeActivateEvent} helix-before-activate - Fired before the active tab changes, and cancelable. Canceling it is the only way to block a change.
|
|
30
|
+
* @event {HelixSelectEvent} helix-select - Fired when a tab is chosen. The tab sends it and the root handles it, so you can listen on the root. Cancelable: canceling it stops the change and leaves the decision to you.
|
|
30
31
|
*
|
|
31
|
-
* @csspart indicator - The
|
|
32
|
+
* @csspart indicator - The marker that moves to the selected tab.
|
|
32
33
|
* @csspart panels - The panel container.
|
|
33
34
|
* @csspart tabs - The tab list.
|
|
34
35
|
*/
|
|
@@ -36,11 +37,12 @@ export declare class HelixHeadlessTabs extends HelixHeadlessTabs_base {
|
|
|
36
37
|
protected readonly keys: KeyboardNavigationController;
|
|
37
38
|
private readonly indicator;
|
|
38
39
|
/**
|
|
39
|
-
*
|
|
40
|
+
* The tab list's name, read by screen readers.
|
|
40
41
|
*/
|
|
41
42
|
label: string;
|
|
42
43
|
/**
|
|
43
|
-
*
|
|
44
|
+
* Stops the arrow keys from selecting each tab they move to. By default,
|
|
45
|
+
* arrowing to a tab also selects it.
|
|
44
46
|
*
|
|
45
47
|
* Automatic is the default because showing a panel is usually cheap. Set this
|
|
46
48
|
* where it is not, so a reader arrowing past four tabs does not load four
|
|
@@ -48,7 +50,7 @@ export declare class HelixHeadlessTabs extends HelixHeadlessTabs_base {
|
|
|
48
50
|
*/
|
|
49
51
|
manual: boolean;
|
|
50
52
|
/**
|
|
51
|
-
* How the row
|
|
53
|
+
* How the row of tabs is drawn.
|
|
52
54
|
*
|
|
53
55
|
* Unset is a raised pill on the selected tab with nothing behind the row,
|
|
54
56
|
* which is what a set sitting inside other chrome wants. `underlined` is a
|
package/dist/tabs/tab/tab.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ declare const HelixHeadlessTab_base: (new (...args: any[]) => import("@fusion.de
|
|
|
5
5
|
* @summary One tab in a tab list.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
*
|
|
8
|
+
* A tab is an element, because it manages selection and its own tab stop.
|
|
9
9
|
*
|
|
10
|
-
* Its id and the id it controls
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Its id and the id it controls both come from `value`, so the link between a
|
|
11
|
+
* tab and its panel works with server rendering. A generated id would differ
|
|
12
|
+
* between the server render and the client render, and `aria-controls` would
|
|
13
|
+
* point at nothing.
|
|
14
14
|
*
|
|
15
15
|
* @since 0.1.0
|
|
16
16
|
* @status stable
|
|
@@ -19,7 +19,7 @@ declare const HelixHeadlessTab_base: (new (...args: any[]) => import("@fusion.de
|
|
|
19
19
|
*
|
|
20
20
|
* @slot - The tab's label.
|
|
21
21
|
*
|
|
22
|
-
* @event {HelixSelectEvent} helix-select - Fired when the tab is chosen. Cancelable:
|
|
22
|
+
* @event {HelixSelectEvent} helix-select - Fired when the tab is chosen. Cancelable: canceling it stops the change and leaves the decision to you.
|
|
23
23
|
*
|
|
24
24
|
* @csspart tab - The tab itself.
|
|
25
25
|
*
|
|
@@ -2,17 +2,16 @@ import { HelixElement } from '@fusion.dev/helix-core';
|
|
|
2
2
|
import { type TemplateResult } from 'lit';
|
|
3
3
|
declare const HelixHeadlessTag_base: (new (...args: any[]) => import("@fusion.dev/helix-core").DismissibleElement) & typeof HelixElement;
|
|
4
4
|
/**
|
|
5
|
-
* @summary
|
|
5
|
+
* @summary A short label that adds metadata to content.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
* A
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* A label that people can optionally remove. `dismissible` is the difference
|
|
9
|
+
* from a badge: a badge shows a state that people cannot change, and a tag
|
|
10
|
+
* names something they can remove.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* owns the list it
|
|
14
|
-
*
|
|
15
|
-
* refusal.
|
|
12
|
+
* The remove button sends `helix-dismiss`. The tag does not remove itself,
|
|
13
|
+
* because your code owns the list it is in, so remove it in your handler. A
|
|
14
|
+
* listener can cancel `helix-dismiss`, and `dismiss()` then returns `false`.
|
|
16
15
|
*
|
|
17
16
|
* @since 0.1.0
|
|
18
17
|
* @status stable
|
|
@@ -21,12 +20,12 @@ declare const HelixHeadlessTag_base: (new (...args: any[]) => import("@fusion.de
|
|
|
21
20
|
* @documentation https://fusion.dev/helix/components/tag
|
|
22
21
|
*
|
|
23
22
|
* @slot - The tag's label.
|
|
24
|
-
* @slot start -
|
|
23
|
+
* @slot start - The category the label belongs to, shown before it in a heavier weight.
|
|
25
24
|
*
|
|
26
|
-
* @event {HelixDismissEvent} helix-dismiss -
|
|
25
|
+
* @event {HelixDismissEvent} helix-dismiss - The remove button was pressed. The tag does not remove itself, so remove it in response. Cancelable.
|
|
27
26
|
*
|
|
28
|
-
* @csspart dismiss - The
|
|
29
|
-
* @csspart dismiss-mark - The
|
|
27
|
+
* @csspart dismiss - The button that removes the tag.
|
|
28
|
+
* @csspart dismiss-mark - The icon on the remove button.
|
|
30
29
|
* @csspart start - The category before the label.
|
|
31
30
|
*/
|
|
32
31
|
export declare class HelixHeadlessTag extends HelixHeadlessTag_base {
|
|
@@ -2,23 +2,18 @@ import { AriaForwardController, HelixFormElement } from '@fusion.dev/helix-core'
|
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
declare const HelixHeadlessTextarea_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
4
4
|
/**
|
|
5
|
-
* @summary
|
|
5
|
+
* @summary A multi-line text field.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* loads.
|
|
8
|
+
* Renders a `<textarea>`, so the caret, selection, spellcheck, resize handle,
|
|
9
|
+
* and phone keyboard come from the platform. It is in the server markup, so the
|
|
10
|
+
* field works before any script loads.
|
|
12
11
|
*
|
|
13
|
-
*
|
|
14
|
-
* single-line field
|
|
15
|
-
* behavioral difference the platform owns and cannot be styled into existence,
|
|
16
|
-
* which is why this is its own element rather than `Input` with a property.
|
|
12
|
+
* It is a separate element from `Input` because Enter inserts a line break
|
|
13
|
+
* here. In a single-line field, Enter submits the form.
|
|
17
14
|
*
|
|
18
|
-
* `rows` sets the height
|
|
19
|
-
* content.
|
|
20
|
-
* `auto-grow` is what happens after, so a field that grows still has to start
|
|
21
|
-
* somewhere.
|
|
15
|
+
* `rows` sets the starting height, and `auto-grow` makes the field grow with
|
|
16
|
+
* its content. You can use both: `rows` sets where an empty field begins.
|
|
22
17
|
*
|
|
23
18
|
* @since 0.1.0
|
|
24
19
|
* @status stable
|
|
@@ -26,35 +21,37 @@ declare const HelixHeadlessTextarea_base: (new (...args: any[]) => import("@fusi
|
|
|
26
21
|
* @aliases Multiline, TextArea
|
|
27
22
|
* @documentation https://fusion.dev/helix/components/textarea
|
|
28
23
|
*
|
|
29
|
-
* @event {Event} change -
|
|
24
|
+
* @event {Event} change - Sent from the textarea when the user finishes an edit.
|
|
30
25
|
* @event {HelixBeforeChangeEvent} helix-before-change - Fired as the text changes, and cancelable.
|
|
31
|
-
* @event {Event} input -
|
|
26
|
+
* @event {Event} input - Fired after the value changes.
|
|
32
27
|
*
|
|
33
28
|
* @csspart control - The textarea itself.
|
|
34
|
-
* @csspart feedback -
|
|
35
|
-
* @csspart field - The box
|
|
29
|
+
* @csspart feedback - The message that says what is wrong.
|
|
30
|
+
* @csspart field - The box that holds the textarea.
|
|
36
31
|
* @csspart hint - Help under the field, while nothing is wrong.
|
|
37
|
-
* @csspart label - The
|
|
32
|
+
* @csspart label - The label above the field.
|
|
38
33
|
*
|
|
39
|
-
* @cssstate invalid -
|
|
34
|
+
* @cssstate invalid - The control has an error to show, from the browser's validation or from your `feedback`.
|
|
40
35
|
*/
|
|
41
36
|
export declare class HelixHeadlessTextarea extends HelixHeadlessTextarea_base {
|
|
42
37
|
protected readonly aria: AriaForwardController;
|
|
43
38
|
/** Typed or dragged, so every edit is announced. See `announcesInput`. */
|
|
44
39
|
protected readonly announcesInput = true;
|
|
45
40
|
/**
|
|
46
|
-
* What the browser
|
|
41
|
+
* What the browser can autofill in the field, as a standard `autocomplete`
|
|
42
|
+
* token.
|
|
47
43
|
*
|
|
48
44
|
* Empty leaves the attribute off, which is the browser's default. Set it to
|
|
49
45
|
* a token like `email` or `bday` to ask for autofill, or to `off` to refuse.
|
|
50
46
|
*/
|
|
51
47
|
autocomplete: string;
|
|
52
48
|
/**
|
|
53
|
-
*
|
|
49
|
+
* Grows the box to fit its content, so it does not scroll.
|
|
54
50
|
*/
|
|
55
51
|
autoGrow: boolean;
|
|
56
52
|
/**
|
|
57
|
-
* How many characters wide the box is,
|
|
53
|
+
* How many characters wide the box is, when the layout does not set its
|
|
54
|
+
* width.
|
|
58
55
|
*
|
|
59
56
|
* Optional and absent by default, which is the reflected-property rule: a
|
|
60
57
|
* `<textarea>` left alone is 20 columns wide and a styled one is whatever its
|
|
@@ -64,7 +61,7 @@ export declare class HelixHeadlessTextarea extends HelixHeadlessTextarea_base {
|
|
|
64
61
|
*/
|
|
65
62
|
cols?: number;
|
|
66
63
|
/**
|
|
67
|
-
* The name a second entry
|
|
64
|
+
* The name of a second form entry that submits the direction of the text.
|
|
68
65
|
*
|
|
69
66
|
* **Submitted through `setFormValue`, because the inner control's own
|
|
70
67
|
* `dirname` cannot reach the form.** This host is form-associated and reports
|
|
@@ -75,11 +72,11 @@ export declare class HelixHeadlessTextarea extends HelixHeadlessTextarea_base {
|
|
|
75
72
|
*/
|
|
76
73
|
dirName: string;
|
|
77
74
|
/**
|
|
78
|
-
*
|
|
75
|
+
* The most characters the value can have.
|
|
79
76
|
*/
|
|
80
77
|
maxLength?: number;
|
|
81
78
|
/**
|
|
82
|
-
*
|
|
79
|
+
* The fewest characters the value can have.
|
|
83
80
|
*
|
|
84
81
|
* Forwarded to the real `<textarea>` rather than checked here, which is what
|
|
85
82
|
* makes the message the browser's and therefore the reader's own language.
|
|
@@ -88,13 +85,13 @@ export declare class HelixHeadlessTextarea extends HelixHeadlessTextarea_base {
|
|
|
88
85
|
*/
|
|
89
86
|
minLength?: number;
|
|
90
87
|
/**
|
|
91
|
-
*
|
|
88
|
+
* Text shown while the field is empty.
|
|
92
89
|
*
|
|
93
90
|
* Not a label: it goes when typing starts.
|
|
94
91
|
*/
|
|
95
92
|
placeholder: string;
|
|
96
93
|
/**
|
|
97
|
-
*
|
|
94
|
+
* Blocks typing in the field. The value is still submitted with the form.
|
|
98
95
|
*/
|
|
99
96
|
readOnly: boolean;
|
|
100
97
|
/** Focus is delegated to the control, so the host is never the target. */
|
|
@@ -146,7 +143,7 @@ export declare class HelixHeadlessTextarea extends HelixHeadlessTextarea_base {
|
|
|
146
143
|
*/
|
|
147
144
|
private formValue;
|
|
148
145
|
/**
|
|
149
|
-
* The
|
|
146
|
+
* The direction of the selection, as a native textarea reports it.
|
|
150
147
|
*
|
|
151
148
|
* **The whole reason this renders a real `<textarea>` is the caret**, and the
|
|
152
149
|
* control is inside this shadow root, so `querySelector` does not find it and
|
|
@@ -167,8 +164,8 @@ export declare class HelixHeadlessTextarea extends HelixHeadlessTextarea_base {
|
|
|
167
164
|
get selectionStart(): number;
|
|
168
165
|
set selectionStart(at: number);
|
|
169
166
|
/**
|
|
170
|
-
* Selects a range, which
|
|
171
|
-
*
|
|
167
|
+
* Selects a range of text, which the three selection properties cannot do
|
|
168
|
+
* between them.
|
|
172
169
|
*
|
|
173
170
|
* Setting `selectionStart` past the current `selectionEnd` drags the end
|
|
174
171
|
* along, so the two writes a consumer would make in sequence do not compose
|
|
@@ -178,9 +175,9 @@ export declare class HelixHeadlessTextarea extends HelixHeadlessTextarea_base {
|
|
|
178
175
|
setSelectionRange(start: number, end: number, direction?: SelectionDirection): void;
|
|
179
176
|
/** How many characters the value holds. */
|
|
180
177
|
get textLength(): number;
|
|
181
|
-
/**
|
|
178
|
+
/** The control's type, which is always `textarea`. */
|
|
182
179
|
get type(): string;
|
|
183
|
-
/** Puts the caret in the field,
|
|
180
|
+
/** Puts the caret in the field, as a label pointing at it would. */
|
|
184
181
|
focus(options?: FocusOptions): void;
|
|
185
182
|
/** Reports the value and the validity the host stands behind. */
|
|
186
183
|
private sync;
|