@fusion.dev/helix-headless 0.187.0 → 0.188.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/api.json +1 -1
- package/custom-elements.json +9 -5
- package/dist/icon/root/icon-root.d.ts +1 -1
- package/dist/input/root/input-root.d.ts +1 -1
- package/dist/table/root/table-root.d.ts +2 -1
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +8 -6
- package/types/vue.d.ts +2 -2
package/custom-elements.json
CHANGED
|
@@ -83775,7 +83775,7 @@
|
|
|
83775
83775
|
"declarations": [
|
|
83776
83776
|
{
|
|
83777
83777
|
"kind": "class",
|
|
83778
|
-
"description": "The icons are Phosphor, drawn on a 256 box at stroke-width 16. Each glyph\nrenders its full inner markup, because most icons are several elements, each\nwith its own stroke and fill.\n\nThe markup is generated at build time from SVG files
|
|
83778
|
+
"description": "The icons are Phosphor, drawn on a 256 box at stroke-width 16. Each glyph\nrenders its full inner markup, because most icons are several elements, each\nwith its own stroke and fill.\n\nThe markup is generated at build time from the SVG files Helix ships and\nnever comes from user input, so rendering it with `unsafeSVG` is safe.\n\nThe `<svg>` carries `fill=\"currentColor\"`. The generator keeps only the inner\nmarkup, and Phosphor sets its fill on the root tag that the generator\ndiscards. Without it, the 65 solid glyphs fall back to black and disappear on\na dark background. Shapes that set their own `fill` or `stroke` are\nunaffected.\n\n**A name is looked up in a registry.** The family's entry registers the\nwhole set, so any name in it draws, and `icon/all` registers the same set.\nThe element's own entry, `@fusion.dev/helix-headless/icon/root`, registers\nnone: a page that imports it and calls `registerIcons` with the glyphs it\nnames ships those and no others. `registerIconLibrary` resolves names under a prefix of your own,\nsuch as `lucide:camera`, at once or later, and the element fires `load` when\na glyph that came later is drawn. A glyph registered after the element\nrendered is drawn then.\n\n**Or point `src` at an SVG file**, such as `src=\"/icons/rocket.svg\"`, and\nthe element fetches it and draws its shapes in `currentColor` where the file\ndoes not color them. A file is fetched once a page, however many icons name\nit, and `load` fires when it is drawn. Scripts, event handlers and\n`javascript:` links in the file are taken out before it is drawn. A server\nfetches nothing, so a served icon with a `src` is drawn once the script\nruns.\n\nA name with no match, or a `src` that is no SVG, renders nothing, and the\nelement fires `error`, so a typo in a name can be heard. It waits until the page has loaded and painted\nfirst, so a library a later module registers is not taken for a typo.\n\nAn icon is decorative by default and hidden from assistive technology. Set\n`label` only when the icon is the only carrier of meaning, such as in a\nbutton with no text. An `aria-label` on the element works too: the element\nis then an image with that name.\n\n**A decorative icon that is all a control holds is reported.** In a\ndevelopment build, a button or a link whose only content is an icon with no\n`label`, and which has no name of its own, warns `missing-name` once,\nthrough the runtime channel every Helix warning uses.",
|
|
83779
83779
|
"name": "HelixHeadlessIcon",
|
|
83780
83780
|
"cssParts": [
|
|
83781
83781
|
{
|
|
@@ -86795,7 +86795,7 @@
|
|
|
86795
86795
|
"text": "'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url'"
|
|
86796
86796
|
},
|
|
86797
86797
|
"default": "'text'",
|
|
86798
|
-
"description": "The kind of text the field accepts. It sets the on-screen keyboard and the\nvalidation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno stylesheet
|
|
86798
|
+
"description": "The kind of text the field accepts. It sets the on-screen keyboard and the\nvalidation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno Helix stylesheet 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.",
|
|
86799
86799
|
"attribute": "type"
|
|
86800
86800
|
},
|
|
86801
86801
|
{
|
|
@@ -88354,7 +88354,7 @@
|
|
|
88354
88354
|
"text": "'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url'"
|
|
88355
88355
|
},
|
|
88356
88356
|
"default": "'text'",
|
|
88357
|
-
"description": "The kind of text the field accepts. It sets the on-screen keyboard and the\nvalidation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno stylesheet
|
|
88357
|
+
"description": "The kind of text the field accepts. It sets the on-screen keyboard and the\nvalidation.\n\n**Not reflected.** Reflection exists so a selector can reach a value, and\nno Helix stylesheet 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.",
|
|
88358
88358
|
"fieldName": "type"
|
|
88359
88359
|
},
|
|
88360
88360
|
{
|
|
@@ -165406,6 +165406,10 @@
|
|
|
165406
165406
|
"description": "The table's rows.",
|
|
165407
165407
|
"name": ""
|
|
165408
165408
|
},
|
|
165409
|
+
{
|
|
165410
|
+
"description": "The columns, as `TableColumn` elements. The table moves each column here itself, so markup that runs in a browser leaves it out; a server-rendered page writes `slot=\"columns\"` on each column so the headings sit in place before the table upgrades.",
|
|
165411
|
+
"name": "columns"
|
|
165412
|
+
},
|
|
165409
165413
|
{
|
|
165410
165414
|
"description": "Content shown when there are no rows and none are loading, such as a picture and a link. Falls back to `empty-text`, which the live region still says.",
|
|
165411
165415
|
"name": "empty"
|
|
@@ -166674,7 +166678,7 @@
|
|
|
166674
166678
|
},
|
|
166675
166679
|
"static": true,
|
|
166676
166680
|
"default": "{ ...HelixElement.shadowRootOptions, slotAssignment: 'manual', }",
|
|
166677
|
-
"description": "Nothing is assigned by name, so the columns can be put in a row.\n\nThe table pattern is `table > row > columnheader`, and a header cell\nlanding directly under `role=\"table\"` with no owning row is invalid: it is\na cell belonging to nothing. The columns are ordinary children the consumer\nwrites with no `slot`, so the only way to put a wrapper around them without\nchanging what a consumer writes is to assign them here.\n\nManual rather than a `slot` attribute this element would set on the\nconsumer's own markup, which is the change a React consumer's hydration\nreports and does not patch up. Assignment writes nothing at all.\n\nSafe against the server because
|
|
166681
|
+
"description": "Nothing is assigned by name, so the columns can be put in a row.\n\nThe table pattern is `table > row > columnheader`, and a header cell\nlanding directly under `role=\"table\"` with no owning row is invalid: it is\na cell belonging to nothing. The columns are ordinary children the consumer\nwrites with no `slot`, so the only way to put a wrapper around them without\nchanging what a consumer writes is to assign them here.\n\nManual rather than a `slot` attribute this element would set on the\nconsumer's own markup, which is the change a React consumer's hydration\nreports and does not patch up. Assignment writes nothing at all.\n\nSafe against the server because Helix ships no declarative shadow DOM:\nthe shadow root exists only after upgrade, and the assignment below runs in\nthat same update. There is no window in which the shadow is present and the\nassignment has not happened."
|
|
166678
166682
|
},
|
|
166679
166683
|
{
|
|
166680
166684
|
"kind": "field",
|
|
@@ -205246,6 +205250,6 @@
|
|
|
205246
205250
|
],
|
|
205247
205251
|
"helix": {
|
|
205248
205252
|
"package": "@fusion.dev/helix-headless",
|
|
205249
|
-
"version": "0.
|
|
205253
|
+
"version": "0.188.0"
|
|
205250
205254
|
}
|
|
205251
205255
|
}
|
|
@@ -9,7 +9,7 @@ import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
|
9
9
|
* renders its full inner markup, because most icons are several elements, each
|
|
10
10
|
* with its own stroke and fill.
|
|
11
11
|
*
|
|
12
|
-
* The markup is generated at build time from SVG files
|
|
12
|
+
* The markup is generated at build time from the SVG files Helix ships and
|
|
13
13
|
* never comes from user input, so rendering it with `unsafeSVG` is safe.
|
|
14
14
|
*
|
|
15
15
|
* The `<svg>` carries `fill="currentColor"`. The generator keeps only the inner
|
|
@@ -300,7 +300,7 @@ export declare class HelixHeadlessInput extends HelixHeadlessInput_base {
|
|
|
300
300
|
* validation.
|
|
301
301
|
*
|
|
302
302
|
* **Not reflected.** Reflection exists so a selector can reach a value, and
|
|
303
|
-
* no stylesheet
|
|
303
|
+
* no Helix stylesheet selects on `type`. Reflecting it writes
|
|
304
304
|
* `type="text"` onto every `<helix-headless-input>` ever rendered, an
|
|
305
305
|
* attribute no consumer's markup has, which is the fault the area rules write
|
|
306
306
|
* up under `Button`'s `href`, `target` and `rel`.
|
|
@@ -152,6 +152,7 @@ declare const HelixHeadlessTable_base: (new (...args: any[]) => import("@fusion.
|
|
|
152
152
|
* @documentation https://fusion.dev/helix/components/table
|
|
153
153
|
*
|
|
154
154
|
* @slot - The table's rows.
|
|
155
|
+
* @slot columns - The columns, as `TableColumn` elements. The table moves each column here itself, so markup that runs in a browser leaves it out; a server-rendered page writes `slot="columns"` on each column so the headings sit in place before the table upgrades.
|
|
155
156
|
* @slot empty - Content shown when there are no rows and none are loading, such as a picture and a link. Falls back to `empty-text`, which the live region still says.
|
|
156
157
|
* @slot error - Content shown while `error-text` is set, such as a button that tries again. Falls back to `error-text`, which the live region still says.
|
|
157
158
|
* @slot heading - Words that name the table, shown above it, such as a heading.
|
|
@@ -716,7 +717,7 @@ export declare class HelixHeadlessTable extends HelixHeadlessTable_base {
|
|
|
716
717
|
* consumer's own markup, which is the change a React consumer's hydration
|
|
717
718
|
* reports and does not patch up. Assignment writes nothing at all.
|
|
718
719
|
*
|
|
719
|
-
* Safe against the server because
|
|
720
|
+
* Safe against the server because Helix ships no declarative shadow DOM:
|
|
720
721
|
* the shadow root exists only after upgrade, and the assignment below runs in
|
|
721
722
|
* that same update. There is no window in which the shadow is present and the
|
|
722
723
|
* assignment has not happened.
|