@fusion.dev/helix-docs 0.108.1 → 0.109.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.
@@ -58,10 +58,10 @@ either barrel. The per-component tables show what your page pays.
58
58
  | Package | Raw | Gzip | Brotli | |
59
59
  |---|---|---|---|---|
60
60
  | `@fusion.dev/helix-core` | 175,648 | 56,340 | 47,876 | The element base class, mixins, decorators, and floating positioning. |
61
- | `@fusion.dev/helix-headless` | 715,674 | 185,346 | 144,163 | Every headless family. The barrel entry includes all of them. |
61
+ | `@fusion.dev/helix-headless` | 716,216 | 185,618 | 144,397 | Every headless family. The barrel entry includes all of them. |
62
62
  | `@fusion.dev/helix-icons` | 55,565 | 17,727 | 14,864 | The whole glyph set. |
63
63
  | `@fusion.dev/helix-theme` | 3,288 | 1,571 | 1,355 | The derivation engine. Most sites run it at build time, and a theme switcher runs it in the browser. |
64
- | `@fusion.dev/helix` | 1,245,495 | 291,270 | 213,669 | Every styled family. |
64
+ | `@fusion.dev/helix` | 1,246,037 | 291,522 | 213,793 | Every styled family. |
65
65
  | `lit` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
66
66
 
67
67
  ## Stylesheets
@@ -84,9 +84,9 @@ shows the whole cost of using the base layer on its own.
84
84
 
85
85
  **Most of your first component is the shared runtime.** The median styled family is 20,604 bytes gzipped alone, and it adds 2,233 to a page that already has Helix. The shared runtime is 89 percent of the first component, and the component itself is 11 percent. Ten typical components cost the first number once, plus nine of the added number. The two columns in the tables below let you work that out for your own components.
86
86
 
87
- Across the 103 styled components, the smallest is `code` at 9,782 bytes gzipped alone, and the largest is `data-table` at 62,714. Every family together is 291,270.
87
+ Across the 103 styled components, the smallest is `code` at 9,782 bytes gzipped alone, and the largest is `data-table` at 62,990. Every family together is 291,522.
88
88
 
89
- No family imports a barrel. The `barrels` rule in `fusion workspace` enforces that. `@fusion.dev/helix-headless` marks every module in `dist` as having side effects, which is true of a file that calls `customElements.define`. A bundler can remove none of it. One `import { HelixHeadlessButton } from '@fusion.dev/helix-headless'` costs 185,346 bytes gzipped, whatever else the page imports. That is 9 times the median family above. All 103 styled families import the headless family they extend directly. The rule checks the shape of the import, so it applies to any package that sets `sideEffects`, whatever its name.
89
+ No family imports a barrel. The `barrels` rule in `fusion workspace` enforces that. `@fusion.dev/helix-headless` marks every module in `dist` as having side effects, which is true of a file that calls `customElements.define`. A bundler can remove none of it. One `import { HelixHeadlessButton } from '@fusion.dev/helix-headless'` costs 185,618 bytes gzipped, whatever else the page imports. That is 9 times the median family above. All 103 styled families import the headless family they extend directly. The rule checks the shape of the import, so it applies to any package that sets `sideEffects`, whatever its name.
90
90
 
91
91
  The headless tier never had the problem, so it serves as the control. `@fusion.dev/helix-core` is `sideEffects: false`, and the median headless family is 21,055 bytes gzipped alone.
92
92
 
@@ -260,7 +260,7 @@ Structure, accessibility, state, and form participation. It has no presentation
260
260
  | `stat` | 31,990 | 9,962 | 8,782 | 1,148 | 213 | 119 |
261
261
  | `steps` | 95,678 | 30,919 | 25,246 | 6,177 | 1,502 | 1,164 |
262
262
  | `switch` | 39,809 | 12,087 | 10,643 | 1,550 | 472 | 410 |
263
- | `table` | 97,348 | 31,852 | 25,954 | 9,616 | 2,614 | 2,191 |
263
+ | `table` | 97,890 | 32,123 | 26,195 | 10,158 | 2,842 | 2,351 |
264
264
  | `tabs` | 39,606 | 12,059 | 10,597 | 3,925 | 893 | 641 |
265
265
  | `tag` | 86,950 | 28,406 | 23,212 | 895 | 198 | 155 |
