@fusion.dev/helix-docs 0.143.0 → 0.145.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/content/accessibility.mdx +7 -0
- package/content/building-on-the-headless-tier.mdx +4 -1
- package/content/localization.mdx +12 -0
- package/content/metrics.mdx +224 -224
- package/content/overlays.mdx +31 -2
- package/content/recipes.mdx +24 -0
- package/content/sandbox.mdx +29 -13
- package/dist/sources.generated.js +331 -240
- package/package.json +9 -9
|
@@ -67,6 +67,13 @@ words are yours to choose. An icon-only control has no other text to name it:
|
|
|
67
67
|
></helix-icon-button>
|
|
68
68
|
\`\`\`
|
|
69
69
|
|
|
70
|
+
A button or a form control that renders with no name warns once in the console:
|
|
71
|
+
\`<helix-icon-button> has no accessible name\`, followed by the ways to give it
|
|
72
|
+
one. The check runs a moment after the control first renders, so a label your
|
|
73
|
+
framework writes beside the control in the same pass counts. The warning has the
|
|
74
|
+
kind \`missing-name\`, so \`@fusion.dev/helix-diagnostics\` counts it with the
|
|
75
|
+
other runtime events.
|
|
76
|
+
|
|
70
77
|
### \`label\` and \`aria-label\`
|
|
71
78
|
|
|
72
79
|
\`label\` renders visible text and names the control through that text.
|
|
@@ -363,12 +370,14 @@ open.
|
|
|
363
370
|
|
|
364
371
|
[//]: # (renders)
|
|
365
372
|
|
|
366
|
-
**
|
|
373
|
+
**31 of the 98 headless families interpolate another family's tag**, across 22 distinct children.
|
|
367
374
|
|
|
368
375
|
| Family | Renders |
|
|
369
376
|
|---|---|
|
|
370
377
|
| \`area-chart\`, \`bar-chart\`, \`copy-button\`, \`donut-chart\`, \`heatmap\`, \`line-chart\`, \`scatter-chart\` | \`tooltip\` |
|
|
378
|
+
| \`breadcrumbs\` | \`breadcrumb\` |
|
|
371
379
|
| \`chat\` | \`chat-message\` |
|
|
380
|
+
| \`checkbox-group\`, \`table\` | \`checkbox\` |
|
|
372
381
|
| \`code-block\`, \`object-inspector\` | \`copy-button\` |
|
|
373
382
|
| \`color-input\` | \`color-picker\` |
|
|
374
383
|
| \`color-picker\` | \`button\`, \`button-group\`, \`slider\` |
|
|
@@ -378,6 +387,7 @@ open.
|
|
|
378
387
|
| \`date-input\` | \`date-picker\`, \`tag\` |
|
|
379
388
|
| \`file-input\` | \`tag\` |
|
|
380
389
|
| \`filter-input\` | \`divider\`, \`menu\`, \`menu-item\` |
|
|
390
|
+
| \`menu\` | \`kbd\` |
|
|
381
391
|
| \`notifications\` | \`format-date\` |
|
|
382
392
|
| \`pagination\` | \`option\`, \`select\` |
|
|
383
393
|
| \`select\` | \`listbox\` |
|
|
@@ -2842,6 +2852,18 @@ language. Every other control shows its English sentence.
|
|
|
2842
2852
|
></helix-number-input>
|
|
2843
2853
|
\`\`\`
|
|
2844
2854
|
|
|
2855
|
+
Color Picker and Color Input say a color's name to a screen reader, such as
|
|
2856
|
+
"vibrant red". Set \`color-words\` to a JSON table of the words a name is made
|
|
2857
|
+
of. The keys are the English words, and they match the strings that React
|
|
2858
|
+
Aria's \`@react-stately/color\` translates, so you can reuse that table.
|
|
2859
|
+
|
|
2860
|
+
\`\`\`html
|
|
2861
|
+
<helix-color-picker
|
|
2862
|
+
color-words='{"red": "rot", "vibrant": "kräftiges", "colorName": "{lightness} {chroma} {hue}"}'
|
|
2863
|
+
lang="de"
|
|
2864
|
+
></helix-color-picker>
|
|
2865
|
+
\`\`\`
|
|
2866
|
+
|
|
2845
2867
|
**Pass these strings from your own translation system.** Helix ships English
|
|
2846
2868
|
defaults and no translation tools. If Helix had its own string catalog, you
|
|
2847
2869
|
would have to keep two catalogs in step.
|
|
@@ -3566,7 +3588,7 @@ on its own.
|
|
|
3566
3588
|
|
|
3567
3589
|
| | Raw | Gzip | Brotli |
|
|
3568
3590
|
|---|---|---|---|
|
|
3569
|
-
| Lit and \`@fusion.dev/helix-core\` |
|
|
3591
|
+
| Lit and \`@fusion.dev/helix-core\` | 187,432 | 58,155 | 50,073 |
|
|
3570
3592
|
|
|
3571
3593
|
## Whole packages
|
|
3572
3594
|
|
|
@@ -3577,12 +3599,12 @@ either barrel. The per-component tables show what your page pays.
|
|
|
3577
3599
|
|
|
3578
3600
|
| Package | Raw | Gzip | Brotli | |
|
|
3579
3601
|
|---|---|---|---|---|
|
|
3580
|
-
| \`@fusion.dev/helix-core\` |
|
|
3581
|
-
| \`@fusion.dev/helix-headless\` |
|
|
3602
|
+
| \`@fusion.dev/helix-core\` | 186,986 | 57,779 | 49,809 | The element base class, mixins, decorators, and floating positioning. |
|
|
3603
|
+
| \`@fusion.dev/helix-headless\` | 992,145 | 263,585 | 200,543 | Every headless family. The barrel entry includes all of them. |
|
|
3582
3604
|
| \`@fusion.dev/helix-icons\` | 55,738 | 17,784 | 15,143 | The whole glyph set. |
|
|
3583
3605
|
| \`@fusion.dev/helix-theme\` | 3,626 | 1,597 | 1,384 | The JavaScript that runs the derivation engine. Most sites run it at build time, and a theme switcher runs it in the browser. |
|
|
3584
3606
|
| \`fusion_helix_theme_bg.wasm\` | 490,270 | 155,600 | 125,779 | The derivation engine itself, in WebAssembly. The entry above loads it when the engine runs. |
|
|
3585
|
-
| \`@fusion.dev/helix\` | 1,
|
|
3607
|
+
| \`@fusion.dev/helix\` | 1,568,947 | 373,763 | 267,263 | Every styled family. |
|
|
3586
3608
|
| \`lit\` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
|
|
3587
3609
|
|
|
3588
3610
|
## Stylesheets
|
|
@@ -3595,21 +3617,21 @@ shows the whole cost of using the base layer on its own.
|
|
|
3595
3617
|
|
|
3596
3618
|
| File | Raw | Gzip | Brotli | |
|
|
3597
3619
|
|---|---|---|---|---|
|
|
3598
|
-
| \`base.css\` |
|
|
3599
|
-
| \`elements.css\` | 8,
|
|
3620
|
+
| \`base.css\` | 31,572 | 4,533 | 3,941 | The base layer. It styles markup Helix does not render, and it works with no JavaScript. |
|
|
3621
|
+
| \`elements.css\` | 8,988 | 1,507 | 1,331 | Hides each element until its definition loads. It is generated from the tags in \`@fusion.dev/helix\`. |
|
|
3600
3622
|
| \`helix.css\` | 207 | 148 | 118 | The other four stylesheets in one import, in the order they must load. |
|
|
3601
3623
|
| \`primitives.css\` | 7,510 | 1,402 | 1,201 | The primitive layer. It is private, and it ships because \`tokens.css\` refers to it. |
|
|
3602
3624
|
| \`tokens.css\` | 22,349 | 2,664 | 2,247 | The 193 semantic tokens. Every styled component needs them. |
|
|
3603
3625
|
|
|
3604
3626
|
## What the numbers say
|
|
3605
3627
|
|
|
3606
|
-
**Most of your first component is the shared runtime.** The median styled family is
|
|
3628
|
+
**Most of your first component is the shared runtime.** The median styled family is 17,557 bytes gzipped alone, and it adds 3,233 to a page that already has Helix. The shared runtime is 82 percent of the first component, and the component itself is 18 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.
|
|
3607
3629
|
|
|
3608
|
-
Across the 104 styled components, the smallest is \`code\` at
|
|
3630
|
+
Across the 104 styled components, the smallest is \`code\` at 11,100 bytes gzipped alone, and the largest is \`data-table\` at 60,538. Every family together is 373,763.
|
|
3609
3631
|
|
|
3610
|
-
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
|
|
3632
|
+
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 263,585 bytes gzipped, whatever else the page imports. That is 15 times the median family above. All 104 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.
|
|
3611
3633
|
|
|
3612
|
-
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
|
|
3634
|
+
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 16,776 bytes gzipped alone.
|
|
3613
3635
|
|
|
3614
3636
|
## Compared with other systems
|
|
3615
3637
|
|
|
@@ -3621,43 +3643,43 @@ The table has no whole-library row. That row would compare how many components e
|
|
|
3621
3643
|
|
|
3622
3644
|
| Component | System | Raw | Gzip | Brotli |
|
|
3623
3645
|
|---|---|---|---|---|
|
|
3624
|
-
| \`button\` | **Helix** |
|
|
3646
|
+
| \`button\` | **Helix** | 59,087 | 16,738 | 14,534 |
|
|
3625
3647
|
| | Carbon | 133,058 | 20,959 | 17,685 |
|
|
3626
3648
|
| | Material Web | 47,060 | 14,173 | 12,591 |
|
|
3627
3649
|
| | Shoelace | 62,628 | 18,287 | 15,805 |
|
|
3628
3650
|
| | Spectrum | 98,792 | 22,045 | 18,674 |
|
|
3629
|
-
| \`checkbox\` | **Helix** |
|
|
3651
|
+
| \`checkbox\` | **Helix** | 62,691 | 17,487 | 15,241 |
|
|
3630
3652
|
| | Carbon | 60,255 | 15,609 | 13,550 |
|
|
3631
3653
|
| | Material Web | 43,785 | 13,556 | 12,015 |
|
|
3632
3654
|
| | Shoelace | 47,614 | 15,177 | 13,301 |
|
|
3633
3655
|
| | Spectrum | 62,492 | 15,437 | 13,481 |
|
|
3634
|
-
| \`dialog\` | **Helix** |
|
|
3656
|
+
| \`dialog\` | **Helix** | 57,430 | 16,792 | 14,604 |
|
|
3635
3657
|
| | Carbon | 510,866 | 67,390 | 39,189 |
|
|
3636
3658
|
| | Material Web | 34,238 | 11,510 | 10,229 |
|
|
3637
3659
|
| | Shoelace | 52,754 | 17,698 | 15,554 |
|
|
3638
3660
|
| | Spectrum | 155,708 | 31,899 | 26,262 |
|
|
3639
|
-
| \`radio\` | **Helix** |
|
|
3661
|
+
| \`radio\` | **Helix** | 66,658 | 18,229 | 15,925 |
|
|
3640
3662
|
| | Carbon | 63,055 | 16,887 | 14,605 |
|
|
3641
3663
|
| | Material Web | 41,044 | 13,234 | 11,757 |
|
|
3642
3664
|
| | Shoelace | 34,865 | 12,027 | 10,559 |
|
|
3643
3665
|
| | Spectrum | 38,685 | 10,660 | 9,370 |
|
|
3644
|
-
| \`switch\` | **Helix** |
|
|
3666
|
+
| \`switch\` | **Helix** | 60,150 | 17,097 | 14,895 |
|
|
3645
3667
|
| | Carbon | 69,423 | 17,127 | 14,764 |
|
|
3646
3668
|
| | Material Web | 50,155 | 14,577 | 12,935 |
|
|
3647
3669
|
| | Shoelace | 37,833 | 11,814 | 10,568 |
|
|
3648
3670
|
| | Spectrum | 62,322 | 15,059 | 13,321 |
|
|
3649
|
-
| \`tabs\` | **Helix** |
|
|
3671
|
+
| \`tabs\` | **Helix** | 61,927 | 17,273 | 15,039 |
|
|
3650
3672
|
| | Carbon | 578,766 | 73,537 | 43,235 |
|
|
3651
3673
|
| | Material Web | 38,883 | 12,820 | 11,368 |
|
|
3652
3674
|
| | Shoelace | 54,573 | 17,140 | 15,068 |
|
|
3653
3675
|
| | Spectrum | 64,875 | 18,298 | 16,283 |
|
|
3654
|
-
| \`tooltip\` | **Helix** |
|
|
3676
|
+
| \`tooltip\` | **Helix** | 76,823 | 24,103 | 21,174 |
|
|
3655
3677
|
| | Carbon | 189,382 | 30,354 | 22,273 |
|
|
3656
3678
|
| | Material Web | | not shipped | |
|
|
3657
3679
|
| | Shoelace | 57,412 | 20,220 | 17,933 |
|
|
3658
3680
|
| | Spectrum | 136,599 | 40,552 | 35,286 |
|
|
3659
3681
|
|
|
3660
|
-
At least one system is smaller than Helix on \`button\`, \`checkbox\`, \`dialog\`, \`radio\`, \`switch\`, \`tabs\`, \`tooltip\`. The largest gap is radio against Spectrum, at
|
|
3682
|
+
At least one system is smaller than Helix on \`button\`, \`checkbox\`, \`dialog\`, \`radio\`, \`switch\`, \`tabs\`, \`tooltip\`. The largest gap is radio against Spectrum, at 7,569 bytes gzipped. 16 of 27 peer measurements are smaller than the Helix row.
|
|
3661
3683
|
|
|
3662
3684
|
Helix's \`radio\` family includes Radio Group, so its row carries an element that some peer rows measure without.
|
|
3663
3685
|
|
|
@@ -3703,104 +3725,104 @@ Structure, accessibility, state, and form participation. It has no presentation
|
|
|
3703
3725
|
|
|
3704
3726
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
3705
3727
|
|---|---|---|---|---|---|---|
|
|
3706
|
-
| \`accordion\` |
|
|
3707
|
-
| \`announcement\` |
|
|
3708
|
-
| \`app-header\` |
|
|
3709
|
-
| \`area-chart\` |
|
|
3710
|
-
| \`avatar\` |
|
|
3711
|
-
| \`badge\` |
|
|
3712
|
-
| \`bar-chart\` |
|
|
3713
|
-
| \`blockquote\` |
|
|
3714
|
-
| \`breadcrumbs\` |
|
|
3715
|
-
| \`button\` |
|
|
3716
|
-
| \`button-group\` |
|
|
3717
|
-
| \`callout\` |
|
|
3718
|
-
| \`canvas\` |
|
|
3719
|
-
| \`card\` |
|
|
3720
|
-
| \`carousel\` |
|
|
3721
|
-
| \`chat\` |
|
|
3722
|
-
| \`checkbox\` |
|
|
3723
|
-
| \`checkbox-group\` |
|
|
3724
|
-
| \`code\` |
|
|
3725
|
-
| \`code-block\` |
|
|
3726
|
-
| \`color-input\` |
|
|
3727
|
-
| \`color-picker\` |
|
|
3728
|
-
| \`combobox\` |
|
|
3729
|
-
| \`command\` |
|
|
3730
|
-
| \`copy-button\` |
|
|
3731
|
-
| \`data-table\` |
|
|
3732
|
-
| \`date-input\` |
|
|
3733
|
-
| \`date-picker\` |
|
|
3734
|
-
| \`description-list\` |
|
|
3735
|
-
| \`dialog\` |
|
|
3736
|
-
| \`divider\` |
|
|
3737
|
-
| \`donut-chart\` |
|
|
3738
|
-
| \`drawer\` |
|
|
3739
|
-
| \`drilldown\` |
|
|
3740
|
-
| \`empty\` |
|
|
3741
|
-
| \`file-input\` |
|
|
3742
|
-
| \`filter-input\` |
|
|
3743
|
-
| \`format-date\` |
|
|
3744
|
-
| \`graph\` |
|
|
3745
|
-
| \`heatmap\` |
|
|
3746
|
-
| \`icon\` |
|
|
3747
|
-
| \`icon-button\` |
|
|
3748
|
-
| \`image\` |
|
|
3749
|
-
| \`input\` |
|
|
3750
|
-
| \`kbd\` |
|
|
3751
|
-
| \`legend\` |
|
|
3752
|
-
| \`lightbox\` |
|
|
3753
|
-
| \`line-chart\` |
|
|
3754
|
-
| \`list\` |
|
|
3755
|
-
| \`listbox\` |
|
|
3756
|
-
| \`loader\` |
|
|
3757
|
-
| \`map\` |
|
|
3758
|
-
| \`megamenu\` |
|
|
3759
|
-
| \`menu\` |
|
|
3760
|
-
| \`meter\` |
|
|
3761
|
-
| \`navigation\` |
|
|
3762
|
-
| \`notifications\` |
|
|
3763
|
-
| \`number-input\` |
|
|
3764
|
-
| \`object-inspector\` |
|
|
3765
|
-
| \`option\` |
|
|
3766
|
-
| \`outline\` |
|
|
3767
|
-
| \`pagination\` |
|
|
3768
|
-
| \`pin-input\` |
|
|
3769
|
-
| \`popover\` |
|
|
3770
|
-
| \`progress\` |
|
|
3771
|
-
| \`qr-code\` |
|
|
3772
|
-
| \`quote\` |
|
|
3773
|
-
| \`radio\` |
|
|
3774
|
-
| \`rating\` |
|
|
3775
|
-
| \`scatter-chart\` |
|
|
3776
|
-
| \`scroll-area\` |
|
|
3777
|
-
| \`select\` |
|
|
3778
|
-
| \`skeleton\` |
|
|
3779
|
-
| \`skip-link\` |
|
|
3780
|
-
| \`slider\` |
|
|
3781
|
-
| \`sparkline\` |
|
|
3782
|
-
| \`speed-dial\` |
|
|
3783
|
-
| \`splitter\` |
|
|
3784
|
-
| \`stat\` |
|
|
3785
|
-
| \`steps\` |
|
|
3786
|
-
| \`switch\` |
|
|
3787
|
-
| \`table\` |
|
|
3788
|
-
| \`tabs\` |
|
|
3789
|
-
| \`tag\` |
|
|
3790
|
-
| \`textarea\` |
|
|
3791
|
-
| \`time-input\` |
|
|
3792
|
-
| \`time-picker\` |
|
|
3793
|
-
| \`timeline\` |
|
|
3794
|
-
| \`toast\` |
|
|
3795
|
-
| \`toggle\` |
|
|
3796
|
-
| \`toolbar\` |
|
|
3797
|
-
| \`tooltip\` |
|
|
3798
|
-
| \`tour\` |
|
|
3799
|
-
| \`tree\` |
|
|
3800
|
-
| \`trend\` |
|
|
3801
|
-
| \`video\` |
|
|
3802
|
-
| \`video-playlist\` |
|
|
3803
|
-
| \`virtual-list\` |
|
|
3728
|
+
| \`accordion\` | 48,182 | 14,297 | 12,505 | 4,984 | 1,425 | 1,027 |
|
|
3729
|
+
| \`announcement\` | 45,102 | 13,253 | 11,583 | 2,271 | 666 | 366 |
|
|
3730
|
+
| \`app-header\` | 40,435 | 11,750 | 10,286 | 2,247 | 762 | 416 |
|
|
3731
|
+
| \`area-chart\` | 93,044 | 29,698 | 26,035 | 13,495 | 4,160 | 3,202 |
|
|
3732
|
+
| \`avatar\` | 43,148 | 12,508 | 10,964 | 4,317 | 1,353 | 970 |
|
|
3733
|
+
| \`badge\` | 38,802 | 11,320 | 9,899 | 1,149 | 462 | 169 |
|
|
3734
|
+
| \`bar-chart\` | 95,625 | 30,410 | 26,632 | 15,690 | 4,757 | 3,722 |
|
|
3735
|
+
| \`blockquote\` | 38,968 | 11,387 | 9,960 | 912 | 390 | 223 |
|
|
3736
|
+
| \`breadcrumbs\` | 43,561 | 12,979 | 11,433 | 4,544 | 1,603 | 1,263 |
|
|
3737
|
+
| \`button\` | 51,795 | 15,244 | 13,214 | 4,710 | 1,463 | 1,005 |
|
|
3738
|
+
| \`button-group\` | 38,686 | 11,221 | 9,844 | 661 | 314 | 77 |
|
|
3739
|
+
| \`callout\` | 44,036 | 13,108 | 11,419 | 1,329 | 523 | 261 |
|
|
3740
|
+
| \`canvas\` | 102,108 | 29,682 | 25,917 | 52,193 | 15,722 | 13,044 |
|
|
3741
|
+
| \`card\` | 39,797 | 11,559 | 10,137 | 1,604 | 531 | 315 |
|
|
3742
|
+
| \`carousel\` | 54,081 | 15,710 | 13,854 | 14,651 | 4,009 | 3,111 |
|
|
3743
|
+
| \`chat\` | 76,203 | 22,724 | 19,951 | 20,500 | 6,178 | 4,821 |
|
|
3744
|
+
| \`checkbox\` | 56,065 | 16,037 | 13,985 | 2,958 | 969 | 620 |
|
|
3745
|
+
| \`checkbox-group\` | 61,517 | 17,368 | 15,101 | 7,836 | 2,170 | 1,501 |
|
|
3746
|
+
| \`code\` | 37,305 | 10,814 | 9,479 | 451 | 231 | 86 |
|
|
3747
|
+
| \`code-block\` | 100,659 | 31,094 | 27,245 | 23,817 | 6,443 | 5,060 |
|
|
3748
|
+
| \`color-input\` | 129,357 | 38,449 | 33,511 | 37,761 | 9,644 | 7,541 |
|
|
3749
|
+
| \`color-picker\` | 92,148 | 26,799 | 23,386 | 30,390 | 8,172 | 6,406 |
|
|
3750
|
+
| \`combobox\` | 127,674 | 37,291 | 32,418 | 35,587 | 8,865 | 6,853 |
|
|
3751
|
+
| \`command\` | 89,215 | 25,050 | 21,805 | 26,676 | 7,056 | 5,454 |
|
|
3752
|
+
| \`copy-button\` | 94,025 | 29,170 | 25,483 | 17,176 | 4,558 | 3,424 |
|
|
3753
|
+
| \`data-table\` | 177,658 | 50,785 | 43,702 | 83,800 | 21,866 | 17,318 |
|
|
3754
|
+
| \`date-input\` | 138,630 | 40,115 | 34,906 | 34,269 | 8,334 | 6,560 |
|
|
3755
|
+
| \`date-picker\` | 64,808 | 18,557 | 16,414 | 16,799 | 4,441 | 3,383 |
|
|
3756
|
+
| \`description-list\` | 40,008 | 11,505 | 10,096 | 1,984 | 611 | 311 |
|
|
3757
|
+
| \`dialog\` | 51,811 | 15,529 | 13,433 | 4,950 | 1,603 | 1,104 |
|
|
3758
|
+
| \`divider\` | 39,036 | 11,419 | 9,978 | 981 | 410 | 201 |
|
|
3759
|
+
| \`donut-chart\` | 91,264 | 28,858 | 25,333 | 13,145 | 3,968 | 3,167 |
|
|
3760
|
+
| \`drawer\` | 52,546 | 15,697 | 13,644 | 4,473 | 1,493 | 988 |
|
|
3761
|
+
| \`drilldown\` | 55,170 | 16,411 | 14,315 | 6,516 | 1,848 | 1,203 |
|
|
3762
|
+
| \`empty\` | 39,474 | 11,522 | 10,104 | 956 | 395 | 130 |
|
|
3763
|
+
| \`file-input\` | 72,912 | 21,565 | 18,822 | 13,699 | 4,130 | 3,092 |
|
|
3764
|
+
| \`filter-input\` | 133,282 | 38,923 | 33,905 | 39,353 | 9,810 | 7,662 |
|
|
3765
|
+
| \`format-date\` | 44,474 | 13,019 | 11,437 | 4,302 | 1,250 | 889 |
|
|
3766
|
+
| \`graph\` | 72,758 | 21,404 | 18,752 | 14,811 | 4,748 | 3,673 |
|
|
3767
|
+
| \`heatmap\` | 96,216 | 30,222 | 26,355 | 13,605 | 3,906 | 2,947 |
|
|
3768
|
+
| \`icon\` | 96,193 | 29,774 | 25,428 | 55,716 | 19,403 | 15,205 |
|
|
3769
|
+
| \`icon-button\` | 52,191 | 15,281 | 13,237 | 5,109 | 1,504 | 994 |
|
|
3770
|
+
| \`image\` | 42,343 | 12,216 | 10,739 | 3,973 | 1,227 | 884 |
|
|
3771
|
+
| \`input\` | 61,557 | 18,134 | 15,685 | 7,153 | 2,441 | 1,637 |
|
|
3772
|
+
| \`kbd\` | 42,378 | 12,577 | 11,040 | 3,432 | 1,198 | 697 |
|
|
3773
|
+
| \`legend\` | 45,148 | 13,356 | 11,696 | 2,304 | 823 | 460 |
|
|
3774
|
+
| \`lightbox\` | 54,970 | 15,935 | 13,911 | 7,865 | 2,207 | 1,534 |
|
|
3775
|
+
| \`line-chart\` | 93,394 | 29,685 | 26,039 | 13,695 | 4,104 | 3,262 |
|
|
3776
|
+
| \`list\` | 48,692 | 14,425 | 12,682 | 7,199 | 2,144 | 1,437 |
|
|
3777
|
+
| \`listbox\` | 74,967 | 21,544 | 18,804 | 16,319 | 4,553 | 3,453 |
|
|
3778
|
+
| \`loader\` | 40,808 | 11,871 | 10,403 | 1,966 | 726 | 417 |
|
|
3779
|
+
| \`map\` | 91,646 | 25,104 | 21,696 | 38,033 | 9,990 | 7,610 |
|
|
3780
|
+
| \`megamenu\` | 70,632 | 22,586 | 19,786 | 5,578 | 1,670 | 1,044 |
|
|
3781
|
+
| \`menu\` | 95,195 | 29,728 | 25,881 | 17,573 | 4,578 | 3,401 |
|
|
3782
|
+
| \`meter\` | 42,609 | 12,396 | 10,904 | 4,407 | 1,348 | 968 |
|
|
3783
|
+
| \`navigation\` | 48,387 | 14,631 | 12,723 | 2,154 | 838 | 524 |
|
|
3784
|
+
| \`notifications\` | 63,509 | 17,999 | 15,938 | 15,970 | 4,098 | 3,135 |
|
|
3785
|
+
| \`number-input\` | 65,400 | 18,945 | 16,551 | 9,936 | 2,720 | 1,861 |
|
|
3786
|
+
| \`object-inspector\` | 114,399 | 35,425 | 30,886 | 30,054 | 8,440 | 6,624 |
|
|
3787
|
+
| \`option\` | 41,866 | 12,031 | 10,573 | 3,485 | 935 | 565 |
|
|
3788
|
+
| \`outline\` | 46,216 | 13,754 | 12,092 | 6,690 | 2,163 | 1,520 |
|
|
3789
|
+
| \`pagination\` | 124,374 | 36,548 | 31,753 | 39,162 | 9,921 | 7,799 |
|
|
3790
|
+
| \`pin-input\` | 58,914 | 16,966 | 14,779 | 6,212 | 1,954 | 1,182 |
|
|
3791
|
+
| \`popover\` | 74,937 | 23,994 | 20,915 | 3,678 | 1,132 | 733 |
|
|
3792
|
+
| \`progress\` | 40,611 | 11,884 | 10,467 | 2,409 | 832 | 550 |
|
|
3793
|
+
| \`qr-code\` | 52,870 | 16,531 | 14,518 | 14,937 | 5,498 | 4,506 |
|
|
3794
|
+
| \`quote\` | 38,209 | 11,104 | 9,723 | 552 | 309 | 49 |
|
|
3795
|
+
| \`radio\` | 58,366 | 16,737 | 14,580 | 3,728 | 1,137 | 704 |
|
|
3796
|
+
| \`rating\` | 63,329 | 18,548 | 16,230 | 7,746 | 2,399 | 1,688 |
|
|
3797
|
+
| \`scatter-chart\` | 92,677 | 29,362 | 25,735 | 13,985 | 4,238 | 3,245 |
|
|
3798
|
+
| \`scroll-area\` | 46,343 | 13,511 | 11,835 | 7,808 | 2,377 | 1,838 |
|
|
3799
|
+
| \`select\` | 108,755 | 32,689 | 28,578 | 23,622 | 6,113 | 4,689 |
|
|
3800
|
+
| \`skeleton\` | 39,215 | 11,392 | 9,980 | 1,190 | 486 | 233 |
|
|
3801
|
+
| \`skip-link\` | 39,372 | 11,544 | 10,106 | 1,562 | 649 | 313 |
|
|
3802
|
+
| \`slider\` | 60,476 | 17,333 | 15,200 | 7,357 | 2,100 | 1,551 |
|
|
3803
|
+
| \`sparkline\` | 46,221 | 13,916 | 12,229 | 2,387 | 918 | 630 |
|
|
3804
|
+
| \`speed-dial\` | 73,207 | 23,615 | 20,753 | 4,218 | 1,242 | 720 |
|
|
3805
|
+
| \`splitter\` | 53,638 | 15,614 | 13,630 | 11,451 | 3,064 | 2,338 |
|
|
3806
|
+
| \`stat\` | 39,537 | 11,425 | 10,025 | 1,511 | 519 | 372 |
|
|
3807
|
+
| \`steps\` | 59,661 | 17,391 | 15,117 | 10,031 | 2,763 | 1,998 |
|
|
3808
|
+
| \`switch\` | 55,297 | 15,928 | 13,872 | 1,790 | 686 | 399 |
|
|
3809
|
+
| \`table\` | 78,937 | 22,295 | 19,462 | 22,544 | 6,192 | 4,826 |
|
|
3810
|
+
| \`tabs\` | 53,749 | 15,656 | 13,649 | 5,251 | 1,392 | 928 |
|
|
3811
|
+
| \`tag\` | 50,512 | 15,118 | 13,302 | 5,626 | 1,687 | 1,105 |
|
|
3812
|
+
| \`textarea\` | 57,860 | 16,657 | 14,482 | 4,676 | 1,455 | 962 |
|
|
3813
|
+
| \`time-input\` | 151,472 | 43,753 | 37,870 | 42,860 | 10,709 | 8,441 |
|
|
3814
|
+
| \`time-picker\` | 87,863 | 25,091 | 21,864 | 27,226 | 7,296 | 5,595 |
|
|
3815
|
+
| \`timeline\` | 42,119 | 12,148 | 10,666 | 3,185 | 812 | 480 |
|
|
3816
|
+
| \`toast\` | 56,162 | 16,815 | 14,779 | 7,965 | 2,426 | 1,825 |
|
|
3817
|
+
| \`toggle\` | 61,817 | 17,715 | 15,518 | 5,356 | 1,532 | 1,024 |
|
|
3818
|
+
| \`toolbar\` | 46,413 | 13,924 | 12,054 | 4,344 | 1,524 | 998 |
|
|
3819
|
+
| \`tooltip\` | 73,745 | 23,374 | 20,558 | 8,345 | 2,417 | 1,793 |
|
|
3820
|
+
| \`tour\` | 90,468 | 28,012 | 24,507 | 15,948 | 4,388 | 3,357 |
|
|
3821
|
+
| \`tree\` | 60,625 | 17,888 | 15,566 | 11,410 | 3,282 | 2,472 |
|
|
3822
|
+
| \`trend\` | 40,772 | 11,996 | 10,523 | 2,213 | 727 | 444 |
|
|
3823
|
+
| \`video\` | 132,460 | 39,115 | 33,890 | 50,202 | 12,703 | 10,093 |
|
|
3824
|
+
| \`video-playlist\` | 104,620 | 31,866 | 27,789 | 25,604 | 6,488 | 4,970 |
|
|
3825
|
+
| \`virtual-list\` | 56,040 | 16,855 | 14,660 | 7,855 | 2,560 | 1,858 |
|
|
3804
3826
|
|
|
3805
3827
|
### Styled tier
|
|
3806
3828
|
|
|
@@ -3808,110 +3830,110 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
|
|
|
3808
3830
|
|
|
3809
3831
|
| Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
|
|
3810
3832
|
|---|---|---|---|---|---|---|
|
|
3811
|
-
| \`accordion\` |
|
|
3812
|
-
| \`announcement\` |
|
|
3813
|
-
| \`app-header\` |
|
|
3814
|
-
| \`area-chart\` |
|
|
3815
|
-
| \`aura\` |
|
|
3816
|
-
| \`avatar\` |
|
|
3817
|
-
| \`badge\` |
|
|
3818
|
-
| \`bar-chart\` |
|
|
3819
|
-
| \`blockquote\` |
|
|
3820
|
-
| \`breadcrumbs\` |
|
|
3821
|
-
| \`button\` |
|
|
3822
|
-
| \`button-group\` |
|
|
3823
|
-
| \`callout\` |
|
|
3824
|
-
| \`canvas\` |
|
|
3825
|
-
| \`card\` |
|
|
3826
|
-
| \`carousel\` |
|
|
3827
|
-
| \`chat\` |
|
|
3828
|
-
| \`checkbox\` |
|
|
3829
|
-
| \`checkbox-group\` |
|
|
3830
|
-
| \`code\` |
|
|
3831
|
-
| \`code-block\` |
|
|
3832
|
-
| \`color-input\` |
|
|
3833
|
-
| \`color-picker\` |
|
|
3834
|
-
| \`combobox\` |
|
|
3835
|
-
| \`command\` |
|
|
3836
|
-
| \`copy-button\` |
|
|
3837
|
-
| \`data-table\` |
|
|
3838
|
-
| \`date-input\` |
|
|
3839
|
-
| \`date-picker\` |
|
|
3840
|
-
| \`description-list\` |
|
|
3841
|
-
| \`dialog\` |
|
|
3842
|
-
| \`divider\` |
|
|
3843
|
-
| \`donut-chart\` |
|
|
3844
|
-
| \`drawer\` |
|
|
3845
|
-
| \`drilldown\` |
|
|
3846
|
-
| \`empty\` |
|
|
3847
|
-
| \`file-input\` |
|
|
3848
|
-
| \`filter-input\` |
|
|
3849
|
-
| \`flex\` |
|
|
3850
|
-
| \`format-date\` |
|
|
3851
|
-
| \`graph\` |
|
|
3852
|
-
| \`grid\` |
|
|
3853
|
-
| \`heatmap\` |
|
|
3854
|
-
| \`icon\` |
|
|
3855
|
-
| \`icon-button\` |
|
|
3856
|
-
| \`image\` |
|
|
3857
|
-
| \`input\` |
|
|
3858
|
-
| \`kbd\` |
|
|
3859
|
-
| \`legend\` |
|
|
3860
|
-
| \`lightbox\` |
|
|
3861
|
-
| \`line-chart\` |
|
|
3862
|
-
| \`list\` |
|
|
3863
|
-
| \`listbox\` |
|
|
3864
|
-
| \`loader\` |
|
|
3865
|
-
| \`map\` |
|
|
3866
|
-
| \`megamenu\` |
|
|
3867
|
-
| \`menu\` |
|
|
3868
|
-
| \`meter\` |
|
|
3869
|
-
| \`navigation\` |
|
|
3870
|
-
| \`notifications\` |
|
|
3871
|
-
| \`number-input\` |
|
|
3872
|
-
| \`object-inspector\` |
|
|
3873
|
-
| \`option\` |
|
|
3874
|
-
| \`orb\` |
|
|
3875
|
-
| \`outline\` |
|
|
3876
|
-
| \`pagination\` |
|
|
3877
|
-
| \`pin-input\` |
|
|
3878
|
-
| \`popover\` |
|
|
3879
|
-
| \`progress\` |
|
|
3880
|
-
| \`qr-code\` |
|
|
3881
|
-
| \`quote\` |
|
|
3882
|
-
| \`radio\` |
|
|
3883
|
-
| \`rating\` |
|
|
3884
|
-
| \`sandbox\` |
|
|
3885
|
-
| \`scatter-chart\` |
|
|
3886
|
-
| \`scroll-area\` |
|
|
3887
|
-
| \`select\` |
|
|
3888
|
-
| \`skeleton\` |
|
|
3889
|
-
| \`skip-link\` |
|
|
3890
|
-
| \`slider\` |
|
|
3891
|
-
| \`sparkline\` |
|
|
3892
|
-
| \`speed-dial\` |
|
|
3893
|
-
| \`splitter\` |
|
|
3894
|
-
| \`stat\` |
|
|
3895
|
-
| \`steps\` |
|
|
3896
|
-
| \`switch\` |
|
|
3897
|
-
| \`table\` |
|
|
3898
|
-
| \`tabs\` |
|
|
3899
|
-
| \`tag\` |
|
|
3900
|
-
| \`text\` |
|
|
3901
|
-
| \`textarea\` |
|
|
3902
|
-
| \`time-input\` |
|
|
3903
|
-
| \`time-picker\` |
|
|
3904
|
-
| \`timeline\` |
|
|
3905
|
-
| \`toast\` |
|
|
3906
|
-
| \`toggle\` |
|
|
3907
|
-
| \`toolbar\` |
|
|
3908
|
-
| \`tooltip\` |
|
|
3909
|
-
| \`tour\` |
|
|
3910
|
-
| \`tree\` |
|
|
3911
|
-
| \`trend\` |
|
|
3912
|
-
| \`video\` |
|
|
3913
|
-
| \`video-playlist\` |
|
|
3914
|
-
| \`virtual-list\` |
|
|
3833
|
+
| \`accordion\` | 51,996 | 15,127 | 13,260 | 8,785 | 2,272 | 1,810 |
|
|
3834
|
+
| \`announcement\` | 49,868 | 14,312 | 12,520 | 7,018 | 1,749 | 1,363 |
|
|
3835
|
+
| \`app-header\` | 44,323 | 12,642 | 11,100 | 6,120 | 1,670 | 1,268 |
|
|
3836
|
+
| \`area-chart\` | 100,903 | 31,364 | 27,476 | 21,331 | 5,874 | 4,708 |
|
|
3837
|
+
| \`aura\` | 68,432 | 20,526 | 18,004 | 27,607 | 8,662 | 7,313 |
|
|
3838
|
+
| \`avatar\` | 46,735 | 13,264 | 11,648 | 7,891 | 2,125 | 1,634 |
|
|
3839
|
+
| \`badge\` | 43,113 | 12,196 | 10,665 | 5,445 | 1,352 | 954 |
|
|
3840
|
+
| \`bar-chart\` | 109,074 | 33,063 | 29,011 | 29,117 | 7,451 | 6,038 |
|
|
3841
|
+
| \`blockquote\` | 40,330 | 11,709 | 10,250 | 2,258 | 711 | 535 |
|
|
3842
|
+
| \`breadcrumbs\` | 47,403 | 13,789 | 12,158 | 8,370 | 2,446 | 1,887 |
|
|
3843
|
+
| \`button\` | 59,087 | 16,738 | 14,534 | 11,984 | 2,987 | 2,212 |
|
|
3844
|
+
| \`button-group\` | 40,362 | 11,601 | 10,176 | 2,320 | 708 | 420 |
|
|
3845
|
+
| \`callout\` | 47,973 | 14,026 | 12,271 | 5,248 | 1,449 | 1,088 |
|
|
3846
|
+
| \`canvas\` | 122,450 | 33,433 | 29,098 | 72,525 | 19,548 | 16,234 |
|
|
3847
|
+
| \`card\` | 43,583 | 12,500 | 10,968 | 5,378 | 1,475 | 1,131 |
|
|
3848
|
+
| \`carousel\` | 65,340 | 17,549 | 15,539 | 25,899 | 5,956 | 4,733 |
|
|
3849
|
+
| \`chat\` | 90,360 | 25,192 | 22,136 | 34,648 | 8,738 | 7,009 |
|
|
3850
|
+
| \`checkbox\` | 62,691 | 17,487 | 15,241 | 9,568 | 2,454 | 1,853 |
|
|
3851
|
+
| \`checkbox-group\` | 69,245 | 18,957 | 16,532 | 15,554 | 3,820 | 2,872 |
|
|
3852
|
+
| \`code\` | 38,382 | 11,100 | 9,739 | 1,511 | 528 | 380 |
|
|
3853
|
+
| \`code-block\` | 119,751 | 34,184 | 29,938 | 42,895 | 9,656 | 7,794 |
|
|
3854
|
+
| \`color-input\` | 164,610 | 43,923 | 38,450 | 72,998 | 15,122 | 12,351 |
|
|
3855
|
+
| \`color-picker\` | 121,700 | 31,494 | 27,592 | 59,934 | 13,000 | 10,504 |
|
|
3856
|
+
| \`combobox\` | 144,583 | 40,222 | 35,165 | 52,478 | 11,819 | 9,370 |
|
|
3857
|
+
| \`command\` | 101,208 | 27,287 | 23,861 | 38,658 | 9,383 | 7,402 |
|
|
3858
|
+
| \`copy-button\` | 105,973 | 31,236 | 27,327 | 29,109 | 6,690 | 5,225 |
|
|
3859
|
+
| \`data-table\` | 226,777 | 60,538 | 50,713 | 132,384 | 31,442 | 24,204 |
|
|
3860
|
+
| \`date-input\` | 159,944 | 43,750 | 38,133 | 55,567 | 12,043 | 9,729 |
|
|
3861
|
+
| \`date-picker\` | 72,489 | 19,877 | 17,653 | 24,462 | 5,777 | 4,621 |
|
|
3862
|
+
| \`description-list\` | 42,710 | 12,098 | 10,595 | 4,675 | 1,215 | 820 |
|
|
3863
|
+
| \`dialog\` | 57,430 | 16,792 | 14,604 | 10,551 | 2,894 | 2,234 |
|
|
3864
|
+
| \`divider\` | 41,614 | 12,030 | 10,535 | 3,542 | 1,016 | 646 |
|
|
3865
|
+
| \`donut-chart\` | 101,017 | 30,850 | 27,095 | 22,874 | 6,025 | 4,828 |
|
|
3866
|
+
| \`drawer\` | 57,696 | 16,843 | 14,687 | 9,604 | 2,690 | 2,104 |
|
|
3867
|
+
| \`drilldown\` | 59,937 | 17,454 | 15,254 | 11,270 | 2,901 | 2,242 |
|
|
3868
|
+
| \`empty\` | 41,147 | 12,013 | 10,486 | 2,613 | 878 | 544 |
|
|
3869
|
+
| \`file-input\` | 84,516 | 23,831 | 20,829 | 25,298 | 6,387 | 5,050 |
|
|
3870
|
+
| \`filter-input\` | 163,717 | 43,928 | 38,177 | 69,415 | 14,735 | 11,870 |
|
|
3871
|
+
| \`flex\` | 42,852 | 11,968 | 10,499 | 5,187 | 1,150 | 761 |
|
|
3872
|
+
| \`format-date\` | 45,122 | 13,167 | 11,570 | 4,932 | 1,413 | 1,065 |
|
|
3873
|
+
| \`graph\` | 87,601 | 23,918 | 20,907 | 29,634 | 7,383 | 5,965 |
|
|
3874
|
+
| \`grid\` | 43,813 | 12,422 | 10,941 | 6,154 | 1,599 | 1,210 |
|
|
3875
|
+
| \`heatmap\` | 103,675 | 31,725 | 27,779 | 21,043 | 5,449 | 4,216 |
|
|
3876
|
+
| \`icon\` | 96,900 | 29,952 | 25,546 | 56,405 | 19,562 | 15,270 |
|
|
3877
|
+
| \`icon-button\` | 60,028 | 16,654 | 14,511 | 12,926 | 2,904 | 2,168 |
|
|
3878
|
+
| \`image\` | 44,037 | 12,680 | 11,118 | 5,649 | 1,696 | 1,170 |
|
|
3879
|
+
| \`input\` | 66,300 | 19,221 | 16,664 | 11,884 | 3,566 | 2,670 |
|
|
3880
|
+
| \`kbd\` | 43,792 | 13,034 | 11,457 | 4,829 | 1,641 | 1,170 |
|
|
3881
|
+
| \`legend\` | 50,639 | 14,618 | 12,770 | 7,671 | 2,071 | 1,529 |
|
|
3882
|
+
| \`lightbox\` | 59,970 | 17,029 | 14,909 | 12,850 | 3,298 | 2,514 |
|
|
3883
|
+
| \`line-chart\` | 103,812 | 31,810 | 27,859 | 24,094 | 6,276 | 4,948 |
|
|
3884
|
+
| \`list\` | 53,824 | 15,600 | 13,715 | 12,315 | 3,316 | 2,496 |
|
|
3885
|
+
| \`listbox\` | 79,485 | 22,558 | 19,736 | 20,826 | 5,586 | 4,308 |
|
|
3886
|
+
| \`loader\` | 44,099 | 12,665 | 11,143 | 5,242 | 1,510 | 1,116 |
|
|
3887
|
+
| \`map\` | 128,697 | 30,515 | 26,414 | 75,074 | 15,527 | 12,408 |
|
|
3888
|
+
| \`megamenu\` | 75,513 | 23,618 | 20,738 | 10,443 | 2,763 | 2,106 |
|
|
3889
|
+
| \`menu\` | 105,201 | 31,674 | 27,636 | 27,568 | 6,582 | 5,122 |
|
|
3890
|
+
| \`meter\` | 48,692 | 13,620 | 11,991 | 10,472 | 2,606 | 2,044 |
|
|
3891
|
+
| \`navigation\` | 50,161 | 15,107 | 13,167 | 3,908 | 1,310 | 903 |
|
|
3892
|
+
| \`notifications\` | 77,423 | 20,438 | 18,074 | 29,875 | 6,613 | 5,353 |
|
|
3893
|
+
| \`number-input\` | 70,373 | 20,083 | 17,564 | 14,890 | 3,882 | 2,932 |
|
|
3894
|
+
| \`object-inspector\` | 131,097 | 38,189 | 33,355 | 46,731 | 11,254 | 9,045 |
|
|
3895
|
+
| \`option\` | 45,120 | 12,942 | 11,368 | 6,725 | 1,839 | 1,332 |
|
|
3896
|
+
| \`orb\` | 50,299 | 15,575 | 13,645 | 9,518 | 3,618 | 2,949 |
|
|
3897
|
+
| \`outline\` | 50,275 | 14,576 | 12,869 | 10,732 | 3,007 | 2,289 |
|
|
3898
|
+
| \`pagination\` | 142,357 | 39,619 | 34,462 | 57,128 | 13,039 | 10,384 |
|
|
3899
|
+
| \`pin-input\` | 62,362 | 17,819 | 15,600 | 9,643 | 2,837 | 2,015 |
|
|
3900
|
+
| \`popover\` | 78,559 | 24,787 | 21,610 | 7,282 | 1,931 | 1,484 |
|
|
3901
|
+
| \`progress\` | 46,207 | 13,149 | 11,553 | 7,987 | 2,106 | 1,705 |
|
|
3902
|
+
| \`qr-code\` | 54,534 | 16,958 | 14,843 | 16,585 | 5,944 | 4,839 |
|
|
3903
|
+
| \`quote\` | 38,889 | 11,276 | 9,854 | 1,216 | 474 | 180 |
|
|
3904
|
+
| \`radio\` | 66,658 | 18,229 | 15,925 | 12,010 | 2,678 | 2,035 |
|
|
3905
|
+
| \`rating\` | 67,641 | 19,771 | 17,249 | 12,041 | 3,616 | 2,780 |
|
|
3906
|
+
| \`sandbox\` | 82,648 | 21,799 | 19,107 | 40,160 | 9,244 | 7,536 |
|
|
3907
|
+
| \`scatter-chart\` | 101,544 | 31,250 | 27,338 | 22,828 | 6,171 | 4,935 |
|
|
3908
|
+
| \`scroll-area\` | 51,608 | 14,461 | 12,733 | 13,055 | 3,345 | 2,582 |
|
|
3909
|
+
| \`select\` | 121,609 | 35,082 | 30,625 | 36,462 | 8,552 | 6,785 |
|
|
3910
|
+
| \`skeleton\` | 42,021 | 12,077 | 10,617 | 3,981 | 1,173 | 833 |
|
|
3911
|
+
| \`skip-link\` | 41,073 | 11,975 | 10,479 | 3,246 | 1,073 | 670 |
|
|
3912
|
+
| \`slider\` | 71,556 | 19,327 | 16,987 | 18,420 | 4,156 | 3,322 |
|
|
3913
|
+
| \`sparkline\` | 50,148 | 14,863 | 13,036 | 6,294 | 1,884 | 1,465 |
|
|
3914
|
+
| \`speed-dial\` | 137,814 | 44,096 | 37,356 | 66,895 | 21,748 | 17,084 |
|
|
3915
|
+
| \`splitter\` | 59,710 | 16,605 | 14,560 | 17,505 | 4,128 | 3,276 |
|
|
3916
|
+
| \`stat\` | 43,117 | 12,145 | 10,642 | 5,081 | 1,258 | 899 |
|
|
3917
|
+
| \`steps\` | 74,508 | 20,100 | 17,552 | 24,865 | 5,588 | 4,386 |
|
|
3918
|
+
| \`switch\` | 60,150 | 17,097 | 14,895 | 6,627 | 1,883 | 1,420 |
|
|
3919
|
+
| \`table\` | 92,421 | 24,743 | 21,642 | 36,018 | 8,625 | 6,933 |
|
|
3920
|
+
| \`tabs\` | 61,927 | 17,273 | 15,039 | 13,418 | 3,051 | 2,349 |
|
|
3921
|
+
| \`tag\` | 55,489 | 16,232 | 14,241 | 10,588 | 2,808 | 2,095 |
|
|
3922
|
+
| \`text\` | 45,640 | 12,441 | 10,881 | 7,984 | 1,684 | 1,209 |
|
|
3923
|
+
| \`textarea\` | 61,578 | 17,564 | 15,311 | 8,378 | 2,407 | 1,784 |
|
|
3924
|
+
| \`time-input\` | 175,509 | 47,749 | 41,289 | 66,881 | 14,780 | 11,858 |
|
|
3925
|
+
| \`time-picker\` | 99,593 | 27,271 | 23,801 | 38,947 | 9,529 | 7,600 |
|
|
3926
|
+
| \`timeline\` | 49,538 | 13,580 | 11,922 | 10,592 | 2,261 | 1,721 |
|
|
3927
|
+
| \`toast\` | 64,376 | 18,574 | 16,317 | 16,162 | 4,267 | 3,375 |
|
|
3928
|
+
| \`toggle\` | 67,459 | 18,981 | 16,563 | 10,987 | 2,815 | 2,180 |
|
|
3929
|
+
| \`toolbar\` | 47,892 | 14,293 | 12,367 | 5,804 | 1,885 | 1,288 |
|
|
3930
|
+
| \`tooltip\` | 76,823 | 24,103 | 21,174 | 11,405 | 3,167 | 2,452 |
|
|
3931
|
+
| \`tour\` | 102,145 | 30,117 | 26,431 | 27,607 | 6,556 | 5,203 |
|
|
3932
|
+
| \`tree\` | 68,362 | 19,519 | 17,079 | 19,134 | 4,965 | 3,978 |
|
|
3933
|
+
| \`trend\` | 42,581 | 12,462 | 10,926 | 4,003 | 1,201 | 919 |
|
|
3934
|
+
| \`video\` | 152,815 | 42,768 | 37,128 | 70,541 | 16,254 | 13,257 |
|
|
3935
|
+
| \`video-playlist\` | 119,515 | 34,478 | 30,107 | 40,483 | 9,181 | 7,326 |
|
|
3936
|
+
| \`virtual-list\` | 57,009 | 17,103 | 14,901 | 8,805 | 2,803 | 2,094 |
|
|
3915
3937
|
|
|
3916
3938
|
## What an install adds to \`node_modules\`
|
|
3917
3939
|
|
|
@@ -3923,12 +3945,12 @@ stripped column shows the bytes we removed.
|
|
|
3923
3945
|
|
|
3924
3946
|
| Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
|
|
3925
3947
|
|---|---|---|---|---|
|
|
3926
|
-
| \`@fusion.dev/helix-core\` | 1,
|
|
3927
|
-
| \`@fusion.dev/helix-headless\` |
|
|
3948
|
+
| \`@fusion.dev/helix-core\` | 1,688,821 | 235 | 431,863 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\` |
|
|
3949
|
+
| \`@fusion.dev/helix-headless\` | 16,659,970 | 597 | 1,492,151 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`uqr\` |
|
|
3928
3950
|
| \`@fusion.dev/helix-icons\` | 149,615 | 21 | 47,843 | \`svgo\` |
|
|
3929
|
-
| \`@fusion.dev/helix-styles\` |
|
|
3951
|
+
| \`@fusion.dev/helix-styles\` | 107,064 | 6 | 0 | none |
|
|
3930
3952
|
| \`@fusion.dev/helix-theme\` | 528,598 | 8 | 5,393 | none |
|
|
3931
|
-
| \`@fusion.dev/helix\` |
|
|
3953
|
+
| \`@fusion.dev/helix\` | 17,298,599 | 901 | 404,611 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\` |
|
|
3932
3954
|
|
|
3933
3955
|
## Not measured yet
|
|
3934
3956
|
|
|
@@ -4197,8 +4219,15 @@ to the element that opened it. \`Dialog\` does this, and so does \`Drawer\` unle
|
|
|
4197
4219
|
you set \`modal="false"\`. The page behind a modal \`Dialog\` or \`Drawer\` does not
|
|
4198
4220
|
scroll while it is open.
|
|
4199
4221
|
|
|
4200
|
-
\`Popover\`
|
|
4201
|
-
panel,
|
|
4222
|
+
Opening a \`Popover\` moves focus to the first control in its panel, or to the
|
|
4223
|
+
panel where it holds none, and closing it from inside gives focus back to the
|
|
4224
|
+
trigger. It does not trap focus unless you set \`modal\`, which keeps \`Tab\` in the
|
|
4225
|
+
panel until it closes. When focus moves out of its trigger and its panel, the
|
|
4226
|
+
popover closes.
|
|
4227
|
+
|
|
4228
|
+
Press F8 to move focus to the \`Toast\` stack, and press it again to go back.
|
|
4229
|
+
Set \`hotkey\` on the stack to use another key. The stack's name says which key
|
|
4230
|
+
it is.
|
|
4202
4231
|
|
|
4203
4232
|
The fields with a panel behave the same way:
|
|
4204
4233
|
|
|
@@ -4207,10 +4236,18 @@ The fields with a panel behave the same way:
|
|
|
4207
4236
|
leaves the field, and \`Escape\` returns focus to the field.
|
|
4208
4237
|
- Opening one of those panels from its trigger, or with \`ArrowDown\`, moves
|
|
4209
4238
|
focus into the panel.
|
|
4239
|
+
- Inside one of those panels, \`Tab\` moves between the panel's controls and
|
|
4240
|
+
does not leave the panel.
|
|
4210
4241
|
|
|
4211
4242
|
**A tooltip never takes focus.** A tooltip only describes a control, so it
|
|
4212
4243
|
cannot contain a button. For something with a button in it, use a \`Popover\`.
|
|
4213
4244
|
|
|
4245
|
+
A tooltip describes its trigger by itself, whether it wraps the trigger or
|
|
4246
|
+
names it with \`for\`. A Helix trigger is described as soon as it has rendered.
|
|
4247
|
+
A plain element in your markup is described the first time a reader points at
|
|
4248
|
+
it or focuses it, so the link is never written into markup your server sent.
|
|
4249
|
+
Write \`aria-describedby\` yourself to have the link in the server's markup.
|
|
4250
|
+
|
|
4214
4251
|
## Keep an overlay open
|
|
4215
4252
|
|
|
4216
4253
|
An overlay sends \`helix-before-close\` before it closes. Cancel the event to keep
|
|
@@ -4234,6 +4271,20 @@ on the \`overlay\` and \`display\` properties, which allows an exit animation on
|
|
|
4234
4271
|
element the browser is about to remove from the top layer. Every overlay
|
|
4235
4272
|
responds to \`prefers-reduced-motion\`.
|
|
4236
4273
|
|
|
4274
|
+
\`Dialog\` and \`Drawer\` also say where they are in the journey:
|
|
4275
|
+
\`:state(entering)\` holds from the moment they open until their entrance has
|
|
4276
|
+
finished, and \`:state(exiting)\` from the moment they close until their exit has
|
|
4277
|
+
finished. Select on them to draw an entrance or an exit of your own.
|
|
4278
|
+
|
|
4279
|
+
## Swiping an overlay away
|
|
4280
|
+
|
|
4281
|
+
A touch or a pen swipes a \`Drawer\` toward the edge it came from, and a \`Toast\`
|
|
4282
|
+
message toward the end of the line. A swipe past halfway, or a quick one, closes
|
|
4283
|
+
it through the same cancelable request as its close control. A \`Drawer\` with
|
|
4284
|
+
\`snap-points\` comes to rest at the nearest point, such as half open. In a
|
|
4285
|
+
\`Lightbox\`, a swipe across the viewer shows the next or the previous item. A
|
|
4286
|
+
mouse never swipes, because dragging with a mouse selects text.
|
|
4287
|
+
|
|
4237
4288
|
## Choose an overlay
|
|
4238
4289
|
|
|
4239
4290
|
| Component | Use it for |
|
|
@@ -4643,6 +4694,30 @@ loading state, no pressed state, and no \`type="submit"\` handling.
|
|
|
4643
4694
|
navigation, where an underline on every row would distract. If a link opens a
|
|
4644
4695
|
new tab or window, say so in the link text, so it does not surprise your users.
|
|
4645
4696
|
|
|
4697
|
+
## Navigation items
|
|
4698
|
+
|
|
4699
|
+
\`\`\`html
|
|
4700
|
+
<helix-navigation label="Sections">
|
|
4701
|
+
<a
|
|
4702
|
+
aria-current="page"
|
|
4703
|
+
href="/guide"
|
|
4704
|
+
>Guide</a>
|
|
4705
|
+
<a href="/api">API</a>
|
|
4706
|
+
</helix-navigation>
|
|
4707
|
+
<button data-navigation-item>Menu</button>
|
|
4708
|
+
\`\`\`
|
|
4709
|
+
|
|
4710
|
+
A link inside \`helix-navigation\` is styled by the page's stylesheet, because the
|
|
4711
|
+
page's styles reach a slotted link before the component's do.
|
|
4712
|
+
\`data-navigation-item\` gives the same look to an element outside a navigation
|
|
4713
|
+
bar. Two custom properties set the text color:
|
|
4714
|
+
|
|
4715
|
+
- \`--navigation-item-color\` colors every destination except the current one.
|
|
4716
|
+
- \`--navigation-item-current-color\` colors the destination marked
|
|
4717
|
+
\`aria-current="page"\`.
|
|
4718
|
+
|
|
4719
|
+
Set them on \`helix-navigation\` or on any element that contains it.
|
|
4720
|
+
|
|
4646
4721
|
## Surfaces and layout
|
|
4647
4722
|
|
|
4648
4723
|
\`\`\`html
|
|
@@ -5063,6 +5138,15 @@ In a source pane, Tab inserts two spaces. Shift+Tab moves focus back, and
|
|
|
5063
5138
|
Escape then Tab moves it forward. The field's description says this to a
|
|
5064
5139
|
screen reader.
|
|
5065
5140
|
|
|
5141
|
+
Each request has a notification once it is applied: \`helix-edit\` after
|
|
5142
|
+
\`helix-before-edit\`, \`helix-split\` after \`helix-before-split\`, and
|
|
5143
|
+
\`helix-panel-resize\` after \`helix-before-panel-resize\`. Listen for these to
|
|
5144
|
+
store the arrangement or the source.
|
|
5145
|
+
|
|
5146
|
+
Set \`controls\` on \`helix-sandbox-terminal\` for a clear button and a level
|
|
5147
|
+
filter above the log. Without them, \`clear()\` empties the log, and \`level\`
|
|
5148
|
+
hides the quieter lines.
|
|
5149
|
+
|
|
5066
5150
|
## The frame document
|
|
5067
5151
|
|
|
5068
5152
|
\`helix-sandbox-preview\` loads \`src\` into a sandboxed frame. You provide that
|
|
@@ -5085,9 +5169,13 @@ its own frame, and only from an opaque origin, so the frame keeps the sandbox
|
|
|
5085
5169
|
it was given. The types are exported from \`@fusion.dev/helix/sandbox\` as
|
|
5086
5170
|
\`PreviewMessage\` and its members.
|
|
5087
5171
|
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5172
|
+
\`servePreview\` from \`@fusion.dev/helix/sandbox\` is that protocol, written for
|
|
5173
|
+
you. Call it once in the frame document, after your elements are defined. It
|
|
5174
|
+
writes each render into \`#preview-root\`, runs the example's scripts, relays
|
|
5175
|
+
its console, reports its height and its presses, and adds the rules for the
|
|
5176
|
+
four layouts. A frame follows. \`/helix.css\` is the stylesheet from
|
|
5177
|
+
\`@fusion.dev/helix-styles\`, and \`/frame.js\` is a classic script you bundle,
|
|
5178
|
+
for the reason under "How the preview is isolated":
|
|
5091
5179
|
|
|
5092
5180
|
\`\`\`html
|
|
5093
5181
|
<!doctype html>
|
|
@@ -5095,21 +5183,24 @@ registers your elements, for the reason under "How the preview is isolated".
|
|
|
5095
5183
|
href="/helix.css"
|
|
5096
5184
|
rel="stylesheet"
|
|
5097
5185
|
>
|
|
5186
|
+
<div id="preview-root"></div>
|
|
5098
5187
|
<script
|
|
5099
5188
|
defer
|
|
5100
|
-
src="/
|
|
5189
|
+
src="/frame.js"
|
|
5101
5190
|
></script>
|
|
5102
|
-
<style id="example-styles"></style>
|
|
5103
|
-
<script defer>
|
|
5104
|
-
addEventListener('message', ({ data }) => {
|
|
5105
|
-
if (data?.type !== 'helix-preview-render') return
|
|
5106
|
-
document.getElementById('example-styles').textContent = data.styles
|
|
5107
|
-
document.body.innerHTML = data.source
|
|
5108
|
-
})
|
|
5109
|
-
parent.postMessage({ type: 'helix-preview-ready' }, '*')
|
|
5110
|
-
</script>
|
|
5111
5191
|
\`\`\`
|
|
5112
5192
|
|
|
5193
|
+
\`\`\`ts
|
|
5194
|
+
// frame.ts, bundled to /frame.js as a classic script
|
|
5195
|
+
import '@fusion.dev/helix' // registers every family, because an example can use any of them
|
|
5196
|
+
import { servePreview } from '@fusion.dev/helix/sandbox'
|
|
5197
|
+
|
|
5198
|
+
servePreview()
|
|
5199
|
+
\`\`\`
|
|
5200
|
+
|
|
5201
|
+
Pass \`onReplace\` to take down what an example mounted before the next one
|
|
5202
|
+
replaces it, and \`onRender\` to act after each render, such as mounting a map.
|
|
5203
|
+
|
|
5113
5204
|
## Console output from the example
|
|
5114
5205
|
|
|
5115
5206
|
Logs from the example appear in the console panel. Logs from the page around it
|