@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.
@@ -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
- **27 of the 98 headless families interpolate another family's tag**, across 20 distinct children.
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\` | 147,394 | 45,659 | 39,405 |
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\` | 146,947 | 45,293 | 39,172 | The element base class, mixins, decorators, and floating positioning. |
3581
- | \`@fusion.dev/helix-headless\` | 833,065 | 218,034 | 167,434 | Every headless family. The barrel entry includes all of them. |
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,349,191 | 315,452 | 227,193 | Every styled family. |
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\` | 30,786 | 4,465 | 3,884 | The base layer. It styles markup Helix does not render, and it works with no JavaScript. |
3599
- | \`elements.css\` | 8,807 | 1,488 | 1,318 | Hides each element until its definition loads. It is generated from the tags in \`@fusion.dev/helix\`. |
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 16,274 bytes gzipped alone, and it adds 2,322 to a page that already has Helix. The shared runtime is 86 percent of the first component, and the component itself is 14 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.
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 10,625 bytes gzipped alone, and the largest is \`data-table\` at 54,367. Every family together is 315,452.
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 218,034 bytes gzipped, whatever else the page imports. That is 13 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.
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 15,324 bytes gzipped alone.
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** | 52,405 | 14,962 | 13,154 |
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** | 57,661 | 16,224 | 14,282 |
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** | 48,373 | 14,225 | 12,495 |
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** | 61,642 | 16,891 | 14,906 |
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** | 54,591 | 15,726 | 13,799 |
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** | 54,198 | 15,497 | 13,584 |
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** | 72,456 | 23,199 | 20,502 |
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 6,231 bytes gzipped. 15 of 27 peer measurements are smaller than the Helix row.
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\` | 44,531 | 13,582 | 11,941 | 4,240 | 1,093 | 965 |
3707
- | \`announcement\` | 40,486 | 12,371 | 10,871 | 1,633 | 411 | 327 |
3708
- | \`app-header\` | 37,144 | 11,124 | 9,797 | 1,800 | 423 | 376 |
3709
- | \`area-chart\` | 84,922 | 27,615 | 24,332 | 12,158 | 3,566 | 3,076 |
3710
- | \`avatar\` | 39,247 | 11,727 | 10,328 | 3,928 | 1,078 | 898 |
3711
- | \`badge\` | 35,973 | 10,839 | 9,528 | 1,163 | 286 | 239 |
3712
- | \`bar-chart\` | 87,483 | 28,346 | 24,948 | 14,313 | 4,165 | 3,520 |
3713
- | \`blockquote\` | 36,125 | 10,913 | 9,590 | 912 | 215 | 232 |
3714
- | \`breadcrumbs\` | 38,342 | 11,545 | 10,147 | 2,248 | 526 | 490 |
3715
- | \`button\` | 46,146 | 13,778 | 12,078 | 3,934 | 981 | 779 |
3716
- | \`button-group\` | 35,843 | 10,745 | 9,443 | 661 | 128 | 127 |
3717
- | \`callout\` | 38,540 | 11,805 | 10,378 | 1,132 | 292 | 275 |
3718
- | \`canvas\` | 97,775 | 28,702 | 25,080 | 50,696 | 15,190 | 12,742 |
3719
- | \`card\` | 35,877 | 10,756 | 9,453 | 694 | 138 | 159 |
3720
- | \`carousel\` | 48,862 | 14,558 | 12,859 | 12,339 | 3,052 | 2,586 |
3721
- | \`chat\` | 63,648 | 19,423 | 17,122 | 18,372 | 5,274 | 4,374 |
3722
- | \`checkbox\` | 51,033 | 14,772 | 13,004 | 2,870 | 730 | 530 |
3723
- | \`checkbox-group\` | 54,983 | 15,722 | 13,809 | 6,298 | 1,561 | 1,189 |
3724
- | \`code\` | 34,462 | 10,329 | 9,052 | 451 | 78 | 66 |
3725
- | \`code-block\` | 91,328 | 28,695 | 25,278 | 20,194 | 5,201 | 4,342 |
3726
- | \`color-input\` | 113,740 | 33,688 | 29,591 | 30,723 | 7,328 | 6,007 |
3727
- | \`color-picker\` | 77,625 | 22,365 | 19,720 | 23,960 | 6,012 | 4,933 |
3728
- | \`combobox\` | 110,175 | 32,674 | 28,735 | 27,570 | 6,721 | 5,437 |
3729
- | \`command\` | 77,258 | 21,751 | 19,099 | 22,515 | 5,705 | 4,731 |
3730
- | \`copy-button\` | 85,373 | 26,991 | 23,792 | 14,235 | 3,495 | 2,911 |
3731
- | \`data-table\` | 160,226 | 46,170 | 39,965 | 73,874 | 18,970 | 15,490 |
3732
- | \`date-input\` | 107,976 | 31,846 | 28,112 | 24,131 | 6,002 | 4,918 |
3733
- | \`date-picker\` | 55,612 | 16,519 | 14,611 | 12,474 | 3,302 | 2,786 |
3734
- | \`description-list\` | 35,946 | 10,698 | 9,382 | 1,132 | 189 | 137 |
3735
- | \`dialog\` | 43,992 | 13,200 | 11,608 | 3,984 | 1,123 | 931 |
3736
- | \`divider\` | 36,193 | 10,944 | 9,595 | 981 | 222 | 228 |
3737
- | \`donut-chart\` | 82,994 | 26,781 | 23,563 | 11,658 | 3,272 | 2,857 |
3738
- | \`drawer\` | 42,522 | 12,827 | 11,244 | 2,805 | 757 | 618 |
3739
- | \`drilldown\` | 50,555 | 15,348 | 13,508 | 6,373 | 1,581 | 1,291 |
3740
- | \`empty\` | 36,631 | 11,057 | 9,703 | 956 | 225 | 155 |
3741
- | \`file-input\` | 57,808 | 17,236 | 15,191 | 7,749 | 2,238 | 1,839 |
3742
- | \`filter-input\` | 117,407 | 34,721 | 30,452 | 30,511 | 7,397 | 6,060 |
3743
- | \`format-date\` | 40,640 | 12,232 | 10,797 | 3,377 | 828 | 692 |
3744
- | \`graph\` | 68,708 | 20,592 | 18,136 | 14,807 | 4,455 | 3,798 |
3745
- | \`heatmap\` | 86,523 | 27,639 | 24,240 | 12,260 | 3,220 | 2,671 |
3746
- | \`icon\` | 91,862 | 29,593 | 24,502 | 54,441 | 18,378 | 14,882 |
3747
- | \`icon-button\` | 46,545 | 13,805 | 12,130 | 4,333 | 1,026 | 867 |
3748
- | \`image\` | 38,130 | 11,314 | 9,951 | 3,269 | 814 | 659 |
3749
- | \`input\` | 56,582 | 16,890 | 14,728 | 7,173 | 2,187 | 1,677 |
3750
- | \`kbd\` | 37,867 | 11,557 | 10,155 | 3,046 | 944 | 718 |
3751
- | \`legend\` | 40,520 | 12,217 | 10,753 | 1,236 | 321 | 295 |
3752
- | \`lightbox\` | 45,844 | 13,576 | 11,891 | 5,077 | 1,309 | 1,118 |
3753
- | \`line-chart\` | 85,212 | 27,603 | 24,422 | 12,296 | 3,456 | 2,971 |
3754
- | \`list\` | 36,939 | 10,945 | 9,627 | 1,766 | 336 | 329 |
3755
- | \`listbox\` | 66,528 | 19,325 | 17,038 | 14,139 | 3,691 | 3,035 |
3756
- | \`loader\` | 36,083 | 10,861 | 9,521 | 900 | 227 | 240 |
3757
- | \`map\` | 88,696 | 24,546 | 21,300 | 37,987 | 9,713 | 7,564 |
3758
- | \`megamenu\` | 67,375 | 21,873 | 19,259 | 5,166 | 1,282 | 1,024 |
3759
- | \`menu\` | 82,759 | 26,552 | 23,307 | 10,756 | 2,601 | 2,146 |
3760
- | \`meter\` | 39,466 | 11,802 | 10,380 | 4,291 | 1,113 | 939 |
3761
- | \`navigation\` | 40,361 | 12,268 | 10,700 | 1,587 | 356 | 265 |
3762
- | \`notifications\` | 57,176 | 16,480 | 14,524 | 13,049 | 3,035 | 2,600 |
3763
- | \`number-input\` | 58,602 | 17,009 | 14,994 | 9,198 | 2,335 | 1,925 |
3764
- | \`object-inspector\` | 101,188 | 31,909 | 28,027 | 23,851 | 6,367 | 5,237 |
3765
- | \`option\` | 38,177 | 11,313 | 9,938 | 3,000 | 597 | 472 |
3766
- | \`outline\` | 41,276 | 12,620 | 11,097 | 4,703 | 1,317 | 1,096 |
3767
- | \`pagination\` | 115,172 | 34,200 | 29,842 | 36,108 | 8,978 | 7,303 |
3768
- | \`pin-input\` | 53,468 | 15,598 | 13,735 | 5,546 | 1,588 | 1,250 |
3769
- | \`popover\` | 67,088 | 21,955 | 19,298 | 2,360 | 546 | 437 |
3770
- | \`progress\` | 37,468 | 11,283 | 9,925 | 2,293 | 599 | 516 |
3771
- | \`qr-code\` | 48,159 | 15,300 | 13,444 | 13,372 | 4,976 | 4,151 |
3772
- | \`quote\` | 35,366 | 10,620 | 9,333 | 552 | 137 | 116 |
3773
- | \`radio\` | 53,348 | 15,393 | 13,602 | 3,454 | 859 | 704 |
3774
- | \`rating\` | 57,759 | 17,167 | 15,141 | 7,025 | 1,930 | 1,642 |
3775
- | \`scatter-chart\` | 84,344 | 27,236 | 23,963 | 12,438 | 3,562 | 3,042 |
3776
- | \`scroll-area\` | 37,609 | 11,305 | 9,932 | 2,743 | 716 | 619 |
3777
- | \`select\` | 99,650 | 30,319 | 26,661 | 20,882 | 5,227 | 4,248 |
3778
- | \`skeleton\` | 35,927 | 10,769 | 9,479 | 744 | 154 | 156 |
3779
- | \`skip-link\` | 36,528 | 11,065 | 9,725 | 1,562 | 459 | 356 |
3780
- | \`slider\` | 54,718 | 15,853 | 13,964 | 6,551 | 1,688 | 1,378 |
3781
- | \`sparkline\` | 42,823 | 13,199 | 11,635 | 2,387 | 776 | 634 |
3782
- | \`speed-dial\` | 70,296 | 23,092 | 20,399 | 4,222 | 981 | 741 |
3783
- | \`splitter\` | 48,695 | 14,346 | 12,659 | 10,974 | 2,631 | 2,364 |
3784
- | \`stat\` | 36,680 | 10,934 | 9,626 | 1,498 | 323 | 267 |
3785
- | \`steps\` | 52,437 | 15,470 | 13,601 | 7,665 | 1,866 | 1,437 |
3786
- | \`switch\` | 50,222 | 14,655 | 12,858 | 1,658 | 440 | 340 |
3787
- | \`table\` | 55,545 | 16,720 | 14,777 | 14,836 | 4,124 | 3,515 |
3788
- | \`tabs\` | 47,579 | 14,153 | 12,437 | 4,025 | 831 | 670 |
3789
- | \`tag\` | 39,281 | 11,904 | 10,482 | 1,502 | 355 | 270 |
3790
- | \`textarea\` | 52,411 | 15,190 | 13,395 | 4,004 | 1,010 | 798 |
3791
- | \`time-input\` | 122,739 | 35,784 | 31,347 | 34,903 | 8,541 | 7,113 |
3792
- | \`time-picker\` | 77,815 | 22,421 | 19,721 | 24,273 | 6,323 | 5,284 |
3793
- | \`timeline\` | 38,338 | 11,513 | 10,124 | 2,239 | 492 | 462 |
3794
- | \`toast\` | 46,209 | 13,943 | 12,268 | 6,631 | 1,725 | 1,325 |
3795
- | \`toggle\` | 55,270 | 15,967 | 14,097 | 3,859 | 918 | 828 |
3796
- | \`toolbar\` | 41,802 | 12,830 | 11,234 | 4,134 | 1,227 | 968 |
3797
- | \`tooltip\` | 69,378 | 22,430 | 19,869 | 7,373 | 1,948 | 1,646 |
3798
- | \`tour\` | 81,985 | 25,759 | 22,618 | 12,789 | 3,163 | 2,598 |
3799
- | \`tree\` | 53,094 | 15,962 | 14,019 | 8,342 | 2,132 | 1,862 |
3800
- | \`trend\` | 37,851 | 11,482 | 10,080 | 2,134 | 536 | 482 |
3801
- | \`video\` | 117,688 | 35,512 | 31,035 | 41,045 | 10,341 | 8,533 |
3802
- | \`video-playlist\` | 90,918 | 28,242 | 24,787 | 17,517 | 4,073 | 3,420 |
3803
- | \`virtual-list\` | 46,217 | 14,195 | 12,467 | 3,995 | 1,234 | 973 |
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\` | 47,951 | 14,385 | 12,685 | 7,647 | 1,876 | 1,657 |
3812
- | \`announcement\` | 45,249 | 13,413 | 11,773 | 6,380 | 1,478 | 1,291 |
3813
- | \`app-header\` | 41,032 | 12,015 | 10,567 | 5,673 | 1,328 | 1,192 |
3814
- | \`area-chart\` | 92,307 | 29,222 | 25,745 | 19,520 | 5,204 | 4,351 |
3815
- | \`aura\` | 64,723 | 19,667 | 17,322 | 26,741 | 8,302 | 7,048 |
3816
- | \`avatar\` | 42,839 | 12,494 | 10,995 | 7,505 | 1,803 | 1,560 |
3817
- | \`badge\` | 39,387 | 11,595 | 10,171 | 4,560 | 1,062 | 908 |
3818
- | \`bar-chart\` | 100,458 | 30,942 | 27,249 | 27,266 | 6,771 | 5,807 |
3819
- | \`blockquote\` | 37,335 | 11,206 | 9,842 | 2,106 | 515 | 440 |
3820
- | \`breadcrumbs\` | 41,907 | 12,315 | 10,809 | 5,802 | 1,315 | 1,112 |
3821
- | \`button\` | 52,405 | 14,962 | 13,154 | 10,174 | 2,133 | 1,775 |
3822
- | \`button-group\` | 37,519 | 11,123 | 9,761 | 2,320 | 525 | 423 |
3823
- | \`callout\` | 40,626 | 12,341 | 10,828 | 3,201 | 822 | 688 |
3824
- | \`canvas\` | 118,080 | 32,428 | 28,262 | 70,990 | 18,956 | 15,838 |
3825
- | \`card\` | 39,179 | 11,594 | 10,187 | 3,984 | 993 | 900 |
3826
- | \`carousel\` | 59,803 | 16,343 | 14,501 | 23,269 | 4,923 | 4,179 |
3827
- | \`chat\` | 77,805 | 21,908 | 19,228 | 32,518 | 7,775 | 6,583 |
3828
- | \`checkbox\` | 57,661 | 16,224 | 14,282 | 9,480 | 2,165 | 1,855 |
3829
- | \`checkbox-group\` | 57,264 | 16,323 | 14,303 | 8,565 | 2,104 | 1,649 |
3830
- | \`code\` | 35,539 | 10,625 | 9,315 | 1,511 | 382 | 346 |
3831
- | \`code-block\` | 108,555 | 31,394 | 27,689 | 37,406 | 7,961 | 6,698 |
3832
- | \`color-input\` | 146,235 | 38,701 | 34,055 | 63,200 | 12,344 | 10,528 |
3833
- | \`color-picker\` | 104,421 | 26,675 | 23,558 | 50,744 | 10,385 | 8,771 |
3834
- | \`combobox\` | 125,460 | 35,408 | 31,146 | 42,836 | 9,441 | 7,779 |
3835
- | \`command\` | 88,011 | 23,835 | 20,911 | 33,255 | 7,793 | 6,494 |
3836
- | \`copy-button\` | 96,160 | 28,742 | 25,364 | 25,008 | 5,300 | 4,460 |
3837
- | \`data-table\` | 201,788 | 54,367 | 45,967 | 115,173 | 27,068 | 21,428 |
3838
- | \`date-input\` | 124,423 | 34,929 | 30,753 | 40,562 | 9,080 | 7,575 |
3839
- | \`date-picker\` | 61,514 | 17,671 | 15,668 | 18,358 | 4,490 | 3,781 |
3840
- | \`description-list\` | 38,324 | 11,260 | 9,897 | 3,503 | 770 | 639 |
3841
- | \`dialog\` | 48,373 | 14,225 | 12,495 | 8,346 | 2,085 | 1,844 |
3842
- | \`divider\` | 38,349 | 11,463 | 10,044 | 3,120 | 759 | 684 |
3843
- | \`donut-chart\` | 92,273 | 28,697 | 25,243 | 20,913 | 5,308 | 4,552 |
3844
- | \`drawer\` | 47,214 | 13,889 | 12,230 | 7,478 | 1,807 | 1,603 |
3845
- | \`drilldown\` | 55,252 | 16,372 | 14,402 | 11,057 | 2,563 | 2,233 |
3846
- | \`empty\` | 38,071 | 11,496 | 10,044 | 2,380 | 680 | 571 |
3847
- | \`file-input\` | 67,640 | 19,220 | 16,970 | 17,570 | 4,210 | 3,572 |
3848
- | \`filter-input\` | 144,090 | 39,010 | 34,131 | 57,182 | 11,683 | 9,635 |
3849
- | \`flex\` | 36,900 | 10,980 | 9,665 | 2,078 | 457 | 439 |
3850
- | \`format-date\` | 41,288 | 12,373 | 10,931 | 4,007 | 990 | 837 |
3851
- | \`graph\` | 83,551 | 23,062 | 20,255 | 29,630 | 7,000 | 5,989 |
3852
- | \`grid\` | 38,354 | 11,548 | 10,200 | 3,533 | 1,030 | 906 |
3853
- | \`heatmap\` | 93,320 | 29,067 | 25,476 | 19,036 | 4,674 | 3,974 |
3854
- | \`icon\` | 92,568 | 29,773 | 24,662 | 55,130 | 18,562 | 14,930 |
3855
- | \`icon-button\` | 53,347 | 14,875 | 13,100 | 11,117 | 2,064 | 1,794 |
3856
- | \`image\` | 39,824 | 11,785 | 10,344 | 4,945 | 1,293 | 1,039 |
3857
- | \`input\` | 61,246 | 17,959 | 15,650 | 11,826 | 3,284 | 2,612 |
3858
- | \`kbd\` | 39,279 | 12,016 | 10,550 | 4,443 | 1,386 | 1,204 |
3859
- | \`legend\` | 45,375 | 13,337 | 11,678 | 5,946 | 1,422 | 1,189 |
3860
- | \`lightbox\` | 48,856 | 14,326 | 12,602 | 8,073 | 1,990 | 1,755 |
3861
- | \`line-chart\` | 95,156 | 29,650 | 26,141 | 22,221 | 5,557 | 4,788 |
3862
- | \`list\` | 41,161 | 11,917 | 10,489 | 5,979 | 1,337 | 1,217 |
3863
- | \`listbox\` | 71,045 | 20,352 | 17,918 | 18,646 | 4,741 | 4,008 |
3864
- | \`loader\` | 39,249 | 11,628 | 10,226 | 4,051 | 1,002 | 935 |
3865
- | \`map\` | 125,745 | 29,962 | 26,027 | 75,027 | 15,272 | 12,380 |
3866
- | \`megamenu\` | 72,256 | 22,968 | 20,250 | 10,031 | 2,283 | 2,020 |
3867
- | \`menu\` | 90,293 | 28,100 | 24,730 | 18,270 | 4,214 | 3,586 |
3868
- | \`meter\` | 44,944 | 12,921 | 11,402 | 9,751 | 2,216 | 2,011 |
3869
- | \`navigation\` | 42,012 | 12,721 | 11,159 | 3,221 | 853 | 727 |
3870
- | \`notifications\` | 70,289 | 18,854 | 16,681 | 26,155 | 5,478 | 4,713 |
3871
- | \`number-input\` | 63,484 | 18,135 | 16,046 | 14,064 | 3,450 | 2,892 |
3872
- | \`object-inspector\` | 115,606 | 34,265 | 30,127 | 38,251 | 8,743 | 7,365 |
3873
- | \`option\` | 41,431 | 12,212 | 10,724 | 6,240 | 1,514 | 1,224 |
3874
- | \`orb\` | 46,194 | 14,632 | 12,903 | 8,724 | 3,180 | 2,797 |
3875
- | \`outline\` | 45,016 | 13,393 | 11,774 | 8,426 | 2,070 | 1,864 |
3876
- | \`pagination\` | 133,156 | 37,272 | 32,511 | 54,070 | 12,052 | 9,905 |
3877
- | \`pin-input\` | 56,633 | 16,422 | 14,490 | 8,694 | 2,372 | 1,964 |
3878
- | \`popover\` | 69,759 | 22,630 | 19,856 | 5,013 | 1,233 | 1,032 |
3879
- | \`progress\` | 42,497 | 12,451 | 10,950 | 7,304 | 1,753 | 1,582 |
3880
- | \`qr-code\` | 49,827 | 15,727 | 13,822 | 15,020 | 5,415 | 4,508 |
3881
- | \`quote\` | 36,021 | 10,784 | 9,464 | 1,191 | 310 | 253 |
3882
- | \`radio\` | 61,642 | 16,891 | 14,906 | 11,739 | 2,361 | 1,936 |
3883
- | \`rating\` | 62,070 | 18,418 | 16,250 | 11,320 | 3,107 | 2,653 |
3884
- | \`sandbox\` | 75,289 | 19,932 | 17,597 | 37,267 | 8,230 | 6,967 |
3885
- | \`scatter-chart\` | 92,737 | 29,041 | 25,603 | 20,807 | 5,409 | 4,602 |
3886
- | \`scroll-area\` | 40,757 | 11,954 | 10,480 | 5,874 | 1,374 | 1,131 |
3887
- | \`select\` | 112,503 | 32,698 | 28,696 | 33,721 | 7,651 | 6,284 |
3888
- | \`skeleton\` | 37,735 | 11,283 | 9,898 | 2,535 | 648 | 562 |
3889
- | \`skip-link\` | 37,991 | 11,464 | 10,049 | 3,008 | 872 | 685 |
3890
- | \`slider\` | 65,800 | 17,845 | 15,771 | 17,614 | 3,667 | 3,238 |
3891
- | \`sparkline\` | 46,743 | 14,146 | 12,494 | 6,294 | 1,716 | 1,553 |
3892
- | \`speed-dial\` | 132,863 | 42,937 | 36,467 | 65,068 | 20,630 | 16,586 |
3893
- | \`splitter\` | 54,767 | 15,342 | 13,569 | 17,028 | 3,647 | 3,212 |
3894
- | \`stat\` | 40,105 | 11,640 | 10,261 | 4,916 | 1,070 | 961 |
3895
- | \`steps\` | 66,243 | 17,909 | 15,727 | 21,460 | 4,323 | 3,617 |
3896
- | \`switch\` | 54,591 | 15,726 | 13,799 | 6,010 | 1,518 | 1,356 |
3897
- | \`table\` | 61,309 | 17,888 | 15,730 | 20,596 | 5,314 | 4,492 |
3898
- | \`tabs\` | 54,198 | 15,497 | 13,584 | 10,627 | 2,163 | 1,852 |
3899
- | \`tag\` | 42,632 | 12,773 | 11,210 | 4,838 | 1,239 | 1,112 |
3900
- | \`text\` | 40,822 | 11,755 | 10,289 | 6,004 | 1,304 | 1,035 |
3901
- | \`textarea\` | 55,847 | 16,040 | 14,071 | 7,423 | 1,859 | 1,566 |
3902
- | \`time-input\` | 143,685 | 39,361 | 34,464 | 55,836 | 12,143 | 10,069 |
3903
- | \`time-picker\` | 89,544 | 24,646 | 21,632 | 35,992 | 8,549 | 7,139 |
3904
- | \`timeline\` | 41,650 | 12,245 | 10,769 | 5,541 | 1,256 | 1,061 |
3905
- | \`toast\` | 54,188 | 15,651 | 13,762 | 14,595 | 3,373 | 2,922 |
3906
- | \`toggle\` | 60,461 | 17,172 | 15,120 | 9,041 | 2,121 | 1,774 |
3907
- | \`toolbar\` | 43,094 | 13,127 | 11,519 | 5,409 | 1,531 | 1,281 |
3908
- | \`tooltip\` | 72,456 | 23,199 | 20,502 | 10,433 | 2,644 | 2,223 |
3909
- | \`tour\` | 91,772 | 27,402 | 24,147 | 22,560 | 4,915 | 4,092 |
3910
- | \`tree\` | 58,944 | 17,328 | 15,238 | 14,181 | 3,488 | 3,071 |
3911
- | \`trend\` | 39,374 | 11,903 | 10,444 | 3,639 | 961 | 780 |
3912
- | \`video\` | 135,406 | 38,723 | 33,819 | 58,745 | 13,560 | 11,359 |
3913
- | \`video-playlist\` | 103,336 | 30,436 | 26,772 | 29,918 | 6,351 | 5,376 |
3914
- | \`virtual-list\` | 47,010 | 14,410 | 12,652 | 4,770 | 1,433 | 1,136 |
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,326,497 | 181 | 307,309 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\` |
3927
- | \`@fusion.dev/helix-headless\` | 14,918,832 | 511 | 1,228,029 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`uqr\` |
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\` | 106,097 | 6 | 0 | none |
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\` | 15,761,419 | 877 | 378,696 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\` |
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\` does not trap focus. When focus moves out of its trigger and its
4201
- panel, the popover closes.
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
- A minimal frame follows. \`/helix.css\` is the stylesheet from
5089
- \`@fusion.dev/helix-styles\`, and \`/elements.js\` is a classic script that
5090
- registers your elements, for the reason under "How the preview is isolated".
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="/elements.js"
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