266
266
  | `textarea` | 42,350 | 12,677 | 11,152 | 3,953 | 1,090 | 749 |
@@ -310,7 +310,7 @@ The headless tier plus presentation. `bun add @fusion.dev/helix` installs this t
310
310
  | `combobox` | 159,990 | 48,783 | 41,021 | 36,020 | 7,936 | 6,553 |
311
311
  | `command` | 125,630 | 38,230 | 31,442 | 28,637 | 6,743 | 5,562 |
312
312
  | `copy-button` | 136,896 | 43,653 | 36,646 | 21,784 | 4,665 | 3,972 |
313
- | `data-table` | 220,801 | 62,714 | 52,791 | 92,882 | 20,663 | 16,995 |
313
+ | `data-table` | 221,343 | 62,990 | 53,002 | 93,424 | 20,951 | 17,076 |
314
314
  | `date-input` | 159,249 | 48,641 | 41,040 | 35,034 | 7,876 | 6,501 |
315
315
  | `date-picker` | 104,346 | 33,365 | 27,288 | 15,499 | 3,909 | 3,160 |
316
316
  | `description-list` | 33,983 | 10,434 | 9,183 | 3,502 | 796 | 605 |
@@ -369,7 +369,7 @@ The headless tier plus presentation. `bun add @fusion.dev/helix` installs this t
369
369
  | `stat` | 34,806 | 10,587 | 9,343 | 3,954 | 849 | 744 |
370
370
  | `steps` | 109,296 | 33,391 | 27,447 | 19,784 | 3,926 | 3,283 |
371
371
  | `switch` | 44,077 | 13,135 | 11,529 | 5,803 | 1,545 | 1,370 |
372
- | `table` | 102,942 | 33,035 | 26,943 | 15,204 | 3,812 | 3,154 |
372
+ | `table` | 103,484 | 33,304 | 27,192 | 15,746 | 4,038 | 3,406 |
373
373
  | `tabs` | 45,842 | 13,332 | 11,742 | 10,154 | 2,208 | 1,761 |
374
374
  | `tag` | 90,153 | 29,299 | 23,951 | 4,083 | 1,021 | 870 |
375
375
  | `text` | 34,466 | 10,420 | 9,152 | 3,987 | 846 | 651 |
@@ -399,11 +399,11 @@ stripped column shows the bytes we removed.
399
399
  | Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
400
400
  |---|---|---|---|---|
401
401
  | `@fusion.dev/helix-core` | 1,127,867 | 165 | 249,701 | `@floating-ui/dom`, `@fusion.dev/helix-icons` |
402
- | `@fusion.dev/helix-headless` | 13,046,911 | 504 | 1,032,260 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
402
+ | `@fusion.dev/helix-headless` | 13,053,257 | 504 | 1,033,947 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
403
403
  | `@fusion.dev/helix-icons` | 150,162 | 21 | 50,346 | `svgo` |
404
404
  | `@fusion.dev/helix-styles` | 102,108 | 6 | 0 | none |
405
405
  | `@fusion.dev/helix-theme` | 465,413 | 8 | 4,703 | none |
406
- | `@fusion.dev/helix` | 14,185,818 | 870 | 368,333 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
406
+ | `@fusion.dev/helix` | 14,191,826 | 870 | 370,788 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
407
407
 
408
408
  ## Not measured yet
409
409
 
@@ -112,7 +112,7 @@ In prose:
112
112
 
113
113
  See [Typography](./typography).
114
114
 
115
- Two Markdown constructs need components, because HTML alone cannot hold what
115
+ Three Markdown constructs need components, because HTML alone cannot hold what
116
116
  they need:
117
117
 
118
118
  - **Fenced code** becomes `helix-code-block`, with the fence's language as its
@@ -121,8 +121,13 @@ they need:
121
121
  tone. `NOTE` becomes `tone="info"`, `TIP` becomes `success`, `WARNING` becomes
122
122
  `warning`, and `CAUTION` becomes `danger`. `IMPORTANT` has no tone. Each
123
123
  callout is headed by its kind, as GitHub shows it.
124
+ - **Tables** become `helix-table`. A `<table>` squeezes its columns to fit, so
125
+ a narrow screen breaks a value such as `eu-central-1` across lines. The
126
+ header row becomes the table's columns, each aligned as the Markdown aligned
127
+ it. A column of short values stays whole, a column of sentences wraps, and a
128
+ table wider than the screen scrolls in its own box.
124
129
 
