@fusion.dev/helix-docs 0.0.0-dev → 0.0.2
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/content/browser-support.mdx +2 -2
- package/content/charting.mdx +4 -8
- package/content/coding-agents.mdx +14 -22
- package/content/color-modes.mdx +4 -4
- package/content/color.mdx +2 -2
- package/content/elevation-and-material.mdx +2 -2
- package/content/events.mdx +1 -1
- package/content/forms.mdx +5 -7
- package/content/iconography.mdx +15 -12
- package/content/installation.mdx +4 -6
- package/content/introduction.mdx +1 -1
- package/content/metrics.mdx +214 -214
- package/content/other-frameworks.mdx +6 -5
- package/content/overriding-a-component.mdx +11 -15
- package/content/routing.mdx +4 -4
- package/content/server-rendering.mdx +1 -1
- package/content/shape-and-borders.mdx +19 -8
- package/content/space-and-size.mdx +1 -1
- package/content/state-and-control.mdx +5 -5
- package/content/svelte.mdx +3 -3
- package/content/theme-builder.mdx +1 -1
- package/content/theming.mdx +1 -1
- package/content/tiers.mdx +2 -2
- package/content/tokens.mdx +4 -4
- package/content/using-helix-with-an-agent.mdx +30 -27
- package/content/using-the-elements.mdx +0 -2
- package/content/visual-axes.mdx +5 -7
- package/content/without-a-bundler.mdx +4 -5
- package/dist/catalog.d.ts +19 -29
- package/dist/catalog.js +27 -49
- package/dist/naming.js +1 -1
- package/dist/pages.generated.d.ts +1 -1
- package/dist/pages.generated.js +1 -1
- package/dist/reference.js +1 -1
- package/dist/registry.d.ts +3 -3
- package/dist/registry.js +3 -3
- package/dist/sections.d.ts +3 -7
- package/dist/sections.js +3 -7
- package/dist/sources.generated.d.ts +2 -2
- package/dist/sources.generated.js +367 -374
- package/package.json +6 -2
package/content/metrics.mdx
CHANGED
|
@@ -7,7 +7,7 @@ title: Metrics
|
|
|
7
7
|
|
|
8
8
|
# Metrics
|
|
9
9
|
|
|
10
|
-
*Generated by `bun run metrics` from the built packages. Do not edit: every
|
|
10
|
+
*Generated by `bun run gen:metrics` from the built packages. Do not edit: every
|
|
11
11
|
number here is measured, and an edited one is a number nothing produced.*
|
|
12
12
|
|
|
13
13
|
Bundle size, and what a component costs in time. The two are kept apart on
|
|
@@ -47,7 +47,7 @@ nobody ever downloads this floor on its own.
|
|
|
47
47
|
|
|
48
48
|
| | Raw | Gzip | Brotli |
|
|
49
49
|
|---|---|---|---|
|
|
50
|
-
| Lit and `@fusion.dev/helix-core` |
|
|
50
|
+
| Lit and `@fusion.dev/helix-core` | 134,972 | 44,683 | 38,067 |
|
|
51
51
|
|
|
52
52
|
## Whole packages
|
|
53
53
|
|
|
@@ -58,11 +58,11 @@ repository does that. The per-component tables are what a page pays.
|
|
|
58
58
|
|
|
59
59
|
| Package | Raw | Gzip | Brotli | |
|
|
60
60
|
|---|---|---|---|---|
|
|
61
|
-
| `@fusion.dev/helix-core` |
|
|
62
|
-
| `@fusion.dev/helix-headless` |
|
|
63
|
-
| `@fusion.dev/helix-icons` |
|
|
64
|
-
| `@fusion.dev/helix-theme` | 3,288 | 1,
|
|
65
|
-
| `@fusion.dev/helix` |
|
|
61
|
+
| `@fusion.dev/helix-core` | 134,526 | 44,221 | 37,891 | Element base class, mixins, decorators, floating positioning. |
|
|
62
|
+
| `@fusion.dev/helix-headless` | 519,032 | 131,647 | 103,098 | Every headless family, which is what the barrel means. |
|
|
63
|
+
| `@fusion.dev/helix-icons` | 47,484 | 14,907 | 12,553 | The whole glyph set. |
|
|
64
|
+
| `@fusion.dev/helix-theme` | 3,288 | 1,571 | 1,355 | The derivation engine. Build time for most consumers, runtime for a theme switcher. |
|
|
65
|
+
| `@fusion.dev/helix` | 956,589 | 216,783 | 158,845 | Every styled family. |
|
|
66
66
|
| `lit` | 15,394 | 6,118 | 5,460 | Not ours. Here so it can be subtracted from every row above it. |
|
|
67
67
|
|
|
68
68
|
## The stylesheets
|
|
@@ -75,25 +75,25 @@ is the whole cost of adopting the base layer on its own.
|
|
|
75
75
|
|
|
76
76
|
| File | Raw | Gzip | Brotli | |
|
|
77
77
|
|---|---|---|---|---|
|
|
78
|
-
| `base.css` | 23,
|
|
79
|
-
| `elements.css` | 8,
|
|
78
|
+
| `base.css` | 23,145 | 3,556 | 3,065 | The base layer. Recipes for markup Helix does not render, usable with no JavaScript at all. |
|
|
79
|
+
| `elements.css` | 8,290 | 1,875 | 1,600 | The components' own layer, generated from every family's stylesheet. |
|
|
80
80
|
| `all.css` | 179 | 142 | 110 | The three above in one import, in the order they have to be in. |
|
|
81
|
-
| `primitives.css` | 6,
|
|
82
|
-
| `tokens.css` | 19,989 | 2,
|
|
81
|
+
| `primitives.css` | 6,275 | 1,234 | 1,062 | The primitive layer. Private, shipped because `tokens.css` resolves into it. |
|
|
82
|
+
| `tokens.css` | 19,989 | 2,467 | 2,073 | The 185 semantic tokens. Nothing paints without this. |
|
|
83
83
|
|
|
84
84
|
## What the numbers say
|
|
85
85
|
|
|
86
|
-
**Most of a first component is the runtime under it.** The median styled family is 13,
|
|
86
|
+
**Most of a first component is the runtime under it.** The median styled family is 13,974 bytes gzipped alone and adds 2,414 to a page that already has Helix on it, so 83 percent of the first one is shared and 17 percent is the component. Ten typical components are one plus nine additions rather than ten of the first number, and the pair of columns below is what lets that be worked out rather than guessed.
|
|
87
87
|
|
|
88
|
-
Across the tier: the cheapest is `code` at 9,
|
|
88
|
+
Across the tier: the cheapest is `code` at 9,065 gzipped alone, the dearest `data-table` at 49,868, over 93 components. Every family at once is 216,783.
|
|
89
89
|
|
|
90
|
-
**No family imports a barrel, and `
|
|
90
|
+
**No family imports a barrel, and the `barrels` rule in `fusion workspace` is what keeps it that way.** `@fusion.dev/helix-headless` is `sideEffects` over every module in `dist`, which is true of a file that calls `customElements.define` and which means a bundler may drop none of it: one `import { HelixHeadlessButton } from '@fusion.dev/helix-headless'` costs 131,647 bytes gzipped whatever else the page does, which is 9 times the median family measured above. The styled tier imports the family it extends instead, all 93 of them, and the check refuses the shape rather than the package name, so the rule follows `sideEffects` wherever it goes.
|
|
91
91
|
|
|
92
|
-
The headless tier never had the problem, and it is the control: `@fusion.dev/helix-core` is `sideEffects: false`, and a headless family is a median of 16,
|
|
92
|
+
The headless tier never had the problem, and it is the control: `@fusion.dev/helix-core` is `sideEffects: false`, and a headless family is a median of 16,187 bytes gzipped alone.
|
|
93
93
|
|
|
94
94
|
## Against other systems
|
|
95
95
|
|
|
96
|
-
Four other libraries of custom elements, pinned and measured on 2026-08-24 by `
|
|
96
|
+
Four other libraries of custom elements, pinned and measured on 2026-08-24 by `turbo run peers`, which installs them into `.local` and bundles them through the harness that produced everything above. **Helix's own rows are measured on every run of `bun run gen:metrics`**, so the column that could go stale against this repository is the one that cannot.
|
|
97
97
|
|
|
98
98
|
**Every system here is built on Lit**, so the runtime under the comparison is the same library in every column and what is left is the components. A React component library is not in the table, because comparing a custom element with a React component measures the framework.
|
|
99
99
|
|
|
@@ -101,43 +101,43 @@ Four other libraries of custom elements, pinned and measured on 2026-08-24 by `b
|
|
|
101
101
|
|
|
102
102
|
| Component | System | Raw | Gzip | Brotli |
|
|
103
103
|
|---|---|---|---|---|
|
|
104
|
-
| `button` | **Helix** | 37,
|
|
104
|
+
| `button` | **Helix** | 37,399 | 11,545 | 10,187 |
|
|
105
105
|
| | Carbon | 133,058 | 20,959 | 17,685 |
|
|
106
106
|
| | Material Web | 47,060 | 14,173 | 12,591 |
|
|
107
107
|
| | Shoelace | 62,628 | 18,287 | 15,805 |
|
|
108
108
|
| | Spectrum | 98,792 | 22,045 | 18,674 |
|
|
109
|
-
| `checkbox` | **Helix** | 40,
|
|
109
|
+
| `checkbox` | **Helix** | 40,821 | 12,584 | 11,091 |
|
|
110
110
|
| | Carbon | 60,255 | 15,609 | 13,550 |
|
|
111
111
|
| | Material Web | 43,785 | 13,556 | 12,015 |
|
|
112
112
|
| | Shoelace | 47,614 | 15,177 | 13,301 |
|
|
113
113
|
| | Spectrum | 62,492 | 15,437 | 13,481 |
|
|
114
|
-
| `dialog` | **Helix** | 34,
|
|
114
|
+
| `dialog` | **Helix** | 34,819 | 11,243 | 9,909 |
|
|
115
115
|
| | Carbon | 510,866 | 67,390 | 39,189 |
|
|
116
116
|
| | Material Web | 34,238 | 11,510 | 10,229 |
|
|
117
117
|
| | Shoelace | 52,754 | 17,698 | 15,554 |
|
|
118
118
|
| | Spectrum | 155,708 | 31,899 | 26,262 |
|
|
119
|
-
| `radio` | **Helix** | 43,
|
|
119
|
+
| `radio` | **Helix** | 43,516 | 12,844 | 11,308 |
|
|
120
120
|
| | Carbon | 63,055 | 16,887 | 14,605 |
|
|
121
121
|
| | Material Web | 41,044 | 13,234 | 11,757 |
|
|
122
122
|
| | Shoelace | 34,865 | 12,027 | 10,559 |
|
|
123
123
|
| | Spectrum | 38,685 | 10,660 | 9,370 |
|
|
124
|
-
| `switch` | **Helix** | 38,
|
|
124
|
+
| `switch` | **Helix** | 38,603 | 12,160 | 10,668 |
|
|
125
125
|
| | Carbon | 69,423 | 17,127 | 14,764 |
|
|
126
126
|
| | Material Web | 50,155 | 14,577 | 12,935 |
|
|
127
127
|
| | Shoelace | 37,833 | 11,814 | 10,568 |
|
|
128
128
|
| | Spectrum | 62,322 | 15,059 | 13,321 |
|
|
129
|
-
| `tabs` | **Helix** | 40,
|
|
129
|
+
| `tabs` | **Helix** | 40,196 | 12,332 | 10,861 |
|
|
130
130
|
| | Carbon | 578,766 | 73,537 | 43,235 |
|
|
131
131
|
| | Material Web | 38,883 | 12,820 | 11,368 |
|
|
132
132
|
| | Shoelace | 54,573 | 17,140 | 15,068 |
|
|
133
133
|
| | Spectrum | 64,875 | 18,298 | 16,283 |
|
|
134
|
-
| `tooltip` | **Helix** |
|
|
134
|
+
| `tooltip` | **Helix** | 60,498 | 20,576 | 18,184 |
|
|
135
135
|
| | Carbon | 189,382 | 30,354 | 22,273 |
|
|
136
136
|
| | Material Web | | not shipped | |
|
|
137
137
|
| | Shoelace | 57,412 | 20,220 | 17,933 |
|
|
138
138
|
| | Spectrum | 136,599 | 40,552 | 35,286 |
|
|
139
139
|
|
|
140
|
-
**Where Helix loses**, which is the half of a comparison table worth reading: `radio`, `switch`, `tooltip`. The largest gap is radio against Spectrum, by 2,
|
|
140
|
+
**Where Helix loses**, which is the half of a comparison table worth reading: `radio`, `switch`, `tooltip`. The largest gap is radio against Spectrum, by 2,184 bytes gzipped. 4 of 28 peer measurements come in under ours.
|
|
141
141
|
|
|
142
142
|
- **Carbon** `@carbon/web-components@2.61.0`. Its dialog is Modal, its radio is Radio Button, and its switch is Toggle.
|
|
143
143
|
- **Material Web** `@material/web@2.5.0`. Ships no tooltip. Its button is measured as the filled one, there being no single button element.
|
|
@@ -148,7 +148,7 @@ Every specifier measured is in [`peers.json`](https://github.com/project-fusion/
|
|
|
148
148
|
|
|
149
149
|
## What it costs in time
|
|
150
150
|
|
|
151
|
-
Measured on 2026-08-26 by `
|
|
151
|
+
Measured on 2026-08-26 by `turbo run timings`, which drives a real browser against the built packages. The median of 9 runs each, on one machine.
|
|
152
152
|
|
|
153
153
|
**These never join the comparison above, and that is not a hedge.** Bytes are a fact about a package and can be held against anybody else's. A timing is a fact about a page, a machine and a day, so a column of somebody else's milliseconds would be comparing two laptops rather than two libraries.
|
|
154
154
|
|
|
@@ -182,94 +182,94 @@ Structure, accessibility, state and form participation. No presentation, and no
|
|
|
182
182
|
|
|
183
183
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
184
184
|
|---|---|---|---|---|---|---|
|
|
185
|
-
| `accordion` |
|
|
186
|
-
| `announcement` |
|
|
187
|
-
| `app-header` | 27,
|
|
188
|
-
| `avatar` | 28,859 | 9,794 | 8,
|
|
189
|
-
| `badge` | 26,919 | 9,246 | 8,
|
|
190
|
-
| `bar-chart` |
|
|
191
|
-
| `blockquote` | 26,839 | 9,232 | 8,140 | 917 |
|
|
192
|
-
| `breadcrumbs` |
|
|
193
|
-
| `button` | 31,
|
|
194
|
-
| `button-group` | 26,832 | 9,170 | 8,068 | 661 |
|
|
195
|
-
| `callout` |
|
|
196
|
-
| `card` | 26,866 | 9,186 | 8,102 | 694 |
|
|
197
|
-
| `carousel` |
|
|
198
|
-
| `chat` |
|
|
199
|
-
| `checkbox` | 34,
|
|
200
|
-
| `checkbox-group` | 37,
|
|
201
|
-
| `code` | 25,451 | 8,754 | 7,715 | 451 |
|
|
202
|
-
| `code-block` |
|
|
203
|
-
| `color-input` |
|
|
204
|
-
| `color-picker` |
|
|
205
|
-
| `combobox` |
|
|
206
|
-
| `command` |
|
|
207
|
-
| `copy-button` |
|
|
208
|
-
| `data-table` |
|
|
209
|
-
| `date-input` |
|
|
210
|
-
| `date-picker` |
|
|
211
|
-
| `dialog` | 30,
|
|
212
|
-
| `divider` | 27,036 | 9,
|
|
213
|
-
| `donut-chart` |
|
|
214
|
-
| `drawer` | 29,268 | 9,
|
|
215
|
-
| `drilldown` |
|
|
216
|
-
| `empty` | 26,988 | 9,226 | 8,147 | 816 |
|
|
217
|
-
| `file-input` |
|
|
218
|
-
| `format-date` | 30,257 | 10,284 | 9,103 | 2,805 |
|
|
219
|
-
| `heatmap` |
|
|
220
|
-
| `icon` |
|
|
221
|
-
| `icon-button` | 31,
|
|
222
|
-
| `image` | 28,816 | 9,
|
|
223
|
-
| `input` |
|
|
224
|
-
| `kbd` | 28,
|
|
225
|
-
| `legend` | 29,187 | 10,066 | 8,845 | 1,097 |
|
|
226
|
-
| `line-chart` |
|
|
227
|
-
| `list` | 27,887 | 9,
|
|
228
|
-
| `listbox` |
|
|
229
|
-
| `loader` | 27,072 | 9,293 | 8,182 | 900 |
|
|
230
|
-
| `megamenu` | 55,
|
|
231
|
-
| `menu` |
|
|
232
|
-
| `meter` | 29,964 | 10,
|
|
233
|
-
| `navigation` | 28,831 | 9,815 | 8,680 | 1,582 |
|
|
234
|
-
| `notifications` |
|
|
235
|
-
| `number-input` |
|
|
236
|
-
| `option` | 28,849 | 9,
|
|
237
|
-
| `outline` | 31,837 | 10,
|
|
238
|
-
| `pagination` |
|
|
239
|
-
| `pin-input` | 37,
|
|
240
|
-
| `popover` |
|
|
241
|
-
| `progress` | 28,113 | 9,
|
|
242
|
-
| `qr-code` | 38,587 | 13,
|
|
243
|
-
| `quote` | 26,355 | 9,041 | 7,964 | 552 |
|
|
244
|
-
| `radio` | 35,977 | 11,448 | 10,
|
|
245
|
-
| `rating` | 38,033 | 12,
|
|
246
|
-
| `scroll-area` | 28,
|
|
247
|
-
| `select` |
|
|
248
|
-
| `skeleton` | 25,544 | 8,786 | 7,725 | 544 |
|
|
249
|
-
| `slider` | 37,
|
|
250
|
-
| `sparkline` | 31,645 | 11,
|
|
251
|
-
| `speed-dial` |
|
|
252
|
-
| `splitter` | 36,329 | 11,
|
|
253
|
-
| `stat` | 27,320 | 9,222 | 8,136 | 1,150 |
|
|
254
|
-
| `steps` |
|
|
255
|
-
| `switch` | 34,
|
|
256
|
-
| `table` | 31,
|
|
257
|
-
| `tabs` | 33,935 | 11,
|
|
258
|
-
| `tag` |
|
|
259
|
-
| `textarea` |
|
|
260
|
-
| `time-input` |
|
|
261
|
-
| `time-picker` |
|
|
262
|
-
| `timeline` |
|
|
263
|
-
| `toast` |
|
|
264
|
-
| `toggle` | 38,209 | 12,
|
|
265
|
-
| `toolbar` | 28,734 | 9,827 | 8,655 | 2,932 | 1,
|
|
266
|
-
| `tooltip` |
|
|
267
|
-
| `tour` | 61,
|
|
268
|
-
| `tree` |
|
|
269
|
-
| `trend` |
|
|
270
|
-
| `video` |
|
|
271
|
-
| `video-playlist` |
|
|
272
|
-
| `virtual-list` | 29,714 | 10,244 | 9,021 | 2,089 |
|
|
185
|
+
| `accordion` | 77,373 | 25,790 | 21,229 | 3,227 | 1,191 | 689 |
|
|
186
|
+
| `announcement` | 75,404 | 25,148 | 20,701 | 1,374 | 658 | 330 |
|
|
187
|
+
| `app-header` | 27,425 | 9,322 | 8,205 | 1,248 | 581 | 264 |
|
|
188
|
+
| `avatar` | 28,859 | 9,794 | 8,642 | 2,644 | 1,039 | 606 |
|
|
189
|
+
| `badge` | 26,919 | 9,246 | 8,163 | 1,120 | 547 | 298 |
|
|
190
|
+
| `bar-chart` | 71,762 | 24,550 | 21,745 | 12,487 | 4,215 | 3,012 |
|
|
191
|
+
| `blockquote` | 26,839 | 9,232 | 8,140 | 917 | 486 | 238 |
|
|
192
|
+
| `breadcrumbs` | 75,025 | 24,814 | 20,607 | 1,955 | 703 | 408 |
|
|
193
|
+
| `button` | 31,312 | 10,445 | 9,216 | 3,167 | 1,103 | 679 |
|
|
194
|
+
| `button-group` | 26,832 | 9,170 | 8,068 | 661 | 386 | 96 |
|
|
195
|
+
| `callout` | 74,155 | 24,675 | 20,454 | 912 | 499 | 245 |
|
|
196
|
+
| `card` | 26,866 | 9,186 | 8,102 | 694 | 393 | 100 |
|
|
197
|
+
| `carousel` | 80,904 | 26,737 | 22,141 | 7,686 | 2,419 | 1,636 |
|
|
198
|
+
| `chat` | 84,863 | 27,980 | 23,052 | 9,449 | 2,818 | 1,981 |
|
|
199
|
+
| `checkbox` | 34,646 | 11,172 | 9,831 | 2,252 | 977 | 459 |
|
|
200
|
+
| `checkbox-group` | 37,546 | 11,793 | 10,407 | 4,655 | 1,615 | 961 |
|
|
201
|
+
| `code` | 25,451 | 8,754 | 7,715 | 451 | 280 | 126 |
|
|
202
|
+
| `code-block` | 113,692 | 37,922 | 32,016 | 12,788 | 3,653 | 2,656 |
|
|
203
|
+
| `color-input` | 131,269 | 42,548 | 35,825 | 26,066 | 7,146 | 5,816 |
|
|
204
|
+
| `color-picker` | 100,398 | 32,385 | 26,772 | 19,492 | 5,706 | 4,527 |
|
|
205
|
+
| `combobox` | 127,329 | 41,037 | 34,567 | 20,327 | 5,495 | 4,250 |
|
|
206
|
+
| `command` | 100,670 | 32,023 | 26,366 | 17,317 | 4,912 | 3,765 |
|
|
207
|
+
| `copy-button` | 112,372 | 37,654 | 31,723 | 11,469 | 3,400 | 2,482 |
|
|
208
|
+
| `data-table` | 143,864 | 45,643 | 38,407 | 37,364 | 9,893 | 7,960 |
|
|
209
|
+
| `date-input` | 124,144 | 40,441 | 34,068 | 19,388 | 5,371 | 4,207 |
|
|
210
|
+
| `date-picker` | 85,626 | 28,231 | 23,302 | 9,805 | 3,138 | 2,316 |
|
|
211
|
+
| `dialog` | 30,484 | 10,235 | 9,019 | 2,717 | 1,112 | 734 |
|
|
212
|
+
| `divider` | 27,036 | 9,307 | 8,174 | 1,115 | 567 | 227 |
|
|
213
|
+
| `donut-chart` | 67,672 | 23,131 | 20,446 | 9,747 | 3,379 | 2,367 |
|
|
214
|
+
| `drawer` | 29,268 | 9,874 | 8,685 | 1,792 | 774 | 440 |
|
|
215
|
+
| `drilldown` | 80,657 | 26,804 | 22,019 | 5,059 | 1,740 | 1,144 |
|
|
216
|
+
| `empty` | 26,988 | 9,226 | 8,147 | 816 | 448 | 183 |
|
|
217
|
+
| `file-input` | 85,388 | 28,229 | 23,148 | 6,217 | 2,172 | 1,468 |
|
|
218
|
+
| `format-date` | 30,257 | 10,284 | 9,103 | 2,805 | 940 | 531 |
|
|
219
|
+
| `heatmap` | 69,136 | 23,403 | 20,696 | 11,040 | 3,623 | 2,602 |
|
|
220
|
+
| `icon` | 73,561 | 24,431 | 20,290 | 850 | 450 | 184 |
|
|
221
|
+
| `icon-button` | 31,711 | 10,475 | 9,230 | 3,566 | 1,129 | 709 |
|
|
222
|
+
| `image` | 28,816 | 9,691 | 8,518 | 2,969 | 1,030 | 655 |
|
|
223
|
+
| `input` | 84,757 | 27,868 | 22,877 | 4,797 | 1,672 | 1,142 |
|
|
224
|
+
| `kbd` | 28,706 | 9,926 | 8,748 | 2,897 | 1,293 | 870 |
|
|
225
|
+
| `legend` | 29,187 | 10,066 | 8,845 | 1,097 | 577 | 235 |
|
|
226
|
+
| `line-chart` | 69,788 | 23,947 | 21,209 | 10,514 | 3,619 | 2,633 |
|
|
227
|
+
| `list` | 27,887 | 9,360 | 8,245 | 1,727 | 579 | 292 |
|
|
228
|
+
| `listbox` | 92,543 | 30,186 | 24,704 | 10,677 | 3,391 | 2,393 |
|
|
229
|
+
| `loader` | 27,072 | 9,293 | 8,182 | 900 | 475 | 143 |
|
|
230
|
+
| `megamenu` | 55,893 | 19,552 | 17,265 | 4,934 | 1,728 | 1,178 |
|
|
231
|
+
| `menu` | 110,293 | 37,007 | 31,290 | 8,105 | 2,374 | 1,645 |
|
|
232
|
+
| `meter` | 29,964 | 10,079 | 8,879 | 3,800 | 1,234 | 880 |
|
|
233
|
+
| `navigation` | 28,831 | 9,815 | 8,680 | 1,582 | 685 | 347 |
|
|
234
|
+
| `notifications` | 84,856 | 28,045 | 23,078 | 8,640 | 2,567 | 1,892 |
|
|
235
|
+
| `number-input` | 86,974 | 28,468 | 23,363 | 7,100 | 2,293 | 1,618 |
|
|
236
|
+
| `option` | 28,849 | 9,639 | 8,506 | 2,680 | 872 | 552 |
|
|
237
|
+
| `outline` | 31,837 | 10,811 | 9,517 | 4,539 | 1,759 | 1,115 |
|
|
238
|
+
| `pagination` | 132,398 | 42,069 | 35,542 | 26,097 | 6,582 | 5,162 |
|
|
239
|
+
| `pin-input` | 37,535 | 12,009 | 10,627 | 5,135 | 1,841 | 1,219 |
|
|
240
|
+
| `popover` | 53,190 | 18,820 | 16,606 | 1,985 | 825 | 427 |
|
|
241
|
+
| `progress` | 28,113 | 9,566 | 8,450 | 1,949 | 759 | 507 |
|
|
242
|
+
| `qr-code` | 38,587 | 13,554 | 11,997 | 12,807 | 4,944 | 4,132 |
|
|
243
|
+
| `quote` | 26,355 | 9,041 | 7,964 | 552 | 371 | 135 |
|
|
244
|
+
| `radio` | 35,977 | 11,448 | 10,088 | 3,138 | 1,130 | 692 |
|
|
245
|
+
| `rating` | 38,033 | 12,238 | 10,784 | 5,617 | 2,008 | 1,288 |
|
|
246
|
+
| `scroll-area` | 28,465 | 9,748 | 8,556 | 2,612 | 1,073 | 632 |
|
|
247
|
+
| `select` | 121,561 | 39,765 | 33,471 | 15,389 | 4,421 | 3,267 |
|
|
248
|
+
| `skeleton` | 25,544 | 8,786 | 7,725 | 544 | 330 | 72 |
|
|
249
|
+
| `slider` | 37,896 | 12,065 | 10,659 | 5,250 | 1,807 | 1,286 |
|
|
250
|
+
| `sparkline` | 31,645 | 11,088 | 9,794 | 2,530 | 1,054 | 773 |
|
|
251
|
+
| `speed-dial` | 102,854 | 35,015 | 29,681 | 3,821 | 1,260 | 786 |
|
|
252
|
+
| `splitter` | 36,329 | 11,667 | 10,338 | 10,165 | 2,907 | 2,207 |
|
|
253
|
+
| `stat` | 27,320 | 9,222 | 8,136 | 1,150 | 437 | 205 |
|
|
254
|
+
| `steps` | 82,900 | 27,205 | 22,347 | 6,303 | 1,836 | 1,248 |
|
|
255
|
+
| `switch` | 34,314 | 11,106 | 9,826 | 1,798 | 839 | 376 |
|
|
256
|
+
| `table` | 31,861 | 10,274 | 9,086 | 4,373 | 1,285 | 854 |
|
|
257
|
+
| `tabs` | 33,935 | 11,035 | 9,722 | 4,469 | 1,273 | 781 |
|
|
258
|
+
| `tag` | 74,439 | 24,760 | 20,435 | 897 | 472 | 253 |
|
|
259
|
+
| `textarea` | 37,001 | 11,743 | 10,362 | 4,115 | 1,412 | 892 |
|
|
260
|
+
| `time-input` | 136,201 | 43,547 | 36,687 | 28,643 | 7,660 | 6,042 |
|
|
261
|
+
| `time-picker` | 100,564 | 32,606 | 26,818 | 18,154 | 5,497 | 4,221 |
|
|
262
|
+
| `timeline` | 74,971 | 24,767 | 20,563 | 1,896 | 666 | 359 |
|
|
263
|
+
| `toast` | 78,169 | 25,872 | 21,292 | 4,007 | 1,246 | 750 |
|
|
264
|
+
| `toggle` | 38,209 | 12,101 | 10,670 | 3,928 | 1,315 | 828 |
|
|
265
|
+
| `toolbar` | 28,734 | 9,827 | 8,655 | 2,932 | 1,238 | 676 |
|
|
266
|
+
| `tooltip` | 56,933 | 19,770 | 17,504 | 6,216 | 2,147 | 1,428 |
|
|
267
|
+
| `tour` | 61,953 | 20,875 | 18,482 | 10,277 | 2,940 | 2,122 |
|
|
268
|
+
| `tree` | 84,423 | 27,823 | 22,815 | 7,054 | 2,342 | 1,593 |
|
|
269
|
+
| `trend` | 73,764 | 24,534 | 20,358 | 1,056 | 535 | 320 |
|
|
270
|
+
| `video` | 133,542 | 42,701 | 36,225 | 31,103 | 7,713 | 6,441 |
|
|
271
|
+
| `video-playlist` | 117,742 | 38,672 | 32,725 | 14,151 | 3,686 | 2,752 |
|
|
272
|
+
| `virtual-list` | 29,714 | 10,244 | 9,021 | 2,089 | 937 | 604 |
|
|
273
273
|
|
|
274
274
|
### Styled tier
|
|
275
275
|
|
|
@@ -277,99 +277,99 @@ The headless tier plus presentation. This is what `bun add @fusion.dev/helix` gi
|
|
|
277
277
|
|
|
278
278
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
279
279
|
|---|---|---|---|---|---|---|
|
|
280
|
-
| `accordion` |
|
|
281
|
-
| `announcement` |
|
|
282
|
-
| `app-header` | 30,
|
|
283
|
-
| `aura` |
|
|
284
|
-
| `avatar` | 32,433 | 10,538 | 9,
|
|
285
|
-
| `badge` | 29,
|
|
286
|
-
| `bar-chart` |
|
|
287
|
-
| `blockquote` | 28,015 | 9,529 | 8,383 | 2,077 |
|
|
288
|
-
| `breadcrumbs` |
|
|
289
|
-
| `button` | 37,
|
|
290
|
-
| `button-group` | 28,508 | 9,543 | 8,424 | 2,320 |
|
|
291
|
-
| `callout` |
|
|
292
|
-
| `card` | 30,
|
|
293
|
-
| `carousel` |
|
|
294
|
-
| `chat` |
|
|
295
|
-
| `checkbox` | 40,
|
|
296
|
-
| `checkbox-group` | 39,
|
|
297
|
-
| `code` | 26,
|
|
298
|
-
| `code-block` |
|
|
299
|
-
| `color-input` |
|
|
300
|
-
| `color-picker` |
|
|
301
|
-
| `combobox` |
|
|
302
|
-
| `command` |
|
|
303
|
-
| `copy-button` |
|
|
304
|
-
| `data-table` |
|
|
305
|
-
| `date-input` |
|
|
306
|
-
| `date-picker` |
|
|
307
|
-
| `dialog` | 34,
|
|
308
|
-
| `divider` | 29,181 | 9,
|
|
309
|
-
| `donut-chart` |
|
|
310
|
-
| `drawer` | 33,
|
|
311
|
-
| `drilldown` |
|
|
312
|
-
| `empty` | 28,295 | 9,601 | 8,463 | 2,107 |
|
|
313
|
-
| `file-input` |
|
|
314
|
-
| `flex` | 27,799 | 9,
|
|
315
|
-
| `format-date` | 30,905 | 10,420 | 9,233 | 3,435 | 1,
|
|
316
|
-
| `grid` | 28,326 | 9,
|
|
317
|
-
| `heatmap` |
|
|
318
|
-
| `icon` |
|
|
319
|
-
| `icon-button` | 37,
|
|
320
|
-
| `image` | 30,
|
|
321
|
-
| `input` |
|
|
322
|
-
| `kbd` |
|
|
323
|
-
| `legend` | 34,022 | 11,
|
|
324
|
-
| `line-chart` |
|
|
325
|
-
| `list` | 31,940 | 10,
|
|
326
|
-
| `listbox` |
|
|
327
|
-
| `loader` | 30,078 | 10,033 | 8,
|
|
328
|
-
| `megamenu` |
|
|
329
|
-
| `menu` |
|
|
330
|
-
| `meter` | 35,
|
|
331
|
-
| `navigation` | 30,
|
|
332
|
-
| `notifications` |
|
|
333
|
-
| `number-input` |
|
|
334
|
-
| `option` | 32,116 | 10,
|
|
335
|
-
| `outline` | 35,
|
|
336
|
-
| `pagination` |
|
|
337
|
-
| `pin-input` | 40,
|
|
338
|
-
| `popover` | 55,
|
|
339
|
-
| `progress` | 33,
|
|
340
|
-
| `qr-code` | 40,238 | 13,
|
|
341
|
-
| `quote` | 27,030 | 9,207 | 8,088 | 1,211 |
|
|
342
|
-
| `radio` | 43,
|
|
343
|
-
| `rating` | 41,008 | 13,
|
|
344
|
-
| `sandbox` |
|
|
345
|
-
| `scroll-area` | 31,
|
|
346
|
-
| `select` |
|
|
347
|
-
| `skeleton` | 28,062 | 9,544 | 8,416 | 2,242 |
|
|
348
|
-
| `slider` | 47,
|
|
349
|
-
| `sparkline` | 35,412 | 12,
|
|
350
|
-
| `speed-dial` |
|
|
351
|
-
| `splitter` | 42,
|
|
352
|
-
| `stat` | 29,954 | 9,789 | 8,646 | 3,774 | 1,
|
|
353
|
-
| `steps` |
|
|
354
|
-
| `switch` | 38,
|
|
355
|
-
| `table` |
|
|
356
|
-
| `tabs` | 40,
|
|
357
|
-
| `tag` |
|
|
358
|
-
| `text` | 29,734 | 9,670 | 8,508 | 3,922 |
|
|
359
|
-
| `textarea` | 40,
|
|
360
|
-
| `time-input` |
|
|
361
|
-
| `time-picker` |
|
|
362
|
-
| `timeline` |
|
|
363
|
-
| `toast` |
|
|
364
|
-
| `toggle` | 43,
|
|
365
|
-
| `toolbar` | 29,632 | 10,054 | 8,841 | 3,813 | 1,
|
|
366
|
-
| `tooltip` |
|
|
367
|
-
| `tour` | 71,
|
|
368
|
-
| `tree` |
|
|
369
|
-
| `trend` |
|
|
370
|
-
| `video` |
|
|
371
|
-
| `video-playlist` |
|
|
372
|
-
| `virtual-list` | 30,546 | 10,470 | 9,192 | 2,904 | 1,
|
|
280
|
+
| `accordion` | 80,416 | 26,550 | 21,816 | 6,258 | 1,975 | 1,399 |
|
|
281
|
+
| `announcement` | 79,088 | 26,034 | 21,464 | 5,042 | 1,489 | 1,099 |
|
|
282
|
+
| `app-header` | 30,683 | 10,087 | 8,885 | 4,489 | 1,317 | 888 |
|
|
283
|
+
| `aura` | 87,842 | 30,863 | 26,680 | 60,879 | 21,466 | 18,593 |
|
|
284
|
+
| `avatar` | 32,433 | 10,538 | 9,281 | 6,205 | 1,781 | 1,278 |
|
|
285
|
+
| `badge` | 29,366 | 9,907 | 8,704 | 3,550 | 1,144 | 814 |
|
|
286
|
+
| `bar-chart` | 87,353 | 27,299 | 24,047 | 28,058 | 7,012 | 5,413 |
|
|
287
|
+
| `blockquote` | 28,015 | 9,529 | 8,383 | 2,077 | 767 | 433 |
|
|
288
|
+
| `breadcrumbs` | 78,416 | 25,590 | 21,198 | 5,334 | 1,454 | 1,153 |
|
|
289
|
+
| `button` | 37,399 | 11,545 | 10,187 | 9,236 | 2,232 | 1,639 |
|
|
290
|
+
| `button-group` | 28,508 | 9,543 | 8,424 | 2,320 | 754 | 446 |
|
|
291
|
+
| `callout` | 76,173 | 25,235 | 20,977 | 2,914 | 1,011 | 742 |
|
|
292
|
+
| `card` | 30,101 | 10,012 | 8,842 | 3,917 | 1,172 | 843 |
|
|
293
|
+
| `carousel` | 89,716 | 28,257 | 23,609 | 16,487 | 3,950 | 3,041 |
|
|
294
|
+
| `chat` | 96,458 | 30,119 | 24,932 | 21,033 | 4,920 | 3,833 |
|
|
295
|
+
| `checkbox` | 40,821 | 12,584 | 11,091 | 8,411 | 2,390 | 1,743 |
|
|
296
|
+
| `checkbox-group` | 39,793 | 12,366 | 10,895 | 6,888 | 2,197 | 1,425 |
|
|
297
|
+
| `code` | 26,546 | 9,065 | 7,981 | 1,529 | 585 | 353 |
|
|
298
|
+
| `code-block` | 126,793 | 40,099 | 33,817 | 25,870 | 5,745 | 4,508 |
|
|
299
|
+
| `color-input` | 162,845 | 47,380 | 40,111 | 57,622 | 11,935 | 10,051 |
|
|
300
|
+
| `color-picker` | 126,684 | 36,608 | 30,439 | 45,772 | 9,885 | 8,284 |
|
|
301
|
+
| `combobox` | 140,948 | 43,524 | 36,682 | 33,925 | 7,923 | 6,293 |
|
|
302
|
+
| `command` | 110,979 | 34,028 | 28,065 | 27,611 | 6,895 | 5,493 |
|
|
303
|
+
| `copy-button` | 122,915 | 39,507 | 33,361 | 21,994 | 5,157 | 3,968 |
|
|
304
|
+
| `data-table` | 171,800 | 49,868 | 42,094 | 65,280 | 14,167 | 11,566 |
|
|
305
|
+
| `date-input` | 138,993 | 43,266 | 36,617 | 34,215 | 8,160 | 6,694 |
|
|
306
|
+
| `date-picker` | 91,241 | 29,416 | 24,327 | 15,402 | 4,304 | 3,406 |
|
|
307
|
+
| `dialog` | 34,819 | 11,243 | 9,909 | 7,037 | 2,150 | 1,594 |
|
|
308
|
+
| `divider` | 29,181 | 9,820 | 8,610 | 3,243 | 1,049 | 722 |
|
|
309
|
+
| `donut-chart` | 79,399 | 25,131 | 22,173 | 21,457 | 5,448 | 4,033 |
|
|
310
|
+
| `drawer` | 33,085 | 10,746 | 9,460 | 5,591 | 1,651 | 1,258 |
|
|
311
|
+
| `drilldown` | 85,015 | 27,777 | 22,820 | 9,404 | 2,708 | 2,034 |
|
|
312
|
+
| `empty` | 28,295 | 9,601 | 8,463 | 2,107 | 798 | 588 |
|
|
313
|
+
| `file-input` | 96,132 | 30,394 | 25,004 | 16,954 | 4,318 | 3,346 |
|
|
314
|
+
| `flex` | 27,799 | 9,392 | 8,240 | 1,986 | 673 | 463 |
|
|
315
|
+
| `format-date` | 30,905 | 10,420 | 9,233 | 3,435 | 1,102 | 726 |
|
|
316
|
+
| `grid` | 28,326 | 9,564 | 8,449 | 2,511 | 843 | 595 |
|
|
317
|
+
| `heatmap` | 72,928 | 24,255 | 21,435 | 14,814 | 4,498 | 3,331 |
|
|
318
|
+
| `icon` | 74,256 | 24,607 | 20,394 | 1,528 | 613 | 284 |
|
|
319
|
+
| `icon-button` | 37,727 | 11,481 | 10,120 | 9,568 | 2,163 | 1,587 |
|
|
320
|
+
| `image` | 30,564 | 10,174 | 8,943 | 4,699 | 1,516 | 1,088 |
|
|
321
|
+
| `input` | 90,860 | 29,217 | 23,927 | 10,895 | 2,997 | 2,248 |
|
|
322
|
+
| `kbd` | 30,118 | 10,382 | 9,139 | 4,294 | 1,762 | 1,231 |
|
|
323
|
+
| `legend` | 34,022 | 11,148 | 9,812 | 5,924 | 1,710 | 1,182 |
|
|
324
|
+
| `line-chart` | 82,192 | 26,074 | 23,014 | 22,899 | 5,824 | 4,292 |
|
|
325
|
+
| `list` | 31,940 | 10,292 | 9,050 | 5,770 | 1,512 | 1,226 |
|
|
326
|
+
| `listbox` | 96,658 | 31,152 | 25,519 | 14,779 | 4,354 | 3,220 |
|
|
327
|
+
| `loader` | 30,078 | 10,033 | 8,830 | 3,891 | 1,161 | 878 |
|
|
328
|
+
| `megamenu` | 60,316 | 20,594 | 18,232 | 9,342 | 2,771 | 2,053 |
|
|
329
|
+
| `menu` | 116,491 | 38,410 | 32,480 | 14,285 | 3,708 | 2,802 |
|
|
330
|
+
| `meter` | 35,367 | 11,232 | 9,921 | 9,185 | 2,414 | 1,935 |
|
|
331
|
+
| `navigation` | 30,214 | 10,212 | 8,987 | 2,949 | 1,064 | 655 |
|
|
332
|
+
| `notifications` | 92,415 | 29,580 | 24,433 | 16,186 | 4,091 | 3,171 |
|
|
333
|
+
| `number-input` | 91,816 | 29,585 | 24,291 | 11,928 | 3,385 | 2,491 |
|
|
334
|
+
| `option` | 32,116 | 10,548 | 9,315 | 5,935 | 1,760 | 1,226 |
|
|
335
|
+
| `outline` | 35,566 | 11,583 | 10,246 | 8,251 | 2,550 | 1,778 |
|
|
336
|
+
| `pagination` | 149,985 | 45,089 | 38,045 | 43,666 | 9,526 | 7,717 |
|
|
337
|
+
| `pin-input` | 40,676 | 12,803 | 11,279 | 8,259 | 2,654 | 2,002 |
|
|
338
|
+
| `popover` | 55,826 | 19,462 | 17,235 | 4,603 | 1,489 | 1,046 |
|
|
339
|
+
| `progress` | 33,160 | 10,749 | 9,508 | 6,978 | 1,946 | 1,517 |
|
|
340
|
+
| `qr-code` | 40,238 | 13,974 | 12,313 | 14,441 | 5,376 | 4,396 |
|
|
341
|
+
| `quote` | 27,030 | 9,207 | 8,088 | 1,211 | 543 | 230 |
|
|
342
|
+
| `radio` | 43,516 | 12,844 | 11,308 | 10,669 | 2,572 | 1,892 |
|
|
343
|
+
| `rating` | 41,008 | 13,169 | 11,612 | 8,574 | 2,932 | 2,109 |
|
|
344
|
+
| `sandbox` | 60,999 | 16,779 | 14,889 | 34,537 | 8,005 | 6,566 |
|
|
345
|
+
| `scroll-area` | 31,431 | 10,376 | 9,102 | 5,561 | 1,744 | 1,128 |
|
|
346
|
+
| `select` | 133,744 | 42,058 | 35,488 | 27,551 | 6,632 | 5,215 |
|
|
347
|
+
| `skeleton` | 28,062 | 9,544 | 8,416 | 2,242 | 832 | 568 |
|
|
348
|
+
| `slider` | 47,778 | 13,857 | 12,277 | 15,115 | 3,569 | 2,799 |
|
|
349
|
+
| `sparkline` | 35,412 | 12,015 | 10,603 | 6,285 | 2,003 | 1,558 |
|
|
350
|
+
| `speed-dial` | 110,306 | 36,504 | 30,886 | 11,251 | 2,716 | 1,971 |
|
|
351
|
+
| `splitter` | 42,441 | 12,678 | 11,269 | 16,259 | 3,939 | 3,134 |
|
|
352
|
+
| `stat` | 29,954 | 9,789 | 8,646 | 3,774 | 1,011 | 725 |
|
|
353
|
+
| `steps` | 96,252 | 29,575 | 24,410 | 19,643 | 4,204 | 3,348 |
|
|
354
|
+
| `switch` | 38,603 | 12,160 | 10,668 | 6,072 | 1,895 | 1,306 |
|
|
355
|
+
| `table` | 35,190 | 10,865 | 9,580 | 7,692 | 1,917 | 1,426 |
|
|
356
|
+
| `tabs` | 40,196 | 12,332 | 10,861 | 10,719 | 2,594 | 1,939 |
|
|
357
|
+
| `tag` | 77,633 | 25,634 | 21,148 | 4,076 | 1,244 | 880 |
|
|
358
|
+
| `text` | 29,734 | 9,670 | 8,508 | 3,922 | 967 | 650 |
|
|
359
|
+
| `textarea` | 40,350 | 12,544 | 11,034 | 7,447 | 2,228 | 1,644 |
|
|
360
|
+
| `time-input` | 156,103 | 46,933 | 39,629 | 48,526 | 11,002 | 8,949 |
|
|
361
|
+
| `time-picker` | 111,867 | 34,716 | 28,718 | 29,452 | 7,605 | 6,027 |
|
|
362
|
+
| `timeline` | 78,237 | 25,530 | 21,180 | 5,151 | 1,366 | 981 |
|
|
363
|
+
| `toast` | 85,449 | 27,484 | 22,691 | 11,274 | 2,870 | 2,137 |
|
|
364
|
+
| `toggle` | 43,243 | 13,254 | 11,675 | 8,954 | 2,503 | 1,844 |
|
|
365
|
+
| `toolbar` | 29,632 | 10,054 | 8,841 | 3,813 | 1,475 | 913 |
|
|
366
|
+
| `tooltip` | 60,498 | 20,576 | 18,184 | 9,763 | 2,945 | 2,103 |
|
|
367
|
+
| `tour` | 71,822 | 22,543 | 19,985 | 20,127 | 4,599 | 3,480 |
|
|
368
|
+
| `tree` | 89,446 | 29,019 | 23,862 | 12,065 | 3,544 | 2,650 |
|
|
369
|
+
| `trend` | 76,798 | 25,221 | 20,884 | 4,083 | 1,172 | 831 |
|
|
370
|
+
| `video` | 150,914 | 45,855 | 38,950 | 48,454 | 10,824 | 9,072 |
|
|
371
|
+
| `video-playlist` | 130,351 | 40,960 | 34,695 | 26,741 | 5,898 | 4,740 |
|
|
372
|
+
| `virtual-list` | 30,546 | 10,470 | 9,192 | 2,904 | 1,153 | 858 |
|
|
373
373
|
|
|
374
374
|
## What lands in `node_modules`
|
|
375
375
|
|
|
@@ -381,12 +381,12 @@ column is what was removed rather than part of what remains.
|
|
|
381
381
|
|
|
382
382
|
| Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
|
|
383
383
|
|---|---|---|---|---|
|
|
384
|
-
| `@fusion.dev/helix-core` |
|
|
385
|
-
| `@fusion.dev/helix-headless` |
|
|
386
|
-
| `@fusion.dev/helix-icons` |
|
|
387
|
-
| `@fusion.dev/helix-styles` | 83,
|
|
388
|
-
| `@fusion.dev/helix-theme` |
|
|
389
|
-
| `@fusion.dev/helix` |
|
|
384
|
+
| `@fusion.dev/helix-core` | 875,831 | 113 | 161,883 | `@floating-ui/dom`, `@fusion.dev/helix-icons` |
|
|
385
|
+
| `@fusion.dev/helix-headless` | 9,741,797 | 422 | 738,193 | `@fusion.dev/helix-core`, `@fusion.dev/helix-icons`, `uqr` |
|
|
386
|
+
| `@fusion.dev/helix-icons` | 66,379 | 11 | 20,959 | none |
|
|
387
|
+
| `@fusion.dev/helix-styles` | 83,277 | 5 | 0 | none |
|
|
388
|
+
| `@fusion.dev/helix-theme` | 463,476 | 8 | 4,764 | none |
|
|
389
|
+
| `@fusion.dev/helix` | 9,714,436 | 718 | 287,181 | `@fusion.dev/helix-core`, `@fusion.dev/helix-headless`, `@fusion.dev/helix-styles` |
|
|
390
390
|
|
|
391
391
|
## Not measured yet
|
|
392
392
|
|
|
@@ -394,6 +394,6 @@ Named rather than left out, because a metrics page is read for what it does
|
|
|
394
394
|
not say as much as for what it does.
|
|
395
395
|
|
|
396
396
|
- **No whole-library comparison, and no fifth component.** The comparison above is five components against four systems. Widening it means naming the equivalent element in each system by hand, which is where a comparison table starts arguing, so each addition is a deliberate one rather than a sweep.
|
|
397
|
-
- **The peer numbers are pinned, so they age.** They are dated in the section above and refreshed by running `
|
|
398
|
-
- **No
|
|
397
|
+
- **The peer numbers are pinned, so they age.** They are dated in the section above and refreshed by running `turbo run peers`. Nothing fails when they are old, because nothing in this repository changes when somebody else releases, and a check that fired on the calendar would be noise.
|
|
398
|
+
- **No first paint.** The timings above are facts about a component: time to upgrade, first render, hydration. First paint is a fact about a whole page, so it belongs to whatever renders one rather than to the library it renders.
|
|
399
399
|
- **No per-component stylesheet bytes.** There are none to report: a family's CSS is compiled into its JavaScript, so it is already inside every number above. `elements.css` is the light-DOM layer and is in the stylesheet table.
|
|
@@ -32,17 +32,18 @@ should end up passing that string through.
|
|
|
32
32
|
element.addEventListener('helix-before-change', (event) => console.log(event.detail))
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
**A declared `value`, `open`, `checked` or `active` is a
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
**A declared `value`, `open`, `checked` or `active` is a seed.** The element
|
|
36
|
+
starts there and goes on managing itself, exactly as `<input value="Ada">` does.
|
|
37
|
+
To take one decision, listen for the matching `helix-before-*` event and call
|
|
38
|
+
`preventDefault()`; to own the state outright, refuse and assign your own.
|
|
39
|
+
`default-value`, `default-open` and their siblings are what a reset returns to.
|
|
39
40
|
[State and control](./state-and-control) is the page about it.
|
|
40
41
|
|
|
41
42
|
## What each one needs
|
|
42
43
|
|
|
43
44
|
| Framework | Notes |
|
|
44
45
|
|---|---|
|
|
45
|
-
| Solid | Sets properties on custom elements by default. Use `prop:` to force one and `attr:` to force the other. `on:helix-change` binds the literal name |
|
|
46
|
+
| Solid | Sets properties on custom elements by default. Use `prop:` to force one and `attr:` to force the other. `on:helix-before-change` binds the literal name |
|
|
46
47
|
| Qwik | Works as JSX. Bind with `document:on…` or a ref, since a plain `on*` prop is normalized |
|
|
47
48
|
| Lit | `.prop=`, `?bool=` and `@helix-before-change=` are already the right three channels |
|
|
48
49
|
| Ember | Angle-bracket invocation passes attributes only, so set properties from a modifier |
|