@fusion.dev/helix-headless 0.95.0 → 0.97.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.
@@ -2348,7 +2348,7 @@
2348
2348
  "kind": "field",
2349
2349
  "name": "curve",
2350
2350
  "type": {
2351
- "text": "Curve | undefined"
2351
+ "text": "'smooth' | 'step' | 'straight' | undefined"
2352
2352
  },
2353
2353
  "description": "How a band's edge gets from one reading to the next.\n\nThree values, and the class doc argues for each: `straight` is absent and\nis the default, `smooth` is for a stack read as a shape and is the one that\ncan draw a part as less than nothing, `step` is for a quantity that changes\nat a moment and is ordered the way `straight` is.\n\nAbsent rather than defaulted because a reflecting property with a default\nwrites its attribute onto every host, including the ones nobody configured.\nThe resting value therefore lives in the render, as `curve ?? 'straight'`.\n\n**`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A\nline claims a position, so the bounded invention a monotone cubic makes is\na reading aid and costs nothing. A band claims an amount, and two sums\nsmoothed independently can cross, so the same aid here draws a part as less\nthan nothing. Same axis, different mark, different resting value.",
2354
2354
  "attribute": "curve",
@@ -3134,7 +3134,7 @@
3134
3134
  {
3135
3135
  "name": "curve",
3136
3136
  "type": {
3137
- "text": "Curve | undefined"
3137
+ "text": "'smooth' | 'step' | 'straight' | undefined"
3138
3138
  },
3139
3139
  "description": "How a band's edge gets from one reading to the next.\n\nThree values, and the class doc argues for each: `straight` is absent and\nis the default, `smooth` is for a stack read as a shape and is the one that\ncan draw a part as less than nothing, `step` is for a quantity that changes\nat a moment and is ordered the way `straight` is.\n\nAbsent rather than defaulted because a reflecting property with a default\nwrites its attribute onto every host, including the ones nobody configured.\nThe resting value therefore lives in the render, as `curve ?? 'straight'`.\n\n**`LineChart` and `Sparkline` rest at `smooth` and are not disagreeing.** A\nline claims a position, so the bounded invention a monotone cubic makes is\na reading aid and costs nothing. A band claims an amount, and two sums\nsmoothed independently can cross, so the same aid here draws a part as less\nthan nothing. Same axis, different mark, different resting value.",
3140
3140
  "fieldName": "curve"
@@ -17285,7 +17285,7 @@
17285
17285
  "kind": "field",
17286
17286
  "name": "format",
17287
17287
  "type": {
17288
- "text": "ColorFormat | undefined"
17288
+ "text": "'hex' | 'hsl' | 'rgb' | undefined"
17289
17289
  },
17290
17290
  "description": "The syntax the value is written in: `hex`, `rgb` or `hsl`.\n\n**Undefaulted, because it reflects.** The two together stamp an attribute\nonto every host anybody renders, including the ones nobody configured: the\nserver writes `format=\"hex\"` on every color input on the page, and React,\nholding no such prop, reports a hydration mismatch for each one.\n`helix component`'s `reflected-defaults` holds it. Hex is still what an unset one\nwrites; the resting arrangement is the attribute's absence rather than a\nvalue spelled out.",
17291
17291
  "attribute": "format",
@@ -18631,7 +18631,7 @@
18631
18631
  {
18632
18632
  "name": "format",
18633
18633
  "type": {
18634
- "text": "ColorFormat | undefined"
18634
+ "text": "'hex' | 'hsl' | 'rgb' | undefined"
18635
18635
  },
18636
18636
  "description": "The syntax the value is written in: `hex`, `rgb` or `hsl`.\n\n**Undefaulted, because it reflects.** The two together stamp an attribute\nonto every host anybody renders, including the ones nobody configured: the\nserver writes `format=\"hex\"` on every color input on the page, and React,\nholding no such prop, reports a hydration mismatch for each one.\n`helix component`'s `reflected-defaults` holds it. Hex is still what an unset one\nwrites; the resting arrangement is the attribute's absence rather than a\nvalue spelled out.",
18637
18637
  "fieldName": "format"
@@ -19071,7 +19071,7 @@
19071
19071
  "kind": "field",
19072
19072
  "name": "format",
19073
19073
  "type": {
19074
- "text": "ColorFormat | undefined"
19074
+ "text": "'hex' | 'hsl' | 'rgb' | undefined"
19075
19075
  },
19076
19076
  "description": "The syntax the value is written in: `hex`, `rgb` or `hsl`.\n\nOnly what is written. Everything is read whatever this says, so a picker on\n`hex` still takes an `rgb()` handed to it and stores the hex for it.",
19077
19077
  "attribute": "format",
@@ -20126,7 +20126,7 @@
20126
20126
  {
20127
20127
  "name": "format",
20128
20128
  "type": {
20129
- "text": "ColorFormat | undefined"
20129
+ "text": "'hex' | 'hsl' | 'rgb' | undefined"
20130
20130
  },
20131
20131
  "description": "The syntax the value is written in: `hex`, `rgb` or `hsl`.\n\nOnly what is written. Everything is read whatever this says, so a picker on\n`hex` still takes an `rgb()` handed to it and stores the hex for it.",
20132
20132
  "fieldName": "format"
@@ -20432,7 +20432,7 @@
20432
20432
  },
20433
20433
  {
20434
20434
  "description": "The category before the label.",
20435
- "name": "tag-prefix"
20435
+ "name": "tag-start"
20436
20436
  },
20437
20437
  {
20438
20438
  "description": "The row of chosen options, when `multiple` is set.",
@@ -26990,7 +26990,7 @@
26990
26990
  },
26991
26991
  {
26992
26992
  "description": "The category before the label.",
26993
- "name": "date-prefix"
26993
+ "name": "date-start"
26994
26994
  },
26995
26995
  {
26996
26996
  "description": "What is wrong with it.",
@@ -36450,7 +36450,7 @@
36450
36450
  },
36451
36451
  {
36452
36452
  "description": "The category before the label.",
36453
- "name": "kind-prefix"
36453
+ "name": "kind-start"
36454
36454
  },
36455
36455
  {
36456
36456
  "description": "The question, over the field.",
@@ -36486,7 +36486,7 @@
36486
36486
  },
36487
36487
  {
36488
36488
  "description": "The category before the label.",
36489
- "name": "size-prefix"
36489
+ "name": "size-start"
36490
36490
  },
36491
36491
  {
36492
36492
  "description": "The label that opens the picker.",
@@ -47159,7 +47159,7 @@
47159
47159
  "kind": "field",
47160
47160
  "name": "effectiveType",
47161
47161
  "type": {
47162
- "text": "InputType"
47162
+ "text": "'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url'"
47163
47163
  },
47164
47164
  "privacy": "private",
47165
47165
  "description": "The type the real input is given, which is not always the type asked for.\n\nA revealed password is a text field for exactly as long as the reader is\nlooking at it. Reading through a getter rather than mutating `type` keeps\nthe property the consumer's: what they set is what they get back, whatever\nthe button is doing.",
@@ -47352,7 +47352,7 @@
47352
47352
  "kind": "field",
47353
47353
  "name": "type",
47354
47354
  "type": {
47355
- "text": "InputType"
47355
+ "text": "'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url'"
47356
47356
  },
47357
47357
  "default": "'text'",
47358
47358
  "description": "What the field accepts, which decides the keyboard and the validation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno stylesheet in this repository selects on `type`. Reflecting it writes\n`type=\"text\"` onto every `<helix-headless-input>` ever rendered, an\nattribute no consumer's markup has, which is the fault the area rules write\nup under `Button`'s `href`, `target` and `rel`.\n\nNothing reads it from the attribute either. The real `<input>` inside takes\nit as a property binding, which is what makes the keyboard and the\nvalidation follow.",
@@ -48318,7 +48318,7 @@
48318
48318
  {
48319
48319
  "name": "type",
48320
48320
  "type": {
48321
- "text": "InputType"
48321
+ "text": "'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url'"
48322
48322
  },
48323
48323
  "default": "'text'",
48324
48324
  "description": "What the field accepts, which decides the keyboard and the validation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno stylesheet in this repository selects on `type`. Reflecting it writes\n`type=\"text\"` onto every `<helix-headless-input>` ever rendered, an\nattribute no consumer's markup has, which is the fault the area rules write\nup under `Button`'s `href`, `target` and `rel`.\n\nNothing reads it from the attribute either. The real `<input>` inside takes\nit as a property binding, which is what makes the keyboard and the\nvalidation follow.",
@@ -49693,7 +49693,7 @@
49693
49693
  "kind": "field",
49694
49694
  "name": "curve",
49695
49695
  "type": {
49696
- "text": "Curve | undefined"
49696
+ "text": "'smooth' | 'step' | 'straight' | undefined"
49697
49697
  },
49698
49698
  "description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A curve invents the values between two\nreadings, which is why `straight` still exists, but the invention is\nbounded: the interpolation is monotone cubic, so it never leaves the band\nthe data sets and never introduces a peak or a trough the series does not\nhave. Within that bound the smoothed line is the easier one to follow\nacross a long series, and `straight` becomes the deliberate claim.\n\n**Absent rather than defaulted on the property**, because a reflecting\nproperty with a default writes its attribute onto every host anybody\nrenders, including the ones nobody configured.\n`line-chart-root.ssr.spec.ts` asserts the host carries only what the\nconsumer wrote. The default therefore lives where the path is built, as\n`curve ?? 'smooth'`.\n\n`step` claims the opposite of both, that a reading holds until the next.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
49699
49699
  "attribute": "curve",
@@ -50476,7 +50476,7 @@
50476
50476
  {
50477
50477
  "name": "curve",
50478
50478
  "type": {
50479
- "text": "Curve | undefined"
50479
+ "text": "'smooth' | 'step' | 'straight' | undefined"
50480
50480
  },
50481
50481
  "description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A curve invents the values between two\nreadings, which is why `straight` still exists, but the invention is\nbounded: the interpolation is monotone cubic, so it never leaves the band\nthe data sets and never introduces a peak or a trough the series does not\nhave. Within that bound the smoothed line is the easier one to follow\nacross a long series, and `straight` becomes the deliberate claim.\n\n**Absent rather than defaulted on the property**, because a reflecting\nproperty with a default writes its attribute onto every host anybody\nrenders, including the ones nobody configured.\n`line-chart-root.ssr.spec.ts` asserts the host carries only what the\nconsumer wrote. The default therefore lives where the path is built, as\n`curve ?? 'smooth'`.\n\n`step` claims the opposite of both, that a reading holds until the next.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
50482
50482
  "fieldName": "curve"
@@ -50643,6 +50643,10 @@
50643
50643
  "description": "The label.",
50644
50644
  "name": ""
50645
50645
  },
50646
+ {
50647
+ "description": "Secondary text under the label.",
50648
+ "name": "description"
50649
+ },
50646
50650
  {
50647
50651
  "description": "Trailing content.",
50648
50652
  "name": "end"
@@ -50650,10 +50654,6 @@
50650
50654
  {
50651
50655
  "description": "Leading content, usually an icon or an avatar.",
50652
50656
  "name": "start"
50653
- },
50654
- {
50655
- "description": "Secondary text under the label.",
50656
- "name": "supporting"
50657
50657
  }
50658
50658
  ],
50659
50659
  "members": [
@@ -55547,7 +55547,7 @@
55547
55547
  "kind": "field",
55548
55548
  "name": "placement",
55549
55549
  "type": {
55550
- "text": "Placement"
55550
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
55551
55551
  },
55552
55552
  "default": "'bottom-start'",
55553
55553
  "description": "Preferred side.\n\nIt moves if that side does not fit.",
@@ -56364,7 +56364,7 @@
56364
56364
  {
56365
56365
  "name": "placement",
56366
56366
  "type": {
56367
- "text": "Placement"
56367
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
56368
56368
  },
56369
56369
  "default": "'bottom-start'",
56370
56370
  "description": "Preferred side.\n\nIt moves if that side does not fit.",
@@ -56610,7 +56610,7 @@
56610
56610
  "kind": "field",
56611
56611
  "name": "band",
56612
56612
  "type": {
56613
- "text": "MeterBand | undefined"
56613
+ "text": "'fair' | 'good' | 'poor' | undefined"
56614
56614
  },
56615
56615
  "description": "The band, said outright, where the three thresholds cannot say it.\n\n**The specification's model has a shape, and it is worth knowing before\nreaching for this.** Three bands and a point mean it can express a\n*direction* in three grades, or a *target* in two, and never a target in\nthree. Measured across a grid: with `low=\"25\" high=\"50\" optimum=\"0\"` the\nreadings 5, 28 and 60 come out good, fair and poor; with `low=\"15\"\nhigh=\"25\" optimum=\"20\"` the readings 28 and 90 both come out fair, because\nfrom a middle band nothing is ever two bands away.\n\nSo a target you can miss badly in either direction has no expression in\n`low`, `high` and `optimum`, and neither has a rule that is not about\ndistance at all: 28 against a target of 20 is fine for a room's temperature\nand is not fine for a dosage, and no arrangement of thresholds knows which\none it is looking at.\n\nWritten, this wins outright and the thresholds are only for drawing the\nticks. A consumer whose rule is more than three buckets already knows the\nanswer, and asking them to encode it as thresholds so this can decode it\nagain is a worse API than letting them say it.\n\nNot reflected. Nothing selects on it: the band reaches the stylesheet as\n`data-band` on the fill, because that is the element being colored, and a\nstylesheet outside as `indicator-good`, `-fair` or `-poor` among the fill's\npart names, so reflecting here would write an attribute onto the host for\nno reader.",
56616
56616
  "attribute": "band"
@@ -56777,7 +56777,7 @@
56777
56777
  "kind": "field",
56778
56778
  "name": "computedBand",
56779
56779
  "type": {
56780
- "text": "MeterBand | undefined"
56780
+ "text": "'fair' | 'good' | 'poor' | undefined"
56781
56781
  },
56782
56782
  "privacy": "private",
56783
56783
  "description": "Which band the reading is in, by the specification's rule.\n\n`optimum` names a point, and the band containing it is the good one. A\nreading in that band is good, one in a band beside it is fair, and one two\nbands away is poor. Undefined where nothing was declared, which is what\nkeeps an unbanded meter from being painted as good news.",
@@ -57133,7 +57133,7 @@
57133
57133
  {
57134
57134
  "name": "band",
57135
57135
  "type": {
57136
- "text": "MeterBand | undefined"
57136
+ "text": "'fair' | 'good' | 'poor' | undefined"
57137
57137
  },
57138
57138
  "description": "The band, said outright, where the three thresholds cannot say it.\n\n**The specification's model has a shape, and it is worth knowing before\nreaching for this.** Three bands and a point mean it can express a\n*direction* in three grades, or a *target* in two, and never a target in\nthree. Measured across a grid: with `low=\"25\" high=\"50\" optimum=\"0\"` the\nreadings 5, 28 and 60 come out good, fair and poor; with `low=\"15\"\nhigh=\"25\" optimum=\"20\"` the readings 28 and 90 both come out fair, because\nfrom a middle band nothing is ever two bands away.\n\nSo a target you can miss badly in either direction has no expression in\n`low`, `high` and `optimum`, and neither has a rule that is not about\ndistance at all: 28 against a target of 20 is fine for a room's temperature\nand is not fine for a dosage, and no arrangement of thresholds knows which\none it is looking at.\n\nWritten, this wins outright and the thresholds are only for drawing the\nticks. A consumer whose rule is more than three buckets already knows the\nanswer, and asking them to encode it as thresholds so this can decode it\nagain is a worse API than letting them say it.\n\nNot reflected. Nothing selects on it: the band reaches the stylesheet as\n`data-band` on the fill, because that is the element being colored, and a\nstylesheet outside as `indicator-good`, `-fair` or `-poor` among the fill's\npart names, so reflecting here would write an attribute onto the host for\nno reader.",
57139
57139
  "fieldName": "band"
@@ -57780,7 +57780,7 @@
57780
57780
  "cssParts": [
57781
57781
  {
57782
57782
  "description": "The trailing region of the header.",
57783
- "name": "action"
57783
+ "name": "actions"
57784
57784
  },
57785
57785
  {
57786
57786
  "description": "How many are in the group.",
@@ -57810,7 +57810,7 @@
57810
57810
  },
57811
57811
  {
57812
57812
  "description": "Beside the count, for a link to the rest of them.",
57813
- "name": "action"
57813
+ "name": "actions"
57814
57814
  },
57815
57815
  {
57816
57816
  "description": "Replaces the group's name, for a heading that needs a mark in it.",
@@ -58570,10 +58570,10 @@
58570
58570
  },
58571
58571
  {
58572
58572
  "description": "A second line qualifying it, quieter than the first. A bare slot rather than a box, so an item without one pays nothing for it; style it through `::slotted()`.",
58573
- "name": "caption"
58573
+ "name": "description"
58574
58574
  },
58575
58575
  {
58576
- "description": "A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `caption` nothing here sets a size or an ink, because whatever fills it usually brings its own.",
58576
+ "description": "A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `description` nothing here sets a size or an ink, because whatever fills it usually brings its own.",
58577
58577
  "name": "detail"
58578
58578
  },
58579
58579
  {
@@ -66793,7 +66793,7 @@
66793
66793
  "kind": "field",
66794
66794
  "name": "type",
66795
66795
  "type": {
66796
- "text": "PinType"
66796
+ "text": "'alphanumeric' | 'numeric' | 'text'"
66797
66797
  },
66798
66798
  "default": "'numeric'",
66799
66799
  "description": "What a box accepts, which decides the keyboard a phone offers.\n\n`numeric` and `alphanumeric` also refuse anything else on the way in,\nbecause a code that is digits is digits: letting a letter into a box a\nreader cannot submit is a mistake they have to find and undo themselves.\n`text` refuses nothing and only trims, so it is the mode for a code with a\nhyphen in it.\n\n**`alphanumeric` is ASCII letters and digits**, which is narrower than the\nword is in general and is the right narrowness here. A code of this kind\ncomes off a keypad, an SMS or an authenticator, and none of them emit `é`;\na filter that accepted it would let through a character the service on the\nother end is going to reject. A consumer whose codes really do carry\nmarked letters wants `text`, which judges nothing.\n\n**Not reflected**: nothing selects on it, so reflecting only writes\n`type=\"numeric\"` onto every `<helix-headless-pin-input>` ever rendered, an\nattribute no consumer's markup had. The area rules carry the sentence\n\"reflect only what CSS selects on\". The real inputs take it as a binding,\nwhich is what makes the keyboard follow.",
@@ -67944,7 +67944,7 @@
67944
67944
  {
67945
67945
  "name": "type",
67946
67946
  "type": {
67947
- "text": "PinType"
67947
+ "text": "'alphanumeric' | 'numeric' | 'text'"
67948
67948
  },
67949
67949
  "default": "'numeric'",
67950
67950
  "description": "What a box accepts, which decides the keyboard a phone offers.\n\n`numeric` and `alphanumeric` also refuse anything else on the way in,\nbecause a code that is digits is digits: letting a letter into a box a\nreader cannot submit is a mistake they have to find and undo themselves.\n`text` refuses nothing and only trims, so it is the mode for a code with a\nhyphen in it.\n\n**`alphanumeric` is ASCII letters and digits**, which is narrower than the\nword is in general and is the right narrowness here. A code of this kind\ncomes off a keypad, an SMS or an authenticator, and none of them emit `é`;\na filter that accepted it would let through a character the service on the\nother end is going to reject. A consumer whose codes really do carry\nmarked letters wants `text`, which judges nothing.\n\n**Not reflected**: nothing selects on it, so reflecting only writes\n`type=\"numeric\"` onto every `<helix-headless-pin-input>` ever rendered, an\nattribute no consumer's markup had. The area rules carry the sentence\n\"reflect only what CSS selects on\". The real inputs take it as a binding,\nwhich is what makes the keyboard follow.",
@@ -68200,7 +68200,7 @@
68200
68200
  "kind": "field",
68201
68201
  "name": "placement",
68202
68202
  "type": {
68203
- "text": "Placement"
68203
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
68204
68204
  },
68205
68205
  "default": "'bottom-start'",
68206
68206
  "description": "Preferred side.\n\nIt moves if that side does not fit.",
@@ -68761,7 +68761,7 @@
68761
68761
  {
68762
68762
  "name": "placement",
68763
68763
  "type": {
68764
- "text": "Placement"
68764
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
68765
68765
  },
68766
68766
  "default": "'bottom-start'",
68767
68767
  "description": "Preferred side.\n\nIt moves if that side does not fit.",
@@ -69503,7 +69503,7 @@
69503
69503
  "kind": "field",
69504
69504
  "name": "correction",
69505
69505
  "type": {
69506
- "text": "QrCorrection | undefined"
69506
+ "text": "'H' | 'L' | 'M' | 'Q' | undefined"
69507
69507
  },
69508
69508
  "description": "How much of the code can be lost and still read.\n\n`M` by default, which is the level almost every code in the world uses and\ncosts about fifteen percent redundancy. `H` where a mark covers the center,\nchosen automatically when the slot is filled: it is the level that makes\ncovering safe, and a consumer who fills the slot has said what they want\nwithout having to know that.",
69509
69509
  "attribute": "correction"
@@ -69522,7 +69522,7 @@
69522
69522
  "kind": "field",
69523
69523
  "name": "shape",
69524
69524
  "type": {
69525
- "text": "QrStyle | undefined"
69525
+ "text": "'dots' | 'rounded' | 'square' | undefined"
69526
69526
  },
69527
69527
  "description": "How the modules are drawn.\n\n`square` is the resting state and is written by not writing it, per the\nrule that a reflected property takes no default. It is also the only one\nthat joins runs of adjacent modules into a single subpath, which is what\nkeeps a thousand modules to a handful of nodes. `rounded` and `dots` draw\neach module on its own, because the corners are the thing being drawn and a\njoined run has none in the middle. That cost is paid only by a code that\nasks for them.\n\nA scanner reads contrast between cells, not their shape, so all three\nscan. `dots` sits a little under half a module so neighbors do not touch,\nwhich is what makes it read as dots rather than as a softened square code.",
69528
69528
  "attribute": "shape",
@@ -69552,7 +69552,7 @@
69552
69552
  "kind": "field",
69553
69553
  "name": "level",
69554
69554
  "type": {
69555
- "text": "QrCorrection"
69555
+ "text": "'H' | 'L' | 'M' | 'Q'"
69556
69556
  },
69557
69557
  "privacy": "private",
69558
69558
  "description": "The level actually used, which the slot can raise.",
@@ -69897,7 +69897,7 @@
69897
69897
  {
69898
69898
  "name": "correction",
69899
69899
  "type": {
69900
- "text": "QrCorrection | undefined"
69900
+ "text": "'H' | 'L' | 'M' | 'Q' | undefined"
69901
69901
  },
69902
69902
  "description": "How much of the code can be lost and still read.\n\n`M` by default, which is the level almost every code in the world uses and\ncosts about fifteen percent redundancy. `H` where a mark covers the center,\nchosen automatically when the slot is filled: it is the level that makes\ncovering safe, and a consumer who fills the slot has said what they want\nwithout having to know that.",
69903
69903
  "fieldName": "correction"
@@ -69914,7 +69914,7 @@
69914
69914
  {
69915
69915
  "name": "shape",
69916
69916
  "type": {
69917
- "text": "QrStyle | undefined"
69917
+ "text": "'dots' | 'rounded' | 'square' | undefined"
69918
69918
  },
69919
69919
  "description": "How the modules are drawn.\n\n`square` is the resting state and is written by not writing it, per the\nrule that a reflected property takes no default. It is also the only one\nthat joins runs of adjacent modules into a single subpath, which is what\nkeeps a thousand modules to a handful of nodes. `rounded` and `dots` draw\neach module on its own, because the corners are the thing being drawn and a\njoined run has none in the middle. That cost is paid only by a code that\nasks for them.\n\nA scanner reads contrast between cells, not their shape, so all three\nscan. `dots` sits a little under half a module so neighbors do not touch,\nwhich is what makes it read as dots rather than as a softened square code.",
69920
69920
  "fieldName": "shape"
@@ -79136,7 +79136,7 @@
79136
79136
  "kind": "field",
79137
79137
  "name": "curve",
79138
79138
  "type": {
79139
- "text": "Curve | undefined"
79139
+ "text": "'smooth' | 'step' | 'straight' | undefined"
79140
79140
  },
79141
79141
  "description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A straight segment asserts nothing about\nthe values between two readings and a curve invents them, which is why\n`straight` exists. What settles the default the other way is that the\ninvention is bounded: the interpolation is monotone cubic, so it never\nleaves the band the data sets and never introduces a peak or a trough the\nseries does not have. Within that bound the smoothed line is the easier one\nto follow across a long series, which is what the drawing is for. `straight`\nbecomes the claim a consumer makes deliberately rather than the one they get\nby saying nothing.\n\n**The property stays optional and the default lives in the render.** A\nreflecting property with a default writes its attribute onto every host\nanybody renders, including the ones nobody configured, which the SSR specs\nassert against. So the resting state is still the attribute's absence, and\n`curve ?? 'smooth'` is what reads it.\n\n`step` claims the opposite of both, that a reading holds until the next.\nBars ignore it, having no between to interpolate.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
79142
79142
  "attribute": "curve",
@@ -79529,7 +79529,7 @@
79529
79529
  {
79530
79530
  "name": "curve",
79531
79531
  "type": {
79532
- "text": "Curve | undefined"
79532
+ "text": "'smooth' | 'step' | 'straight' | undefined"
79533
79533
  },
79534
79534
  "description": "How the line gets from one reading to the next.\n\n**`smooth` is the resting curve.** A straight segment asserts nothing about\nthe values between two readings and a curve invents them, which is why\n`straight` exists. What settles the default the other way is that the\ninvention is bounded: the interpolation is monotone cubic, so it never\nleaves the band the data sets and never introduces a peak or a trough the\nseries does not have. Within that bound the smoothed line is the easier one\nto follow across a long series, which is what the drawing is for. `straight`\nbecomes the claim a consumer makes deliberately rather than the one they get\nby saying nothing.\n\n**The property stays optional and the default lives in the render.** A\nreflecting property with a default writes its attribute onto every host\nanybody renders, including the ones nobody configured, which the SSR specs\nassert against. So the resting state is still the attribute's absence, and\n`curve ?? 'smooth'` is what reads it.\n\n`step` claims the opposite of both, that a reading holds until the next.\nBars ignore it, having no between to interpolate.\n\n**`AreaChart` rests at `straight` and is not disagreeing.** A line claims a\nposition and a stacked band claims an amount: a curve fitted through one\nsum can pass under the curve fitted through the sum beneath it, so a\nsmoothed stack can draw a part as less than nothing. There is no such edge\nhere, which is what lets a line take the reading aid.",
79535
79535
  "fieldName": "curve"
@@ -80235,7 +80235,7 @@
80235
80235
  "kind": "field",
80236
80236
  "name": "placement",
80237
80237
  "type": {
80238
- "text": "Placement"
80238
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
80239
80239
  },
80240
80240
  "default": "'top-end'",
80241
80241
  "description": "Which way the actions fan out. They move if that side does not fit.\n\nUp by default, because the control this hangs off is usually docked to the\nbottom of the window and there is nothing below it to fan into.",
@@ -80813,7 +80813,7 @@
80813
80813
  {
80814
80814
  "name": "placement",
80815
80815
  "type": {
80816
- "text": "Placement"
80816
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
80817
80817
  },
80818
80818
  "default": "'top-end'",
80819
80819
  "description": "Which way the actions fan out. They move if that side does not fit.\n\nUp by default, because the control this hangs off is usually docked to the\nbottom of the window and there is nothing below it to fan into.",
@@ -89548,7 +89548,7 @@
89548
89548
  },
89549
89549
  {
89550
89550
  "description": "The category before the label.",
89551
- "name": "prefix"
89551
+ "name": "start"
89552
89552
  }
89553
89553
  ],
89554
89554
  "slots": [
@@ -89558,7 +89558,7 @@
89558
89558
  },
89559
89559
  {
89560
89560
  "description": "A category the label belongs to, set before it and weightier.",
89561
- "name": "prefix"
89561
+ "name": "start"
89562
89562
  }
89563
89563
  ],
89564
89564
  "members": [
@@ -91745,7 +91745,7 @@
91745
91745
  },
91746
91746
  {
91747
91747
  "description": "The category before the label.",
91748
- "name": "time-prefix"
91748
+ "name": "time-start"
91749
91749
  },
91750
91750
  {
91751
91751
  "description": "The control that opens the list.",
@@ -99914,7 +99914,7 @@
99914
99914
  "kind": "field",
99915
99915
  "name": "placement",
99916
99916
  "type": {
99917
- "text": "Placement"
99917
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
99918
99918
  },
99919
99919
  "default": "'top'",
99920
99920
  "description": "Preferred side.\n\nIt moves if that side does not fit.",
@@ -100687,7 +100687,7 @@
100687
100687
  {
100688
100688
  "name": "placement",
100689
100689
  "type": {
100690
- "text": "Placement"
100690
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
100691
100691
  },
100692
100692
  "default": "'top'",
100693
100693
  "description": "Preferred side.\n\nIt moves if that side does not fit.",
@@ -101807,7 +101807,7 @@
101807
101807
  "kind": "field",
101808
101808
  "name": "placement",
101809
101809
  "type": {
101810
- "text": "Placement"
101810
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
101811
101811
  },
101812
101812
  "default": "'bottom'",
101813
101813
  "description": "Which side of the target the panel prefers.",
@@ -102280,7 +102280,7 @@
102280
102280
  {
102281
102281
  "name": "placement",
102282
102282
  "type": {
102283
- "text": "Placement"
102283
+ "text": "'bottom' | 'bottom-end' | 'bottom-start' | 'left' | 'left-end' | 'left-start' | 'right' | 'right-end' | 'right-start' | 'top' | 'top-end' | 'top-start'"
102284
102284
  },
102285
102285
  "default": "'bottom'",
102286
102286
  "description": "Which side of the target the panel prefers.",
@@ -76,7 +76,7 @@ declare const HelixHeadlessCombobox_base: (new (...args: any[]) => import("@fusi
76
76
  * @csspart tag - One chosen option.
77
77
  * @csspart tag-dismiss - The remove button, when `dismissible`.
78
78
  * @csspart tag-dismiss-mark - The glyph on the dismiss control, where none is slotted.
79
- * @csspart tag-prefix - The category before the label.
79
+ * @csspart tag-start - The category before the label.
80
80
  * @csspart tags - The row of chosen options, when `multiple` is set.
81
81
  *
82
82
  * @cssstate invalid - While there is feedback to show: the platform's verdict, or the consumer's `feedback`.
@@ -273,7 +273,7 @@ let HelixHeadlessCombobox = class HelixHeadlessCombobox extends MixinControllerO
273
273
  renderTag(option) {
274
274
  return html `<${this.tag('tag')}
275
275
  part="tag"
276
- exportparts="dismiss: tag-dismiss, dismiss-mark: tag-dismiss-mark, prefix: tag-prefix"
276
+ exportparts="dismiss: tag-dismiss, dismiss-mark: tag-dismiss-mark, start: tag-start"
277
277
  data-value=${option.value}
278
278
  dismiss-label=${this.removeLabel}
279
279
  ?dismissible=${!this.isDisabled}
@@ -38,7 +38,7 @@ declare const HelixHeadlessDateInput_base: (new (...args: any[]) => import("@fus
38
38
  * @csspart date - One held date, as a tag, in `multiple`.
39
39
  * @csspart date-dismiss - The remove button, when `dismissible`.
40
40
  * @csspart date-dismiss-mark - The glyph on the dismiss control, where none is slotted.
41
- * @csspart date-prefix - The category before the label.
41
+ * @csspart date-start - The category before the label.
42
42
  * @csspart feedback - What is wrong with it.
43
43
  * @csspart field - The box holding the text and the trigger.
44
44
  * @csspart hint - Help under the field, while nothing is wrong.
@@ -192,7 +192,7 @@ let HelixHeadlessDateInput = class HelixHeadlessDateInput extends MixinPickerEdi
192
192
  renderTag(date) {
193
193
  return html `<${this.tag('tag')}
194
194
  part="date"
195
- exportparts="dismiss: date-dismiss, dismiss-mark: date-dismiss-mark, prefix: date-prefix"
195
+ exportparts="dismiss: date-dismiss, dismiss-mark: date-dismiss-mark, start: date-start"
196
196
  dismissible
197
197
  dismiss-label=${`Remove ${date}`}
198
198
  ?disabled=${this.isDisabled}
@@ -40,7 +40,7 @@ declare const HelixHeadlessFileInput_base: (new (...args: any[]) => import("@fus
40
40
  * @csspart kind - What kind of file it is.
41
41
  * @csspart kind-dismiss - The remove button, when `dismissible`.
42
42
  * @csspart kind-dismiss-mark - The glyph on the dismiss control, where none is slotted.
43
- * @csspart kind-prefix - The category before the label.
43
+ * @csspart kind-start - The category before the label.
44
44
  * @csspart label - The question, over the field.
45
45
  * @csspart list - The chosen files.
46
46
  * @csspart meta - The row holding its size and kind.
@@ -49,7 +49,7 @@ declare const HelixHeadlessFileInput_base: (new (...args: any[]) => import("@fus
49
49
  * @csspart size - How big it is.
50
50
  * @csspart size-dismiss - The remove button, when `dismissible`.
51
51
  * @csspart size-dismiss-mark - The glyph on the dismiss control, where none is slotted.
52
- * @csspart size-prefix - The category before the label.
52
+ * @csspart size-start - The category before the label.
53
53
  * @csspart trigger - The label that opens the picker.
54
54
  *
55
55
  * @cssstate invalid - While there is feedback to show: the platform's verdict, or the consumer's `feedback`.
@@ -162,10 +162,10 @@ let HelixHeadlessFileInput = class HelixHeadlessFileInput extends MixinField(Hel
162
162
  }
163
163
  renderMeta(file) {
164
164
  return html `<${this.tag('tag')} part="size"
165
- exportparts="dismiss: size-dismiss, dismiss-mark: size-dismiss-mark, prefix: size-prefix">${size(file.size, this.locale)}</${this.tag('tag')}>
165
+ exportparts="dismiss: size-dismiss, dismiss-mark: size-dismiss-mark, start: size-start">${size(file.size, this.locale)}</${this.tag('tag')}>
166
166
  <${this.tag('tag')}
167
167
  part="kind"
168
- exportparts="dismiss: kind-dismiss, dismiss-mark: kind-dismiss-mark, prefix: kind-prefix">${kind(file)}</${this.tag('tag')}>`;
168
+ exportparts="dismiss: kind-dismiss, dismiss-mark: kind-dismiss-mark, start: kind-start">${kind(file)}</${this.tag('tag')}>`;
169
169
  }
170
170
  render() {
171
171
  const files = this.files;
@@ -31,9 +31,9 @@ import { nothing, type PropertyValues, type TemplateResult } from 'lit';
31
31
  * @documentation https://fusion.dev/helix/components/list
32
32
  *
33
33
  * @slot - The label.
34
+ * @slot description - Secondary text under the label.
34
35
  * @slot end - Trailing content.
35
36
  * @slot start - Leading content, usually an icon or an avatar.
36
- * @slot supporting - Secondary text under the label.
37
37
  *
38
38
  * @csspart row - The layout, held off the host so the host can carry a marker.
39
39
  */
@@ -24,7 +24,7 @@ let HelixHeadlessListItem = class HelixHeadlessListItem extends HelixElement {
24
24
  render() {
25
25
  const content = html `${this.renderRail()}<slot name="start"></slot>
26
26
  <slot></slot>
27
- <slot name="supporting"></slot>
27
+ <slot name="description"></slot>
28
28
  <slot name="end"></slot>`;
29
29
  return this.href === ''
30
30
  ? html `<div part="row">${content}</div>`
@@ -33,13 +33,13 @@ declare const HelixHeadlessNotificationGroup_base: (new (...args: any[]) => impo
33
33
  * @documentation https://fusion.dev/helix/components/notifications
34
34
  *
35
35
  * @slot - The notifications in this group.
36
- * @slot action - Beside the count, for a link to the rest of them.
36
+ * @slot actions - Beside the count, for a link to the rest of them.
37
37
  * @slot label - Replaces the group's name, for a heading that needs a mark in it.
38
38
  *
39
39
  * @event {HelixBeforeCloseEvent} helix-before-close - Fired before the group folds, and cancelable.
40
40
  * @event {HelixBeforeOpenEvent} helix-before-open - Fired before the group unfolds. Cancelable: refusing it takes the decision and nothing moves.
41
41
  *
42
- * @csspart action - The trailing region of the header.
42
+ * @csspart actions - The trailing region of the header.
43
43
  * @csspart count - How many are in the group.
44
44
  * @csspart header - The label, the count and the action together.
45
45
  * @csspart items - The region holding the notifications.
@@ -58,8 +58,8 @@ let HelixHeadlessNotificationGroup = class HelixHeadlessNotificationGroup extend
58
58
  return;
59
59
  }
60
60
  slot.assign(...showing);
61
- const action = this.renderRoot?.querySelector?.('slot[name="action"]');
62
- action?.assign?.(...[...this.children].filter((child) => child.getAttribute('slot') === 'action'));
61
+ const action = this.renderRoot?.querySelector?.('slot[name="actions"]');
62
+ action?.assign?.(...[...this.children].filter((child) => child.getAttribute('slot') === 'actions'));
63
63
  const label = this.renderRoot?.querySelector?.('slot[name="label"]');
64
64
  label?.assign?.(...[...this.children].filter((child) => child.getAttribute('slot') === 'label'));
65
65
  }
@@ -81,7 +81,7 @@ let HelixHeadlessNotificationGroup = class HelixHeadlessNotificationGroup extend
81
81
  </button>`
82
82
  : html `<span part="label"><slot name="label">${this.label}</slot></span>
83
83
  ${count}`}
84
- <span part="action"><slot name="action"></slot></span>
84
+ <span part="actions"><slot name="actions"></slot></span>
85
85
  </div>
86
86
  <div id=${ITEMS_ID} part="items">
87
87
  <slot></slot>
@@ -39,11 +39,11 @@ declare const HelixHeadlessNotification_base: (new (...args: any[]) => import("@
39
39
  * @slot - What happened, in the consumer's own markup.
40
40
  * @slot actions - What a reader can do about it, under the words it is about. Drawn always
41
41
  * rather than on hover, because an action is the point of the row and not chrome around it.
42
- * @slot caption - A second line qualifying it, quieter than the first. A bare
42
+ * @slot description - A second line qualifying it, quieter than the first. A bare
43
43
  * slot rather than a box, so an item without one pays nothing for it; style it
44
44
  * through `::slotted()`.
45
45
  * @slot detail - A block belonging to the row rather than a line about it: a quoted
46
- * comment, a status moving from one value to another, a preview. Unlike `caption` nothing
46
+ * comment, a status moving from one value to another, a preview. Unlike `description` nothing
47
47
  * here sets a size or an ink, because whatever fills it usually brings its own.
48
48
  * @slot dismiss - Replaces the glyph inside the dismiss control, which is drawn
49
49
  * only where the row is `dismissible`.
@@ -106,7 +106,7 @@ let HelixHeadlessNotification = class HelixHeadlessNotification extends MixinDis
106
106
  <span part="media"><slot name="media"></slot></span>
107
107
  <div part="body">
108
108
  <div part="label"><slot></slot></div>
109
- <slot name="caption"></slot>
109
+ <slot name="description"></slot>
110
110
  <slot name="detail"></slot>
111
111
  <span part="actions"><slot name="actions" @slotchange=${this.handleActions}></slot></span>
112
112
  </div>
@@ -21,13 +21,13 @@ declare const HelixHeadlessTag_base: (new (...args: any[]) => import("@fusion.de
21
21
  * @documentation https://fusion.dev/helix/components/tag
22
22
  *
23
23
  * @slot - The tag's label.
24
- * @slot prefix - A category the label belongs to, set before it and weightier.
24
+ * @slot start - A category the label belongs to, set before it and weightier.
25
25
  *
26
26
  * @event {HelixDismissEvent} helix-dismiss - Fired when the reader asks to remove the tag. Cancelable: refusing it takes the decision and nothing moves.
27
27
  *
28
28
  * @csspart dismiss - The control that asks to remove the tag.
29
29
  * @csspart dismiss-mark - The glyph on the dismiss control, where none is slotted.
30
- * @csspart prefix - The category before the label.
30
+ * @csspart start - The category before the label.
31
31
  */
32
32
  export declare class HelixHeadlessTag extends HelixHeadlessTag_base {
33
33
  dismissLabel: string;
@@ -14,7 +14,7 @@ let HelixHeadlessTag = class HelixHeadlessTag extends MixinDismissible(HelixElem
14
14
  this.dismissLabel = 'Remove';
15
15
  }
16
16
  render() {
17
- return html `<slot name="prefix" part="prefix"></slot>
17
+ return html `<slot name="start" part="start"></slot>
18
18
  <slot></slot>
19
19
  ${this.dismissible
20
20
  ? html `<button
@@ -85,7 +85,7 @@ declare const HelixHeadlessTimeInput_base: (new (...args: any[]) => import("@fus
85
85
  * @csspart time - One held time, as a tag, in `multiple`.
86
86
  * @csspart time-dismiss - The remove button, when `dismissible`.
87
87
  * @csspart time-dismiss-mark - The glyph on the dismiss control, where none is slotted.
88
- * @csspart time-prefix - The category before the label.
88
+ * @csspart time-start - The category before the label.
89
89
  * @csspart trigger - The control that opens the list.
90
90
  * @csspart trigger-icon - The mark on the button that opens the clock.
91
91
  *
@@ -167,7 +167,7 @@ let HelixHeadlessTimeInput = class HelixHeadlessTimeInput extends MixinPickerEdi
167
167
  renderTag(at) {
168
168
  return html `<${this.tag('tag')}
169
169
  part="time"
170
- exportparts="dismiss: time-dismiss, dismiss-mark: time-dismiss-mark, prefix: time-prefix"
170
+ exportparts="dismiss: time-dismiss, dismiss-mark: time-dismiss-mark, start: time-start"
171
171
  dismissible
172
172
  dismiss-label=${`Remove ${this.written(at)}`}
173
173
  ?disabled=${this.isDisabled}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix-headless",
3
3
  "description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
4
- "version": "0.95.0",
4
+ "version": "0.97.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -46,13 +46,13 @@
46
46
  },
47
47
  "bugs": "https://github.com/project-fusion/fusion/issues",
48
48
  "dependencies": {
49
- "@fusion.dev/helix-core": "0.95.0",
50
- "@fusion.dev/helix-icons": "0.95.0",
49
+ "@fusion.dev/helix-core": "0.97.0",
50
+ "@fusion.dev/helix-icons": "0.97.0",
51
51
  "uqr": "^0.1.3"
52
52
  },
53
53
  "devDependencies": {
54
- "@fusion.dev/helix-cem": "0.95.0",
55
- "@fusion.dev/helix-testing": "0.95.0",
54
+ "@fusion.dev/helix-cem": "0.97.0",
55
+ "@fusion.dev/helix-testing": "0.97.0",
56
56
  "@fusion.dev/scripts": "0.0.0-dev",
57
57
  "@happy-dom/global-registrator": "^20.0.0",
58
58
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -21705,7 +21705,7 @@ export type CustomElements = {
21705
21705
  * - `tag`: One chosen option.
21706
21706
  * - `tag-dismiss`: The remove button, when `dismissible`.
21707
21707
  * - `tag-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
21708
- * - `tag-prefix`: The category before the label.
21708
+ * - `tag-start`: The category before the label.
21709
21709
  * - `tags`: The row of chosen options, when `multiple` is set.
21710
21710
  *
21711
21711
  * ## CSS States
@@ -22647,7 +22647,7 @@ export type CustomElements = {
22647
22647
  * - `date`: One held date, as a tag, in `multiple`.
22648
22648
  * - `date-dismiss`: The remove button, when `dismissible`.
22649
22649
  * - `date-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
22650
- * - `date-prefix`: The category before the label.
22650
+ * - `date-start`: The category before the label.
22651
22651
  * - `feedback`: What is wrong with it.
22652
22652
  * - `field`: The box holding the text and the trigger.
22653
22653
  * - `hint`: Help under the field, while nothing is wrong.
@@ -24090,7 +24090,7 @@ export type CustomElements = {
24090
24090
  * - `kind`: What kind of file it is.
24091
24091
  * - `kind-dismiss`: The remove button, when `dismissible`.
24092
24092
  * - `kind-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
24093
- * - `kind-prefix`: The category before the label.
24093
+ * - `kind-start`: The category before the label.
24094
24094
  * - `label`: The question, over the field.
24095
24095
  * - `list`: The chosen files.
24096
24096
  * - `meta`: The row holding its size and kind.
@@ -24099,7 +24099,7 @@ export type CustomElements = {
24099
24099
  * - `size`: How big it is.
24100
24100
  * - `size-dismiss`: The remove button, when `dismissible`.
24101
24101
  * - `size-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
24102
- * - `size-prefix`: The category before the label.
24102
+ * - `size-start`: The category before the label.
24103
24103
  * - `trigger`: The label that opens the picker.
24104
24104
  *
24105
24105
  * ## CSS States
@@ -26414,9 +26414,9 @@ export type CustomElements = {
26414
26414
  * Areas where markup can be added to the component.
26415
26415
  *
26416
26416
  * - `(default)`: The label.
26417
+ * - `description`: Secondary text under the label.
26417
26418
  * - `end`: Trailing content.
26418
26419
  * - `start`: Leading content, usually an icon or an avatar.
26419
- * - `supporting`: Secondary text under the label.
26420
26420
  *
26421
26421
  * ## CSS Parts
26422
26422
  *
@@ -27594,7 +27594,7 @@ export type CustomElements = {
27594
27594
  * Areas where markup can be added to the component.
27595
27595
  *
27596
27596
  * - `(default)`: The notifications in this group.
27597
- * - `action`: Beside the count, for a link to the rest of them.
27597
+ * - `actions`: Beside the count, for a link to the rest of them.
27598
27598
  * - `label`: Replaces the group's name, for a heading that needs a mark in it.
27599
27599
  *
27600
27600
  * ## Methods
@@ -27614,7 +27614,7 @@ export type CustomElements = {
27614
27614
  *
27615
27615
  * Custom selectors for styling elements within the component.
27616
27616
  *
27617
- * - `action`: The trailing region of the header.
27617
+ * - `actions`: The trailing region of the header.
27618
27618
  * - `count`: How many are in the group.
27619
27619
  * - `header`: The label, the count and the action together.
27620
27620
  * - `items`: The region holding the notifications.
@@ -27727,8 +27727,8 @@ export type CustomElements = {
27727
27727
  *
27728
27728
  * - `(default)`: What happened, in the consumer's own markup.
27729
27729
  * - `actions`: What a reader can do about it, under the words it is about. Drawn always rather than on hover, because an action is the point of the row and not chrome around it.
27730
- * - `caption`: A second line qualifying it, quieter than the first. A bare slot rather than a box, so an item without one pays nothing for it; style it through `::slotted()`.
27731
- * - `detail`: A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `caption` nothing here sets a size or an ink, because whatever fills it usually brings its own.
27730
+ * - `description`: A second line qualifying it, quieter than the first. A bare slot rather than a box, so an item without one pays nothing for it; style it through `::slotted()`.
27731
+ * - `detail`: A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `description` nothing here sets a size or an ink, because whatever fills it usually brings its own.
27732
27732
  * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
27733
27733
  * - `media`: An avatar or icon identifying who or what it came from.
27734
27734
  *
@@ -32857,7 +32857,7 @@ export type CustomElements = {
32857
32857
  * Areas where markup can be added to the component.
32858
32858
  *
32859
32859
  * - `(default)`: The tag's label.
32860
- * - `prefix`: A category the label belongs to, set before it and weightier.
32860
+ * - `start`: A category the label belongs to, set before it and weightier.
32861
32861
  *
32862
32862
  * ## Methods
32863
32863
  *
@@ -32871,7 +32871,7 @@ export type CustomElements = {
32871
32871
  *
32872
32872
  * - `dismiss`: The control that asks to remove the tag.
32873
32873
  * - `dismiss-mark`: The glyph on the dismiss control, where none is slotted.
32874
- * - `prefix`: The category before the label.
32874
+ * - `start`: The category before the label.
32875
32875
  *
32876
32876
  * ## CSS States
32877
32877
  *
@@ -33379,7 +33379,7 @@ export type CustomElements = {
33379
33379
  * - `time`: One held time, as a tag, in `multiple`.
33380
33380
  * - `time-dismiss`: The remove button, when `dismissible`.
33381
33381
  * - `time-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
33382
- * - `time-prefix`: The category before the label.
33382
+ * - `time-start`: The category before the label.
33383
33383
  * - `trigger`: The control that opens the list.
33384
33384
  * - `trigger-icon`: The mark on the button that opens the clock.
33385
33385
  *
@@ -39732,7 +39732,7 @@ export type CustomElementsSolidJs = {
39732
39732
  * - `tag`: One chosen option.
39733
39733
  * - `tag-dismiss`: The remove button, when `dismissible`.
39734
39734
  * - `tag-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
39735
- * - `tag-prefix`: The category before the label.
39735
+ * - `tag-start`: The category before the label.
39736
39736
  * - `tags`: The row of chosen options, when `multiple` is set.
39737
39737
  *
39738
39738
  * ## CSS States
@@ -40684,7 +40684,7 @@ export type CustomElementsSolidJs = {
40684
40684
  * - `date`: One held date, as a tag, in `multiple`.
40685
40685
  * - `date-dismiss`: The remove button, when `dismissible`.
40686
40686
  * - `date-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
40687
- * - `date-prefix`: The category before the label.
40687
+ * - `date-start`: The category before the label.
40688
40688
  * - `feedback`: What is wrong with it.
40689
40689
  * - `field`: The box holding the text and the trigger.
40690
40690
  * - `hint`: Help under the field, while nothing is wrong.
@@ -42150,7 +42150,7 @@ export type CustomElementsSolidJs = {
42150
42150
  * - `kind`: What kind of file it is.
42151
42151
  * - `kind-dismiss`: The remove button, when `dismissible`.
42152
42152
  * - `kind-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
42153
- * - `kind-prefix`: The category before the label.
42153
+ * - `kind-start`: The category before the label.
42154
42154
  * - `label`: The question, over the field.
42155
42155
  * - `list`: The chosen files.
42156
42156
  * - `meta`: The row holding its size and kind.
@@ -42159,7 +42159,7 @@ export type CustomElementsSolidJs = {
42159
42159
  * - `size`: How big it is.
42160
42160
  * - `size-dismiss`: The remove button, when `dismissible`.
42161
42161
  * - `size-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
42162
- * - `size-prefix`: The category before the label.
42162
+ * - `size-start`: The category before the label.
42163
42163
  * - `trigger`: The label that opens the picker.
42164
42164
  *
42165
42165
  * ## CSS States
@@ -44505,9 +44505,9 @@ export type CustomElementsSolidJs = {
44505
44505
  * Areas where markup can be added to the component.
44506
44506
  *
44507
44507
  * - `(default)`: The label.
44508
+ * - `description`: Secondary text under the label.
44508
44509
  * - `end`: Trailing content.
44509
44510
  * - `start`: Leading content, usually an icon or an avatar.
44510
- * - `supporting`: Secondary text under the label.
44511
44511
  *
44512
44512
  * ## CSS Parts
44513
44513
  *
@@ -45710,7 +45710,7 @@ export type CustomElementsSolidJs = {
45710
45710
  * Areas where markup can be added to the component.
45711
45711
  *
45712
45712
  * - `(default)`: The notifications in this group.
45713
- * - `action`: Beside the count, for a link to the rest of them.
45713
+ * - `actions`: Beside the count, for a link to the rest of them.
45714
45714
  * - `label`: Replaces the group's name, for a heading that needs a mark in it.
45715
45715
  *
45716
45716
  * ## Methods
@@ -45730,7 +45730,7 @@ export type CustomElementsSolidJs = {
45730
45730
  *
45731
45731
  * Custom selectors for styling elements within the component.
45732
45732
  *
45733
- * - `action`: The trailing region of the header.
45733
+ * - `actions`: The trailing region of the header.
45734
45734
  * - `count`: How many are in the group.
45735
45735
  * - `header`: The label, the count and the action together.
45736
45736
  * - `items`: The region holding the notifications.
@@ -45844,8 +45844,8 @@ export type CustomElementsSolidJs = {
45844
45844
  *
45845
45845
  * - `(default)`: What happened, in the consumer's own markup.
45846
45846
  * - `actions`: What a reader can do about it, under the words it is about. Drawn always rather than on hover, because an action is the point of the row and not chrome around it.
45847
- * - `caption`: A second line qualifying it, quieter than the first. A bare slot rather than a box, so an item without one pays nothing for it; style it through `::slotted()`.
45848
- * - `detail`: A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `caption` nothing here sets a size or an ink, because whatever fills it usually brings its own.
45847
+ * - `description`: A second line qualifying it, quieter than the first. A bare slot rather than a box, so an item without one pays nothing for it; style it through `::slotted()`.
45848
+ * - `detail`: A block belonging to the row rather than a line about it: a quoted comment, a status moving from one value to another, a preview. Unlike `description` nothing here sets a size or an ink, because whatever fills it usually brings its own.
45849
45849
  * - `dismiss`: Replaces the glyph inside the dismiss control, which is drawn only where the row is `dismissible`.
45850
45850
  * - `media`: An avatar or icon identifying who or what it came from.
45851
45851
  *
@@ -51068,7 +51068,7 @@ export type CustomElementsSolidJs = {
51068
51068
  * Areas where markup can be added to the component.
51069
51069
  *
51070
51070
  * - `(default)`: The tag's label.
51071
- * - `prefix`: A category the label belongs to, set before it and weightier.
51071
+ * - `start`: A category the label belongs to, set before it and weightier.
51072
51072
  *
51073
51073
  * ## Methods
51074
51074
  *
@@ -51082,7 +51082,7 @@ export type CustomElementsSolidJs = {
51082
51082
  *
51083
51083
  * - `dismiss`: The control that asks to remove the tag.
51084
51084
  * - `dismiss-mark`: The glyph on the dismiss control, where none is slotted.
51085
- * - `prefix`: The category before the label.
51085
+ * - `start`: The category before the label.
51086
51086
  *
51087
51087
  * ## CSS States
51088
51088
  *
@@ -51596,7 +51596,7 @@ export type CustomElementsSolidJs = {
51596
51596
  * - `time`: One held time, as a tag, in `multiple`.
51597
51597
  * - `time-dismiss`: The remove button, when `dismissible`.
51598
51598
  * - `time-dismiss-mark`: The glyph on the dismiss control, where none is slotted.
51599
- * - `time-prefix`: The category before the label.
51599
+ * - `time-start`: The category before the label.
51600
51600
  * - `trigger`: The control that opens the list.
51601
51601
  * - `trigger-icon`: The mark on the button that opens the clock.
51602
51602
  *