@fusion.dev/helix-headless 0.37.0 → 0.39.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 +91 -42
- package/dist/combobox/root/combobox-root.d.ts +10 -1
- package/dist/combobox/root/combobox-root.js +0 -1
- package/dist/data-table/root/data-table-root.d.ts +31 -3
- package/dist/data-table/root/data-table-root.js +6 -4
- package/dist/description-list/item/description-list-item.d.ts +4 -3
- package/dist/description-list/root/description-list-root.d.ts +1 -1
- package/dist/drawer/root/drawer-root.d.ts +1 -1
- package/dist/drilldown/item/drilldown-item.d.ts +1 -1
- package/dist/drilldown/root/drilldown-root.d.ts +3 -1
- package/dist/drilldown/root/drilldown-root.js +1 -1
- package/dist/element-events.generated.js +1 -1
- package/dist/heatmap/root/heatmap-root.d.ts +22 -2
- package/dist/heatmap/root/heatmap-root.js +11 -1
- package/dist/megamenu/root/megamenu-root.d.ts +12 -3
- package/dist/megamenu/root/megamenu-root.js +1 -1
- package/dist/object-inspector/root/object-inspector-root.d.ts +18 -1
- package/dist/object-inspector/root/object-inspector-root.js +1 -2
- package/dist/outline/root/outline-root.d.ts +1 -1
- package/dist/outline/root/outline-root.js +2 -2
- package/dist/table/column/table-column.d.ts +10 -0
- package/dist/table/column/table-column.js +2 -0
- package/dist/table/root/table-root.d.ts +1 -1
- package/dist/table/root/table-root.js +5 -4
- package/dist/tooltip/root/tooltip-root.d.ts +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +202 -45
- package/types/vue.d.ts +67 -18
package/custom-elements.json
CHANGED
|
@@ -20391,7 +20391,7 @@
|
|
|
20391
20391
|
"text": "boolean"
|
|
20392
20392
|
},
|
|
20393
20393
|
"default": "false",
|
|
20394
|
-
"description": "Whether more than one option can be chosen.\n\nThe list already does the work: `value` comes apart on commas, a press\ntoggles rather than replaces, and the arrows move without choosing. What\nthis adds is the tags, and keeping the panel open between picks.\n\nA comma is therefore not available inside an option's value, which is the\nlistbox's contract and not this element's to change.",
|
|
20394
|
+
"description": "Whether more than one option can be chosen.\n\nThe list already does the work: `value` comes apart on commas, a press\ntoggles rather than replaces, and the arrows move without choosing. What\nthis adds is the tags, and keeping the panel open between picks.\n\nA comma is therefore not available inside an option's value, which is the\nlistbox's contract and not this element's to change.\n\n**The list is told, and the field is not.** `aria-multiselectable` belongs\nto `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in\nARIA 1.2; the list sets it on itself through `ElementInternals`, where a\nreader on the field hears it through `aria-controls`. This element wrote it\nonto its own `role=\"combobox\"` input as well, which an audit reports as a\nproperty the role does not support and no spec here ever asserted: the one\nthat covers this says in as many words that telling the list is what this\nelement is responsible for.",
|
|
20395
20395
|
"attribute": "multiple"
|
|
20396
20396
|
},
|
|
20397
20397
|
{
|
|
@@ -21987,7 +21987,7 @@
|
|
|
21987
21987
|
"text": "boolean"
|
|
21988
21988
|
},
|
|
21989
21989
|
"default": "false",
|
|
21990
|
-
"description": "Whether more than one option can be chosen.\n\nThe list already does the work: `value` comes apart on commas, a press\ntoggles rather than replaces, and the arrows move without choosing. What\nthis adds is the tags, and keeping the panel open between picks.\n\nA comma is therefore not available inside an option's value, which is the\nlistbox's contract and not this element's to change.",
|
|
21990
|
+
"description": "Whether more than one option can be chosen.\n\nThe list already does the work: `value` comes apart on commas, a press\ntoggles rather than replaces, and the arrows move without choosing. What\nthis adds is the tags, and keeping the panel open between picks.\n\nA comma is therefore not available inside an option's value, which is the\nlistbox's contract and not this element's to change.\n\n**The list is told, and the field is not.** `aria-multiselectable` belongs\nto `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in\nARIA 1.2; the list sets it on itself through `ElementInternals`, where a\nreader on the field hears it through `aria-controls`. This element wrote it\nonto its own `role=\"combobox\"` input as well, which an audit reports as a\nproperty the role does not support and no spec here ever asserted: the one\nthat covers this says in as many words that telling the list is what this\nelement is responsible for.",
|
|
21991
21991
|
"fieldName": "multiple"
|
|
21992
21992
|
},
|
|
21993
21993
|
{
|
|
@@ -22242,7 +22242,7 @@
|
|
|
22242
22242
|
"helix": {
|
|
22243
22243
|
"category": "forms",
|
|
22244
22244
|
"since": "0.1.0",
|
|
22245
|
-
"status": "
|
|
22245
|
+
"status": "stable",
|
|
22246
22246
|
"documentation": "https://fusion.dev/helix/components/combobox",
|
|
22247
22247
|
"aliases": [
|
|
22248
22248
|
"Autocomplete",
|
|
@@ -24410,6 +24410,10 @@
|
|
|
24410
24410
|
"description": "**The schema is markup and the data is a property.** Columns are declared as\n`helix-table-column` children, because a schema is small and something a\nreader should see in the HTML; rows are handed over as an array, because a\ntable that draws ten thousand elements cannot window them.\n\n```html\n<helix-data-table .rows=${rows} sort=\"name:asc\" page-size=\"20\">\n <helix-table-column field=\"name\" sortable>Name</helix-table-column>\n <helix-table-column field=\"size\" align=\"end\" sortable .cell=${bytes}>Size</helix-table-column>\n</helix-data-table>\n```\n\n`helix-table` takes rows as markup and is the right component for a table of\ntwelve things a person wrote out.\n\n**Sort and filter apply to the whole set, never the page.** Sorting the drawn\nwindow is correct on the first screen and wrong on every other one.\n\n**The cell values do not server-render.** The headings do, and the row\nelements do, but reading a cell needs the columns, and the columns are markup\nchildren Lit SSR does not hand this element. So a crawler sees a table of the\nright shape with nothing in it. That is the cost of the first paragraph: use\n`helix-table` where the served HTML has to carry the values.\n\n**`selectable` adds a column of checkboxes, keyed on `row-key`.** A row is\nselected by its identity rather than its position, so a selection survives a\nsort, a filter and a page. `selected` is the chosen keys, comma separated, the\nshape Listbox uses for a multiple choice, and like `sort` it is controlled\nwhen set and seeded by `default-selected`. The box in the heading selects every\nrow in the result, across pages, and shows a dash while only some are chosen.\nChoosing one of many, rather than several, is opening a row, and that is a\nlink or a button in a cell rather than a selection.\n\n**A reader can size and order the columns.** `resizable` on a column puts a\nseparator on its edge; `reorderable` on the table puts a grip on each heading\nthat has a `field`, moved by dragging or with the arrow keys. The order lands\nin `order` as fields, and the consumer's own markup is never rewritten: the\ntable assigns the headings to its header in that order instead.\n\n**`csv()` hands back the result as text**: every row the filter lets through,\nin the order on screen, in the columns on screen. Saving it is the page's\nbusiness, the same as any other file.",
|
|
24411
24411
|
"name": "HelixHeadlessDataTable",
|
|
24412
24412
|
"cssProperties": [
|
|
24413
|
+
{
|
|
24414
|
+
"description": "The edge the column a cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the component onto each cell it draws, read by the sheet that paints one; `helix-table` publishes `--table-cell-align` for the same attribute on the cells a consumer wrote, under its own family's name.",
|
|
24415
|
+
"name": "--data-table-cell-align"
|
|
24416
|
+
},
|
|
24413
24417
|
{
|
|
24414
24418
|
"description": "The column track list this element worked out from the columns declared in it. Written by the component, read by the sheet that paints: a stylesheet takes it to lay the grid out, and setting it does nothing, because the component writes it inline on the very element that reads it and an inline declaration beats any sheet. `--data-table-columns` is the one to set.",
|
|
24415
24419
|
"name": "--data-table-template"
|
|
@@ -24473,7 +24477,7 @@
|
|
|
24473
24477
|
"name": "checkbox-mark-indeterminate"
|
|
24474
24478
|
},
|
|
24475
24479
|
{
|
|
24476
|
-
"description": "Shown when
|
|
24480
|
+
"description": "Shown when the result has nothing in it, whether it arrived empty or a filter emptied it. A result still on its way is `loading` instead, which wins over this.",
|
|
24477
24481
|
"name": "empty"
|
|
24478
24482
|
},
|
|
24479
24483
|
{
|
|
@@ -25098,7 +25102,7 @@
|
|
|
25098
25102
|
},
|
|
25099
25103
|
"privacy": "protected",
|
|
25100
25104
|
"readonly": true,
|
|
25101
|
-
"description": "Emptiness is a fact about the data here, not about slotted children.",
|
|
25105
|
+
"description": "Emptiness is a fact about the data here, not about slotted children.\n\n**The page rather than the window**, which is the difference between the two\ncounts `view` carries and the reason this reads `available`. A windowed\ntable draws a slice, and a slice can be short of the rows that are there:\nasking whether *this* slice has rows says \"nothing matched\" about a result\nthat matched plenty.\n\nThe mixin's own answer counts children with no `slot`, which for this\nelement is the columns. Left in place, a table with columns and no data\nwould call itself full.",
|
|
25102
25106
|
"inheritedFrom": {
|
|
25103
25107
|
"name": "MixinCollection",
|
|
25104
25108
|
"module": "src/mixins/mixin-collection/mixin-collection.ts"
|
|
@@ -25469,7 +25473,8 @@
|
|
|
25469
25473
|
"text": "boolean"
|
|
25470
25474
|
}
|
|
25471
25475
|
}
|
|
25472
|
-
]
|
|
25476
|
+
],
|
|
25477
|
+
"description": "One cell, carrying its column's edge as a fact rather than as a decision.\n\n**A fact published rather than a property chosen**, which is what\n`helix-table` does with the same attribute: what lining up *means*, a\n`justify-content` for a value that fits or a `text-align` for one that\nwraps, belongs to whoever draws the cell. Written here as an inline\n`text-align` it was this tier choosing, in the tier that ships no CSS, and a\nconsumer could not overrule it either, an inline declaration beating any\n`::part(cell)` rule they wrote.\n\nOnly the three edges reach it, `align` being a string anybody can write and\nthis being a style attribute: `edgeOf` is that guard, and `helix-table`\nholds the same value to the same three."
|
|
25473
25478
|
},
|
|
25474
25479
|
{
|
|
25475
25480
|
"kind": "method",
|
|
@@ -26453,7 +26458,7 @@
|
|
|
26453
26458
|
"helix": {
|
|
26454
26459
|
"category": "data",
|
|
26455
26460
|
"since": "0.1.0",
|
|
26456
|
-
"status": "
|
|
26461
|
+
"status": "stable",
|
|
26457
26462
|
"documentation": "https://fusion.dev/helix/components/data-table",
|
|
26458
26463
|
"aliases": [
|
|
26459
26464
|
"Grid",
|
|
@@ -30698,7 +30703,7 @@
|
|
|
30698
30703
|
"text": "string"
|
|
30699
30704
|
},
|
|
30700
30705
|
"default": "''",
|
|
30701
|
-
"description": "What the value is, for the common case of plain text.\n\nThe fallback of the `label` slot, so slotted content replaces it rather than\nappearing beside it.",
|
|
30706
|
+
"description": "What the value is called, for the common case of plain text.\n\nThe fallback of the `label` slot, so slotted content replaces it rather than\nappearing beside it. The value itself is the default slot: it is the half\nthat varies and is often more than text.",
|
|
30702
30707
|
"attribute": "label"
|
|
30703
30708
|
},
|
|
30704
30709
|
{
|
|
@@ -31033,7 +31038,7 @@
|
|
|
31033
31038
|
"text": "string"
|
|
31034
31039
|
},
|
|
31035
31040
|
"default": "''",
|
|
31036
|
-
"description": "What the value is, for the common case of plain text.\n\nThe fallback of the `label` slot, so slotted content replaces it rather than\nappearing beside it.",
|
|
31041
|
+
"description": "What the value is called, for the common case of plain text.\n\nThe fallback of the `label` slot, so slotted content replaces it rather than\nappearing beside it. The value itself is the default slot: it is the half\nthat varies and is often more than text.",
|
|
31037
31042
|
"fieldName": "label"
|
|
31038
31043
|
}
|
|
31039
31044
|
],
|
|
@@ -31044,7 +31049,7 @@
|
|
|
31044
31049
|
"summary": "One label and its value.",
|
|
31045
31050
|
"helix": {
|
|
31046
31051
|
"since": "0.1.0",
|
|
31047
|
-
"status": "
|
|
31052
|
+
"status": "stable",
|
|
31048
31053
|
"documentation": "https://fusion.dev/helix/components/description-list",
|
|
31049
31054
|
"tier": "headless",
|
|
31050
31055
|
"group": "BaseDescriptionList",
|
|
@@ -31459,7 +31464,7 @@
|
|
|
31459
31464
|
"helix": {
|
|
31460
31465
|
"category": "data",
|
|
31461
31466
|
"since": "0.1.0",
|
|
31462
|
-
"status": "
|
|
31467
|
+
"status": "stable",
|
|
31463
31468
|
"documentation": "https://fusion.dev/helix/components/description-list",
|
|
31464
31469
|
"aliases": [
|
|
31465
31470
|
"Data list",
|
|
@@ -34311,7 +34316,7 @@
|
|
|
34311
34316
|
"helix": {
|
|
34312
34317
|
"category": "overlays",
|
|
34313
34318
|
"since": "0.1.0",
|
|
34314
|
-
"status": "
|
|
34319
|
+
"status": "stable",
|
|
34315
34320
|
"documentation": "https://fusion.dev/helix/components/drawer",
|
|
34316
34321
|
"aliases": [
|
|
34317
34322
|
"Sheet",
|
|
@@ -34873,7 +34878,7 @@
|
|
|
34873
34878
|
"summary": "One row of a drill-down, which may hold a page of its own.",
|
|
34874
34879
|
"helix": {
|
|
34875
34880
|
"since": "0.1.0",
|
|
34876
|
-
"status": "
|
|
34881
|
+
"status": "stable",
|
|
34877
34882
|
"documentation": "https://fusion.dev/helix/components/drilldown",
|
|
34878
34883
|
"aliases": [
|
|
34879
34884
|
"Panel item",
|
|
@@ -35639,6 +35644,20 @@
|
|
|
35639
35644
|
}
|
|
35640
35645
|
}
|
|
35641
35646
|
],
|
|
35647
|
+
"cssStates": [
|
|
35648
|
+
{
|
|
35649
|
+
"description": "While a row's page is showing rather than the top one, so a frame around this can answer the depth it is at.",
|
|
35650
|
+
"name": "drilled"
|
|
35651
|
+
},
|
|
35652
|
+
{
|
|
35653
|
+
"description": "Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.",
|
|
35654
|
+
"name": "settled",
|
|
35655
|
+
"inheritedFrom": {
|
|
35656
|
+
"name": "HelixElement",
|
|
35657
|
+
"module": "src/helix-element/helix-element.ts"
|
|
35658
|
+
}
|
|
35659
|
+
}
|
|
35660
|
+
],
|
|
35642
35661
|
"mixins": [
|
|
35643
35662
|
{
|
|
35644
35663
|
"name": "MixinCollection",
|
|
@@ -35653,7 +35672,7 @@
|
|
|
35653
35672
|
"helix": {
|
|
35654
35673
|
"category": "navigation",
|
|
35655
35674
|
"since": "0.1.0",
|
|
35656
|
-
"status": "
|
|
35675
|
+
"status": "stable",
|
|
35657
35676
|
"documentation": "https://fusion.dev/helix/components/drilldown",
|
|
35658
35677
|
"aliases": [
|
|
35659
35678
|
"Panel",
|
|
@@ -35673,16 +35692,6 @@
|
|
|
35673
35692
|
},
|
|
35674
35693
|
"tagName": "helix-headless-drilldown",
|
|
35675
35694
|
"customElement": true,
|
|
35676
|
-
"cssStates": [
|
|
35677
|
-
{
|
|
35678
|
-
"description": "Set a frame after the first render. Transitions are held off until it is, so an element never animates its own arrival.",
|
|
35679
|
-
"name": "settled",
|
|
35680
|
-
"inheritedFrom": {
|
|
35681
|
-
"name": "HelixElement",
|
|
35682
|
-
"module": "src/helix-element/helix-element.ts"
|
|
35683
|
-
}
|
|
35684
|
-
}
|
|
35685
|
-
],
|
|
35686
35695
|
"modulePath": "src/drilldown/root/drilldown-root.ts",
|
|
35687
35696
|
"definitionPath": "src/drilldown/root/drilldown-root.ts"
|
|
35688
35697
|
}
|
|
@@ -42745,7 +42754,7 @@
|
|
|
42745
42754
|
"name": "cell"
|
|
42746
42755
|
},
|
|
42747
42756
|
{
|
|
42748
|
-
"description": "Shown when the table has no readings in it.",
|
|
42757
|
+
"description": "Shown when the table has no readings in it, and not before the table can be read at all: on a server, and while hydrating what one sent, there is no document to resolve `for` in and nothing is known yet.",
|
|
42749
42758
|
"name": "empty"
|
|
42750
42759
|
},
|
|
42751
42760
|
{
|
|
@@ -42855,7 +42864,7 @@
|
|
|
42855
42864
|
"text": "string"
|
|
42856
42865
|
},
|
|
42857
42866
|
"default": "'No readings'",
|
|
42858
|
-
"description": "Shown when the table has no readings in it
|
|
42867
|
+
"description": "Shown when the table has no readings in it.\n\nNever shown while the table cannot be read at all, which is a server render\nand the hydrating one after it: see `sourceKnown`.",
|
|
42859
42868
|
"attribute": "empty-text"
|
|
42860
42869
|
},
|
|
42861
42870
|
{
|
|
@@ -42975,6 +42984,16 @@
|
|
|
42975
42984
|
"description": "Every reading in the table, oldest first, as the table is written.\n\n**Not `readings`, which the mixin already has and which means a count.**\nTwo members of the same name meaning a number and an array is the kind of\ncollision that type-checks in one direction and reads wrong in both.",
|
|
42976
42985
|
"readonly": true
|
|
42977
42986
|
},
|
|
42987
|
+
{
|
|
42988
|
+
"kind": "field",
|
|
42989
|
+
"name": "sourceKnown",
|
|
42990
|
+
"type": {
|
|
42991
|
+
"text": "boolean"
|
|
42992
|
+
},
|
|
42993
|
+
"privacy": "private",
|
|
42994
|
+
"description": "Whether this render can tell a table with no readings from one it has not\nresolved yet.\n\n**Unknown is not empty, which is what an empty state must never say.**\n`for` names an id and resolving an id wants a document, so a server has\nnone and a hydrating render must not look either. Without this the server\ndrew \"No readings\" over a table holding ninety days of them, a crawler read\nthat sentence, and the strip flipped to a full one on hydration: the fault\n`MixinCollection` names for a slotted collection, arriving through the one\nchannel that mixin cannot see.\n\nThe same shape as `childrenKnown`, asked of a document rather than of a\ntree. An id that resolves to nothing in a browser is still known, and still\nempty: a `for` naming no table should say so rather than sit blank.",
|
|
42995
|
+
"readonly": true
|
|
42996
|
+
},
|
|
42978
42997
|
{
|
|
42979
42998
|
"kind": "field",
|
|
42980
42999
|
"name": "rowCount",
|
|
@@ -43548,7 +43567,7 @@
|
|
|
43548
43567
|
"text": "string"
|
|
43549
43568
|
},
|
|
43550
43569
|
"default": "'No readings'",
|
|
43551
|
-
"description": "Shown when the table has no readings in it
|
|
43570
|
+
"description": "Shown when the table has no readings in it.\n\nNever shown while the table cannot be read at all, which is a server render\nand the hydrating one after it: see `sourceKnown`.",
|
|
43552
43571
|
"fieldName": "emptyText"
|
|
43553
43572
|
},
|
|
43554
43573
|
{
|
|
@@ -43637,7 +43656,7 @@
|
|
|
43637
43656
|
"helix": {
|
|
43638
43657
|
"category": "charts",
|
|
43639
43658
|
"since": "0.1.0",
|
|
43640
|
-
"status": "
|
|
43659
|
+
"status": "stable",
|
|
43641
43660
|
"documentation": "https://fusion.dev/helix/components/heatmap",
|
|
43642
43661
|
"aliases": [
|
|
43643
43662
|
"Contribution graph",
|
|
@@ -53530,7 +53549,7 @@
|
|
|
53530
53549
|
"text": "number"
|
|
53531
53550
|
},
|
|
53532
53551
|
"default": "640",
|
|
53533
|
-
"description": "The width, in pixels, under which a card becomes a band. Zero never does.\n\nA card is a panel hung off one word, and there is no room to hang anything\noff a word on a phone: the columns do not shrink past\n`--megamenu-column-size`, so four of them stay four of them and the panel\nruns off the side of the screen rather than reflowing. Below this it takes\nthe whole width and its columns stack, which is the only arrangement that\nfits.\n\n**In script rather than a media query, and only once.** Whether the panel is\na band is not a question of paint: a band is not placed against the trigger,\nso the controller has to be told not to measure, and that decision is here\nwhatever the stylesheet says. Writing the width in both places would be one\nnumber in two languages, drifting the first time either moved. This
|
|
53552
|
+
"description": "The width, in pixels, under which a card becomes a band. Zero never does.\n\nA card is a panel hung off one word, and there is no room to hang anything\noff a word on a phone: the columns do not shrink past\n`--megamenu-column-size`, so four of them stay four of them and the panel\nruns off the side of the screen rather than reflowing. Below this it takes\nthe whole width and its columns stack, which is the only arrangement that\nfits.\n\n**In script rather than a media query, and only once.** Whether the panel is\na band is not a question of paint: a band is not placed against the trigger,\nso the controller has to be told not to measure, and that decision is here\nwhatever the stylesheet says. Writing the width in both places would be one\nnumber in two languages, drifting the first time either moved. This records\n`:state(narrow)` on the host and the stylesheet arranges itself off that.\n\n**A custom state and never `data-narrow`, which is what it was.** The width\nis read in `connectedCallback`, so on a phone this is true on the very first\nupdate: an attribute written there is markup a consumer's server never sent,\nwhich React reports as a mismatch and answers by rebuilding the subtree. The\nnarrow exception the server specs describe covers a mirror that can only\nbecome true long after hydration, and a viewport measured before the first\npaint is the opposite case. See `MixinControllerOpen` on `open`.",
|
|
53534
53553
|
"attribute": "full-below"
|
|
53535
53554
|
},
|
|
53536
53555
|
{
|
|
@@ -54263,7 +54282,7 @@
|
|
|
54263
54282
|
"text": "number"
|
|
54264
54283
|
},
|
|
54265
54284
|
"default": "640",
|
|
54266
|
-
"description": "The width, in pixels, under which a card becomes a band. Zero never does.\n\nA card is a panel hung off one word, and there is no room to hang anything\noff a word on a phone: the columns do not shrink past\n`--megamenu-column-size`, so four of them stay four of them and the panel\nruns off the side of the screen rather than reflowing. Below this it takes\nthe whole width and its columns stack, which is the only arrangement that\nfits.\n\n**In script rather than a media query, and only once.** Whether the panel is\na band is not a question of paint: a band is not placed against the trigger,\nso the controller has to be told not to measure, and that decision is here\nwhatever the stylesheet says. Writing the width in both places would be one\nnumber in two languages, drifting the first time either moved. This
|
|
54285
|
+
"description": "The width, in pixels, under which a card becomes a band. Zero never does.\n\nA card is a panel hung off one word, and there is no room to hang anything\noff a word on a phone: the columns do not shrink past\n`--megamenu-column-size`, so four of them stay four of them and the panel\nruns off the side of the screen rather than reflowing. Below this it takes\nthe whole width and its columns stack, which is the only arrangement that\nfits.\n\n**In script rather than a media query, and only once.** Whether the panel is\na band is not a question of paint: a band is not placed against the trigger,\nso the controller has to be told not to measure, and that decision is here\nwhatever the stylesheet says. Writing the width in both places would be one\nnumber in two languages, drifting the first time either moved. This records\n`:state(narrow)` on the host and the stylesheet arranges itself off that.\n\n**A custom state and never `data-narrow`, which is what it was.** The width\nis read in `connectedCallback`, so on a phone this is true on the very first\nupdate: an attribute written there is markup a consumer's server never sent,\nwhich React reports as a mismatch and answers by rebuilding the subtree. The\nnarrow exception the server specs describe covers a mirror that can only\nbecome true long after hydration, and a viewport measured before the first\npaint is the opposite case. See `MixinControllerOpen` on `open`.",
|
|
54267
54286
|
"fieldName": "fullBelow"
|
|
54268
54287
|
},
|
|
54269
54288
|
{
|
|
@@ -54319,6 +54338,10 @@
|
|
|
54319
54338
|
}
|
|
54320
54339
|
],
|
|
54321
54340
|
"cssStates": [
|
|
54341
|
+
{
|
|
54342
|
+
"description": "While the page is under `full-below`, so the panel is a band whether or not one was asked for.",
|
|
54343
|
+
"name": "narrow"
|
|
54344
|
+
},
|
|
54322
54345
|
{
|
|
54323
54346
|
"description": "While the panel is open, which is when the trigger reads as current.",
|
|
54324
54347
|
"name": "open"
|
|
@@ -54346,7 +54369,7 @@
|
|
|
54346
54369
|
"helix": {
|
|
54347
54370
|
"category": "navigation",
|
|
54348
54371
|
"since": "0.1.0",
|
|
54349
|
-
"status": "
|
|
54372
|
+
"status": "stable",
|
|
54350
54373
|
"documentation": "https://fusion.dev/helix/components/megamenu",
|
|
54351
54374
|
"aliases": [
|
|
54352
54375
|
"Mega menu",
|
|
@@ -61502,9 +61525,8 @@
|
|
|
61502
61525
|
"text": "boolean"
|
|
61503
61526
|
},
|
|
61504
61527
|
"default": "false",
|
|
61505
|
-
"description": "Whether to leave the copy button off.\n\nNegative for the reason Code Block's is: a boolean attribute defaulting to\ntrue could never be turned off from markup.",
|
|
61506
|
-
"attribute": "no-copy"
|
|
61507
|
-
"reflects": true
|
|
61528
|
+
"description": "Whether to leave the copy button off.\n\nNegative for the reason Code Block's is: a boolean attribute defaulting to\ntrue could never be turned off from markup.\n\n**It does not reflect, where Code Block's does**, and the difference is what\nthe two sheets need. Code Block reserves the button's width with\n`:host(:not([no-copy]))`, so the attribute has to be there for a consumer\nwho set the property. This button is positioned out of the flow and takes no\nroom, so nothing selects on it, and reflection exists so that a selector can\nreach a value.",
|
|
61529
|
+
"attribute": "no-copy"
|
|
61508
61530
|
},
|
|
61509
61531
|
{
|
|
61510
61532
|
"kind": "field",
|
|
@@ -61783,7 +61805,8 @@
|
|
|
61783
61805
|
"text": "number"
|
|
61784
61806
|
}
|
|
61785
61807
|
}
|
|
61786
|
-
]
|
|
61808
|
+
],
|
|
61809
|
+
"description": "One entry, named for its state where it holds one.\n\n**`row-active` and no attribute beside it.** Which row the keys are on is\ndrawn by a sheet and by nothing else: the accessibility tree hears it from\n`aria-activedescendant` on the tree, which points at this row's id, so an\nattribute would be a second spelling with no reader. The name is the one a\nconsumer can reach, nothing being able to follow `::part()` with an\nattribute selector."
|
|
61787
61810
|
},
|
|
61788
61811
|
{
|
|
61789
61812
|
"kind": "method",
|
|
@@ -62173,7 +62196,7 @@
|
|
|
62173
62196
|
"text": "boolean"
|
|
62174
62197
|
},
|
|
62175
62198
|
"default": "false",
|
|
62176
|
-
"description": "Whether to leave the copy button off.\n\nNegative for the reason Code Block's is: a boolean attribute defaulting to\ntrue could never be turned off from markup.",
|
|
62199
|
+
"description": "Whether to leave the copy button off.\n\nNegative for the reason Code Block's is: a boolean attribute defaulting to\ntrue could never be turned off from markup.\n\n**It does not reflect, where Code Block's does**, and the difference is what\nthe two sheets need. Code Block reserves the button's width with\n`:host(:not([no-copy]))`, so the attribute has to be there for a consumer\nwho set the property. This button is positioned out of the flow and takes no\nroom, so nothing selects on it, and reflection exists so that a selector can\nreach a value.",
|
|
62177
62200
|
"fieldName": "noCopy"
|
|
62178
62201
|
},
|
|
62179
62202
|
{
|
|
@@ -62194,7 +62217,7 @@
|
|
|
62194
62217
|
"helix": {
|
|
62195
62218
|
"category": "data",
|
|
62196
62219
|
"since": "0.1.0",
|
|
62197
|
-
"status": "
|
|
62220
|
+
"status": "stable",
|
|
62198
62221
|
"documentation": "https://fusion.dev/helix/components/object-inspector",
|
|
62199
62222
|
"aliases": [
|
|
62200
62223
|
"JSON viewer",
|
|
@@ -63945,11 +63968,11 @@
|
|
|
63945
63968
|
"events": [
|
|
63946
63969
|
{
|
|
63947
63970
|
"type": {
|
|
63948
|
-
"text": "
|
|
63971
|
+
"text": "HelixActivateEvent"
|
|
63949
63972
|
},
|
|
63950
|
-
"description": "The section being read has changed, carrying its id as the value.
|
|
63951
|
-
"name": "helix-
|
|
63952
|
-
"reactProp": "onhelix-
|
|
63973
|
+
"description": "The section being read has changed, carrying its id as the value. An announcement: it is read off where the page is scrolled to, so there is no decision here to take.",
|
|
63974
|
+
"name": "helix-activate",
|
|
63975
|
+
"reactProp": "onhelix-activate"
|
|
63953
63976
|
}
|
|
63954
63977
|
],
|
|
63955
63978
|
"attributes": [
|
|
@@ -85243,6 +85266,24 @@
|
|
|
85243
85266
|
],
|
|
85244
85267
|
"description": "A dot path resolved against a row.\n\nWritten here rather than taken from a library, because the whole of what is\nneeded is \"walk the keys and stop at the first thing that is not an object\".\nReturns `undefined` for a path that does not resolve, which the table renders\nas an empty cell: a missing key is a hole in the data and drawing `undefined`\ninto a table tells a reader the software is broken rather than the row is."
|
|
85245
85268
|
},
|
|
85269
|
+
{
|
|
85270
|
+
"kind": "function",
|
|
85271
|
+
"name": "edgeOf",
|
|
85272
|
+
"return": {
|
|
85273
|
+
"type": {
|
|
85274
|
+
"text": "string | undefined"
|
|
85275
|
+
}
|
|
85276
|
+
},
|
|
85277
|
+
"parameters": [
|
|
85278
|
+
{
|
|
85279
|
+
"name": "align",
|
|
85280
|
+
"type": {
|
|
85281
|
+
"text": "string | undefined"
|
|
85282
|
+
}
|
|
85283
|
+
}
|
|
85284
|
+
],
|
|
85285
|
+
"description": "The edge a column names, where it names one of the three.\n\n**`align` is a string anybody can write**, the union on the property being a\ncompile-time claim and nothing else, and both tables put the value straight\ninto CSS: `helix-table` into a rule in each row's shadow root, `helix-data-table`\ninto the cell it draws. One guard, here with the property, rather than one in\neach table and only one of them written."
|
|
85286
|
+
},
|
|
85246
85287
|
{
|
|
85247
85288
|
"kind": "class",
|
|
85248
85289
|
"description": "**The column is the source of both its heading and its track.** Add one and\nthe table has another track; remove one and it does not. Declaring the widths\nseparately, as a CSS track list on the table, leaves nothing tying the two\ntogether: a table with three headings and a two-track list renders without\ncomplaint, and a track list that is accidentally the headings is invalid CSS\nthe grid silently ignores, collapsing the whole table into one column.\n\n**It is also where every per-column fact goes**, which is the reason\n`helix-data-table` needs no column config object. `field` names the key the\ncell reads, `sortable` says a reader may reorder by it, `align` says which\nedge the values line up against, and `cell` takes a function for anything the\nfield alone cannot express. The schema is markup and the data is a property:\na schema is small, declarative, and something a reader should be able to see\nin the HTML, and data is large and windowed.\n\n**The same element serves both tables**, the markup one and the data one. It\nis identified by a flag rather than by `instanceof`, so a `helix-table-column`\nworks inside either without the two roots sharing anything else.\n\n**It generates no box of its own**, the same as a row: the heading is a grid\nitem of the table, so it lines up with the cells under it rather than sitting\nin a wrapper that has to be kept the same width.\n\n**`hidden` takes the column out of the grid**, its heading and its track\nboth, so the columns after it keep their own widths and every row keeps its\ncells under their headings. `hidden=\"until-found\"` keeps its track, the\nheading being left drawn, as every Helix element leaves one with that value.\n`helix-data-table` draws the cells, so it leaves out the ones under a hidden\ncolumn. A `helix-table`'s cells are markup the consumer wrote, so hide them\nwith the column, as removing a column means removing its cells: a row with a\ncell more than the table has tracks wraps into the next.\n\n**A heading that does something holds a control that does it.** The host is\nthe column header, and a header is not focusable, so a sortable heading is a\n`<button>` inside it: the pattern for a sortable table, and the only way a\nreader on a keyboard reaches the sort at all. A column a reader may resize\ncarries a `separator` on its end edge, moved by dragging it or with the arrow\nkeys, and a column in a table that lets a reader reorder its columns carries\na grip the table moves.",
|
|
@@ -85980,6 +86021,14 @@
|
|
|
85980
86021
|
"module": "src/table/column/table-column.ts"
|
|
85981
86022
|
}
|
|
85982
86023
|
},
|
|
86024
|
+
{
|
|
86025
|
+
"kind": "js",
|
|
86026
|
+
"name": "edgeOf",
|
|
86027
|
+
"declaration": {
|
|
86028
|
+
"name": "edgeOf",
|
|
86029
|
+
"module": "src/table/column/table-column.ts"
|
|
86030
|
+
}
|
|
86031
|
+
},
|
|
85983
86032
|
{
|
|
85984
86033
|
"kind": "js",
|
|
85985
86034
|
"name": "HelixHeadlessTableColumn",
|
|
@@ -100133,7 +100182,7 @@
|
|
|
100133
100182
|
"helix": {
|
|
100134
100183
|
"category": "overlays",
|
|
100135
100184
|
"since": "0.1.0",
|
|
100136
|
-
"status": "
|
|
100185
|
+
"status": "stable",
|
|
100137
100186
|
"documentation": "https://fusion.dev/helix/components/tooltip",
|
|
100138
100187
|
"aliases": [
|
|
100139
100188
|
"Hint",
|
|
@@ -34,7 +34,7 @@ declare const HelixHeadlessCombobox_base: (new (...args: any[]) => import("@fusi
|
|
|
34
34
|
* row and fires the event; adding the option is the consumer's.
|
|
35
35
|
*
|
|
36
36
|
* @since 0.1.0
|
|
37
|
-
* @status
|
|
37
|
+
* @status stable
|
|
38
38
|
* @category forms
|
|
39
39
|
* @aliases Autocomplete, Typeahead, Search select
|
|
40
40
|
* @documentation https://fusion.dev/helix/components/combobox
|
|
@@ -134,6 +134,15 @@ export declare class HelixHeadlessCombobox extends HelixHeadlessCombobox_base {
|
|
|
134
134
|
*
|
|
135
135
|
* A comma is therefore not available inside an option's value, which is the
|
|
136
136
|
* listbox's contract and not this element's to change.
|
|
137
|
+
*
|
|
138
|
+
* **The list is told, and the field is not.** `aria-multiselectable` belongs
|
|
139
|
+
* to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
|
|
140
|
+
* ARIA 1.2; the list sets it on itself through `ElementInternals`, where a
|
|
141
|
+
* reader on the field hears it through `aria-controls`. This element wrote it
|
|
142
|
+
* onto its own `role="combobox"` input as well, which an audit reports as a
|
|
143
|
+
* property the role does not support and no spec here ever asserted: the one
|
|
144
|
+
* that covers this says in as many words that telling the list is what this
|
|
145
|
+
* element is responsible for.
|
|
137
146
|
*/
|
|
138
147
|
multiple: boolean;
|
|
139
148
|
/**
|
|
@@ -304,7 +304,6 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
|
|
|
304
304
|
aria-autocomplete=${this.suggest ? 'both' : 'list'}
|
|
305
305
|
aria-expanded=${this.open ? 'true' : 'false'}
|
|
306
306
|
aria-describedby=${this.describedBy ?? nothing}
|
|
307
|
-
aria-multiselectable=${this.multiple ? 'true' : nothing}
|
|
308
307
|
placeholder=${(this.chosen.length > 0 ? '' : this.placeholder) || nothing}
|
|
309
308
|
?disabled=${this.isDisabled}
|
|
310
309
|
.value=${this.multiple || this.open ? this.suggestion || this.typed : this.word}
|
|
@@ -53,7 +53,7 @@ declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fus
|
|
|
53
53
|
* business, the same as any other file.
|
|
54
54
|
*
|
|
55
55
|
* @since 0.1.0
|
|
56
|
-
* @status
|
|
56
|
+
* @status stable
|
|
57
57
|
* @category data
|
|
58
58
|
* @aliases Grid, Result table, Data grid
|
|
59
59
|
* @documentation https://fusion.dev/helix/components/data-table
|
|
@@ -82,7 +82,7 @@ declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fus
|
|
|
82
82
|
* @csspart checkbox-mark - The tick, or the dash while some rows are selected.
|
|
83
83
|
* @csspart checkbox-mark-checked - The mark while its box is checked, beside `checkbox-mark`.
|
|
84
84
|
* @csspart checkbox-mark-indeterminate - The dash while only some rows are selected, beside `checkbox-mark`.
|
|
85
|
-
* @csspart empty - Shown when
|
|
85
|
+
* @csspart empty - Shown when the result has nothing in it, whether it arrived empty or a filter emptied it. A result still on its way is `loading` instead, which wins over this.
|
|
86
86
|
* @csspart footer - The region below the grid.
|
|
87
87
|
* @csspart head - The row the column headings sit in. `display: contents`, so it takes no space.
|
|
88
88
|
* @csspart loading - Shown while the rows are still on their way.
|
|
@@ -106,6 +106,7 @@ declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fus
|
|
|
106
106
|
* @csspart table - The grid.
|
|
107
107
|
* @csspart toolbar - The region above the grid.
|
|
108
108
|
*
|
|
109
|
+
* @cssproperty --data-table-cell-align - The edge the column a cell sits under is set to, `start`, `center` or `end`, and unset under a column that sets none. Written by the component onto each cell it draws, read by the sheet that paints one; `helix-table` publishes `--table-cell-align` for the same attribute on the cells a consumer wrote, under its own family's name.
|
|
109
110
|
* @cssproperty --data-table-template - The column track list this element worked out from the columns declared in it. Written by the component, read by the sheet that paints: a stylesheet takes it to lay the grid out, and setting it does nothing, because the component writes it inline on the very element that reads it and an inline declaration beats any sheet. `--data-table-columns` is the one to set.
|
|
110
111
|
*/
|
|
111
112
|
export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base {
|
|
@@ -451,7 +452,19 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
451
452
|
* asking `view` for it would recurse through the clamp in `page`.
|
|
452
453
|
*/
|
|
453
454
|
private get matched();
|
|
454
|
-
/**
|
|
455
|
+
/**
|
|
456
|
+
* Emptiness is a fact about the data here, not about slotted children.
|
|
457
|
+
*
|
|
458
|
+
* **The page rather than the window**, which is the difference between the two
|
|
459
|
+
* counts `view` carries and the reason this reads `available`. A windowed
|
|
460
|
+
* table draws a slice, and a slice can be short of the rows that are there:
|
|
461
|
+
* asking whether *this* slice has rows says "nothing matched" about a result
|
|
462
|
+
* that matched plenty.
|
|
463
|
+
*
|
|
464
|
+
* The mixin's own answer counts children with no `slot`, which for this
|
|
465
|
+
* element is the columns. Left in place, a table with columns and no data
|
|
466
|
+
* would call itself full.
|
|
467
|
+
*/
|
|
455
468
|
protected get hasRows(): boolean;
|
|
456
469
|
/**
|
|
457
470
|
* Asks for a different order, and reports whether the request stood.
|
|
@@ -575,6 +588,21 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
575
588
|
private announceSort;
|
|
576
589
|
/** Columns arrive from the light DOM, which changes no property here. */
|
|
577
590
|
private readonly handleSlotChange;
|
|
591
|
+
/**
|
|
592
|
+
* One cell, carrying its column's edge as a fact rather than as a decision.
|
|
593
|
+
*
|
|
594
|
+
* **A fact published rather than a property chosen**, which is what
|
|
595
|
+
* `helix-table` does with the same attribute: what lining up *means*, a
|
|
596
|
+
* `justify-content` for a value that fits or a `text-align` for one that
|
|
597
|
+
* wraps, belongs to whoever draws the cell. Written here as an inline
|
|
598
|
+
* `text-align` it was this tier choosing, in the tier that ships no CSS, and a
|
|
599
|
+
* consumer could not overrule it either, an inline declaration beating any
|
|
600
|
+
* `::part(cell)` rule they wrote.
|
|
601
|
+
*
|
|
602
|
+
* Only the three edges reach it, `align` being a string anybody can write and
|
|
603
|
+
* this being a style attribute: `edgeOf` is that guard, and `helix-table`
|
|
604
|
+
* holds the same value to the same three.
|
|
605
|
+
*/
|
|
578
606
|
private renderCell;
|
|
579
607
|
/**
|
|
580
608
|
* A checkbox, named for what it chooses, whose change the table takes.
|
|
@@ -10,7 +10,7 @@ import { nothing } from 'lit';
|
|
|
10
10
|
import { property, state } from 'lit/decorators.js';
|
|
11
11
|
import { repeat } from 'lit/directives/repeat.js';
|
|
12
12
|
import { html } from 'lit/static-html.js';
|
|
13
|
-
import { at } from '../../table/column/table-column.js';
|
|
13
|
+
import { at, edgeOf } from '../../table/column/table-column.js';
|
|
14
14
|
import '../../checkbox/index.js';
|
|
15
15
|
import '../../pagination/index.js';
|
|
16
16
|
import { arranged, cycle, format, ordered, parse, window_, } from './order.js';
|
|
@@ -353,7 +353,7 @@ let HelixHeadlessDataTable = class HelixHeadlessDataTable extends MixinCollectio
|
|
|
353
353
|
})).length;
|
|
354
354
|
}
|
|
355
355
|
get hasRows() {
|
|
356
|
-
return this.view.
|
|
356
|
+
return this.view.available > 0;
|
|
357
357
|
}
|
|
358
358
|
requestSort(next) {
|
|
359
359
|
return requestChange({
|
|
@@ -547,10 +547,11 @@ let HelixHeadlessDataTable = class HelixHeadlessDataTable extends MixinCollectio
|
|
|
547
547
|
}
|
|
548
548
|
}
|
|
549
549
|
renderCell(column, row, picked) {
|
|
550
|
+
const edge = edgeOf(column.align);
|
|
550
551
|
return html `<span
|
|
551
552
|
part="cell${picked ? ' cell-selected' : ''}"
|
|
552
553
|
role="gridcell"
|
|
553
|
-
style=${
|
|
554
|
+
style=${edge ? `--data-table-cell-align: ${edge}` : nothing}
|
|
554
555
|
>${column.read(row)}</span
|
|
555
556
|
>`;
|
|
556
557
|
}
|
|
@@ -619,6 +620,7 @@ let HelixHeadlessDataTable = class HelixHeadlessDataTable extends MixinCollectio
|
|
|
619
620
|
}
|
|
620
621
|
render() {
|
|
621
622
|
const { available, matched, rows } = this.view;
|
|
623
|
+
const filled = this.hasRows;
|
|
622
624
|
const template = this.template;
|
|
623
625
|
const columns = this.shownColumns;
|
|
624
626
|
const pagination = this.tag('pagination');
|
|
@@ -638,7 +640,7 @@ let HelixHeadlessDataTable = class HelixHeadlessDataTable extends MixinCollectio
|
|
|
638
640
|
: html `<slot name="columns" @slotchange=${this.handleSlotChange}></slot>`}
|
|
639
641
|
</div>
|
|
640
642
|
${this.renderSpacer('before')}${this.renderRows(rows)}${this.renderSpacer('after')}
|
|
641
|
-
${this.renderStatus(
|
|
643
|
+
${this.renderStatus(filled)}
|
|
642
644
|
</div>
|
|
643
645
|
<div part="footer">
|
|
644
646
|
<slot name="footer"></slot>
|
|
@@ -13,7 +13,7 @@ import { type TemplateResult } from 'lit';
|
|
|
13
13
|
* it is also a property.
|
|
14
14
|
*
|
|
15
15
|
* @since 0.1.0
|
|
16
|
-
* @status
|
|
16
|
+
* @status stable
|
|
17
17
|
* @documentation https://fusion.dev/helix/components/description-list
|
|
18
18
|
*
|
|
19
19
|
* @slot - The value.
|
|
@@ -24,10 +24,11 @@ import { type TemplateResult } from 'lit';
|
|
|
24
24
|
*/
|
|
25
25
|
export declare class HelixHeadlessDescriptionListItem extends HelixElement {
|
|
26
26
|
/**
|
|
27
|
-
* What the value is, for the common case of plain text.
|
|
27
|
+
* What the value is called, for the common case of plain text.
|
|
28
28
|
*
|
|
29
29
|
* The fallback of the `label` slot, so slotted content replaces it rather than
|
|
30
|
-
* appearing beside it.
|
|
30
|
+
* appearing beside it. The value itself is the default slot: it is the half
|
|
31
|
+
* that varies and is often more than text.
|
|
31
32
|
*/
|
|
32
33
|
label: string;
|
|
33
34
|
protected render(): TemplateResult;
|
|
@@ -21,7 +21,7 @@ import { type TemplateResult } from 'lit';
|
|
|
21
21
|
* `display: contents` alike.
|
|
22
22
|
*
|
|
23
23
|
* @since 0.1.0
|
|
24
|
-
* @status
|
|
24
|
+
* @status stable
|
|
25
25
|
* @category data
|
|
26
26
|
* @aliases Data list, Key-value list, Details, Properties
|
|
27
27
|
* @documentation https://fusion.dev/helix/components/description-list
|
|
@@ -29,7 +29,7 @@ declare const HelixHeadlessDrawer_base: (new (...args: any[]) => import("@fusion
|
|
|
29
29
|
* ```
|
|
30
30
|
*
|
|
31
31
|
* @since 0.1.0
|
|
32
|
-
* @status
|
|
32
|
+
* @status stable
|
|
33
33
|
* @category overlays
|
|
34
34
|
* @aliases Sheet, Sidebar, Panel, Off-canvas
|
|
35
35
|
* @documentation https://fusion.dev/helix/components/drawer
|
|
@@ -24,7 +24,7 @@ import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
|
24
24
|
* pressed. Not on the server, which cannot see the children and so cannot know.
|
|
25
25
|
*
|
|
26
26
|
* @since 0.1.0
|
|
27
|
-
* @status
|
|
27
|
+
* @status stable
|
|
28
28
|
* @aliases Panel item, Drill row
|
|
29
29
|
* @documentation https://fusion.dev/helix/components/drilldown
|
|
30
30
|
*
|
|
@@ -27,7 +27,7 @@ declare const HelixHeadlessDrilldown_base: (new (...args: any[]) => import("@fus
|
|
|
27
27
|
* shares.
|
|
28
28
|
*
|
|
29
29
|
* @since 0.1.0
|
|
30
|
-
* @status
|
|
30
|
+
* @status stable
|
|
31
31
|
* @category navigation
|
|
32
32
|
* @aliases Panel, Nested list, Drill-in
|
|
33
33
|
* @documentation https://fusion.dev/helix/components/drilldown
|
|
@@ -43,6 +43,8 @@ declare const HelixHeadlessDrilldown_base: (new (...args: any[]) => import("@fus
|
|
|
43
43
|
* @csspart loading - Shown while the entries are still on their way.
|
|
44
44
|
* @csspart page - The region the rows are in.
|
|
45
45
|
* @csspart title - The name of the page showing.
|
|
46
|
+
*
|
|
47
|
+
* @cssstate drilled - While a row's page is showing rather than the top one, so a frame around this can answer the depth it is at.
|
|
46
48
|
*/
|
|
47
49
|
export declare class HelixHeadlessDrilldown extends HelixHeadlessDrilldown_base {
|
|
48
50
|
/**
|
|
@@ -123,7 +123,7 @@ let HelixHeadlessDrilldown = class HelixHeadlessDrilldown extends MixinCollectio
|
|
|
123
123
|
this.mark(child, page, page === null);
|
|
124
124
|
}
|
|
125
125
|
this.placeTabStop();
|
|
126
|
-
this.
|
|
126
|
+
this.toggleState('drilled', !this.drilldown.atRoot);
|
|
127
127
|
if (this.direction === undefined) {
|
|
128
128
|
this.removeAttribute('data-direction');
|
|
129
129
|
}
|
|
@@ -86,7 +86,7 @@ registerElementEvents({
|
|
|
86
86
|
'helix-headless-number-input': ['change', 'helix-before-change', 'input'],
|
|
87
87
|
'helix-headless-object-inspector': ['helix-copy'],
|
|
88
88
|
'helix-headless-option': ['helix-select'],
|
|
89
|
-
'helix-headless-outline': ['helix-
|
|
89
|
+
'helix-headless-outline': ['helix-activate'],
|
|
90
90
|
'helix-headless-pagination': ['helix-navigate'],
|
|
91
91
|
'helix-headless-pagination-size': ['helix-before-change'],
|
|
92
92
|
'helix-headless-pin-input': ['change', 'helix-before-change', 'helix-complete', 'input'],
|