@fusion.dev/helix-docs 0.186.1 → 0.188.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -479,6 +479,48 @@ TypeScript declares custom elements this way. The interface merges from your
479
479
  source, and a generated file cannot name a class that is not in the same
480
480
  program.
481
481
 
482
+ ## Check your components with \`helix component\`
483
+
484
+ \`helix component\` checks the components you write on Helix's base classes. Name
485
+ the folders that hold them in \`helix.json\` at your project's root:
486
+
487
+ \`\`\`json
488
+ { "tiers": ["src/components"] }
489
+ \`\`\`
490
+
491
+ Then run it:
492
+
493
+ \`\`\`sh
494
+ helix component audit
495
+ helix component check
496
+ \`\`\`
497
+
498
+ \`audit\` prints each rule and what it found, and \`check\` prints nothing when
499
+ there is nothing to report. Both exit 1 on a finding, and \`--json\` prints the
500
+ findings as data. The rules check what your components document and write:
501
+
502
+ | Rule | What it checks |
503
+ |---|---|
504
+ | \`tier\` | A component built on a headless one that renders children sets \`tier\`, so its children are yours and not Helix's |
505
+ | \`registered\` | Every element a component's base renders is registered under the prefix it sets |
506
+ | \`composed\` | A module that renders one of your elements, by its base or in its own template, imports the module that registers it |
507
+ | \`slots\` | A \`@slot\` you document is one the Helix class under it takes, or one your template renders |
508
+ | \`exportparts\` | A \`::part()\` written at your elements or at Helix's names a part that element publishes |
509
+ | \`words\` | A component with \`static words\` declares its English defaults \`@words\`, and joins no word into a sentence outside the message |
510
+ | \`dispatched\` | An event your component sends by name, with \`new CustomEvent\` or \`new Event\`, is documented with \`@event\` |
511
+ | \`parts\` | A \`@csspart\` you document is rendered, and a \`part\` you render is documented |
512
+ | \`states\` | A custom state you record is documented with \`@cssstate\`, and a documented one is recorded |
513
+ | \`hooks\` | A \`@cssproperty\` you document is read, and one you read is documented |
514
+ | \`restated\` | A part, a slot, or an event is declared once |
515
+ | \`reflected\` | A property that reflects has no default, so a host carries no attribute nobody wrote |
516
+ | \`reflected-defaults\` | A reflected property writes no attribute on upgrade that a server did not send |
517
+ | \`attribute-names\` | A property that mirrors a platform attribute answers to the platform's spelling |
518
+ | \`constructed\` | No class field reads the element's attributes in its initializer, where a parsed element has none yet |
519
+ | \`observers\` | An observer built once is not torn down by a lifecycle that runs many times |
520
+ | \`leaks\` | A listener on something the element does not own is removed when the element is |
521
+
522
+ \`--only parts,states\` runs a few of them.
523
+
482
524
  ## What the headless tier handles for you
483
525
 
484
526
  ### Tree-shaking
@@ -918,15 +960,20 @@ type such as \`ButtonEmphasis\` sends you somewhere else to look.
918
960
  ## Markdown and JSON for each component family
919
961
 
920
962
  \`\`\`
921
- /components/<family>.md
922
- /components/<family>.json
963
+ https://fusion.dev/helix/components/<family>.md
964
+ https://fusion.dev/helix/components/<family>.json
923
965
  \`\`\`
924
966
 
925
- These are static files. The \`.md\` file has:
967
+ These are static files, one pair for each family. Read the family you are
968
+ writing instead of the whole manifest. The manifest holds every family in one
969
+ file, and it is several megabytes.
970
+
971
+ The \`.md\` file has:
926
972
 
927
973
  - the family's metadata
974
+ - a Usage block with the import lines for the family
928
975
  - every element's description and API tables
929
- - the examples
976
+ - the examples, each with the import lines it needs
930
977
 
931
978
  The HTML page leaves the examples out on purpose. The page lists what a
932
979
  component can do, and the sandbox beside it shows what the component looks
@@ -934,24 +981,49 @@ like. Keeping pictures out of the reference keeps it the one place you can trust
934
981
  to be complete. An agent cannot use the sandbox, and it reads an example as
935
982
  text, so the \`.md\` file includes the examples.
936
983
 
937
- The \`.json\` file has the same family as structured data.
984
+ Each example the visual check pictures links its pictures under it: wide at
985
+ 640 pixels, narrow at 390, and dark at 640, taken in the environment that
986
+ \`examples.json\` records. Compare a render of your own to them.
938
987
 
939
- ## Rules the build checks
988
+ The \`.json\` file has the same family as structured data, and three fields an
989
+ agent uses most:
940
990
 
941
- Code that looks right can still fail these checks:
991
+ - \`usage\`, the import block for each tier
992
+ - \`imports\` on each example, an import line for every element it writes
993
+ - \`specifier\` and \`words\` on each element: the line that registers it, and the
994
+ properties \`registerWords\` translates
942
995
 
943
- | Rule | Check |
996
+ ## Import every family you write
997
+
998
+ Each tag needs its family's entry imported. A family registers its own parts,
999
+ so \`@fusion.dev/helix/tabs\` registers Tab and Tab Panel. A family does not
1000
+ register another family's elements that you write inside it:
1001
+
1002
+ \`\`\`js
1003
+ import '@fusion.dev/helix/select'
1004
+ import '@fusion.dev/helix/option'
1005
+ \`\`\`
1006
+
1007
+ Without the Option import, the options are unknown elements and the Select
1008
+ offers nothing. The same is true
1009
+ of the layout around an example: a Button inside a Flex needs both imports.
1010
+ Copy the import lines above an example together with its markup.
1011
+
1012
+ ## Check the code you wrote
1013
+
1014
+ These checks run on your project, and each one prints JSON with \`--json\`:
1015
+
1016
+ | Command | What it finds |
944
1017
  |---|---|
945
- | A dispatched event must be declared | \`helix component --only events\` |
946
- | A documented part must be rendered | \`helix component\`'s \`parts\` |
947
- | A documented CSS hook must be read | \`helix component --only hooks\` |
948
- | A visual property draws from its axis | \`helix component\`'s \`axes\` |
949
- | A form control styles with \`:disabled\` | \`helix component --only disabled\` |
950
- | A component that animates supports reduced motion | \`helix component --only motion\` |
951
- | No component reads a primitive token | \`helix component\`'s \`tokens\` |
1018
+ | \`helix scan\` | Unknown tags, attributes, values, slots, parts, hooks, React event props, and tokens, a \`--_helix-\` primitive read, \`[disabled]\` on a form control, a selector on an attribute the element never writes back, and a tag whose entry nothing imports, each with its file and line |
1019
+ | \`helix theme audit\` | Every foreground and background pair in your theme that misses its contrast target |
1020
+ | \`initDiagnostics()\` from \`@fusion.dev/helix-diagnostics\` | The same findings on the running page, and what the library reports as it runs, such as an option nobody imported |
952
1021
 
953
- If you generate Helix code, watch the first two rules. Breaking them produces
954
- output that looks like it works and is wrong.
1022
+ \`helix scan\` and \`helix theme audit\` exit 1 when they find an error and 0 when
1023
+ they find none. Run them after you write Helix code, and fix each finding
1024
+ before you finish. \`helix scan --file <path>\` reports one file's findings, and
1025
+ \`helix scan --stdin tsx\` reads a snippet from stdin. Both still read the whole
1026
+ project, so an import in another file counts.
955
1027
 
956
1028
  ## The index
957
1029
 
@@ -979,28 +1051,58 @@ Each family page has a menu beside its title with:
979
1051
  The links send the URL, because the URL stays current. A pasted copy starts to
980
1052
  go stale as soon as you paste it.
981
1053
 
982
- ## Compute a theme with \`helix mcp\`
1054
+ ## The Helix MCP server
983
1055
 
984
1056
  \`\`\`sh
985
- helix mcp
1057
+ helix mcp init --client claude
986
1058
  \`\`\`
987
1059
 
988
- The three sources above are fixed sets. Every tag, token, and example is
989
- published, and an agent can fetch it. None of them has the theme for *your*
990
- brand color. The input is a color, and there are infinitely many colors, so
991
- Helix has to compute the theme when an agent requests it.
1060
+ \`helix mcp\` runs an MCP server over stdio. It answers from the Helix packages
1061
+ your project installs, so every answer is for the version you build with, and
1062
+ each one names that package and version. \`helix mcp init\` adds the server to
1063
+ the file your client reads and keeps every other server in it:
1064
+
1065
+ | Client | File |
1066
+ |---|---|
1067
+ | \`claude\` | \`.mcp.json\` |
1068
+ | \`cursor\` | \`.cursor/mcp.json\` |
1069
+ | \`vscode\` | \`.vscode/mcp.json\` |
992
1070
 
993
- \`helix mcp\` runs an MCP server over stdio with two tools:
1071
+ The server runs \`npx @fusion.dev/helix-cli mcp\`, which is the copy in your
1072
+ project. It has nine tools:
994
1073
 
995
- - \`helix_audit_theme\` measures every foreground against the background it is
996
- painted on. It reports each pair with its ratio and target.
997
- - \`helix_derive_theme\` returns the CSS.
1074
+ | Tool | What it returns |
1075
+ |---|---|
1076
+ | \`helix_find\` | The families that answer a name, an alias, a tag, or a purpose, best first |
1077
+ | \`helix_family\` | One family's tags, properties and their unions, events and their React props, slots, parts, custom properties, words, and import lines |
1078
+ | \`helix_example\` | One example as HTML and TSX, with its stylesheet, the import lines it needs, and links to its pictures |
1079
+ | \`helix_imports\` | The import lines for a list of tags, and the closest tag to any unknown one |
1080
+ | \`helix_tokens\` | The semantic tokens, by a word in the name or description and by category |
1081
+ | \`helix_check\` | The findings \`helix scan\` reports for the files you name, or for a snippet before you write it |
1082
+ | \`helix_check_page\` | The findings the page diagnostics report for each address you name, opened headless, with what the library logged as the page ran |
1083
+ | \`helix_audit_theme\` | Every foreground and background pair a brand color derives to, with its ratio and target |
1084
+ | \`helix_derive_theme\` | The theme's CSS |
1085
+
1086
+ Each result is structured, with an output schema, and the same JSON as text.
1087
+ A name that matches more than one family, such as \`Dropdown\`, returns an error
1088
+ listing each family. The theme tools take the same JSON that a
1089
+ \`helix.theme.json\` file holds.
1090
+
1091
+ Each lookup is also a command, for a script or a person:
1092
+
1093
+ \`\`\`sh
1094
+ helix api find dropdown
1095
+ helix api family select
1096
+ helix api example select
1097
+ helix api imports helix-select helix-option
1098
+ helix api tokens surface --category color
1099
+ \`\`\`
998
1100
 
999
- Both take the same JSON that a \`helix.theme.json\` file holds.
1101
+ \`--json\` prints what the MCP tool returns.
1000
1102
 
1001
- **\`helix mcp\` does not return a palette that fails its own targets**, the same
1002
- as \`helix theme build\`. A failing palette pasted into a stylesheet is worse than
1003
- a warning above it, and an agent does not read warnings.
1103
+ **\`helix_derive_theme\` does not return a palette that fails its own targets**,
1104
+ the same as \`helix theme build\`. A failing palette pasted into a stylesheet is
1105
+ worse than a warning above it, and an agent does not read warnings.
1004
1106
 
1005
1107
  You run \`helix mcp\` yourself, and we do not host it. A server we operated would
1006
1108
  be one more service between you and your own tokens. \`helix mcp\` is a
@@ -1009,17 +1111,12 @@ no network requests.
1009
1111
 
1010
1112
  ## What we do not publish for agents
1011
1113
 
1012
- **\`llms-full.txt\`, or any other whole-library download.** A single file with
1013
- every page goes out of date as soon as anything changes. Each link in \`llms.txt\`
1014
- can be cached on its own and stays current on its own.
1114
+ **\`llms-full.txt\`, or any other whole-library download of the pages.** A single
1115
+ file with every page goes out of date as soon as anything changes. Each link in
1116
+ \`llms.txt\` can be cached on its own and stays current on its own.
1015
1117
 
1016
- The two sources already here cover what such a file would be for. \`llms.txt\` is
1017
- the index, in one request, and each family's \`.md\` file is its document. Fetch
1018
- the families you use.
1019
-
1020
- **A search index.** The site has a search index for people. There is nothing an
1021
- agent can query yet. Reading \`llms.txt\` and the documents it names takes less
1022
- work than learning most search APIs.
1118
+ \`llms.txt\` is the index, in one request, and each family's \`.md\` file is its
1119
+ document. Fetch the families you use, or ask \`helix mcp\`.
1023
1120
  `,