125
- The `rehype` plugin from `@fusion.dev/helix/rehype` makes both changes in the
130
+ The `rehype` plugin from `@fusion.dev/helix/rehype` makes all three changes in the
126
131
  tree your Markdown library has already built. It parses nothing, so your
127
132
  library, its dialect, and your sanitizing stay yours. Add it to any pipeline
128
133
  that reaches rehype, such as `remark` with `remark-rehype`, `react-markdown`, or
@@ -141,10 +146,13 @@ const html = await unified()
141
146
 
142
147
  Code that a highlighter colored before the plugin ran keeps its colors. Pass
143
148
  `fences: false` if your page draws its own code blocks, `alerts: false` to keep
144
- alerts as quotes, and `headings` to name each kind in your page's language.
149
+ alerts as quotes, `tables: false` to keep tables as HTML, and `headings` to
150
+ name each kind in your page's language. A table with a caption, a cell that
151
+ spans more than one column or row, or a heading cell outside its header row
152
+ stays HTML, because the grid cannot draw it as written.
145
153
 
146
154
  > [!NOTE]
147
- > The plugin changes only these two constructs. If the Markdown comes from your
155
+ > The plugin changes only these three constructs. If the Markdown comes from your
148
156
  > users, sanitize it in your pipeline before the plugin runs.
149
157
 
150
158
  Prose spaces each component the same as the element it replaces.
@@ -2811,10 +2811,10 @@ either barrel. The per-component tables show what your page pays.
2811
2811
  | Package | Raw | Gzip | Brotli | |
2812
2812
  |---|---|---|---|---|
