@fusion.dev/helix-headless 0.5.0 → 0.7.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 +269 -32
- package/dist/data-table/root/data-table-root.d.ts +138 -28
- package/dist/data-table/root/data-table-root.js +110 -21
- package/dist/data-table/root/order.d.ts +25 -0
- package/dist/data-table/root/order.js +6 -3
- package/dist/virtual-list/root/virtual-list-root.d.ts +23 -0
- package/dist/virtual-list/root/virtual-list-root.js +13 -0
- package/package.json +5 -5
- package/types/jsx.d.ts +198 -52
- package/types/vue.d.ts +52 -15
package/types/jsx.d.ts
CHANGED
|
@@ -3838,6 +3838,20 @@ export type HelixHeadlessDataTableProps = {
|
|
|
3838
3838
|
"default-sort"?: (HelixHeadlessDataTable["defaultSort"]) | undefined;
|
|
3839
3839
|
/** Order to open on, where nothing declared one. */
|
|
3840
3840
|
defaultSort?: (HelixHeadlessDataTable["defaultSort"]) | undefined;
|
|
3841
|
+
/** How tall a row is taken to be before it has been drawn, in pixels.
|
|
3842
|
+
|
|
3843
|
+
Only read while `windowed`, and a starting guess rather than a claim: a
|
|
3844
|
+
cell that wraps makes its row taller than its neighbors, and the window
|
|
3845
|
+
replaces this with what each row came to as it draws. It still has to be
|
|
3846
|
+
close, because it is what the scrollbar is built from before anything has
|
|
3847
|
+
been measured. */
|
|
3848
|
+
estimate?: (HelixHeadlessDataTable["estimate"]) | undefined;
|
|
3849
|
+
/** The order, as `field:direction`.
|
|
3850
|
+
|
|
3851
|
+
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
3852
|
+
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
3853
|
+
element then owns. */
|
|
3854
|
+
sort?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
3841
3855
|
/** The field naming a row's stable identity.
|
|
3842
3856
|
|
|
3843
3857
|
**Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
@@ -3847,20 +3861,20 @@ attached to the row it belongs to. Left unset the index is the key, which is
|
|
|
3847
3861
|
correct only while nothing reorders: it is why this defaults to something
|
|
3848
3862
|
that works and is worth setting anyway. */
|
|
3849
3863
|
key?: (HelixHeadlessDataTable["key"]) | undefined;
|
|
3850
|
-
/** The order, as `field:direction`.
|
|
3851
|
-
|
|
3852
|
-
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
3853
|
-
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
3854
|
-
element then owns. */
|
|
3855
|
-
sort?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
3856
|
-
/** Accessible name for the grid. */
|
|
3857
|
-
label?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
3858
3864
|
/** What the rows are narrowed to, as one query across every column.
|
|
3859
3865
|
|
|
3860
3866
|
One query rather than a predicate per column, which is what a reader means
|
|
3861
3867
|
by a search box above a table. It matches on each column's ordering value,
|
|
3862
3868
|
so search and sort cannot disagree about what a column holds. */
|
|
3863
3869
|
filter?: (HelixHeadlessDataTable["filter"]) | undefined;
|
|
3870
|
+
/** Accessible name for the grid. */
|
|
3871
|
+
label?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
3872
|
+
/** The page on show, from 1.
|
|
3873
|
+
|
|
3874
|
+
Clamped on the way out, so what this reports is the page it drew: a
|
|
3875
|
+
bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
3876
|
+
the last page rather than as 99. */
|
|
3877
|
+
page?: (HelixHeadlessDataTable["page"]) | undefined;
|
|
3864
3878
|
/** Whether this element does the work or asks the consumer to.
|
|
3865
3879
|
|
|
3866
3880
|
`client` filters, sorts and pages `rows` itself. `server` applies none of
|
|
@@ -3870,12 +3884,6 @@ the client cannot hold the data, so this is not an optimization, it is the
|
|
|
3870
3884
|
only mode that works, and it is here from the start because adding it later
|
|
3871
3885
|
inverts the data flow. */
|
|
3872
3886
|
mode?: (HelixHeadlessDataTable["mode"]) | undefined;
|
|
3873
|
-
/** The page on show, from 1.
|
|
3874
|
-
|
|
3875
|
-
Clamped on the way out, so what this reports is the page it drew: a
|
|
3876
|
-
bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
3877
|
-
the last page rather than as 99. */
|
|
3878
|
-
page?: (HelixHeadlessDataTable["page"]) | undefined;
|
|
3879
3887
|
/** How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
3880
3888
|
|
|
3881
3889
|
**It announces nothing, and that is not an omission.** Nothing in this
|
|
@@ -3899,6 +3907,24 @@ nothing about the result. Ignored in `client` mode rather than trusted,
|
|
|
3899
3907
|
because two sources for one count is the mistake, and here the array is the
|
|
3900
3908
|
one that cannot be stale. */
|
|
3901
3909
|
total?: (HelixHeadlessDataTable["total"]) | undefined;
|
|
3910
|
+
/** Draws the rows in view and stands empty space in for the rest.
|
|
3911
|
+
|
|
3912
|
+
**Not a `mode`.** `mode` says where the rows come from and who filtered
|
|
3913
|
+
them; this says how many of the ones we hold get drawn. They are
|
|
3914
|
+
independent: a consumer fetching five thousand rows a chunk at a time wants
|
|
3915
|
+
`mode="server"` and this at once, and folding this into `mode` would be an
|
|
3916
|
+
API that forbids that combination for no reason.
|
|
3917
|
+
|
|
3918
|
+
**Composes with `paginated` rather than excluding it.** A window over a
|
|
3919
|
+
page is coherent -- the page is the slice of the result, the window is the
|
|
3920
|
+
part of that slice on screen -- and the arithmetic is the same either way,
|
|
3921
|
+
so there is nothing to forbid. Together they suit a table paging at a
|
|
3922
|
+
thousand rows, where the page is a reasonable fetch and a poor render.
|
|
3923
|
+
|
|
3924
|
+
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
3925
|
+
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
3926
|
+
should pay none of them. */
|
|
3927
|
+
windowed?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
3902
3928
|
/** Whether to draw a pagination under the grid.
|
|
3903
3929
|
|
|
3904
3930
|
On by default once a page size is set, because a paged table with no way to
|
|
@@ -3958,6 +3984,20 @@ export type HelixHeadlessDataTableSolidJsProps = {
|
|
|
3958
3984
|
"attr:default-sort"?: (HelixHeadlessDataTable["defaultSort"]) | undefined;
|
|
3959
3985
|
/** Order to open on, where nothing declared one. */
|
|
3960
3986
|
"prop:defaultSort"?: (HelixHeadlessDataTable["defaultSort"]) | undefined;
|
|
3987
|
+
/** How tall a row is taken to be before it has been drawn, in pixels.
|
|
3988
|
+
|
|
3989
|
+
Only read while `windowed`, and a starting guess rather than a claim: a
|
|
3990
|
+
cell that wraps makes its row taller than its neighbors, and the window
|
|
3991
|
+
replaces this with what each row came to as it draws. It still has to be
|
|
3992
|
+
close, because it is what the scrollbar is built from before anything has
|
|
3993
|
+
been measured. */
|
|
3994
|
+
"prop:estimate"?: (HelixHeadlessDataTable["estimate"]) | undefined;
|
|
3995
|
+
/** The order, as `field:direction`.
|
|
3996
|
+
|
|
3997
|
+
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
3998
|
+
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
3999
|
+
element then owns. */
|
|
4000
|
+
"prop:sort"?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
3961
4001
|
/** The field naming a row's stable identity.
|
|
3962
4002
|
|
|
3963
4003
|
**Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
@@ -3967,20 +4007,20 @@ attached to the row it belongs to. Left unset the index is the key, which is
|
|
|
3967
4007
|
correct only while nothing reorders: it is why this defaults to something
|
|
3968
4008
|
that works and is worth setting anyway. */
|
|
3969
4009
|
"prop:key"?: (HelixHeadlessDataTable["key"]) | undefined;
|
|
3970
|
-
/** The order, as `field:direction`.
|
|
3971
|
-
|
|
3972
|
-
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
3973
|
-
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
3974
|
-
element then owns. */
|
|
3975
|
-
"prop:sort"?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
3976
|
-
/** Accessible name for the grid. */
|
|
3977
|
-
"prop:label"?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
3978
4010
|
/** What the rows are narrowed to, as one query across every column.
|
|
3979
4011
|
|
|
3980
4012
|
One query rather than a predicate per column, which is what a reader means
|
|
3981
4013
|
by a search box above a table. It matches on each column's ordering value,
|
|
3982
4014
|
so search and sort cannot disagree about what a column holds. */
|
|
3983
4015
|
"prop:filter"?: (HelixHeadlessDataTable["filter"]) | undefined;
|
|
4016
|
+
/** Accessible name for the grid. */
|
|
4017
|
+
"prop:label"?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
4018
|
+
/** The page on show, from 1.
|
|
4019
|
+
|
|
4020
|
+
Clamped on the way out, so what this reports is the page it drew: a
|
|
4021
|
+
bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
4022
|
+
the last page rather than as 99. */
|
|
4023
|
+
"prop:page"?: (HelixHeadlessDataTable["page"]) | undefined;
|
|
3984
4024
|
/** Whether this element does the work or asks the consumer to.
|
|
3985
4025
|
|
|
3986
4026
|
`client` filters, sorts and pages `rows` itself. `server` applies none of
|
|
@@ -3990,12 +4030,6 @@ the client cannot hold the data, so this is not an optimization, it is the
|
|
|
3990
4030
|
only mode that works, and it is here from the start because adding it later
|
|
3991
4031
|
inverts the data flow. */
|
|
3992
4032
|
"prop:mode"?: (HelixHeadlessDataTable["mode"]) | undefined;
|
|
3993
|
-
/** The page on show, from 1.
|
|
3994
|
-
|
|
3995
|
-
Clamped on the way out, so what this reports is the page it drew: a
|
|
3996
|
-
bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
3997
|
-
the last page rather than as 99. */
|
|
3998
|
-
"prop:page"?: (HelixHeadlessDataTable["page"]) | undefined;
|
|
3999
4033
|
/** How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
4000
4034
|
|
|
4001
4035
|
**It announces nothing, and that is not an omission.** Nothing in this
|
|
@@ -4019,6 +4053,24 @@ nothing about the result. Ignored in `client` mode rather than trusted,
|
|
|
4019
4053
|
because two sources for one count is the mistake, and here the array is the
|
|
4020
4054
|
one that cannot be stale. */
|
|
4021
4055
|
"prop:total"?: (HelixHeadlessDataTable["total"]) | undefined;
|
|
4056
|
+
/** Draws the rows in view and stands empty space in for the rest.
|
|
4057
|
+
|
|
4058
|
+
**Not a `mode`.** `mode` says where the rows come from and who filtered
|
|
4059
|
+
them; this says how many of the ones we hold get drawn. They are
|
|
4060
|
+
independent: a consumer fetching five thousand rows a chunk at a time wants
|
|
4061
|
+
`mode="server"` and this at once, and folding this into `mode` would be an
|
|
4062
|
+
API that forbids that combination for no reason.
|
|
4063
|
+
|
|
4064
|
+
**Composes with `paginated` rather than excluding it.** A window over a
|
|
4065
|
+
page is coherent -- the page is the slice of the result, the window is the
|
|
4066
|
+
part of that slice on screen -- and the arithmetic is the same either way,
|
|
4067
|
+
so there is nothing to forbid. Together they suit a table paging at a
|
|
4068
|
+
thousand rows, where the page is a reasonable fetch and a poor render.
|
|
4069
|
+
|
|
4070
|
+
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
4071
|
+
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
4072
|
+
should pay none of them. */
|
|
4073
|
+
"prop:windowed"?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
4022
4074
|
/** Whether to draw a pagination under the grid.
|
|
4023
4075
|
|
|
4024
4076
|
On by default once a page size is set, because a paged table with no way to
|
|
@@ -15296,21 +15348,43 @@ past the end is the one write the platform answers with an exception. */
|
|
|
15296
15348
|
};
|
|
15297
15349
|
|
|
15298
15350
|
export type HelixHeadlessVirtualListProps = {
|
|
15299
|
-
/** How tall one row is, in pixels, used to map scroll offset to an index.
|
|
15351
|
+
/** How tall one row is, in pixels, used to map scroll offset to an index.
|
|
15352
|
+
|
|
15353
|
+
An estimate rather than a measurement while `measured` is off, which is
|
|
15354
|
+
right whenever the rows really are one height and is the cheaper of the two. */
|
|
15300
15355
|
estimate?: (HelixHeadlessVirtualList["estimate"]) | undefined;
|
|
15301
15356
|
/** Id of the element holding the rows, as JSON in a script. */
|
|
15302
15357
|
for?: (HelixHeadlessVirtualList["for"]) | undefined;
|
|
15303
15358
|
/** What the list is called, since the rendered rows are only a window on it. */
|
|
15304
15359
|
label?: (HelixHeadlessVirtualList["label"]) | undefined;
|
|
15360
|
+
/** Places rows by what they came to rather than by `estimate`.
|
|
15361
|
+
|
|
15362
|
+
**Off by default, because the straight line is better when it holds.** One
|
|
15363
|
+
estimate makes offset and index convert by division, which can never
|
|
15364
|
+
disagree with itself; measuring is what a set of genuinely different
|
|
15365
|
+
heights needs and costs a read of each row as it renders. A list of
|
|
15366
|
+
one-line rows should leave this alone. */
|
|
15367
|
+
measured?: (HelixHeadlessVirtualList["measured"]) | undefined;
|
|
15305
15368
|
};
|
|
15306
15369
|
|
|
15307
15370
|
export type HelixHeadlessVirtualListSolidJsProps = {
|
|
15308
|
-
/** How tall one row is, in pixels, used to map scroll offset to an index.
|
|
15371
|
+
/** How tall one row is, in pixels, used to map scroll offset to an index.
|
|
15372
|
+
|
|
15373
|
+
An estimate rather than a measurement while `measured` is off, which is
|
|
15374
|
+
right whenever the rows really are one height and is the cheaper of the two. */
|
|
15309
15375
|
"prop:estimate"?: (HelixHeadlessVirtualList["estimate"]) | undefined;
|
|
15310
15376
|
/** Id of the element holding the rows, as JSON in a script. */
|
|
15311
15377
|
"prop:for"?: (HelixHeadlessVirtualList["for"]) | undefined;
|
|
15312
15378
|
/** What the list is called, since the rendered rows are only a window on it. */
|
|
15313
15379
|
"prop:label"?: (HelixHeadlessVirtualList["label"]) | undefined;
|
|
15380
|
+
/** Places rows by what they came to rather than by `estimate`.
|
|
15381
|
+
|
|
15382
|
+
**Off by default, because the straight line is better when it holds.** One
|
|
15383
|
+
estimate makes offset and index convert by division, which can never
|
|
15384
|
+
disagree with itself; measuring is what a set of genuinely different
|
|
15385
|
+
heights needs and costs a read of each row as it renders. A list of
|
|
15386
|
+
one-line rows should leave this alone. */
|
|
15387
|
+
"prop:measured"?: (HelixHeadlessVirtualList["measured"]) | undefined;
|
|
15314
15388
|
|
|
15315
15389
|
/** Set the innerHTML of the element */
|
|
15316
15390
|
innerHTML?: (string) | undefined;
|
|
@@ -18736,6 +18810,18 @@ export type CustomElements = {
|
|
|
18736
18810
|
* - `default-page`/`defaultPage`: Page to open on, where nothing declared one.
|
|
18737
18811
|
* - `default-page-size`/`defaultPageSize`: Page size to open with, where nothing declared one.
|
|
18738
18812
|
* - `default-sort`/`defaultSort`: Order to open on, where nothing declared one.
|
|
18813
|
+
* - `estimate`: How tall a row is taken to be before it has been drawn, in pixels.
|
|
18814
|
+
*
|
|
18815
|
+
* Only read while `windowed`, and a starting guess rather than a claim: a
|
|
18816
|
+
* cell that wraps makes its row taller than its neighbors, and the window
|
|
18817
|
+
* replaces this with what each row came to as it draws. It still has to be
|
|
18818
|
+
* close, because it is what the scrollbar is built from before anything has
|
|
18819
|
+
* been measured.
|
|
18820
|
+
* - `sort`: The order, as `field:direction`.
|
|
18821
|
+
*
|
|
18822
|
+
* Set it and this element defers: a reader's click fires `helix-sort` and
|
|
18823
|
+
* changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
18824
|
+
* element then owns.
|
|
18739
18825
|
* - `key`: The field naming a row's stable identity.
|
|
18740
18826
|
*
|
|
18741
18827
|
* **Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
@@ -18744,17 +18830,17 @@ export type CustomElements = {
|
|
|
18744
18830
|
* attached to the row it belongs to. Left unset the index is the key, which is
|
|
18745
18831
|
* correct only while nothing reorders: it is why this defaults to something
|
|
18746
18832
|
* that works and is worth setting anyway.
|
|
18747
|
-
* - `sort`: The order, as `field:direction`.
|
|
18748
|
-
*
|
|
18749
|
-
* Set it and this element defers: a reader's click fires `helix-sort` and
|
|
18750
|
-
* changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
18751
|
-
* element then owns.
|
|
18752
|
-
* - `label`: Accessible name for the grid.
|
|
18753
18833
|
* - `filter`: What the rows are narrowed to, as one query across every column.
|
|
18754
18834
|
*
|
|
18755
18835
|
* One query rather than a predicate per column, which is what a reader means
|
|
18756
18836
|
* by a search box above a table. It matches on each column's ordering value,
|
|
18757
18837
|
* so search and sort cannot disagree about what a column holds.
|
|
18838
|
+
* - `label`: Accessible name for the grid.
|
|
18839
|
+
* - `page`: The page on show, from 1.
|
|
18840
|
+
*
|
|
18841
|
+
* Clamped on the way out, so what this reports is the page it drew: a
|
|
18842
|
+
* bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
18843
|
+
* the last page rather than as 99.
|
|
18758
18844
|
* - `mode`: Whether this element does the work or asks the consumer to.
|
|
18759
18845
|
*
|
|
18760
18846
|
* `client` filters, sorts and pages `rows` itself. `server` applies none of
|
|
@@ -18763,11 +18849,6 @@ export type CustomElements = {
|
|
|
18763
18849
|
* the client cannot hold the data, so this is not an optimization, it is the
|
|
18764
18850
|
* only mode that works, and it is here from the start because adding it later
|
|
18765
18851
|
* inverts the data flow.
|
|
18766
|
-
* - `page`: The page on show, from 1.
|
|
18767
|
-
*
|
|
18768
|
-
* Clamped on the way out, so what this reports is the page it drew: a
|
|
18769
|
-
* bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
18770
|
-
* the last page rather than as 99.
|
|
18771
18852
|
* - `page-size`/`pageSize`: How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
18772
18853
|
*
|
|
18773
18854
|
* **It announces nothing, and that is not an omission.** Nothing in this
|
|
@@ -18781,6 +18862,23 @@ export type CustomElements = {
|
|
|
18781
18862
|
* nothing about the result. Ignored in `client` mode rather than trusted,
|
|
18782
18863
|
* because two sources for one count is the mistake, and here the array is the
|
|
18783
18864
|
* one that cannot be stale.
|
|
18865
|
+
* - `windowed`: Draws the rows in view and stands empty space in for the rest.
|
|
18866
|
+
*
|
|
18867
|
+
* **Not a `mode`.** `mode` says where the rows come from and who filtered
|
|
18868
|
+
* them; this says how many of the ones we hold get drawn. They are
|
|
18869
|
+
* independent: a consumer fetching five thousand rows a chunk at a time wants
|
|
18870
|
+
* `mode="server"` and this at once, and folding this into `mode` would be an
|
|
18871
|
+
* API that forbids that combination for no reason.
|
|
18872
|
+
*
|
|
18873
|
+
* **Composes with `paginated` rather than excluding it.** A window over a
|
|
18874
|
+
* page is coherent -- the page is the slice of the result, the window is the
|
|
18875
|
+
* part of that slice on screen -- and the arithmetic is the same either way,
|
|
18876
|
+
* so there is nothing to forbid. Together they suit a table paging at a
|
|
18877
|
+
* thousand rows, where the page is a reasonable fetch and a poor render.
|
|
18878
|
+
*
|
|
18879
|
+
* Off by default. Windowing costs a scroll listener, a measurement per row
|
|
18880
|
+
* drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
18881
|
+
* should pay none of them.
|
|
18784
18882
|
* - `paginated`: Whether to draw a pagination under the grid.
|
|
18785
18883
|
*
|
|
18786
18884
|
* On by default once a page size is set, because a paged table with no way to
|
|
@@ -18863,6 +18961,8 @@ export type CustomElements = {
|
|
|
18863
18961
|
*
|
|
18864
18962
|
* Custom selectors for styling elements within the component.
|
|
18865
18963
|
*
|
|
18964
|
+
* - `after`: The room the rows below the window would have taken. Windowed only.
|
|
18965
|
+
* - `before`: The room the rows above the window would have taken. Windowed only.
|
|
18866
18966
|
* - `cell`: One cell.
|
|
18867
18967
|
* - `empty`: Shown when no rows match.
|
|
18868
18968
|
* - `footer`: The region below the grid.
|
|
@@ -29423,8 +29523,18 @@ export type CustomElements = {
|
|
|
29423
29523
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
29424
29524
|
*
|
|
29425
29525
|
* - `estimate`: How tall one row is, in pixels, used to map scroll offset to an index.
|
|
29526
|
+
*
|
|
29527
|
+
* An estimate rather than a measurement while `measured` is off, which is
|
|
29528
|
+
* right whenever the rows really are one height and is the cheaper of the two.
|
|
29426
29529
|
* - `for`: Id of the element holding the rows, as JSON in a script.
|
|
29427
29530
|
* - `label`: What the list is called, since the rendered rows are only a window on it.
|
|
29531
|
+
* - `measured`: Places rows by what they came to rather than by `estimate`.
|
|
29532
|
+
*
|
|
29533
|
+
* **Off by default, because the straight line is better when it holds.** One
|
|
29534
|
+
* estimate makes offset and index convert by division, which can never
|
|
29535
|
+
* disagree with itself; measuring is what a set of genuinely different
|
|
29536
|
+
* heights needs and costs a read of each row as it renders. A list of
|
|
29537
|
+
* one-line rows should leave this alone.
|
|
29428
29538
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
29429
29539
|
*
|
|
29430
29540
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -32935,6 +33045,18 @@ export type CustomElementsSolidJs = {
|
|
|
32935
33045
|
* - `default-page`/`defaultPage`: Page to open on, where nothing declared one.
|
|
32936
33046
|
* - `default-page-size`/`defaultPageSize`: Page size to open with, where nothing declared one.
|
|
32937
33047
|
* - `default-sort`/`defaultSort`: Order to open on, where nothing declared one.
|
|
33048
|
+
* - `estimate`: How tall a row is taken to be before it has been drawn, in pixels.
|
|
33049
|
+
*
|
|
33050
|
+
* Only read while `windowed`, and a starting guess rather than a claim: a
|
|
33051
|
+
* cell that wraps makes its row taller than its neighbors, and the window
|
|
33052
|
+
* replaces this with what each row came to as it draws. It still has to be
|
|
33053
|
+
* close, because it is what the scrollbar is built from before anything has
|
|
33054
|
+
* been measured.
|
|
33055
|
+
* - `sort`: The order, as `field:direction`.
|
|
33056
|
+
*
|
|
33057
|
+
* Set it and this element defers: a reader's click fires `helix-sort` and
|
|
33058
|
+
* changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
33059
|
+
* element then owns.
|
|
32938
33060
|
* - `key`: The field naming a row's stable identity.
|
|
32939
33061
|
*
|
|
32940
33062
|
* **Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
@@ -32943,17 +33065,17 @@ export type CustomElementsSolidJs = {
|
|
|
32943
33065
|
* attached to the row it belongs to. Left unset the index is the key, which is
|
|
32944
33066
|
* correct only while nothing reorders: it is why this defaults to something
|
|
32945
33067
|
* that works and is worth setting anyway.
|
|
32946
|
-
* - `sort`: The order, as `field:direction`.
|
|
32947
|
-
*
|
|
32948
|
-
* Set it and this element defers: a reader's click fires `helix-sort` and
|
|
32949
|
-
* changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
32950
|
-
* element then owns.
|
|
32951
|
-
* - `label`: Accessible name for the grid.
|
|
32952
33068
|
* - `filter`: What the rows are narrowed to, as one query across every column.
|
|
32953
33069
|
*
|
|
32954
33070
|
* One query rather than a predicate per column, which is what a reader means
|
|
32955
33071
|
* by a search box above a table. It matches on each column's ordering value,
|
|
32956
33072
|
* so search and sort cannot disagree about what a column holds.
|
|
33073
|
+
* - `label`: Accessible name for the grid.
|
|
33074
|
+
* - `page`: The page on show, from 1.
|
|
33075
|
+
*
|
|
33076
|
+
* Clamped on the way out, so what this reports is the page it drew: a
|
|
33077
|
+
* bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
33078
|
+
* the last page rather than as 99.
|
|
32957
33079
|
* - `mode`: Whether this element does the work or asks the consumer to.
|
|
32958
33080
|
*
|
|
32959
33081
|
* `client` filters, sorts and pages `rows` itself. `server` applies none of
|
|
@@ -32962,11 +33084,6 @@ export type CustomElementsSolidJs = {
|
|
|
32962
33084
|
* the client cannot hold the data, so this is not an optimization, it is the
|
|
32963
33085
|
* only mode that works, and it is here from the start because adding it later
|
|
32964
33086
|
* inverts the data flow.
|
|
32965
|
-
* - `page`: The page on show, from 1.
|
|
32966
|
-
*
|
|
32967
|
-
* Clamped on the way out, so what this reports is the page it drew: a
|
|
32968
|
-
* bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
32969
|
-
* the last page rather than as 99.
|
|
32970
33087
|
* - `page-size`/`pageSize`: How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
32971
33088
|
*
|
|
32972
33089
|
* **It announces nothing, and that is not an omission.** Nothing in this
|
|
@@ -32980,6 +33097,23 @@ export type CustomElementsSolidJs = {
|
|
|
32980
33097
|
* nothing about the result. Ignored in `client` mode rather than trusted,
|
|
32981
33098
|
* because two sources for one count is the mistake, and here the array is the
|
|
32982
33099
|
* one that cannot be stale.
|
|
33100
|
+
* - `windowed`: Draws the rows in view and stands empty space in for the rest.
|
|
33101
|
+
*
|
|
33102
|
+
* **Not a `mode`.** `mode` says where the rows come from and who filtered
|
|
33103
|
+
* them; this says how many of the ones we hold get drawn. They are
|
|
33104
|
+
* independent: a consumer fetching five thousand rows a chunk at a time wants
|
|
33105
|
+
* `mode="server"` and this at once, and folding this into `mode` would be an
|
|
33106
|
+
* API that forbids that combination for no reason.
|
|
33107
|
+
*
|
|
33108
|
+
* **Composes with `paginated` rather than excluding it.** A window over a
|
|
33109
|
+
* page is coherent -- the page is the slice of the result, the window is the
|
|
33110
|
+
* part of that slice on screen -- and the arithmetic is the same either way,
|
|
33111
|
+
* so there is nothing to forbid. Together they suit a table paging at a
|
|
33112
|
+
* thousand rows, where the page is a reasonable fetch and a poor render.
|
|
33113
|
+
*
|
|
33114
|
+
* Off by default. Windowing costs a scroll listener, a measurement per row
|
|
33115
|
+
* drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
33116
|
+
* should pay none of them.
|
|
32983
33117
|
* - `paginated`: Whether to draw a pagination under the grid.
|
|
32984
33118
|
*
|
|
32985
33119
|
* On by default once a page size is set, because a paged table with no way to
|
|
@@ -33062,6 +33196,8 @@ export type CustomElementsSolidJs = {
|
|
|
33062
33196
|
*
|
|
33063
33197
|
* Custom selectors for styling elements within the component.
|
|
33064
33198
|
*
|
|
33199
|
+
* - `after`: The room the rows below the window would have taken. Windowed only.
|
|
33200
|
+
* - `before`: The room the rows above the window would have taken. Windowed only.
|
|
33065
33201
|
* - `cell`: One cell.
|
|
33066
33202
|
* - `empty`: Shown when no rows match.
|
|
33067
33203
|
* - `footer`: The region below the grid.
|
|
@@ -43837,8 +43973,18 @@ export type CustomElementsSolidJs = {
|
|
|
43837
43973
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
43838
43974
|
*
|
|
43839
43975
|
* - `estimate`: How tall one row is, in pixels, used to map scroll offset to an index.
|
|
43976
|
+
*
|
|
43977
|
+
* An estimate rather than a measurement while `measured` is off, which is
|
|
43978
|
+
* right whenever the rows really are one height and is the cheaper of the two.
|
|
43840
43979
|
* - `for`: Id of the element holding the rows, as JSON in a script.
|
|
43841
43980
|
* - `label`: What the list is called, since the rendered rows are only a window on it.
|
|
43981
|
+
* - `measured`: Places rows by what they came to rather than by `estimate`.
|
|
43982
|
+
*
|
|
43983
|
+
* **Off by default, because the straight line is better when it holds.** One
|
|
43984
|
+
* estimate makes offset and index convert by division, which can never
|
|
43985
|
+
* disagree with itself; measuring is what a set of genuinely different
|
|
43986
|
+
* heights needs and costs a read of each row as it renders. A list of
|
|
43987
|
+
* one-line rows should leave this alone.
|
|
43842
43988
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
43843
43989
|
*
|
|
43844
43990
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
package/types/vue.d.ts
CHANGED
|
@@ -1985,6 +1985,20 @@ export type HelixHeadlessDataTableVueProps = {
|
|
|
1985
1985
|
"default-sort"?: (HelixHeadlessDataTable["defaultSort"]) | undefined;
|
|
1986
1986
|
/** Order to open on, where nothing declared one. */
|
|
1987
1987
|
defaultSort?: (HelixHeadlessDataTable["defaultSort"]) | undefined;
|
|
1988
|
+
/** How tall a row is taken to be before it has been drawn, in pixels.
|
|
1989
|
+
|
|
1990
|
+
Only read while `windowed`, and a starting guess rather than a claim: a
|
|
1991
|
+
cell that wraps makes its row taller than its neighbors, and the window
|
|
1992
|
+
replaces this with what each row came to as it draws. It still has to be
|
|
1993
|
+
close, because it is what the scrollbar is built from before anything has
|
|
1994
|
+
been measured. */
|
|
1995
|
+
estimate?: (HelixHeadlessDataTable["estimate"]) | undefined;
|
|
1996
|
+
/** The order, as `field:direction`.
|
|
1997
|
+
|
|
1998
|
+
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
1999
|
+
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
2000
|
+
element then owns. */
|
|
2001
|
+
sort?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
1988
2002
|
/** The field naming a row's stable identity.
|
|
1989
2003
|
|
|
1990
2004
|
**Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
@@ -1994,20 +2008,20 @@ attached to the row it belongs to. Left unset the index is the key, which is
|
|
|
1994
2008
|
correct only while nothing reorders: it is why this defaults to something
|
|
1995
2009
|
that works and is worth setting anyway. */
|
|
1996
2010
|
key?: (HelixHeadlessDataTable["key"]) | undefined;
|
|
1997
|
-
/** The order, as `field:direction`.
|
|
1998
|
-
|
|
1999
|
-
Set it and this element defers: a reader's click fires `helix-sort` and
|
|
2000
|
-
changes nothing until a new value arrives. `default-sort` seeds an order this
|
|
2001
|
-
element then owns. */
|
|
2002
|
-
sort?: (HelixHeadlessDataTable["sort"]) | undefined;
|
|
2003
|
-
/** Accessible name for the grid. */
|
|
2004
|
-
label?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
2005
2011
|
/** What the rows are narrowed to, as one query across every column.
|
|
2006
2012
|
|
|
2007
2013
|
One query rather than a predicate per column, which is what a reader means
|
|
2008
2014
|
by a search box above a table. It matches on each column's ordering value,
|
|
2009
2015
|
so search and sort cannot disagree about what a column holds. */
|
|
2010
2016
|
filter?: (HelixHeadlessDataTable["filter"]) | undefined;
|
|
2017
|
+
/** Accessible name for the grid. */
|
|
2018
|
+
label?: (HelixHeadlessDataTable["label"]) | undefined;
|
|
2019
|
+
/** The page on show, from 1.
|
|
2020
|
+
|
|
2021
|
+
Clamped on the way out, so what this reports is the page it drew: a
|
|
2022
|
+
bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
2023
|
+
the last page rather than as 99. */
|
|
2024
|
+
page?: (HelixHeadlessDataTable["page"]) | undefined;
|
|
2011
2025
|
/** Whether this element does the work or asks the consumer to.
|
|
2012
2026
|
|
|
2013
2027
|
`client` filters, sorts and pages `rows` itself. `server` applies none of
|
|
@@ -2017,12 +2031,6 @@ the client cannot hold the data, so this is not an optimization, it is the
|
|
|
2017
2031
|
only mode that works, and it is here from the start because adding it later
|
|
2018
2032
|
inverts the data flow. */
|
|
2019
2033
|
mode?: (HelixHeadlessDataTable["mode"]) | undefined;
|
|
2020
|
-
/** The page on show, from 1.
|
|
2021
|
-
|
|
2022
|
-
Clamped on the way out, so what this reports is the page it drew: a
|
|
2023
|
-
bookmarked link to page 99 of a result that has since shrunk reads back as
|
|
2024
|
-
the last page rather than as 99. */
|
|
2025
|
-
page?: (HelixHeadlessDataTable["page"]) | undefined;
|
|
2026
2034
|
/** How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
2027
2035
|
|
|
2028
2036
|
**It announces nothing, and that is not an omission.** Nothing in this
|
|
@@ -2046,6 +2054,24 @@ nothing about the result. Ignored in `client` mode rather than trusted,
|
|
|
2046
2054
|
because two sources for one count is the mistake, and here the array is the
|
|
2047
2055
|
one that cannot be stale. */
|
|
2048
2056
|
total?: (HelixHeadlessDataTable["total"]) | undefined;
|
|
2057
|
+
/** Draws the rows in view and stands empty space in for the rest.
|
|
2058
|
+
|
|
2059
|
+
**Not a `mode`.** `mode` says where the rows come from and who filtered
|
|
2060
|
+
them; this says how many of the ones we hold get drawn. They are
|
|
2061
|
+
independent: a consumer fetching five thousand rows a chunk at a time wants
|
|
2062
|
+
`mode="server"` and this at once, and folding this into `mode` would be an
|
|
2063
|
+
API that forbids that combination for no reason.
|
|
2064
|
+
|
|
2065
|
+
**Composes with `paginated` rather than excluding it.** A window over a
|
|
2066
|
+
page is coherent -- the page is the slice of the result, the window is the
|
|
2067
|
+
part of that slice on screen -- and the arithmetic is the same either way,
|
|
2068
|
+
so there is nothing to forbid. Together they suit a table paging at a
|
|
2069
|
+
thousand rows, where the page is a reasonable fetch and a poor render.
|
|
2070
|
+
|
|
2071
|
+
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
2072
|
+
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
2073
|
+
should pay none of them. */
|
|
2074
|
+
windowed?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
2049
2075
|
/** Whether to draw a pagination under the grid.
|
|
2050
2076
|
|
|
2051
2077
|
On by default once a page size is set, because a paged table with no way to
|
|
@@ -7846,12 +7872,23 @@ export type HelixHeadlessVideoVueEvents = {
|
|
|
7846
7872
|
};
|
|
7847
7873
|
|
|
7848
7874
|
export type HelixHeadlessVirtualListVueProps = {
|
|
7849
|
-
/** How tall one row is, in pixels, used to map scroll offset to an index.
|
|
7875
|
+
/** How tall one row is, in pixels, used to map scroll offset to an index.
|
|
7876
|
+
|
|
7877
|
+
An estimate rather than a measurement while `measured` is off, which is
|
|
7878
|
+
right whenever the rows really are one height and is the cheaper of the two. */
|
|
7850
7879
|
estimate?: (HelixHeadlessVirtualList["estimate"]) | undefined;
|
|
7851
7880
|
/** Id of the element holding the rows, as JSON in a script. */
|
|
7852
7881
|
for?: (HelixHeadlessVirtualList["for"]) | undefined;
|
|
7853
7882
|
/** What the list is called, since the rendered rows are only a window on it. */
|
|
7854
7883
|
label?: (HelixHeadlessVirtualList["label"]) | undefined;
|
|
7884
|
+
/** Places rows by what they came to rather than by `estimate`.
|
|
7885
|
+
|
|
7886
|
+
**Off by default, because the straight line is better when it holds.** One
|
|
7887
|
+
estimate makes offset and index convert by division, which can never
|
|
7888
|
+
disagree with itself; measuring is what a set of genuinely different
|
|
7889
|
+
heights needs and costs a read of each row as it renders. A list of
|
|
7890
|
+
one-line rows should leave this alone. */
|
|
7891
|
+
measured?: (HelixHeadlessVirtualList["measured"]) | undefined;
|
|
7855
7892
|
};
|
|
7856
7893
|
|
|
7857
7894
|
export type HelixHeadlessVirtualListVueEvents = {};
|