1024
1121
  color: `---
1025
1122
  description: The color roles, why Helix uses OKLCH, and how the engine meets contrast targets.
@@ -4243,7 +4340,7 @@ on its own.
4243
4340
 
4244
4341
  | | Raw | Gzip | Brotli |
4245
4342
  |---|---|---|---|
4246
- | Lit and \`@fusion.dev/helix-core\` | 248,564 | 79,270 | 67,871 |
4343
+ | Lit and \`@fusion.dev/helix-core\` | 248,564 | 79,270 | 67,881 |
4247
4344
 
4248
4345
  ## Whole packages
4249
4346
 
@@ -4254,12 +4351,12 @@ either barrel. The per-component tables show what your page pays.
4254
4351
 
4255
4352
  | Package | Raw | Gzip | Brotli | |
4256
4353
  |---|---|---|---|---|
4257
- | \`@fusion.dev/helix-core\` | 247,773 | 79,121 | 67,606 | The element base class, mixins, decorators, and floating positioning. |
4258
- | \`@fusion.dev/helix-headless\` | 1,337,367 | 373,053 | 279,891 | Every headless family. The barrel entry includes all of them. |
4354
+ | \`@fusion.dev/helix-core\` | 247,773 | 79,121 | 67,595 | The element base class, mixins, decorators, and floating positioning. |
4355
+ | \`@fusion.dev/helix-headless\` | 1,337,367 | 373,053 | 280,098 | Every headless family. The barrel entry includes all of them. |
4259
4356
  | \`@fusion.dev/helix-icons\` | 56,111 | 17,847 | 15,166 | The whole glyph set. |
4260
4357
  | \`@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. |
4261
4358
  | \`fusion_helix_theme_bg.wasm\` | 490,971 | 155,905 | 125,923 | The derivation engine itself, in WebAssembly. The entry above loads it when the engine runs. |
4262
- | \`@fusion.dev/helix\` | 2,015,564 | 520,954 | 371,924 | Every styled family. |
4359
+ | \`@fusion.dev/helix\` | 2,015,564 | 520,954 | 372,055 | Every styled family. |
4263
4360
  | \`lit\` | 15,394 | 6,118 | 5,460 | Lit itself, listed so you can subtract it from every row above. |
4264
4361
 
4265
4362
  ## Stylesheets
@@ -4282,9 +4379,9 @@ shows the whole cost of using the base layer on its own.
4282
4379
 
4283
4380
  **Most of your first component is the shared runtime.** The median styled family is 17,535 bytes gzipped alone, and it adds 3,868 to a page that already has Helix. The shared runtime is 78 percent of the first component, and the component itself is 22 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.
4284
4381
 
4285
- Across the 106 styled components, the smallest is \`code\` at 8,333 bytes gzipped alone, and the largest is \`data-table\` at 66,817. Every family together is 520,954.
4382
+ Across the 106 styled components, the smallest is \`code\` at 8,331 bytes gzipped alone, and the largest is \`data-table\` at 66,817. Every family together is 520,954.
4286
4383
 
4287
- 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 373,053 bytes gzipped, whatever else the page imports. That is 21 times the median family above. All 106 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.
4384
+ No family imports a barrel. The \`barrels\` rule in \`fusion x 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 373,053 bytes gzipped, whatever else the page imports. That is 21 times the median family above. All 106 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.
4288
4385
 
4289
4386
  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,647 bytes gzipped alone.
4290
4387
 
@@ -4298,37 +4395,37 @@ The table has no whole-library row. That row would compare how many components e
4298
4395
 
4299
4396
  | Component | System | Raw | Gzip | Brotli |
4300
4397
  |---|---|---|---|---|
4301
- | \`button\` | **Helix** | 41,612 | 14,007 | 12,463 |
4398
+ | \`button\` | **Helix** | 41,612 | 14,007 | 12,440 |
4302
4399
  | | Carbon | 133,058 | 20,959 | 17,685 |
4303
4400
  | | Material Web | 47,060 | 14,173 | 12,591 |
4304
4401
  | | Shoelace | 62,628 | 18,287 | 15,805 |
4305
4402
  | | Spectrum | 98,792 | 22,045 | 18,674 |
4306
- | \`checkbox\` | **Helix** | 46,865 | 15,190 | 13,511 |
4403
+ | \`checkbox\` | **Helix** | 46,865 | 15,190 | 13,517 |
4307
4404
  | | Carbon | 60,255 | 15,609 | 13,550 |
4308
4405
  | | Material Web | 43,785 | 13,556 | 12,015 |
4309
4406
  | | Shoelace | 47,614 | 15,177 | 13,301 |
4310
4407
  | | Spectrum | 62,492 | 15,437 | 13,481 |
4311
- | \`dialog\` | **Helix** | 43,360 | 14,855 | 13,245 |
4408
+ | \`dialog\` | **Helix** | 43,360 | 14,855 | 13,244 |
4312
4409
  | | Carbon | 510,866 | 67,390 | 39,189 |
4313
4410
  | | Material Web | 34,238 | 11,510 | 10,229 |
4314
4411
  | | Shoelace | 52,754 | 17,698 | 15,554 |
4315
4412
  | | Spectrum | 155,708 | 31,899 | 26,262 |
4316
- | \`radio\` | **Helix** | 50,349 | 15,977 | 14,212 |
4413
+ | \`radio\` | **Helix** | 50,349 | 15,977 | 14,203 |
4317
4414
  | | Carbon | 63,055 | 16,887 | 14,605 |
4318
4415
  | | Material Web | 41,044 | 13,234 | 11,757 |
4319
4416
  | | Shoelace | 34,865 | 12,027 | 10,559 |
4320
4417
  | | Spectrum | 38,685 | 10,660 | 9,370 |
4321
- | \`switch\` | **Helix** | 43,562 | 14,637 | 13,013 |
4418
+ | \`switch\` | **Helix** | 43,562 | 14,638 | 13,007 |
4322
4419
  | | Carbon | 69,423 | 17,127 | 14,764 |
4323
4420
  | | Material Web | 50,155 | 14,577 | 12,935 |
4324
4421
  | | Shoelace | 37,833 | 11,814 | 10,568 |
4325
4422
  | | Spectrum | 62,322 | 15,059 | 13,321 |
4326
- | \`tabs\` | **Helix** | 55,263 | 17,753 | 15,836 |
4423
+ | \`tabs\` | **Helix** | 55,263 | 17,753 | 15,846 |
4327
4424
  | | Carbon | 578,766 | 73,537 | 43,235 |
4328
4425
  | | Material Web | 38,883 | 12,820 | 11,368 |
4329
4426
  | | Shoelace | 54,573 | 17,140 | 15,068 |
4330
4427
  | | Spectrum | 64,875 | 18,298 | 16,283 |
4331
- | \`tooltip\` | **Helix** | 61,420 | 21,833 | 19,384 |
4428
+ | \`tooltip\` | **Helix** | 61,420 | 21,833 | 19,329 |
4332
4429
  | | Carbon | 189,382 | 30,354 | 22,273 |
4333
4430
  | | Material Web | | not shipped | |
4334
4431
  | | Shoelace | 57,412 | 20,220 | 17,933 |
@@ -4380,105 +4477,105 @@ Structure, accessibility, state, and form participation. It has no presentation
4380
4477
 
4381
4478
  | Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
4382
4479
  |---|---|---|---|---|---|---|
4383
- | \`accordion\` | 31,879 | 11,805 | 10,502 | 5,329 | 1,598 | 1,333 |
4384
- | \`announcement\` | 36,692 | 13,313 | 11,874 | 4,682 | 1,425 | 1,119 |
4385
- | \`app-header\` | 32,289 | 11,899 | 10,558 | 5,871 | 1,795 | 1,307 |
4386
- | \`area-chart\` | 90,301 | 31,725 | 28,102 | 14,058 | 4,345 | 3,533 |
4387
- | \`avatar\` | 30,463 | 11,596 | 10,391 | 3,957 | 1,234 | 1,079 |
4388
- | \`badge\` | 27,088 | 10,568 | 9,409 | 2,942 | 919 | 743 |
4389
- | \`bar-chart\` | 94,416 | 32,821 | 29,078 | 18,026 | 5,441 | 4,452 |
4390
- | \`blockquote\` | 24,107 | 9,420 | 8,332 | 2,402 | 913 | 777 |
4391
- | \`breadcrumbs\` | 36,279 | 13,906 | 12,383 | 7,360 | 2,451 | 1,999 |
4392
- | \`button\` | 35,194 | 12,591 | 11,209 | 4,925 | 1,471 | 1,189 |
4393
- | \`button-group\` | 27,640 | 10,382 | 9,203 | 4,928 | 1,516 | 1,200 |
4394
- | \`callout\` | 35,256 | 13,595 | 12,075 | 2,884 | 992 | 755 |
4395
- | \`canvas\` | 108,483 | 34,750 | 30,372 | 68,927 | 20,973 | 17,537 |
4396
- | \`card\` | 23,777 | 9,054 | 8,019 | 2,090 | 655 | 533 |
4397
- | \`carousel\` | 42,748 | 15,234 | 13,597 | 15,006 | 4,215 | 3,340 |
4398
- | \`chat\` | 79,390 | 26,446 | 23,395 | 27,455 | 8,116 | 6,412 |
4399
- | \`checkbox\` | 40,374 | 13,681 | 12,203 | 3,107 | 979 | 623 |
4400
- | \`checkbox-group\` | 47,602 | 15,599 | 13,900 | 8,325 | 2,351 | 1,714 |
4401
- | \`code\` | 20,301 | 8,015 | 7,096 | 138 | 67 | 120 |
4402
- | \`code-block\` | 102,738 | 34,890 | 30,820 | 36,843 | 10,785 | 8,779 |
4403
- | \`color-input\` | 141,792 | 45,087 | 39,379 | 55,136 | 14,334 | 11,686 |
4404
- | \`color-picker\` | 103,415 | 32,966 | 28,879 | 47,256 | 12,743 | 10,363 |
4405
- | \`combobox\` | 132,023 | 41,951 | 36,909 | 35,791 | 9,112 | 7,182 |
4406
- | \`command\` | 99,513 | 31,476 | 27,730 | 30,061 | 8,171 | 6,354 |
4407
- | \`copy-button\` | 80,548 | 27,649 | 24,480 | 18,341 | 4,985 | 3,925 |
4408
- | \`data-table\` | 199,900 | 61,428 | 52,577 | 89,488 | 23,783 | 19,098 |
4409
- | \`date-input\` | 141,223 | 44,512 | 39,162 | 38,229 | 9,447 | 7,544 |
4410
- | \`date-picker\` | 61,360 | 20,936 | 18,732 | 20,347 | 5,579 | 4,413 |
4411
- | \`description-list\` | 22,900 | 8,765 | 7,766 | 1,565 | 525 | 315 |
4412
- | \`dialog\` | 38,247 | 13,598 | 12,121 | 5,837 | 1,753 | 1,282 |
4413
- | \`divider\` | 22,991 | 8,924 | 7,885 | 1,416 | 502 | 332 |
4414
- | \`donut-chart\` | 89,212 | 31,127 | 27,512 | 14,641 | 4,497 | 3,675 |
4415
- | \`drawer\` | 42,892 | 15,123 | 13,459 | 7,698 | 2,295 | 1,801 |
4416
- | \`drilldown\` | 42,756 | 14,941 | 13,297 | 9,710 | 2,724 | 2,185 |
4417
- | \`empty\` | 24,194 | 9,250 | 8,197 | 1,951 | 658 | 524 |
4418
- | \`file-input\` | 57,757 | 20,019 | 17,823 | 13,094 | 4,155 | 3,295 |
4419
- | \`filter-input\` | 97,846 | 32,819 | 29,091 | 21,630 | 6,198 | 4,871 |
4420
- | \`format-date\` | 30,158 | 11,290 | 10,099 | 4,434 | 1,263 | 1,016 |
4421
- | \`graph\` | 74,369 | 24,504 | 21,724 | 21,878 | 6,484 | 5,238 |
4422
- | \`heatmap\` | 98,128 | 33,505 | 29,619 | 18,944 | 5,590 | 4,517 |
4423
- | \`icon\` | 82,157 | 28,050 | 23,960 | 58,304 | 19,661 | 16,198 |
4424
- | \`icon-button\` | 35,305 | 12,620 | 11,241 | 5,034 | 1,512 | 1,210 |
4425
- | \`image\` | 25,504 | 9,480 | 8,414 | 3,824 | 1,152 | 926 |
4426
- | \`input\` | 46,361 | 15,974 | 14,092 | 7,352 | 2,452 | 1,720 |
4427
- | \`isometric-heatmap\` | 102,771 | 34,713 | 30,604 | 23,536 | 6,748 | 5,382 |
4428
- | \`kbd\` | 27,511 | 10,570 | 9,362 | 3,516 | 1,152 | 782 |
4429
- | \`legend\` | 35,184 | 12,935 | 11,492 | 2,957 | 1,019 | 866 |
4430
- | \`lightbox\` | 55,724 | 18,818 | 16,720 | 16,730 | 4,692 | 3,628 |
4431
- | \`line-chart\` | 91,335 | 31,880 | 28,291 | 14,762 | 4,418 | 3,664 |
4432
- | \`list\` | 61,803 | 21,292 | 18,960 | 15,242 | 4,449 | 3,487 |
4433
- | \`listbox\` | 76,711 | 25,427 | 22,454 | 15,565 | 4,585 | 3,539 |
4434
- | \`loader\` | 26,379 | 10,041 | 8,932 | 2,775 | 969 | 755 |
4435
- | \`map\` | 78,565 | 24,393 | 21,346 | 37,025 | 10,128 | 7,926 |
4436
- | \`megamenu\` | 60,027 | 21,698 | 19,218 | 8,595 | 2,405 | 1,797 |
4437
- | \`menu\` | 97,473 | 32,550 | 28,751 | 30,180 | 7,996 | 6,357 |
4438
- | \`meter\` | 31,721 | 12,026 | 10,718 | 4,894 | 1,453 | 1,284 |
4439
- | \`navigation\` | 33,088 | 12,436 | 11,050 | 3,366 | 1,183 | 976 |
4440
- | \`notifications\` | 58,346 | 19,881 | 17,729 | 18,207 | 5,055 | 4,063 |
4441
- | \`number-input\` | 56,271 | 18,839 | 16,812 | 13,524 | 3,662 | 2,797 |
4442
- | \`object-inspector\` | 113,929 | 38,372 | 33,759 | 35,492 | 10,303 | 8,201 |
4443
- | \`option\` | 26,477 | 9,763 | 8,661 | 4,525 | 1,231 | 1,101 |
4444
- | \`outline\` | 33,612 | 12,598 | 11,180 | 7,856 | 2,569 | 1,910 |
4445
- | \`pagination\` | 136,258 | 43,650 | 37,984 | 45,377 | 11,934 | 9,433 |
4446
- | \`pin-input\` | 47,068 | 16,413 | 14,643 | 6,736 | 2,253 | 1,685 |
4447
- | \`popover\` | 63,806 | 22,941 | 20,259 | 6,375 | 1,876 | 1,386 |
4448
- | \`progress\` | 28,084 | 10,730 | 9,550 | 2,970 | 933 | 761 |
4449
- | \`qr-code\` | 42,719 | 16,647 | 14,848 | 17,004 | 6,288 | 5,409 |
4450
- | \`quote\` | 22,516 | 8,885 | 7,828 | 1,211 | 523 | 361 |
4451
- | \`radio\` | 42,561 | 14,464 | 12,878 | 3,817 | 1,227 | 840 |
4452
- | \`rating\` | 50,257 | 17,289 | 15,435 | 8,029 | 2,456 | 1,909 |
4453
- | \`scatter-chart\` | 91,226 | 31,675 | 28,028 | 16,127 | 4,840 | 3,981 |
4454
- | \`scroll-area\` | 30,430 | 11,079 | 9,814 | 8,499 | 2,602 | 2,062 |
4455
- | \`select\` | 115,289 | 38,173 | 33,419 | 26,033 | 7,140 | 5,464 |
4456
- | \`skeleton\` | 22,328 | 8,644 | 7,664 | 991 | 367 | 189 |
4457
- | \`skip-link\` | 23,871 | 9,338 | 8,270 | 1,225 | 493 | 483 |
4458
- | \`slider\` | 52,873 | 17,824 | 15,978 | 13,159 | 3,817 | 2,962 |
4459
- | \`sparkline\` | 47,984 | 17,500 | 15,653 | 5,981 | 2,162 | 1,717 |
4460
- | \`speed-dial\` | 68,751 | 24,718 | 21,887 | 10,915 | 2,990 | 2,427 |
4461
- | \`splitter\` | 43,751 | 15,167 | 13,557 | 14,397 | 3,878 | 3,122 |
4462
- | \`stat\` | 25,255 | 9,675 | 8,616 | 2,303 | 781 | 617 |
4463
- | \`steps\` | 53,623 | 18,636 | 16,626 | 13,603 | 3,869 | 3,176 |
4464
- | \`switch\` | 39,233 | 13,495 | 12,048 | 1,679 | 625 | 378 |
4465
- | \`table\` | 118,358 | 37,061 | 32,243 | 45,150 | 12,475 | 10,199 |
4466
- | \`tabs\` | 46,310 | 15,908 | 14,148 | 10,491 | 2,916 | 2,306 |
4467
- | \`tag\` | 42,676 | 15,622 | 13,978 | 8,455 | 2,548 | 1,971 |
4468
- | \`textarea\` | 43,852 | 14,941 | 13,327 | 5,402 | 1,622 | 1,252 |
4469
- | \`time-input\` | 169,269 | 52,676 | 45,816 | 48,511 | 12,418 | 9,779 |
4470
- | \`time-picker\` | 99,603 | 31,518 | 27,757 | 33,933 | 9,190 | 7,245 |
4471
- | \`timeline\` | 31,286 | 11,863 | 10,579 | 4,061 | 1,260 | 1,031 |
4472
- | \`toast\` | 50,871 | 17,940 | 16,004 | 12,124 | 3,529 | 2,773 |
4473
- | \`toggle\` | 45,577 | 15,270 | 13,575 | 6,007 | 1,799 | 1,402 |
4474
- | \`toolbar\` | 31,047 | 11,573 | 10,294 | 5,158 | 1,694 | 1,386 |
4475
- | \`tooltip\` | 58,616 | 21,090 | 18,717 | 8,434 | 2,378 | 1,863 |
4476
- | \`tour\` | 83,670 | 28,721 | 25,358 | 19,815 | 5,458 | 4,399 |
4477
- | \`tree\` | 67,586 | 22,717 | 20,230 | 17,199 | 4,979 | 4,072 |
4478
- | \`trend\` | 29,717 | 11,569 | 10,322 | 3,487 | 1,133 | 978 |
4479
- | \`video\` | 141,208 | 44,138 | 38,547 | 66,217 | 16,841 | 13,726 |
4480
- | \`video-playlist\` | 127,686 | 41,301 | 36,303 | 42,775 | 11,224 | 9,153 |
4481
- | \`virtual-list\` | 63,451 | 21,632 | 19,223 | 23,305 | 7,171 | 5,823 |
4480
+ | \`accordion\` | 31,879 | 11,805 | 10,464 | 5,329 | 1,598 | 1,256 |
4481
+ | \`announcement\` | 36,692 | 13,313 | 11,854 | 4,682 | 1,425 | 1,118 |
4482
+ | \`app-header\` | 32,289 | 11,899 | 10,606 | 5,871 | 1,796 | 1,259 |
4483
+ | \`area-chart\` | 90,301 | 31,725 | 28,046 | 14,058 | 4,345 | 3,496 |
4484
+ | \`avatar\` | 30,463 | 11,596 | 10,369 | 3,957 | 1,234 | 973 |
4485
+ | \`badge\` | 27,088 | 10,568 | 9,410 | 2,942 | 920 | 756 |
4486
+ | \`bar-chart\` | 94,416 | 32,821 | 29,099 | 18,026 | 5,441 | 4,501 |
4487
+ | \`blockquote\` | 24,107 | 9,422 | 8,332 | 2,402 | 913 | 753 |
4488
+ | \`breadcrumbs\` | 36,279 | 13,906 | 12,382 | 7,360 | 2,452 | 1,974 |
4489
+ | \`button\` | 35,194 | 12,591 | 11,222 | 4,925 | 1,472 | 1,121 |
4490
+ | \`button-group\` | 27,640 | 10,382 | 9,200 | 4,928 | 1,517 | 1,109 |
4491
+ | \`callout\` | 35,256 | 13,593 | 12,058 | 2,884 | 992 | 726 |
4492
+ | \`canvas\` | 108,483 | 34,750 | 30,438 | 68,927 | 20,973 | 17,684 |
4493
+ | \`card\` | 23,777 | 9,054 | 8,019 | 2,090 | 655 | 525 |
4494
+ | \`carousel\` | 42,748 | 15,234 | 13,597 | 15,006 | 4,216 | 3,333 |
4495
+ | \`chat\` | 79,390 | 26,444 | 23,377 | 27,455 | 8,117 | 6,376 |
4496
+ | \`checkbox\` | 40,374 | 13,681 | 12,199 | 3,107 | 979 | 666 |
4497
+ | \`checkbox-group\` | 47,602 | 15,601 | 13,904 | 8,325 | 2,351 | 1,779 |
4498
+ | \`code\` | 20,301 | 8,015 | 7,121 | 138 | 67 | 44 |
4499
+ | \`code-block\` | 102,738 | 34,890 | 30,788 | 36,843 | 10,786 | 8,800 |
4500
+ | \`color-input\` | 141,792 | 45,087 | 39,341 | 55,136 | 14,334 | 11,510 |
4501
+ | \`color-picker\` | 103,415 | 32,966 | 28,881 | 47,256 | 12,743 | 10,241 |
4502
+ | \`combobox\` | 132,023 | 41,951 | 36,907 | 35,791 | 9,112 | 7,035 |
4503
+ | \`command\` | 99,513 | 31,476 | 27,708 | 30,061 | 8,171 | 6,363 |
4504
+ | \`copy-button\` | 80,548 | 27,649 | 24,490 | 18,341 | 4,985 | 3,998 |
4505
+ | \`data-table\` | 199,900 | 61,427 | 52,553 | 89,488 | 23,783 | 19,070 |
4506
+ | \`date-input\` | 141,223 | 44,512 | 39,113 | 38,229 | 9,448 | 7,610 |
4507
+ | \`date-picker\` | 61,360 | 20,936 | 18,750 | 20,347 | 5,579 | 4,382 |
4508
+ | \`description-list\` | 22,900 | 8,765 | 7,766 | 1,565 | 526 | 391 |
4509
+ | \`dialog\` | 38,247 | 13,598 | 12,117 | 5,837 | 1,753 | 1,446 |
4510
+ | \`divider\` | 22,991 | 8,924 | 7,882 | 1,416 | 502 | 425 |
4511
+ | \`donut-chart\` | 89,212 | 31,127 | 27,556 | 14,641 | 4,497 | 3,632 |
4512
+ | \`drawer\` | 42,892 | 15,123 | 13,469 | 7,698 | 2,296 | 1,835 |
4513
+ | \`drilldown\` | 42,756 | 14,941 | 13,297 | 9,710 | 2,724 | 2,066 |
4514
+ | \`empty\` | 24,194 | 9,251 | 8,200 | 1,951 | 658 | 530 |
4515
+ | \`file-input\` | 57,757 | 20,019 | 17,785 | 13,094 | 4,155 | 3,281 |
4516
+ | \`filter-input\` | 97,846 | 32,819 | 29,116 | 21,630 | 6,199 | 4,852 |
4517
+ | \`format-date\` | 30,158 | 11,290 | 10,090 | 4,434 | 1,264 | 1,089 |
4518
+ | \`graph\` | 74,369 | 24,504 | 21,641 | 21,878 | 6,485 | 5,288 |
4519
+ | \`heatmap\` | 98,128 | 33,505 | 29,605 | 18,944 | 5,590 | 4,462 |
4520
+ | \`icon\` | 82,157 | 28,050 | 23,959 | 58,304 | 19,662 | 16,121 |
4521
+ | \`icon-button\` | 35,305 | 12,620 | 11,230 | 5,034 | 1,513 | 1,165 |
4522
+ | \`image\` | 25,504 | 9,480 | 8,404 | 3,824 | 1,152 | 935 |
4523
+ | \`input\` | 46,361 | 15,974 | 14,090 | 7,352 | 2,452 | 1,865 |
4524
+ | \`isometric-heatmap\` | 102,771 | 34,713 | 30,595 | 23,536 | 6,749 | 5,398 |
4525
+ | \`kbd\` | 27,511 | 10,571 | 9,367 | 3,516 | 1,153 | 767 |
4526
+ | \`legend\` | 35,184 | 12,935 | 11,491 | 2,957 | 1,019 | 874 |
4527
+ | \`lightbox\` | 55,724 | 18,816 | 16,725 | 16,730 | 4,692 | 3,582 |
4528
+ | \`line-chart\` | 91,335 | 31,881 | 28,290 | 14,762 | 4,418 | 3,698 |
4529
+ | \`list\` | 61,803 | 21,294 | 18,983 | 15,242 | 4,449 | 3,619 |
4530
+ | \`listbox\` | 76,711 | 25,427 | 22,527 | 15,565 | 4,585 | 3,551 |
4531
+ | \`loader\` | 26,379 | 10,041 | 8,907 | 2,775 | 969 | 751 |
4532
+ | \`map\` | 78,565 | 24,393 | 21,288 | 37,025 | 10,128 | 7,955 |
4533
+ | \`megamenu\` | 60,027 | 21,698 | 19,183 | 8,595 | 2,405 | 1,778 |
4534
+ | \`menu\` | 97,473 | 32,550 | 28,767 | 30,180 | 7,996 | 6,383 |
4535
+ | \`meter\` | 31,721 | 12,026 | 10,721 | 4,894 | 1,453 | 1,182 |
4536
+ | \`navigation\` | 33,088 | 12,436 | 11,034 | 3,366 | 1,183 | 1,023 |
4537
+ | \`notifications\` | 58,346 | 19,881 | 17,738 | 18,207 | 5,056 | 4,000 |
4538
+ | \`number-input\` | 56,271 | 18,840 | 16,789 | 13,524 | 3,662 | 2,768 |
4539
+ | \`object-inspector\` | 113,929 | 38,372 | 33,717 | 35,492 | 10,304 | 8,250 |
4540
+ | \`option\` | 26,477 | 9,763 | 8,662 | 4,525 | 1,231 | 950 |
4541
+ | \`outline\` | 33,612 | 12,598 | 11,179 | 7,856 | 2,569 | 1,942 |
4542
+ | \`pagination\` | 136,258 | 43,650 | 37,953 | 45,377 | 11,934 | 9,415 |
4543
+ | \`pin-input\` | 47,068 | 16,413 | 14,653 | 6,736 | 2,253 | 1,741 |
4544
+ | \`popover\` | 63,806 | 22,941 | 20,256 | 6,375 | 1,876 | 1,363 |
4545
+ | \`progress\` | 28,084 | 10,730 | 9,551 | 2,970 | 933 | 720 |
4546
+ | \`qr-code\` | 42,719 | 16,647 | 14,847 | 17,004 | 6,288 | 5,382 |
4547
+ | \`quote\` | 22,516 | 8,884 | 7,827 | 1,211 | 523 | 417 |
4548
+ | \`radio\` | 42,561 | 14,464 | 12,878 | 3,817 | 1,228 | 898 |
4549
+ | \`rating\` | 50,257 | 17,289 | 15,409 | 8,029 | 2,456 | 1,870 |
4550
+ | \`scatter-chart\` | 91,226 | 31,676 | 27,942 | 16,127 | 4,840 | 3,890 |
4551
+ | \`scroll-area\` | 30,430 | 11,080 | 9,813 | 8,499 | 2,603 | 2,039 |
4552
+ | \`select\` | 115,289 | 38,173 | 33,481 | 26,033 | 7,140 | 5,395 |
4553
+ | \`skeleton\` | 22,328 | 8,644 | 7,666 | 991 | 368 | 296 |
4554
+ | \`skip-link\` | 23,871 | 9,338 | 8,264 | 1,225 | 494 | 424 |
4555
+ | \`slider\` | 52,873 | 17,826 | 15,978 | 13,159 | 3,818 | 3,037 |
4556
+ | \`sparkline\` | 47,984 | 17,499 | 15,601 | 5,981 | 2,162 | 1,764 |
4557
+ | \`speed-dial\` | 68,751 | 24,718 | 21,901 | 10,915 | 2,990 | 2,266 |
4558
+ | \`splitter\` | 43,751 | 15,167 | 13,536 | 14,397 | 3,878 | 3,176 |
4559
+ | \`stat\` | 25,255 | 9,675 | 8,601 | 2,303 | 781 | 544 |
4560
+ | \`steps\` | 53,623 | 18,635 | 16,567 | 13,603 | 3,870 | 3,086 |
4561
+ | \`switch\` | 39,233 | 13,495 | 12,047 | 1,679 | 625 | 379 |
4562
+ | \`table\` | 118,358 | 37,061 | 32,257 | 45,150 | 12,475 | 10,024 |
4563
+ | \`tabs\` | 46,310 | 15,908 | 14,160 | 10,491 | 2,916 | 2,259 |
4564
+ | \`tag\` | 42,676 | 15,620 | 13,972 | 8,455 | 2,548 | 1,991 |
4565
+ | \`textarea\` | 43,852 | 14,941 | 13,326 | 5,402 | 1,622 | 1,239 |
4566
+ | \`time-input\` | 169,269 | 52,676 | 45,872 | 48,511 | 12,418 | 9,739 |
4567
+ | \`time-picker\` | 99,603 | 31,518 | 27,772 | 33,933 | 9,190 | 7,206 |
4568
+ | \`timeline\` | 31,286 | 11,863 | 10,607 | 4,061 | 1,260 | 1,014 |
4569
+ | \`toast\` | 50,871 | 17,938 | 16,020 | 12,124 | 3,529 | 2,827 |
4570
+ | \`toggle\` | 45,577 | 15,270 | 13,576 | 6,007 | 1,799 | 1,392 |
4571
+ | \`toolbar\` | 31,047 | 11,573 | 10,294 | 5,158 | 1,695 | 1,249 |
4572
+ | \`tooltip\` | 58,616 | 21,090 | 18,705 | 8,434 | 2,379 | 1,908 |
4573
+ | \`tour\` | 83,670 | 28,722 | 25,339 | 19,815 | 5,459 | 4,255 |
4574
+ | \`tree\` | 67,586 | 22,718 | 20,230 | 17,199 | 4,980 | 4,023 |
4575
+ | \`trend\` | 29,717 | 11,569 | 10,337 | 3,487 | 1,134 | 913 |
4576
+ | \`video\` | 141,208 | 44,137 | 38,496 | 66,217 | 16,841 | 13,780 |
4577
+ | \`video-playlist\` | 127,686 | 41,301 | 36,338 | 42,775 | 11,225 | 9,072 |
4578
+ | \`virtual-list\` | 63,451 | 21,630 | 19,226 | 23,305 | 7,171 | 5,779 |
4482
4579
 
4483
4580
  ### Styled tier
4484
4581
 
@@ -4486,112 +4583,112 @@ The headless tier plus presentation. \`bun add @fusion.dev/helix\` installs this
4486
4583
 
4487
4584
  | Family | Alone raw | Alone gzip | Alone brotli | Added raw | Added gzip | Added brotli |
4488
4585
  |---|---|---|---|---|---|---|
4489
- | \`accordion\` | 35,311 | 12,654 | 11,240 | 8,746 | 2,463 | 1,948 |
4490
- | \`announcement\` | 41,307 | 14,365 | 12,832 | 9,278 | 2,489 | 2,024 |
4491
- | \`app-header\` | 37,449 | 13,103 | 11,682 | 11,016 | 3,009 | 2,469 |
4492
- | \`area-chart\` | 98,393 | 33,578 | 29,732 | 22,131 | 6,256 | 5,102 |
4493
- | \`aura\` | 56,085 | 19,320 | 17,131 | 29,774 | 9,335 | 7,842 |
4494
- | \`avatar\` | 33,464 | 12,351 | 11,026 | 6,945 | 2,007 | 1,688 |
4495
- | \`badge\` | 32,595 | 11,821 | 10,551 | 8,438 | 2,177 | 1,852 |
4496
- | \`bar-chart\` | 108,944 | 35,724 | 31,549 | 32,533 | 8,394 | 6,916 |
4497
- | \`blockquote\` | 26,332 | 9,969 | 8,821 | 4,612 | 1,452 | 1,093 |
4498
- | \`breadcrumbs\` | 43,220 | 15,115 | 13,527 | 14,285 | 3,697 | 2,939 |
4499
- | \`button\` | 41,612 | 14,007 | 12,463 | 11,324 | 2,907 | 2,360 |
4500
- | \`button-group\` | 31,138 | 11,066 | 9,809 | 8,409 | 2,229 | 1,770 |
4501
- | \`callout\` | 39,049 | 14,537 | 12,921 | 6,659 | 1,950 | 1,613 |
4502
- | \`canvas\` | 129,523 | 38,717 | 33,827 | 89,611 | 24,897 | 20,993 |
4503
- | \`card\` | 27,678 | 10,059 | 8,913 | 5,976 | 1,650 | 1,408 |
4504
- | \`carousel\` | 53,234 | 17,022 | 15,257 | 25,477 | 6,037 | 4,920 |
4505
- | \`chat\` | 94,674 | 29,166 | 25,830 | 42,730 | 10,859 | 8,815 |
4506
- | \`checkbox\` | 46,865 | 15,190 | 13,511 | 9,580 | 2,503 | 2,019 |
4507
- | \`checkbox-group\` | 54,826 | 17,244 | 15,372 | 15,542 | 4,028 | 3,157 |
4508
- | \`code\` | 21,154 | 8,333 | 7,402 | 976 | 399 | 408 |
4509
- | \`code-block\` | 127,213 | 38,715 | 34,182 | 61,300 | 14,740 | 12,131 |
4510
- | \`color-input\` | 184,176 | 51,349 | 44,929 | 97,504 | 20,559 | 17,115 |
4511
- | \`color-picker\` | 140,348 | 38,508 | 33,859 | 84,177 | 18,389 | 15,176 |
4512
- | \`combobox\` | 147,503 | 44,927 | 39,520 | 51,254 | 12,085 | 9,797 |
4513
- | \`command\` | 110,791 | 33,835 | 29,771 | 41,332 | 10,522 | 8,516 |
4514
- | \`copy-button\` | 92,577 | 29,825 | 26,383 | 30,355 | 7,219 | 5,878 |
4515
- | \`data-table\` | 230,715 | 66,817 | 57,261 | 120,282 | 29,305 | 23,835 |
4516
- | \`date-input\` | 162,349 | 48,216 | 42,392 | 59,336 | 13,196 | 10,800 |
4517
- | \`date-picker\` | 69,281 | 22,363 | 20,013 | 28,250 | 7,010 | 5,726 |
4518
- | \`description-list\` | 25,855 | 9,517 | 8,469 | 4,508 | 1,284 | 1,109 |
4519
- | \`dialog\` | 43,360 | 14,855 | 13,245 | 10,933 | 3,007 | 2,524 |
4520
- | \`divider\` | 25,291 | 9,547 | 8,464 | 3,699 | 1,140 | 979 |
4521
- | \`donut-chart\` | 99,170 | 33,263 | 29,387 | 24,576 | 6,712 | 5,497 |
4522
- | \`drawer\` | 48,725 | 16,508 | 14,719 | 13,512 | 3,708 | 3,050 |
4523
- | \`drilldown\` | 48,438 | 16,235 | 14,490 | 15,378 | 4,052 | 3,224 |
4524
- | \`empty\` | 25,503 | 9,727 | 8,607 | 3,242 | 1,117 | 942 |
4525
- | \`file-input\` | 69,285 | 22,419 | 19,935 | 24,612 | 6,551 | 5,415 |
4526
- | \`filter-input\` | 108,688 | 34,991 | 31,031 | 32,465 | 8,412 | 6,840 |
4527
- | \`flex\` | 25,740 | 9,194 | 8,157 | 4,763 | 1,047 | 878 |
4528
- | \`format-date\` | 30,414 | 11,403 | 10,198 | 4,672 | 1,402 | 1,107 |
4529
- | \`graph\` | 89,037 | 27,081 | 23,844 | 36,528 | 9,184 | 7,506 |
4530
- | \`grid\` | 27,002 | 9,846 | 8,741 | 5,638 | 1,467 | 1,230 |
4531
- | \`heatmap\` | 105,486 | 35,189 | 31,061 | 26,281 | 7,263 | 5,865 |
4532
- | \`icon\` | 83,995 | 28,567 | 24,453 | 60,129 | 20,177 | 16,557 |
4533
- | \`icon-button\` | 43,040 | 13,981 | 12,453 | 12,753 | 2,882 | 2,317 |
4534
- | \`image\` | 26,892 | 9,947 | 8,821 | 5,194 | 1,620 | 1,303 |
4535
- | \`input\` | 50,619 | 17,063 | 15,045 | 11,597 | 3,559 | 2,627 |
4536
- | \`isometric-heatmap\` | 110,852 | 36,558 | 32,275 | 31,598 | 8,642 | 6,913 |
4537
- | \`kbd\` | 29,504 | 11,110 | 9,797 | 5,494 | 1,685 | 1,325 |
4538
- | \`legend\` | 40,423 | 14,214 | 12,625 | 8,067 | 2,264 | 1,810 |
4539
- | \`lightbox\` | 62,016 | 20,155 | 17,963 | 23,006 | 6,017 | 4,593 |
4540
- | \`line-chart\` | 102,454 | 34,257 | 30,346 | 25,863 | 6,849 | 5,573 |
4541
- | \`list\` | 68,150 | 22,816 | 20,329 | 21,569 | 5,958 | 4,723 |
4542
- | \`listbox\` | 81,154 | 26,542 | 23,438 | 19,994 | 5,703 | 4,506 |
4543
- | \`loader\` | 29,263 | 10,814 | 9,634 | 5,642 | 1,730 | 1,484 |
4544
- | \`map\` | 111,513 | 29,575 | 25,965 | 69,961 | 15,526 | 12,613 |
4545
- | \`megamenu\` | 64,996 | 22,865 | 20,221 | 13,547 | 3,558 | 2,865 |
4546
- | \`menu\` | 108,403 | 34,711 | 30,637 | 41,098 | 10,160 | 8,348 |
4547
- | \`meter\` | 37,896 | 13,378 | 11,969 | 11,050 | 2,820 | 2,508 |
4548
- | \`navigation\` | 36,814 | 13,268 | 11,785 | 7,077 | 2,025 | 1,732 |
4549
- | \`notifications\` | 71,808 | 22,446 | 20,037 | 31,663 | 7,637 | 6,298 |
4550
- | \`number-input\` | 61,253 | 20,024 | 17,839 | 18,491 | 4,850 | 3,805 |
4551
- | \`object-inspector\` | 130,338 | 41,206 | 36,260 | 51,884 | 13,190 | 10,875 |
4552
- | \`option\` | 29,672 | 10,762 | 9,549 | 7,712 | 2,213 | 1,807 |
4553
- | \`orb\` | 35,265 | 13,488 | 12,001 | 9,730 | 3,689 | 3,210 |
4554
- | \`outline\` | 37,846 | 13,459 | 11,935 | 12,073 | 3,491 | 2,776 |
4555
- | \`pagination\` | 153,264 | 46,929 | 40,875 | 62,366 | 15,240 | 12,294 |
4556
- | \`pin-input\` | 50,409 | 17,317 | 15,440 | 10,058 | 3,179 | 2,506 |
4557
- | \`popover\` | 66,958 | 23,702 | 20,976 | 9,509 | 2,658 | 2,152 |
4558
- | \`progress\` | 35,232 | 12,381 | 11,032 | 10,101 | 2,602 | 2,208 |
4559
- | \`qr-code\` | 44,321 | 17,121 | 15,244 | 18,589 | 6,787 | 5,692 |
4560
- | \`quote\` | 23,074 | 9,079 | 8,002 | 1,752 | 733 | 550 |
4561
- | \`radio\` | 50,349 | 15,977 | 14,212 | 11,594 | 2,766 | 2,188 |
4562
- | \`rating\` | 54,190 | 18,519 | 16,487 | 11,946 | 3,671 | 2,932 |
4563
- | \`sandbox\` | 104,428 | 31,484 | 27,587 | 72,147 | 19,289 | 16,253 |
4564
- | \`scatter-chart\` | 100,317 | 33,784 | 29,846 | 25,197 | 6,982 | 5,634 |
4565
- | \`scroll-area\` | 35,437 | 12,025 | 10,693 | 13,489 | 3,582 | 2,900 |
4566
- | \`select\` | 124,418 | 40,070 | 35,154 | 35,147 | 9,067 | 7,122 |
4567
- | \`skeleton\` | 26,090 | 9,664 | 8,592 | 4,738 | 1,432 | 1,201 |
4568
- | \`skip-link\` | 25,441 | 9,852 | 8,716 | 2,780 | 983 | 749 |
4569
- | \`slider\` | 67,842 | 20,140 | 18,033 | 28,108 | 6,184 | 4,977 |
4570
- | \`sparkline\` | 53,442 | 18,851 | 16,828 | 11,421 | 3,519 | 2,958 |
4571
- | \`speed-dial\` | 75,797 | 26,105 | 23,156 | 17,946 | 4,404 | 3,565 |
4572
- | \`splitter\` | 49,804 | 16,210 | 14,530 | 20,431 | 4,937 | 3,943 |
4573
- | \`stat\` | 28,117 | 10,372 | 9,251 | 5,157 | 1,482 | 1,256 |
4574
- | \`steps\` | 67,449 | 21,378 | 19,029 | 27,416 | 6,635 | 5,427 |
4575
- | \`strands\` | 62,138 | 23,148 | 20,404 | 38,015 | 13,797 | 11,914 |
4576
- | \`switch\` | 43,562 | 14,637 | 13,013 | 5,998 | 1,792 | 1,411 |
4577
- | \`table\` | 135,900 | 40,155 | 34,939 | 62,687 | 15,581 | 12,729 |
4578
- | \`tabs\` | 55,263 | 17,753 | 15,836 | 19,437 | 4,783 | 3,907 |
4579
- | \`tag\` | 47,247 | 16,758 | 14,982 | 13,016 | 3,658 | 2,984 |
4580
- | \`text\` | 28,756 | 9,943 | 8,757 | 7,396 | 1,519 | 1,309 |
4581
- | \`textarea\` | 47,785 | 15,949 | 14,227 | 9,318 | 2,677 | 2,198 |
4582
- | \`time-input\` | 193,597 | 56,836 | 49,498 | 72,824 | 16,646 | 13,607 |
4583
- | \`time-picker\` | 111,928 | 33,946 | 29,852 | 46,251 | 11,627 | 9,388 |
4584
- | \`timeline\` | 38,179 | 13,326 | 11,920 | 10,947 | 2,751 | 2,253 |
4585
- | \`toast\` | 58,767 | 19,783 | 17,643 | 20,006 | 5,408 | 4,355 |
4586
- | \`toggle\` | 50,439 | 16,510 | 14,669 | 10,854 | 3,077 | 2,499 |
4587
- | \`toolbar\` | 33,726 | 12,066 | 10,715 | 7,822 | 2,163 | 1,631 |
4588
- | \`tooltip\` | 61,420 | 21,833 | 19,384 | 11,220 | 3,137 | 2,532 |
4589
- | \`tour\` | 93,661 | 30,695 | 27,192 | 29,787 | 7,497 | 6,082 |
4590
- | \`tree\` | 76,275 | 24,651 | 21,953 | 25,874 | 6,942 | 5,599 |
4591
- | \`trend\` | 31,231 | 12,050 | 10,723 | 4,982 | 1,613 | 1,250 |
4592
- | \`video\` | 161,715 | 47,866 | 41,751 | 86,712 | 20,444 | 17,161 |
4593
- | \`video-playlist\` | 143,639 | 44,279 | 38,910 | 58,709 | 14,189 | 11,730 |
4594
- | \`virtual-list\` | 65,445 | 22,136 | 19,637 | 25,282 | 7,676 | 6,296 |
4586
+ | \`accordion\` | 35,311 | 12,654 | 11,236 | 8,746 | 2,463 | 2,016 |
4587
+ | \`announcement\` | 41,307 | 14,365 | 12,844 | 9,278 | 2,489 | 2,072 |
4588
+ | \`app-header\` | 37,449 | 13,103 | 11,682 | 11,016 | 3,009 | 2,472 |
4589
+ | \`area-chart\` | 98,393 | 33,578 | 29,681 | 22,131 | 6,257 | 5,070 |
4590
+ | \`aura\` | 56,085 | 19,320 | 17,108 | 29,774 | 9,336 | 7,876 |
4591
+ | \`avatar\` | 33,464 | 12,351 | 11,051 | 6,945 | 2,007 | 1,646 |
4592
+ | \`badge\` | 32,595 | 11,820 | 10,538 | 8,438 | 2,178 | 1,772 |
4593
+ | \`bar-chart\` | 108,944 | 35,724 | 31,572 | 32,533 | 8,394 | 6,852 |
4594
+ | \`blockquote\` | 26,332 | 9,968 | 8,824 | 4,612 | 1,452 | 1,178 |
4595
+ | \`breadcrumbs\` | 43,220 | 15,115 | 13,467 | 14,285 | 3,698 | 3,040 |
4596
+ | \`button\` | 41,612 | 14,007 | 12,440 | 11,324 | 2,908 | 2,298 |
4597
+ | \`button-group\` | 31,138 | 11,066 | 9,842 | 8,409 | 2,230 | 1,782 |
4598
+ | \`callout\` | 39,049 | 14,535 | 12,913 | 6,659 | 1,950 | 1,513 |
4599
+ | \`canvas\` | 129,523 | 38,717 | 33,888 | 89,611 | 24,897 | 20,996 |
4600
+ | \`card\` | 27,678 | 10,060 | 8,915 | 5,976 | 1,650 | 1,334 |
4601
+ | \`carousel\` | 53,234 | 17,022 | 15,255 | 25,477 | 6,038 | 4,870 |
4602
+ | \`chat\` | 94,674 | 29,164 | 25,829 | 42,730 | 10,860 | 8,790 |
4603
+ | \`checkbox\` | 46,865 | 15,190 | 13,517 | 9,580 | 2,503 | 1,944 |
4604
+ | \`checkbox-group\` | 54,826 | 17,245 | 15,350 | 15,542 | 4,028 | 3,246 |
4605
+ | \`code\` | 21,154 | 8,331 | 7,402 | 976 | 400 | 302 |
4606
+ | \`code-block\` | 127,213 | 38,714 | 34,143 | 61,300 | 14,740 | 12,197 |
4607
+ | \`color-input\` | 184,176 | 51,348 | 44,906 | 97,504 | 20,559 | 17,123 |
4608
+ | \`color-picker\` | 140,348 | 38,508 | 33,798 | 84,177 | 18,390 | 15,111 |
4609
+ | \`combobox\` | 147,503 | 44,927 | 39,521 | 51,254 | 12,086 | 9,732 |
4610
+ | \`command\` | 110,791 | 33,835 | 29,865 | 41,332 | 10,522 | 8,578 |
4611
+ | \`copy-button\` | 92,577 | 29,825 | 26,415 | 30,355 | 7,220 | 5,816 |
4612
+ | \`data-table\` | 230,715 | 66,817 | 57,250 | 120,282 | 29,305 | 23,909 |
4613
+ | \`date-input\` | 162,349 | 48,215 | 42,382 | 59,336 | 13,196 | 10,914 |
4614
+ | \`date-picker\` | 69,281 | 22,363 | 20,060 | 28,250 | 7,010 | 5,696 |
4615
+ | \`description-list\` | 25,855 | 9,517 | 8,456 | 4,508 | 1,284 | 1,066 |
4616
+ | \`dialog\` | 43,360 | 14,855 | 13,244 | 10,933 | 3,007 | 2,429 |
4617
+ | \`divider\` | 25,291 | 9,547 | 8,433 | 3,699 | 1,141 | 848 |
4618
+ | \`donut-chart\` | 99,170 | 33,263 | 29,421 | 24,576 | 6,712 | 5,519 |
4619
+ | \`drawer\` | 48,725 | 16,508 | 14,718 | 13,512 | 3,708 | 3,022 |
4620
+ | \`drilldown\` | 48,438 | 16,235 | 14,465 | 15,378 | 4,052 | 3,152 |
4621
+ | \`empty\` | 25,503 | 9,726 | 8,598 | 3,242 | 1,118 | 869 |
4622
+ | \`file-input\` | 69,285 | 22,419 | 19,892 | 24,612 | 6,551 | 5,311 |
4623
+ | \`filter-input\` | 108,688 | 34,991 | 31,014 | 32,465 | 8,412 | 6,809 |
4624
+ | \`flex\` | 25,740 | 9,195 | 8,149 | 4,763 | 1,048 | 935 |
4625
+ | \`format-date\` | 30,414 | 11,403 | 10,189 | 4,672 | 1,402 | 1,046 |
4626
+ | \`graph\` | 89,037 | 27,080 | 23,910 | 36,528 | 9,184 | 7,482 |
4627
+ | \`grid\` | 27,002 | 9,846 | 8,742 | 5,638 | 1,467 | 1,298 |
4628
+ | \`heatmap\` | 105,486 | 35,189 | 31,084 | 26,281 | 7,264 | 5,828 |
4629
+ | \`icon\` | 83,995 | 28,566 | 24,453 | 60,129 | 20,178 | 16,509 |
4630
+ | \`icon-button\` | 43,040 | 13,981 | 12,435 | 12,753 | 2,883 | 2,232 |
4631
+ | \`image\` | 26,892 | 9,947 | 8,805 | 5,194 | 1,621 | 1,269 |
4632
+ | \`input\` | 50,619 | 17,063 | 15,053 | 11,597 | 3,559 | 2,712 |
4633
+ | \`isometric-heatmap\` | 110,852 | 36,559 | 32,285 | 31,598 | 8,642 | 6,875 |
4634
+ | \`kbd\` | 29,504 | 11,109 | 9,839 | 5,494 | 1,685 | 1,317 |
4635
+ | \`legend\` | 40,423 | 14,214 | 12,618 | 8,067 | 2,264 | 1,748 |
4636
+ | \`lightbox\` | 62,016 | 20,155 | 17,964 | 23,006 | 6,017 | 4,675 |
4637
+ | \`line-chart\` | 102,454 | 34,257 | 30,348 | 25,863 | 6,850 | 5,597 |
4638
+ | \`list\` | 68,150 | 22,816 | 20,364 | 21,569 | 5,958 | 4,789 |
4639
+ | \`listbox\` | 81,154 | 26,542 | 23,415 | 19,994 | 5,704 | 4,449 |
4640
+ | \`loader\` | 29,263 | 10,814 | 9,643 | 5,642 | 1,730 | 1,434 |
4641
+ | \`map\` | 111,513 | 29,575 | 25,972 | 69,961 | 15,526 | 12,713 |
4642
+ | \`megamenu\` | 64,996 | 22,865 | 20,223 | 13,547 | 3,559 | 2,740 |
4643
+ | \`menu\` | 108,403 | 34,711 | 30,660 | 41,098 | 10,160 | 8,328 |
4644
+ | \`meter\` | 37,896 | 13,378 | 11,948 | 11,050 | 2,821 | 2,509 |
4645
+ | \`navigation\` | 36,814 | 13,270 | 11,770 | 7,077 | 2,025 | 1,715 |
4646
+ | \`notifications\` | 71,808 | 22,447 | 20,022 | 31,663 | 7,637 | 6,268 |
4647
+ | \`number-input\` | 61,253 | 20,024 | 17,821 | 18,491 | 4,851 | 3,791 |
4648
+ | \`object-inspector\` | 130,338 | 41,206 | 36,213 | 51,884 | 13,191 | 10,671 |
4649
+ | \`option\` | 29,672 | 10,762 | 9,552 | 7,712 | 2,214 | 1,720 |
4650
+ | \`orb\` | 35,265 | 13,489 | 12,038 | 9,730 | 3,690 | 3,222 |
4651
+ | \`outline\` | 37,846 | 13,459 | 11,946 | 12,073 | 3,491 | 2,636 |
4652
+ | \`pagination\` | 153,264 | 46,929 | 40,896 | 62,366 | 15,241 | 12,287 |
4653
+ | \`pin-input\` | 50,409 | 17,316 | 15,449 | 10,058 | 3,179 | 2,491 |
4654
+ | \`popover\` | 66,958 | 23,702 | 20,940 | 9,509 | 2,658 | 2,163 |
4655
+ | \`progress\` | 35,232 | 12,380 | 11,030 | 10,101 | 2,602 | 2,356 |
4656
+ | \`qr-code\` | 44,321 | 17,121 | 15,249 | 18,589 | 6,787 | 5,728 |
4657
+ | \`quote\` | 23,074 | 9,080 | 8,006 | 1,752 | 733 | 537 |
4658
+ | \`radio\` | 50,349 | 15,977 | 14,203 | 11,594 | 2,766 | 2,266 |
4659
+ | \`rating\` | 54,190 | 18,519 | 16,485 | 11,946 | 3,671 | 2,845 |
4660
+ | \`sandbox\` | 104,428 | 31,484 | 27,584 | 72,147 | 19,289 | 16,159 |
4661
+ | \`scatter-chart\` | 100,317 | 33,785 | 29,872 | 25,197 | 6,983 | 5,655 |
4662
+ | \`scroll-area\` | 35,437 | 12,027 | 10,679 | 13,489 | 3,583 | 2,910 |
4663
+ | \`select\` | 124,418 | 40,070 | 35,132 | 35,147 | 9,068 | 7,080 |
4664
+ | \`skeleton\` | 26,090 | 9,664 | 8,589 | 4,738 | 1,433 | 1,190 |
4665
+ | \`skip-link\` | 25,441 | 9,851 | 8,690 | 2,780 | 983 | 753 |
4666
+ | \`slider\` | 67,842 | 20,140 | 17,971 | 28,108 | 6,184 | 5,029 |
4667
+ | \`sparkline\` | 53,442 | 18,851 | 16,851 | 11,421 | 3,520 | 2,874 |
4668
+ | \`speed-dial\` | 75,797 | 26,105 | 23,131 | 17,946 | 4,405 | 3,556 |
4669
+ | \`splitter\` | 49,804 | 16,210 | 14,531 | 20,431 | 4,937 | 4,060 |
4670
+ | \`stat\` | 28,117 | 10,372 | 9,280 | 5,157 | 1,483 | 1,178 |
4671
+ | \`steps\` | 67,449 | 21,378 | 19,083 | 27,416 | 6,636 | 5,388 |
4672
+ | \`strands\` | 62,138 | 23,148 | 20,396 | 38,015 | 13,797 | 11,925 |
4673
+ | \`switch\` | 43,562 | 14,638 | 13,007 | 5,998 | 1,793 | 1,392 |
4674
+ | \`table\` | 135,900 | 40,155 | 34,974 | 62,687 | 15,581 | 12,853 |
4675
+ | \`tabs\` | 55,263 | 17,753 | 15,846 | 19,437 | 4,783 | 3,864 |
4676
+ | \`tag\` | 47,247 | 16,757 | 14,968 | 13,016 | 3,658 | 2,940 |
4677
+ | \`text\` | 28,756 | 9,943 | 8,755 | 7,396 | 1,519 | 1,260 |
4678
+ | \`textarea\` | 47,785 | 15,949 | 14,227 | 9,318 | 2,678 | 2,149 |
4679
+ | \`time-input\` | 193,597 | 56,836 | 49,480 | 72,824 | 16,646 | 13,626 |
4680
+ | \`time-picker\` | 111,928 | 33,946 | 29,873 | 46,251 | 11,628 | 9,402 |
4681
+ | \`timeline\` | 38,179 | 13,326 | 11,921 | 10,947 | 2,752 | 2,268 |
4682
+ | \`toast\` | 58,767 | 19,781 | 17,659 | 20,006 | 5,409 | 4,346 |
4683
+ | \`toggle\` | 50,439 | 16,509 | 14,668 | 10,854 | 3,077 | 2,473 |
4684
+ | \`toolbar\` | 33,726 | 12,066 | 10,723 | 7,822 | 2,163 | 1,725 |
4685
+ | \`tooltip\` | 61,420 | 21,833 | 19,329 | 11,220 | 3,137 | 2,506 |
4686
+ | \`tour\` | 93,661 | 30,696 | 27,131 | 29,787 | 7,498 | 5,974 |
4687
+ | \`tree\` | 76,275 | 24,651 | 21,957 | 25,874 | 6,943 | 5,657 |
4688
+ | \`trend\` | 31,231 | 12,050 | 10,722 | 4,982 | 1,613 | 1,353 |
4689
+ | \`video\` | 161,715 | 47,866 | 41,770 | 86,712 | 20,444 | 16,964 |
4690
+ | \`video-playlist\` | 143,639 | 44,278 | 38,906 | 58,709 | 14,190 | 11,656 |
4691
+ | \`virtual-list\` | 65,445 | 22,136 | 19,690 | 25,282 | 7,676 | 6,226 |
4595
4692
 
4596
4693
  ## What an install adds to \`node_modules\`
4597
4694
 
@@ -4603,12 +4700,12 @@ stripped column shows the bytes we removed.
4603
4700
 
4604
4701
  | Package | Unpacked | Files | Source maps stripped | Runtime dependencies |
4605
4702
  |---|---|---|---|---|
4606
- | \`@fusion.dev/helix-core\` | 2,561,244 | 559 | 727,996 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\`, \`tslib\` |
4607
- | \`@fusion.dev/helix-headless\` | 22,147,132 | 714 | 2,256,499 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`tslib\`, \`uqr\` |
4703
+ | \`@fusion.dev/helix-core\` | 2,560,950 | 559 | 727,994 | \`@floating-ui/dom\`, \`@fusion.dev/helix-icons\`, \`tslib\` |
4704
+ | \`@fusion.dev/helix-headless\` | 25,355,390 | 716 | 2,256,500 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-icons\`, \`tslib\`, \`uqr\` |
4608
4705
  | \`@fusion.dev/helix-icons\` | 150,509 | 21 | 48,154 | \`svgo\` |
4609
4706
  | \`@fusion.dev/helix-styles\` | 121,089 | 6 | 0 | none |
4610
4707
  | \`@fusion.dev/helix-theme\` | 529,299 | 8 | 5,393 | none |
4611
- | \`@fusion.dev/helix\` | 22,136,770 | 966 | 539,177 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\`, \`tslib\` |
4708
+ | \`@fusion.dev/helix\` | 26,659,493 | 969 | 539,178 | \`@fusion.dev/helix-core\`, \`@fusion.dev/helix-headless\`, \`@fusion.dev/helix-styles\`, \`tslib\` |
4612
4709
 
4613
4710
  ## Not measured yet
4614
4711
 
@@ -7652,7 +7749,7 @@ type needs less leading. \`--helix-leading-heading\` expresses that once, so no
7652
7749
  heading level needs its own multiplier.
7653
7750
  `,
