diff --git a/.agents/skills/webjs/references/ui-kit.md b/.agents/skills/webjs/references/ui-kit.md index 3b50cffaa..08a13e621 100644 --- a/.agents/skills/webjs/references/ui-kit.md +++ b/.agents/skills/webjs/references/ui-kit.md @@ -72,5 +72,20 @@ dropdown-menu, hover-card, sonner, tabs, tooltip, plus toggle and toggle-group the tokens are missing (re-run `npx webjsdev ui init` or let `add` self-heal them). - Custom elements are display-only-safe at SSR and hydrate in the browser, the standard WebJs component model (`references/components.md`). +- A registry module should do no work at module scope, because the elision + analyser reads a module-scope call or a `document` reference as client work + and then the page that imports it ships whole (#1320). `cn` itself is clean, + so importing it never pins a page. Six modules still trip the analyser and DO + pin an importing page: `checkbox`, `radio-group`, `pagination`, `progress`, + `sonner`, `tabs`. The first two inject a stylesheet for real; the other four + are an analyser precision gap (an arrow with an expression body puts its call + at brace depth 0). Either way the page ships, so treat the list as fact rather + than as a technicality. Keep your own copies clean when you edit them, and run + `npx webjsdev elision`, which names the blocker whenever a page ships. +- `native-select`'s `` colours come from the theme block's `select option, select optgroup` rule, NOT from importing the module (#1320), so they are in the first paint and hold with JavaScript off. | | 1a | `avatar` | `avatarClass`, `avatarImageClass`, `avatarFallbackClass`, `avatarBadgeClass`, `avatarGroupClass`, `avatarGroupCountClass` | | 1a | `separator` | `separatorClass({ orientation })` | | 1a | `skeleton` | `skeletonClass` | @@ -263,7 +263,8 @@ obligations: - `pagination` / `breadcrumb`: a labelled `