2813
2813
  | \`@fusion.dev/helix-core\` | 175,648 | 56,340 | 47,876 | The element base class, mixins, decorators, and floating positioning. |
2814
- | \`@fusion.dev/helix-headless\` | 715,674 | 185,346 | 144,163 | Every headless family. The barrel entry includes all of them. |
2814
+ | \`@fusion.dev/helix-headless\` | 716,216 | 185,618 | 144,397 | Every headless family. The barrel entry includes all of them. |
2815
2815
  | \`@fusion.dev/helix-icons\` | 55,565 | 17,727 | 14,864 | The whole glyph set. |
2816
2816
  | \`@fusion.dev/helix-theme\` | 3,288 | 1,571 | 1,355 | The derivation engine. Most sites run it at build time, and a theme switcher runs it in the browser. |
2817
- | \`@fusion.dev/helix\` | 1,245,495 | 291,270 | 213,669 | Every styled family. |
2817
+ | \`@fusion.dev/helix\` | 1,246,037 | 291,522 | 213,793 | Every styled family. |
2818
2818
  | \`lit\` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
2819
2819
 
2820
2820
  ## Stylesheets
@@ -2837,9 +2837,9 @@ shows the whole cost of using the base layer on its own.
2837
2837
 
2838
2838
  **Most of your first component is the shared runtime.** The median styled family is 20,604 bytes gzipped alone, and it adds 2,233 to a page that already has Helix. The shared runtime is 89 percent of the first component, and the component itself is 11 percent. Ten typical components cost the first number once, plus nine of the added number. The two columns in the tables below let you work that out for your own components.
2839
2839
 
2840
- Across the 103 styled components, the smallest is \`code\` at 9,782 bytes gzipped alone, and the largest is \`data-table\` at 62,714. Every family together is 291,270.
2840
+ Across the 103 styled components, the smallest is \`code\` at 9,782 bytes gzipped alone, and the largest is \`data-table\` at 62,990. Every family together is 291,522.
2841
2841
 
2842
- No family imports a barrel. The \`barrels\` rule in \`fusion workspace\` enforces that. \`@fusion.dev/helix-headless\` marks every module in \`dist\` as having side effects, which is true of a file that calls \`customElements.define\`. A bundler can remove none of it. One \`import { HelixHeadlessButton } from '@fusion.dev/helix-headless'\` costs 185,346 bytes gzipped, whatever else the page imports. That is 9 times the median family above. All 103 styled families import the headless family they extend directly. The rule checks the shape of the import, so it applies to any package that sets \`sideEffects\`, whatever its name.
2842
+ No family imports a barrel. The \`barrels\` rule in \`fusion workspace\` enforces that. \`@fusion.dev/helix-headless\` marks every module in \`dist\` as having side effects, which is true of a file that calls \`customElements.define\`. A bundler can remove none of it. One \`import { HelixHeadlessButton } from '@fusion.dev/helix-headless'\` costs 185,618 bytes gzipped, whatever else the page imports. That is 9 times the median family above. All 103 styled families import the headless family they extend directly. The rule checks the shape of the import, so it applies to any package that sets \`sideEffects\`, whatever its name.
2843
2843
 
2844
2844
  The headless tier never had the problem, so it serves as the control. \`@fusion.dev/helix-core\` is \`sideEffects: false\`, and the median headless family is 21,055 bytes gzipped alone.
2845
2845
 
@@ -3013,7 +3013,7 @@ Structure, accessibility, state, and form participation. It has no presentation
3013
3013
  | \`stat\` | 31,990 | 9,962 | 8,782 | 1,148 | 213 | 119 |
3014
3014
  | \`steps\` | 95,678 | 30,919 | 25,246 | 6,177 | 1,502 | 1,164 |
3015
3015
  | \`switch\` | 39,809 | 12,087 | 10,643 | 1,550 | 472 | 410 |
3016
- | \`table\` | 97,348 | 31,852 | 25,954 | 9,616 | 2,614 | 2,191 |
3016
+ | \`table\` | 97,890 | 32,123 | 26,195 | 10,158 | 2,842 | 2,351 |
3017
3017
  | \`tabs\` | 39,606 | 12,059 | 10,597 | 3,925 | 893 | 641 |
3018
3018
  | \`tag\` | 86,950 | 28,406 | 23,212 | 895 | 198 | 155 |
3019
3019
  | \`textarea\` | 42,350 | 12,677 | 11,152 | 3,953 | 1,090 | 749 |
@@ -3063,7 +3063,7 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
3063
3063
  | \`combobox\` | 159,990 | 48,783 | 41,021 | 36,020 | 7,936 | 6,553 |
3064
3064
  | \`command\` | 125,630 | 38,230 | 31,442 | 28,637 | 6,743 | 5,562 |
3065
3065
  | \`copy-button\` | 136,896 | 43,653 | 36,646 | 21,784 | 4,665 | 3,972 |
3066
- | \`data-table\` | 220,801 | 62,714 | 52,791 | 92,882 | 20,663 | 16,995 |
3066
+ | \`data-table\` | 221,343 | 62,990 | 53,002 | 93,424 | 20,951 | 17,076 |
3067
3067
  | \`date-input\` | 159,249 | 48,641 | 41,040 | 35,034 | 7,876 | 6,501 |
3068
3068
  | \`date-picker\` | 104,346 | 33,365 | 27,288 | 15,499 | 3,909 | 3,160 |
3069
3069
  | \`description-list\` | 33,983 | 10,434 | 9,183 | 3,502 | 796 | 605 |
@@ -3122,7 +3122,7 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
3122
3122
  | \`stat\` | 34,806 | 10,587 | 9,343 | 3,954 | 849 | 744 |
3123
3123
  | \`steps\` | 109,296 | 33,391 | 27,447 | 19,784 | 3,926 | 3,283 |
3124
3124
  | \`switch\` | 44,077 | 13,135 | 11,529 | 5,803 | 1,545 | 1,370 |
3125
- | \`table\` | 102,942 | 33,035 | 26,943 | 15,204 | 3,812 | 3,154 |
3125
+ | \`table\` | 103,484 | 33,304 | 27,192 | 15,746 | 4,038 | 3,406 |
3126
3126
  | \`tabs\` | 45,842 | 13,332 | 11,742 | 10,154 | 2,208 | 1,761 |
3127
3127
  | \`tag\` | 90,153 | 29,299 | 23,951 | 4,083 | 1,021 | 870 |
3128
3128
  | \`text\` | 34,466 | 10,420 | 9,152 | 3,987 | 846 | 651 |
@@ -3152,11 +3152,11 @@ stripped column shows the bytes we removed.
3152
3152
  | Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
3153
3153
  |---|---|---|---|---|
3154
3154
  | \`@fusion.dev/helix-core\` | 1,127,867 | 165 | 249,701 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\` |
3155
- | \`@fusion.dev/helix-headless\` | 13,046,911 | 504 | 1,032,260 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`uqr\` |
3155
+ | \`@fusion.dev/helix-headless\` | 13,053,257 | 504 | 1,033,947 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`uqr\` |
3156
3156
  | \`@fusion.dev/helix-icons\` | 150,162 | 21 | 50,346 | \`svgo\` |
3157
3157
  | \`@fusion.dev/helix-styles\` | 102,108 | 6 | 0 | none |
3158
3158
  | \`@fusion.dev/helix-theme\` | 465,413 | 8 | 4,703 | none |
3159
- | \`@fusion.dev/helix\` | 14,185,818 | 870 | 368,333 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\` |
3159
+ | \`@fusion.dev/helix\` | 14,191,826 | 870 | 370,788 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\` |
3160
3160
 
3161
3161
  ## Not measured yet
3162
3162
 
@@ -3904,7 +3904,7 @@ In prose:
3904
3904
 
3905
3905
  See [Typography](./typography).
3906
3906
 
3907
- Two Markdown constructs need components, because HTML alone cannot hold what
3907
+ Three Markdown constructs need components, because HTML alone cannot hold what
3908
3908
  they need:
3909
3909
 
3910
3910
  - **Fenced code** becomes \`helix-code-block\`, with the fence's language as its
@@ -3913,8 +3913,13 @@ they need:
3913
3913
  tone. \`NOTE\` becomes \`tone="info"\`, \`TIP\` becomes \`success\`, \`WARNING\` becomes
3914
3914
  \`warning\`, and \`CAUTION\` becomes \`danger\`. \`IMPORTANT\` has no tone. Each
3915
3915
  callout is headed by its kind, as GitHub shows it.
3916
+ - **Tables** become \`helix-table\`. A \`<table>\` squeezes its columns to fit, so
3917
+ a narrow screen breaks a value such as \`eu-central-1\` across lines. The
3918
+ header row becomes the table's columns, each aligned as the Markdown aligned
3919
+ it. A column of short values stays whole, a column of sentences wraps, and a
3920
+ table wider than the screen scrolls in its own box.
3916
3921
 
3917
- The \`rehype\` plugin from \`@fusion.dev/helix/rehype\` makes both changes in the
3922
+ The \`rehype\` plugin from \`@fusion.dev/helix/rehype\` makes all three changes in the
3918
3923
  tree your Markdown library has already built. It parses nothing, so your
3919
3924
  library, its dialect, and your sanitizing stay yours. Add it to any pipeline
3920
3925
  that reaches rehype, such as \`remark\` with \`remark-rehype\`, \`react-markdown\`, or
@@ -3933,10 +3938,13 @@ const html = await unified()
3933
3938
 
3934
3939
  Code that a highlighter colored before the plugin ran keeps its colors. Pass
3935
3940
  \`fences: false\` if your page draws its own code blocks, \`alerts: false\` to keep
3936
- alerts as quotes, and \`headings\` to name each kind in your page's language.
3941
+ alerts as quotes, \`tables: false\` to keep tables as HTML, and \`headings\` to
3942
+ name each kind in your page's language. A table with a caption, a cell that
3943
+ spans more than one column or row, or a heading cell outside its header row
3944
+ stays HTML, because the grid cannot draw it as written.
3937
3945
 
3938
3946
  > [!NOTE]
3939
- > The plugin changes only these two constructs. If the Markdown comes from your
3947
+ > The plugin changes only these three constructs. If the Markdown comes from your
3940
3948
  > users, sanitize it in your pipeline before the plugin runs.
3941
3949
 
3942
3950
  Prose spaces each component the same as the element it replaces.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix-docs",
3
3
  "description": "Versioned documentation content and registry for Helix.",
4
- "version": "0.108.1",
4
+ "version": "0.109.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "bugs": "https://github.com/project-fusion/fusion/issues",
38
38
  "devDependencies": {
39
- "@fusion.dev/helix-cem": "0.108.1",
40
- "@fusion.dev/helix-testing": "0.108.1",
39
+ "@fusion.dev/helix-cem": "0.109.0",
40
+ "@fusion.dev/helix-testing": "0.109.0",
41
41
  "@fusion.dev/scripts": "0.0.0-dev",
42
42
  "lit": "^3.2.1",
43
43
  "playwright": "^1.62.1"