7654
7751
  'using-helix-with-an-agent': `---
7655
- description: Four mistakes that look like Helix bugs, and the files an agent should read.
7752
+ description: Five mistakes that look like Helix bugs, and the files an agent should read.
7656
7753
  parent: coding-agents
7657
7754
  section: Getting started
7658
7755
  title: Using Helix with an agent
@@ -7661,58 +7758,63 @@ title: Using Helix with an agent
7661
7758
 
7662
7759
  # Using Helix with an agent
7663
7760
 
7664
- **We publish this guide as a web page so that every tool can read it.** It began
7665
- as \`.claude/skills/using-helix/SKILL.md\`, a file format that one vendor reads in
7666
- a repository. Every other vendor reads its own file:
7667
-
7668
- - Cursor reads \`.cursor/rules\`.
7669
- - Copilot reads \`.github/copilot-instructions.md\`.
7761
+ This guide is in two places, and both say the same thing:
7670
7762
 
7671
- If you install the published packages, you have none of these files. You have
7672
- this site and no checkout of our repository.
7763
+ - this page, which [llms.txt](https://fusion.dev/llms.txt) indexes
7764
+ - \`skills/helix/SKILL.md\` inside \`@fusion.dev/helix\`, which matches the version
7765
+ you installed and works offline
7673
7766
 
7674
- So the guide lives in one place, here, at a URL that
7675
- [llms.txt](https://fusion.dev/llms.txt) indexes and that each of those files can
7676
- link to. Paste the link into the file your tool reads. [The MCP
7677
- server](./coding-agents) works with any vendor and runs code, and Claude,
7678
- Cursor, Windsurf, and Zed all support it.
7767
+ [Link your tool to this guide](#link-your-tool-to-this-guide) says how to point
7768
+ each tool at one of them. [The MCP server](./coding-agents) works with any
7769
+ vendor and runs code, and Claude, Cursor, Windsurf, and Zed all support it.
7679
7770
 
7680
- ## Read the manifest before writing a tag
7771
+ ## Read the family before writing its tags
7681
7772
 
7682
7773
  \`\`\`
7683
- https://fusion.dev/helix/custom-elements.json
7684
- @fusion.dev/helix/custom-elements.json
7774
+ https://fusion.dev/helix/components/<family>.md
7775
+ https://fusion.dev/helix/components/<family>.json
7685
7776
  \`\`\`
7686
7777
 
7687
- The manifest lists:
7778
+ Each family's file lists:
7688
7779
 
7780
+ - the import lines for the family
7689
7781
  - every tag
7690
7782
  - every property, with its literal union
7691
- - every event, with its class
7783
+ - every event, with its class and its React prop
7692
7784
  - every slot, part, and custom property
7785
+ - the examples, each with the import lines it needs
7693
7786
 
7694
- **If a tag is not in the manifest, it does not exist.** A property value outside
7695
- a declared union is invalid. Property types are literal unions for this reason.
7696
- \`'ghost' | 'outlined' | 'solid' | 'subtle'\` shows you the values, and a named
7697
- type such as \`ButtonEmphasis\` sends you somewhere else to find them.
7787
+ **If a tag is not in a family's file, it does not exist.** A property value
7788
+ outside a declared union is invalid. Property types are literal unions for this
7789
+ reason. \`'ghost' | 'outlined' | 'solid' | 'subtle'\` shows you the values, and a
7790
+ named type such as \`ButtonEmphasis\` sends you somewhere else to find them.
7698
7791
 
7699
- When you need one family, fetch it as data:
7792
+ The manifest at \`https://fusion.dev/helix/custom-elements.json\` holds every
7793
+ family in one file, which is several megabytes. Read the families you use.
7794
+ Start from \`https://fusion.dev/llms.txt\`. In one request, it names every
7795
+ document and the machine-readable sources.
7700
7796
 
7701
- \`\`\`
7702
- https://fusion.dev/helix/components/<family>.json
7703
- https://fusion.dev/helix/components/<family>.md
7704
- \`\`\`
7705
-
7706
- The \`.md\` file has the API tables and the examples. The HTML page leaves the
7707
- examples out on purpose. Start from \`https://fusion.dev/llms.txt\`. In one
7708
- request, it names every document and these two sources.
7709
-
7710
- ## Four mistakes that look like Helix bugs
7797
+ ## Five mistakes that look like Helix bugs
7711
7798
 
7712
7799
  Each of these looks like a bug in Helix. They are listed from the most common to
7713
7800
  the least common.
7714
7801
 
7715
- ### 1. Blocking a change without \`preventDefault()\`
7802
+ ### 1. Writing a tag without importing its family
7803
+
7804
+ Each tag needs its family's entry imported. A family does not register another
7805
+ family's elements that you write inside it, so a Select needs Option imported
7806
+ beside it, and a Data Table needs Table:
7807
+
7808
+ \`\`\`js
7809
+ import '@fusion.dev/helix/select'
7810
+ import '@fusion.dev/helix/option'
7811
+ \`\`\`
7812
+
7813
+ Without the second line, the options are unknown elements and the Select offers
7814
+ nothing. Each family's Usage block and each example list the lines to import.
7815
+ Copy them with the markup.
7816
+
7817
+ ### 2. Blocking a change without \`preventDefault()\`
7716
7818
 
7717
7819
  **Setting \`value\`, \`open\`, \`checked\`, or \`active\` sets the starting state and
7718
7820
  corrects the current state.** The element starts in that state and then applies
@@ -7744,7 +7846,7 @@ block a change, call \`preventDefault()\` on the matching \`helix-before-*\` eve
7744
7846
  A form reset returns the element to \`default-value\` and the matching attributes
7745
7847
  for the other states. See [State and control](./state-and-control).
7746
7848
 
7747
- ### 2. Using the exact event name
7849
+ ### 3. Using the exact event name
7748
7850
 
7749
7851
  In React, write \`onhelix-before-open\`. \`onHelixOpen\` and \`onOpen\` do not work.
7750
7852
  React removes \`on\` from the prop name and listens for exactly the rest, so the
@@ -7758,7 +7860,7 @@ so a menu closing inside a dialog does not close the dialog. \`helix-select\`,
7758
7860
  listen for them on a container. If a listener on a wrapper receives nothing, the
7759
7861
  event is a lifecycle event. Put the listener on the element.
7760
7862
 
7761
- ### 3. Styling a disabled control with \`:disabled\`
7863
+ ### 4. Styling a disabled control with \`:disabled\`
7762
7864
 
7763
7865
  \`\`\`css
7764
7866
  helix-input:disabled { … } /* right: matches a disabled fieldset too */
@@ -7769,7 +7871,7 @@ The browser disables a control inside \`<fieldset disabled>\` without adding an
7769
7871
  attribute to it. The \`[disabled]\` selector does not match it, so the control
7770
7872
  looks enabled while it does not accept input.
7771
7873
 
7772
- ### 4. Loading every style layer before the elements
7874
+ ### 5. Loading every style layer before the elements
7773
7875
 
7774
7876
  \`\`\`ts
7775
7877
  import '@fusion.dev/helix-styles/helix.css'
@@ -7865,20 +7967,28 @@ If you are adding a script to a recipe, use the component.
7865
7967
 
7866
7968
  ## Link your tool to this guide
7867
7969
 
7868
- **Link to this page from your instructions file, and do not copy it.** Each tool
7869
- that reads project instructions reads a file in your repository, and each tool
7870
- reads a different one. A copy starts to go stale as soon as you paste it, and
7871
- this page changes with the library.
7970
+ **Point your tool at the guide, and do not copy it.** A copy starts to go stale
7971
+ as soon as you paste it, and the guide changes with the library.
7972
+
7973
+ The skill in the package matches the Helix you installed. In Claude Code, link
7974
+ it into your project's skills folder:
7975
+
7976
+ \`\`\`sh
7977
+ mkdir -p .claude/skills
7978
+ ln -s ../../node_modules/@fusion.dev/helix/skills/helix .claude/skills/helix
7979
+ \`\`\`
7980
+
7981
+ Other tools read a file in your repository. Add a line to it that names the
7982
+ skill, or this page:
7872
7983
 
7873
7984
  \`\`\`md
7874
- Helix: read https://fusion.dev/helix/docs/using-helix-with-an-agent
7875
- before writing components, and https://fusion.dev/helix/custom-elements.json
7876
- for the API.
7985
+ Helix: read node_modules/@fusion.dev/helix/skills/helix/SKILL.md before
7986
+ writing components, and node_modules/@fusion.dev/helix/api.json for the API.
7877
7987
  \`\`\`
7878
7988
 
7879
7989
  | Tool | Where it goes |
7880
7990
  |---|---|
7881
- | Claude Code | \`AGENTS.md\` or \`CLAUDE.md\`, or a skill in \`.claude/skills/\` |
7991
+ | Claude Code | \`.claude/skills/helix\`, or a line in \`AGENTS.md\` or \`CLAUDE.md\` |
7882
7992
  | Cursor | \`.cursor/rules/\` |
7883
7993
  | GitHub Copilot | \`.github/copilot-instructions.md\` |
7884
7994
  | Anything else | Whatever it reads. The line is the same |
@@ -7886,22 +7996,19 @@ for the API.
7886
7996
  We do not write those files for you, and we chose this on purpose. You would
7887
7997
  have to maintain a file we generated in your repository against our changes. A
7888
7998
  tool that rewrote it on install would be a dependency you did not ask for, in a
7889
- directory you own. You paste the line above, and you can delete it.
7999
+ directory you own. You add the link or the line, and you can delete it.
7890
8000
 
7891
8001
  ## Install the Helix MCP server
7892
8002
 
7893
- \`\`\`json
7894
- {
7895
- "mcpServers": {
7896
- "helix": { "command": "helix", "args": ["mcp"] }
7897
- }
7898
- }
8003
+ \`\`\`sh
8004
+ helix mcp init --client claude
7899
8005
  \`\`\`
7900
8006
 
7901
- \`helix mcp\` is a subcommand of the CLI. It serves MCP over stdio, which Claude,
7902
- Cursor, Windsurf, and Zed all read. It computes the theme a given brand color
7903
- produces, which no document can list. It runs on your machine, talks to a client
7904
- you chose, and makes no network requests.
8007
+ \`helix mcp\` answers from the Helix packages your project installs: families,
8008
+ examples, import lines, tokens, and the theme a brand color produces. \`--client\`
8009
+ takes \`claude\`, \`cursor\`, or \`vscode\`, and writes the server into the file that
8010
+ client reads. [Coding agents](./coding-agents) lists the tools. It runs on your
8011
+ machine, talks to a client you chose, and makes no network requests.
7905
8012
 
7906
8013
  ## What this guide does not cover
7907
8014
 
@@ -7909,10 +8016,9 @@ you chose, and makes no network requests.
7909
8016
  and hooks change with the library, and they are in a file you can fetch. A list
7910
8017
  of them here would be a second copy that goes stale. Fetch the family.
7911
8018
 
7912
- **The theme a brand color produces.** Helix computes it, so use \`helix mcp\`, an
7913
- MCP server over stdio with \`helix_audit_theme\` and \`helix_derive_theme\`. Both
7914
- take the same JSON that a \`helix.theme.json\` file holds. It runs on your
7915
- machine, and we do not host it.
8019
+ **The theme a brand color produces.** Helix computes it, so call
8020
+ \`helix_derive_theme\`, or run \`helix theme build\`. Both take the same JSON that a
8021
+ \`helix.theme.json\` file holds.
7916
8022
 
7917
8023
  **Whether a component fits your case.** Read the examples to decide. Every
7918
8024
  family's \`.md\` file includes them as text, and