From d159b6489986afb946263d726ffab417175f3439 Mon Sep 17 00:00:00 2001 From: changepacks Date: Mon, 19 Oct 2026 07:44:17 +0000 Subject: [PATCH] Update Versions --- .changepacks/changepack_log_atom_hoist_names.json | 11 ----------- .changepacks/changepack_log_build_error_docs.json | 8 -------- .changepacks/changepack_log_bun_plugin_build.json | 7 ------- .changepacks/changepack_log_ci_hardening.json | 7 ------- .changepacks/changepack_log_compat_imports.json | 7 ------- .changepacks/changepack_log_compat_theme.json | 8 -------- .../changepack_log_compose_imported_chains.json | 7 ------- .../changepack_log_compose_known_styles.json | 7 ------- .changepacks/changepack_log_compose_styled.json | 7 ------- .changepacks/changepack_log_compose_stylex.json | 7 ------- ...angepack_log_conditional_spread_precedence.json | 7 ------- .../changepack_log_coordinator_port_isolation.json | 7 ------- .changepacks/changepack_log_css_output_edges.json | 7 ------- .changepacks/changepack_log_css_snapshot.json | 9 --------- .../changepack_log_deterministic_numbering.json | 13 ------------- .changepacks/changepack_log_docs_breakpoints.json | 7 ------- .changepacks/changepack_log_emotion_css.json | 9 --------- .changepacks/changepack_log_emotion_css_prop.json | 8 -------- .../changepack_log_emotion_css_prop_contracts.json | 8 -------- .changepacks/changepack_log_emotion_exports.json | 8 -------- .../changepack_log_emotion_fallback_arrays.json | 7 ------- .../changepack_log_eslint_alias_rules.json | 7 ------- .../changepack_log_eslint_autofix_scope.json | 8 -------- .../changepack_log_exact_literal_coercion.json | 7 ------- .changepacks/changepack_log_extractor_docs.json | 7 ------- .changepacks/changepack_log_global_order.json | 7 ------- .changepacks/changepack_log_keep_jsx_pragmas.json | 8 -------- .changepacks/changepack_log_known_limitations.json | 7 ------- .../changepack_log_nested_css_results.json | 7 ------- .../changepack_log_next_webpack_css_delivery.json | 9 --------- .../changepack_log_next_webpack_js_jsx_maps.json | 9 --------- ...ngepack_log_numeric_template_interpolation.json | 7 ------- ...ngepack_log_order_independent_shared_slots.json | 12 ------------ .changepacks/changepack_log_radio_group_a11y.json | 7 ------- .changepacks/changepack_log_react_18_support.json | 8 -------- .changepacks/changepack_log_select_a11y.json | 7 ------- .changepacks/changepack_log_selectors.json | 7 ------- .../changepack_log_styled_forward_ref.json | 7 ------- .changepacks/changepack_log_styled_props.json | 7 ------- .changepacks/changepack_log_styled_targets.json | 7 ------- .../changepack_log_stylex_attrs_style.json | 8 -------- .changepacks/changepack_log_tailwind_classes.json | 7 ------- ...changepack_log_tailwind_hover_active_order.json | 7 ------- .../changepack_log_tailwind_v4_complete.json | 9 --------- .changepacks/changepack_log_tailwind_v4_theme.json | 7 ------- .../changepack_log_tailwind_v4_utilities.json | 13 ------------- .changepacks/changepack_log_theme_reads.json | 7 ------- .changepacks/changepack_log_toggle_switch.json | 7 ------- .changepacks/changepack_log_transient_props.json | 8 -------- .changepacks/changepack_log_ts_styled_output.json | 7 ------- .changepacks/changepack_log_ui_kit_behavior.json | 9 --------- .../changepack_log_ui_kit_forward_ref.json | 7 ------- .../changepack_log_update_dependencies.json | 14 -------------- .../changepack_log_vanilla_extract_companions.json | 7 ------- .../changepack_log_wasm_skip_source_map.json | 8 -------- .../changepack_log_webpack_theme_delivery.json | 7 ------- bindings/devup-ui-wasm/package.json | 2 +- packages/bun-plugin/package.json | 2 +- packages/components/package.json | 2 +- packages/eslint-plugin/package.json | 2 +- packages/next-plugin/package.json | 2 +- packages/plugin-utils/package.json | 2 +- packages/react/package.json | 2 +- packages/reset-css/package.json | 2 +- packages/rsbuild-plugin/package.json | 2 +- packages/vite-plugin/package.json | 2 +- packages/webpack-plugin/package.json | 2 +- 67 files changed, 11 insertions(+), 454 deletions(-) delete mode 100644 .changepacks/changepack_log_atom_hoist_names.json delete mode 100644 .changepacks/changepack_log_build_error_docs.json delete mode 100644 .changepacks/changepack_log_bun_plugin_build.json delete mode 100644 .changepacks/changepack_log_ci_hardening.json delete mode 100644 .changepacks/changepack_log_compat_imports.json delete mode 100644 .changepacks/changepack_log_compat_theme.json delete mode 100644 .changepacks/changepack_log_compose_imported_chains.json delete mode 100644 .changepacks/changepack_log_compose_known_styles.json delete mode 100644 .changepacks/changepack_log_compose_styled.json delete mode 100644 .changepacks/changepack_log_compose_stylex.json delete mode 100644 .changepacks/changepack_log_conditional_spread_precedence.json delete mode 100644 .changepacks/changepack_log_coordinator_port_isolation.json delete mode 100644 .changepacks/changepack_log_css_output_edges.json delete mode 100644 .changepacks/changepack_log_css_snapshot.json delete mode 100644 .changepacks/changepack_log_deterministic_numbering.json delete mode 100644 .changepacks/changepack_log_docs_breakpoints.json delete mode 100644 .changepacks/changepack_log_emotion_css.json delete mode 100644 .changepacks/changepack_log_emotion_css_prop.json delete mode 100644 .changepacks/changepack_log_emotion_css_prop_contracts.json delete mode 100644 .changepacks/changepack_log_emotion_exports.json delete mode 100644 .changepacks/changepack_log_emotion_fallback_arrays.json delete mode 100644 .changepacks/changepack_log_eslint_alias_rules.json delete mode 100644 .changepacks/changepack_log_eslint_autofix_scope.json delete mode 100644 .changepacks/changepack_log_exact_literal_coercion.json delete mode 100644 .changepacks/changepack_log_extractor_docs.json delete mode 100644 .changepacks/changepack_log_global_order.json delete mode 100644 .changepacks/changepack_log_keep_jsx_pragmas.json delete mode 100644 .changepacks/changepack_log_known_limitations.json delete mode 100644 .changepacks/changepack_log_nested_css_results.json delete mode 100644 .changepacks/changepack_log_next_webpack_css_delivery.json delete mode 100644 .changepacks/changepack_log_next_webpack_js_jsx_maps.json delete mode 100644 .changepacks/changepack_log_numeric_template_interpolation.json delete mode 100644 .changepacks/changepack_log_order_independent_shared_slots.json delete mode 100644 .changepacks/changepack_log_radio_group_a11y.json delete mode 100644 .changepacks/changepack_log_react_18_support.json delete mode 100644 .changepacks/changepack_log_select_a11y.json delete mode 100644 .changepacks/changepack_log_selectors.json delete mode 100644 .changepacks/changepack_log_styled_forward_ref.json delete mode 100644 .changepacks/changepack_log_styled_props.json delete mode 100644 .changepacks/changepack_log_styled_targets.json delete mode 100644 .changepacks/changepack_log_stylex_attrs_style.json delete mode 100644 .changepacks/changepack_log_tailwind_classes.json delete mode 100644 .changepacks/changepack_log_tailwind_hover_active_order.json delete mode 100644 .changepacks/changepack_log_tailwind_v4_complete.json delete mode 100644 .changepacks/changepack_log_tailwind_v4_theme.json delete mode 100644 .changepacks/changepack_log_tailwind_v4_utilities.json delete mode 100644 .changepacks/changepack_log_theme_reads.json delete mode 100644 .changepacks/changepack_log_toggle_switch.json delete mode 100644 .changepacks/changepack_log_transient_props.json delete mode 100644 .changepacks/changepack_log_ts_styled_output.json delete mode 100644 .changepacks/changepack_log_ui_kit_behavior.json delete mode 100644 .changepacks/changepack_log_ui_kit_forward_ref.json delete mode 100644 .changepacks/changepack_log_update_dependencies.json delete mode 100644 .changepacks/changepack_log_vanilla_extract_companions.json delete mode 100644 .changepacks/changepack_log_wasm_skip_source_map.json delete mode 100644 .changepacks/changepack_log_webpack_theme_delivery.json diff --git a/.changepacks/changepack_log_atom_hoist_names.json b/.changepacks/changepack_log_atom_hoist_names.json deleted file mode 100644 index 135520653..000000000 --- a/.changepacks/changepack_log_atom_hoist_names.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/next-plugin/package.json": "Patch", - "packages/rsbuild-plugin/package.json": "Patch", - "packages/vite-plugin/package.json": "Patch", - "packages/webpack-plugin/package.json": "Patch" - }, - "note": "Enable atomHoist by default at two routes in Webpack, Rsbuild and Next Webpack, with numeric zero opting out and no effect in singleCss mode. Keep Vite and Next Turbopack in per-file mode until their shared-slot reservation lands, warning once for explicit positive atomHoist requests. Allocate shared and file-local short counter names through deterministic reserved slots instead of content names; preserve frozen route plans, dynamic !important, local keyframes, first-value responsive tokens, shared CSS updates and persisted placement. Bump the naming cache generation. No new build errors.", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_build_error_docs.json b/.changepacks/changepack_log_build_error_docs.json deleted file mode 100644 index 9016dbe60..000000000 --- a/.changepacks/changepack_log_build_error_docs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "packages/eslint-plugin/package.json": "Patch", - "packages/react/package.json": "Patch" - }, - "note": "The @devup-ui/react README and the css-utils-literal-only rule docs link their mention of build errors to the new Build Errors reference (https://devup-ui.com/docs/build-errors), which lists the build errors grouped by API; the docs sidebar lists the page after Supported Syntax & Limitations, whose Build errors section links to it. Documentation only: no new build errors", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_bun_plugin_build.json b/.changepacks/changepack_log_bun_plugin_build.json deleted file mode 100644 index a461c80bf..000000000 --- a/.changepacks/changepack_log_bun_plugin_build.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/bun-plugin/package.json": "Patch" - }, - "note": "Bun plugin works with Bun.build: `DevupUI()` (from `@devup-ui/bun-plugin/register`) serves the generated stylesheet to the bundler's CSS loader once every other module is loaded, so the build emits a CSS output with the styles of the whole bundle instead of an empty module; class names are short there and readable under the runtime (`debug` option). Files importing the packages Devup UI takes the place of (`@emotion/react`, `@emotion/styled`, `styled-components`, `@vanilla-extract/css`), `@stylexjs/stylex`, or a subpath or re-export of these or `@devup-ui/react`, are compiled instead of skipped", - "date": "2026-09-30T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_ci_hardening.json b/.changepacks/changepack_log_ci_hardening.json deleted file mode 100644 index b03f09a46..000000000 --- a/.changepacks/changepack_log_ci_hardening.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "CI and test infrastructure: the workflow always runs the latest releases (the ubuntu-latest runner, the newest major version of every action, and the latest stable Rust, Bun, Node.js, wasm-pack, cargo-binstall, cargo-tarpaulin and changepacks), runs pull requests read-only and moves npm publishing and Pages deployment into jobs that run only on pushes to main, never creates or commits e2e baselines, and sets timeouts. The wasm package build now starts from an empty pkg/ and verify:dist rejects files of the removed lite export, its README describes the real API, state and errors, and a Bun test checks the JS/WASM interface. The README benchmark tables are generated from one checked result file in both languages with the CSS size in its own column.", - "date": "2026-10-01T00:00:00.000Z" -} \ No newline at end of file diff --git a/.changepacks/changepack_log_compat_imports.json b/.changepacks/changepack_log_compat_imports.json deleted file mode 100644 index a440aa053..000000000 --- a/.changepacks/changepack_log_compat_imports.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Rewriting styled-components, Emotion and vanilla-extract imports keeps type-only imports type-only: `import { type DefaultTheme, ThemeProvider }` now leaves `import type { DefaultTheme }` on the package instead of a value import that made it a runtime dependency, and an `import type` declaration is left as written. `spin.getName()` on a `keyframes()` binding becomes the generated keyframes name instead of a call on a string that threw at runtime", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_compat_theme.json b/.changepacks/changepack_log_compat_theme.json deleted file mode 100644 index e20892f02..000000000 --- a/.changepacks/changepack_log_compat_theme.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "packages/react/package.json": "Patch", - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "The styled-components and Emotion compat ThemeProvider now gives its theme through React context: useTheme, withTheme and the new ThemeConsumer return the real theme object (an object merged over the outer theme, or what a theme function makes of it) instead of an empty Proxy of var() references, withTheme forwards refs, lets a caller's theme win and sets a displayName. Styles keep reading the CSS variables the provider declares. styled-components v6.4 createTheme is available from the compat entry, and ThemeConsumer and createTheme imports are redirected there instead of staying a runtime dependency on styled-components", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_compose_imported_chains.json b/.changepacks/changepack_log_compose_imported_chains.json deleted file mode 100644 index 71a3e5e8d..000000000 --- a/.changepacks/changepack_log_compose_imported_chains.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Resolve native css() definitions composed from known rule objects and css() results through imported module chains. Later declarations replace earlier declarations at the same property, selector, breakpoint and layer, while earlier-only declarations remain. Imported composition chains with cycles, dynamic parts or unresolved imports now produce located build errors instead of silently deferring precedence to stylesheet order.", - "date": "2026-10-09T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_compose_known_styles.json b/.changepacks/changepack_log_compose_known_styles.json deleted file mode 100644 index 6aa4c50d9..000000000 --- a/.changepacks/changepack_log_compose_known_styles.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "css(a, b) composing classes whose styles the build knows (a const bound to css() in the file, or a css() result another module exports with a rule object every value of which is known) merges their styles: a later part's declaration replaces an earlier one's for the same property, selector, breakpoint and layer, also under conditions (css(base, cond && danger)) and for ||/?? parts, where the classes used to be joined and the stylesheet order picked the winner. vanilla-extract style([a, b]) passes each composed style as its own argument, so the later one wins, and a style composed again later (style([a, b, a])) is kept. Classes the build does not know (strings, props, CSS Modules) are kept as they are", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_compose_styled.json b/.changepacks/changepack_log_compose_styled.json deleted file mode 100644 index 4d05b2838..000000000 --- a/.changepacks/changepack_log_compose_styled.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "styled(Base) extending a styled component the file binds to a const renders Base's tag directly with Base's styles composed under its own, so the extension's declarations replace Base's for the same property, selector, breakpoint and layer instead of losing to them by stylesheet order; Base's attrs apply before the extension's. attrs merge as styled-components merges them: className is joined with the caller's, style is merged and other props replace earlier ones. On an element, a className or style spread after the explicit prop now wins, as React merges props in the order they are written", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_compose_stylex.json b/.changepacks/changepack_log_compose_stylex.json deleted file mode 100644 index d6e8db0d1..000000000 --- a/.changepacks/changepack_log_compose_stylex.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "stylex.props() and stylex.attrs() merge namespaces this file creates key by key as StyleX does: a later namespace's key replaces an earlier one's, so props(red, blue) is blue and props(blue, red) is red, and a key set to null removes the earlier value; conditions (cond && styles.x, cond ? a : b) choose per key. Arguments the build cannot read key by key (namespaces from other modules, props, dynamic namespaces, include()) keep the previous joined behavior", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_conditional_spread_precedence.json b/.changepacks/changepack_log_conditional_spread_precedence.json deleted file mode 100644 index 31261720a..000000000 --- a/.changepacks/changepack_log_conditional_spread_precedence.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Respect source-order property replacement across conditional spreads in styled rule objects, and document that styled callbacks cannot return runtime class names. No new build errors; existing located Cannot compose errors remain unchanged.", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_coordinator_port_isolation.json b/.changepacks/changepack_log_coordinator_port_isolation.json deleted file mode 100644 index 667a75271..000000000 --- a/.changepacks/changepack_log_coordinator_port_isolation.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/next-plugin/package.json": "Patch" - }, - "note": "Isolate the coordinator port file per owning process when another live next dev/build holds it, record the owner pid, and report port, pid and recovery when the coordinator is missing or unreachable", - "date": "2026-10-02T12:41:12.3693972Z" -} diff --git a/.changepacks/changepack_log_css_output_edges.json b/.changepacks/changepack_log_css_output_edges.json deleted file mode 100644 index 92c183449..000000000 --- a/.changepacks/changepack_log_css_output_edges.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Preserve unitless legacy vendor numbers, classify vendor time values as milliseconds and emit the Opera vendor prefix correctly; reject nested responsive arrays and known dead unprefixed CSS property names with source-located build errors, while preserving supported experimental CSS, unknown properties and documented shorthands.", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_css_snapshot.json b/.changepacks/changepack_log_css_snapshot.json deleted file mode 100644 index a1c52eeec..000000000 --- a/.changepacks/changepack_log_css_snapshot.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "changes": { - "packages/webpack-plugin/package.json": "Patch", - "packages/rsbuild-plugin/package.json": "Patch", - "packages/plugin-utils/package.json": "Patch" - }, - "note": "Webpack and Rsbuild builds hold every style in their stylesheets: a stylesheet module is built on its first import, so styles extracted later (the global styles of files webpack or Rsbuild reached late, often outside `src`) were missing from the output. The files the entries reach under `src` are now extracted before the build, the shared base on disk is kept current, and when a stylesheet still changed during the build it is compiled once more, writing only the complete result. Rsbuild serves each stylesheet from the current sheet instead of a module-wide string kept only when it grew, which left edits that shortened the CSS and later builds in the same process stale. plugin-utils adds computeReachableFiles", - "date": "2026-09-30T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_deterministic_numbering.json b/.changepacks/changepack_log_deterministic_numbering.json deleted file mode 100644 index 053739d3d..000000000 --- a/.changepacks/changepack_log_deterministic_numbering.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/plugin-utils/package.json": "Patch", - "packages/vite-plugin/package.json": "Patch", - "packages/webpack-plugin/package.json": "Patch", - "packages/rsbuild-plugin/package.json": "Patch", - "packages/next-plugin/package.json": "Patch", - "packages/bun-plugin/package.json": "Patch" - }, - "note": "Class names and file numbers no longer depend on the order files are processed in. Every plugin walks the files it can extract (the project's source and the included packages) before the first transform and numbers them in path order (a file collapsed into a bucket is numbered as the bucket, and only files that mention the package, StyleX or an aliased package take numbers) through the new seedFileMap, so identical builds give identical class prefixes, CSS file names and output hashes; in development, files that appear later are numbered after the existing ones. Styles are given class names in a fixed order, not the order of a hash set. The exported class, file and canonical maps are canonical JSON (sorted keys). Stylesheet evaluation (vanilla-extract) refuses Math.random(), Date.now(), new Date() and Date(), which differ between builds, with a build error; fixed dates such as new Date(0) are unchanged. resetBuildState starts a build from its own options: the prefix, atom hoisting, routes, buckets, names, numbers and styles an earlier build in the process left are cleared, and the prefix is set on every setup even when it is absent. Engine snapshots from concurrent transforms are written one after another per file, so an older snapshot is never written last. File lists are ordered by code point rather than the locale", - "date": "2026-10-01T00:00:00.000Z" -} \ No newline at end of file diff --git a/.changepacks/changepack_log_docs_breakpoints.json b/.changepacks/changepack_log_docs_breakpoints.json deleted file mode 100644 index 3918c419f..000000000 --- a/.changepacks/changepack_log_docs_breakpoints.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Typography documents the emitted default breakpoints, and source-backed integration tests keep the public breakpoint lists and range bounds synchronized with the production defaults. No runtime changes or new build errors.", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_emotion_css.json b/.changepacks/changepack_log_emotion_css.json deleted file mode 100644 index 5f9b61a00..000000000 --- a/.changepacks/changepack_log_emotion_css.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "changes": { - "packages/plugin-utils/package.json": "Patch", - "packages/react/package.json": "Patch", - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "@emotion/css is aliased by default: css and keyframes compile like Devup UI's own (numbers in px, as Emotion reads them), injectGlobal declares global CSS. cx takes class names, as in Emotion: strings and runtime values are classes kept as written (falsy values are skipped), an object is a { name: condition } class map, arrays nest, and inline css() calls and css() classes compose with the rules css(a, b) uses. merge(className) splits what the build can read (string tokens, template literal parts) and composes the css() classes in it, keeping a runtime string it cannot split as it is. Namespace members, constant-string bracket access, const destructuring and const alias chains compile through these same named APIs with scope-aware binding resolution; numeric values retain Emotion units after constant inlining and build-time evaluation. The Emotion import disappears when no runtime-only member is used. Ambient declarations type the styling imports (cx(...args: ClassNamesArg[]), merge(className: string)). New located build errors: cx() cannot use a spread, a getter, a setter or a method in a class map, or a template literal call; merge() takes exactly one class string, not a spread or a template literal call; the root module has no default export, namespace member keys must be constant strings naming supported exports, and styling functions cannot be passed, mutated or re-exported. Optional styling reads/calls, namespace rest destructuring, styling defaults or nested patterns, non-const aliases, exported styling bindings and reads whose initialization order cannot be established are build errors instead of runtime dependencies. Styling loaded through require, import-equals or dynamic import must use static ES module imports; an unawaited dynamic namespace that the build cannot follow is also a located error. Its runtime-only APIs (cache, flush, hydrate, sheet, getRegisteredStyles) stay on @emotion/css, including their nested/default destructuring, optional reads and recognized runtime-loader access", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_emotion_css_prop.json b/.changepacks/changepack_log_emotion_css_prop.json deleted file mode 100644 index 71e82e1df..000000000 --- a/.changepacks/changepack_log_emotion_css_prop.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/react/package.json": "Patch" - }, - "note": "Emotion's css prop compiles at build time while @emotion/react is aliased: on tags and Devup UI components always, and on every element once the file imports @emotion/react or @emotion/styled or names @emotion/react in a @jsxImportSource pragma; jsx, jsxs and jsxDEV from @emotion/react/jsx-runtime (or jsx-dev-runtime) and jsx from @emotion/react compile it too, so libraries built with Emotion's JSX runtime do as well. The prop becomes the element's className, with CSS variables in its style for values only the runtime gives: arrays and conditions compose with a later part replacing what an earlier one sets, css() classes the file knows compose by their styles, strings and templates are CSS text, css`` mixins split the text around them, a function of the theme reads theme.a.b as var(--a-b), unitless numbers are px as in Emotion (constants included), and a className holding known css() classes overrides the prop as Emotion's registered classes do. A styled component the file defines renders its tag in the element's place when the prop overrides its styles and it renders a tag with no attrs or props read and the element has no spread, as or forwardedAs. Emotion's JSX runtime imports become react/jsx-runtime, the pragma names react, and jsx comes from @devup-ui/react/compat (React's createElement); @devup-ui/react/compat/css-prop types the prop on React.Attributes. New build errors, each with file:line:column and the code: a css prop part the build cannot read (a call, an element), a style object declared inside a function or with let, a binding only running the module gives or code changes, a theme function that does more than return rules or reads the theme other than as theme.a.b in a value, an interpolation CSS text cannot place or a mixin inside a nested rule, and a css prop overriding a styled component's styles where its tag cannot be rendered in place. Composing css() with a part that reads a known binding (such as a keyframes name) now reads its value", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_emotion_css_prop_contracts.json b/.changepacks/changepack_log_emotion_css_prop_contracts.json deleted file mode 100644 index 1cabcb4a6..000000000 --- a/.changepacks/changepack_log_emotion_css_prop_contracts.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/react/package.json": "Patch" - }, - "note": "Recognize Emotion jsxImportSource eligibility with the same exact header rules used for rewriting, preserve authored first-use cascade-layer order while composing css props, retain exact computed theme keys, and keep Emotion numeric-length pixel semantics when constant rule arrays are inlined. Unitless values and zero retain their existing behavior. Every valid css-prop form remains supported; invalid empty JSX css expressions retain main's located syntax error. No new build-error category is introduced.", - "date": "2026-10-18T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_emotion_exports.json b/.changepacks/changepack_log_emotion_exports.json deleted file mode 100644 index 88bd30287..000000000 --- a/.changepacks/changepack_log_emotion_exports.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "packages/react/package.json": "Patch", - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Emotion's CacheProvider is available from the compat entry as a no-op that renders its children, and `import { CacheProvider } from '@emotion/react'` is redirected there instead of keeping @emotion/react as a runtime dependency; the cache it configures holds styles Emotion inserts at runtime, which Devup UI writes at build time", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_emotion_fallback_arrays.json b/.changepacks/changepack_log_emotion_fallback_arrays.json deleted file mode 100644 index 3a37d8d99..000000000 --- a/.changepacks/changepack_log_emotion_fallback_arrays.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "In rule objects written against Emotion, styled-components or vanilla-extract, a property whose value is an array of literals (`background: ['red', 'linear-gradient(...)']`) declares each value in order as a browser fallback, as those libraries do, instead of being read as Devup UI breakpoints; numbers get px as the library gives them. Arrays holding runtime values stay as written", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_eslint_alias_rules.json b/.changepacks/changepack_log_eslint_alias_rules.json deleted file mode 100644 index d5c9a818b..000000000 --- a/.changepacks/changepack_log_eslint_alias_rules.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/eslint-plugin/package.json": "Patch" - }, - "note": "ESLint rules now check exactly what the build reads. The array, typography, media and styleOrder rules and css-utils-literal-only follow the import aliases the build compiles by default (@emotion/react, @emotion/styled, styled-components, @vanilla-extract/css) and the rules of styled (styled.div({...}), styled(\"div\", {...}), styled(Base)({...}, {...}); not .attrs()), createGlobalStyle({...}) and the styles of Emotion Global, and check and fix a module-level const object that only styles read. Vanilla-extract stylesheets (.css.ts/.css.js) are no longer read as Devup UI. New rule no-runtime-read reports css/keyframes/styled/Box read as a value (\"`X` is read at runtime, where it does not exist\"), and css-utils-literal-only reports globals that do not exist where a .css.ts is evaluated (window, document, process, ...). No new build errors.", - "date": "2026-10-01T00:00:00.000Z" -} \ No newline at end of file diff --git a/.changepacks/changepack_log_eslint_autofix_scope.json b/.changepacks/changepack_log_eslint_autofix_scope.json deleted file mode 100644 index df1a217d2..000000000 --- a/.changepacks/changepack_log_eslint_autofix_scope.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "packages/eslint-plugin/package.json": "Patch", - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "style-order-range only checks styleOrder where the build reads it: a prop of a Devup UI component and a top-level key of a style object passed to css/globalCss/keyframes. A styleOrder key in nested data, in a prop value such as an element passed as a prop, or in a call of a function sharing a name with an Object.prototype member is no longer reported. The array, typography and media rules already skip non-style data, and css-utils-literal-only accepts a css()/keyframes() result held in a const inside a function. No new build errors.", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_exact_literal_coercion.json b/.changepacks/changepack_log_exact_literal_coercion.json deleted file mode 100644 index aef5f3024..000000000 --- a/.changepacks/changepack_log_exact_literal_coercion.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Preserve exact JavaScript literal property keys in static lookups and generated finite class maps, independently of CSS numeric value normalization. Only fold standalone unary string coercion when its spelling is proven to agree with JavaScript Number; other values retain the existing conservative dynamic or located build-error path without a styling runtime.", - "date": "2026-10-17T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_extractor_docs.json b/.changepacks/changepack_log_extractor_docs.json deleted file mode 100644 index 660877013..000000000 --- a/.changepacks/changepack_log_extractor_docs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "The extractor guide shows reproducible native-element output, generated CSS-variable bindings, and actual atomic CSS rather than obsolete class names. Documentation only: no new build errors.", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_global_order.json b/.changepacks/changepack_log_global_order.json deleted file mode 100644 index 228e03af5..000000000 --- a/.changepacks/changepack_log_global_order.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Global CSS keeps the order it is written in: globalCss rules, @import and @font-face now appear in source order within each file (the later of two equal rules wins as written, repeated imports and font faces count where they are written last), object globalCss declarations on the same selector keep their written order, and custom cascade layers are declared in the order files first use them (nested layers after their parent) instead of alphabetical order", - "date": "2026-09-30T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_keep_jsx_pragmas.json b/.changepacks/changepack_log_keep_jsx_pragmas.json deleted file mode 100644 index 84ea0ef4c..000000000 --- a/.changepacks/changepack_log_keep_jsx_pragmas.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/bun-plugin/package.json": "Patch" - }, - "note": "Keep leading JSX compiler pragmas through extraction, styled lowering, namespace rewrites and generated stylesheets with correct source maps. Enabled Emotion aliases keep the React JSX import-source compatibility bridge; other sources and opted-out Emotion are preserved. No new build errors.", - "date": "2026-10-17T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_known_limitations.json b/.changepacks/changepack_log_known_limitations.json deleted file mode 100644 index 1878c32ec..000000000 --- a/.changepacks/changepack_log_known_limitations.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/react/package.json": "Patch" - }, - "note": "The README no longer claims every CSS-in-JS pattern compiles: it describes what the build compiles and that anything it cannot know is a CSS variable or a located build error, and links the new Supported Syntax & Limitations page, which lists what compiles, the style override rules (where a later part wins and where the CSS cascade decides), Baseline 2024 browser support, that a component taking the css prop must pass className and style on, the runtime-only APIs and how each is handled, and the known limitations", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_nested_css_results.json b/.changepacks/changepack_log_nested_css_results.json deleted file mode 100644 index efb4716d9..000000000 --- a/.changepacks/changepack_log_nested_css_results.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Statically known css() results used as nested rule values expand into their source rules under each top-level comma-separated selector, preserving responsive values, nested selectors, layers and style order without runtime styling. Unknown rule sources retain a located build error naming the value and its static-value requirement.", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_next_webpack_css_delivery.json b/.changepacks/changepack_log_next_webpack_css_delivery.json deleted file mode 100644 index d1d396944..000000000 --- a/.changepacks/changepack_log_next_webpack_css_delivery.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "changes": { - "packages/next-plugin/package.json": "Patch", - "packages/webpack-plugin/package.json": "Patch", - "packages/plugin-utils/package.json": "Patch" - }, - "note": "Reconstruct the complete deterministic Next webpack stylesheet after each server, edge and client compiler reset, including accepted external package dependency closures, so delivered CSS matches rendered classes in per-file and single-CSS modes. Keep production CSS request paths stable across build IDs so persistent webpack cache cannot bypass the CSS loader. Genuine production prewarm collection, read and extraction failures now fail the build instead of silently dropping styles; failed initialization releases its build session without leaking styles into unrelated builds.", - "date": "2026-10-16T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_next_webpack_js_jsx_maps.json b/.changepacks/changepack_log_next_webpack_js_jsx_maps.json deleted file mode 100644 index 3eb36b376..000000000 --- a/.changepacks/changepack_log_next_webpack_js_jsx_maps.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/webpack-plugin/package.json": "Patch", - "packages/next-plugin/package.json": "Patch" - }, - "note": "Accept JSX in .js, .mjs and .cjs throughout extraction without changing TypeScript dialects or plain JavaScript output, and pass parsed source-map objects to webpack callbacks for Next SWC compatibility. Malformed relevant source now fails with located parser diagnostics instead of unlocated parser-panic messages or silently recovered output.", - "date": "2026-10-15T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_numeric_template_interpolation.json b/.changepacks/changepack_log_numeric_template_interpolation.json deleted file mode 100644 index 9f378dba4..000000000 --- a/.changepacks/changepack_log_numeric_template_interpolation.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Preserve complete template interpolations when extracting style values: fold exact pure template text and keep dynamic element values in CSS variables without dropping side effects. Standalone css() values that cannot be known at build time now reach the existing located build error instead of silently losing their interpolations.", - "date": "2026-10-17T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_order_independent_shared_slots.json b/.changepacks/changepack_log_order_independent_shared_slots.json deleted file mode 100644 index d105f2850..000000000 --- a/.changepacks/changepack_log_order_independent_shared_slots.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/plugin-utils/package.json": "Patch", - "packages/bun-plugin/package.json": "Patch", - "packages/webpack-plugin/package.json": "Patch", - "packages/rsbuild-plugin/package.json": "Patch", - "packages/next-plugin/package.json": "Patch" - }, - "note": "Reserve existing short counter class, variable, keyframe and raw-file slots in physical input order before Bun, webpack, Rsbuild and Next webpack extraction. Watch revisions append sorted slots without renumbering. No new source build errors or styling runtime; unknown virtual, generated and opaque outside-inventory inputs retain observable residual allocation.", - "date": "2026-10-15T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_radio_group_a11y.json b/.changepacks/changepack_log_radio_group_a11y.json deleted file mode 100644 index b0c5dad88..000000000 --- a/.changepacks/changepack_log_radio_group_a11y.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/components/package.json": "Patch" - }, - "note": "RadioGroup is a radiogroup with an optional label, its radios share a name (generated when not given) so arrow keys move between them, and it keeps the typed values of its options: false, 0 and '' stay selectable and onChange receives the option's own value rather than a string. Button-variant radios are visually hidden instead of display:none, so they stay focusable and show a focus ring, and the default radio's focus outline is valid CSS and shown on :focus-visible. Checkbox uses an id it is given for its labels as well as its input, where the labels used to point at a generated id", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_react_18_support.json b/.changepacks/changepack_log_react_18_support.json deleted file mode 100644 index ad74861ef..000000000 --- a/.changepacks/changepack_log_react_18_support.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "packages/react/package.json": "Patch", - "packages/components/package.json": "Patch" - }, - "note": "@devup-ui/react and @devup-ui/components take React as a peer of ^18 || ^19 instead of `*` and no longer depend on React 19 themselves, so a React 18 app no longer gets a second React. Select and Stepper read their context with useContext instead of React 19's use() and provide it with Context.Provider instead of React 19's (which crashes React 18), and Select repositions its container from an effect instead of a callback ref returning cleanup, which React 18 ignores", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_select_a11y.json b/.changepacks/changepack_log_select_a11y.json deleted file mode 100644 index 594b6596a..000000000 --- a/.changepacks/changepack_log_select_a11y.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/components/package.json": "Patch" - }, - "note": "Select follows the listbox pattern: the trigger has aria-haspopup, aria-controls and opens with ArrowDown/ArrowUp; the popup is a listbox (aria-multiselectable for checkbox selects) whose options carry role=option, aria-selected and aria-disabled; opening focuses the selected or first option, arrows/Home/End move between enabled options, Enter/Space choose one, and Escape or choosing closes the popup and returns focus to the trigger. An outside click on a controlled select now calls onOpenChange(false) instead of changing hidden internal state", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_selectors.json b/.changepacks/changepack_log_selectors.json deleted file mode 100644 index 4b6510b6a..000000000 --- a/.changepacks/changepack_log_selectors.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Selectors: a nested rule without `&` in a styled or css template is scoped to the component instead of becoming a global rule (`.child {}` and `> p {}` select descendants, `:hover {}` and `::before {}` the component), and a rule nested in a selector list applies under each of its selectors; `content` keeps the quotes of its strings (`content: 'x'`, `content: \"\"`); `params` go on the pseudo-class that takes them, so `_groupNthChild` gives `:is(...):nth-child(2n) .a` also when nested; a bare `selectors` key is a pseudo-class name, an attribute of the element or a descendant selector (`'div p'`, `'> p'`), under a parent too, and keeps the case of class names; `::part()`, `::slotted()`, `::highlight()`, `::picker()` and the view-transition pseudo-elements get two colons. New build errors: a `_name` prop or selector key that names nothing (`_notASelector`, `selectors={{ div: ... }}`), and a string under a selector that is not CSS text (`_hover=\"external-class\"`)", - "date": "2026-09-30T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_styled_forward_ref.json b/.changepacks/changepack_log_styled_forward_ref.json deleted file mode 100644 index 7dd26ffbb..000000000 --- a/.changepacks/changepack_log_styled_forward_ref.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Styled components the build generates are wrapped in React's forwardRef, so a ref passed to them reaches the element they render on React 18 as well as React 19; the file imports forwardRef from react when it defines one", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_styled_props.json b/.changepacks/changepack_log_styled_props.json deleted file mode 100644 index 8dfbb440e..000000000 --- a/.changepacks/changepack_log_styled_props.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Styled components no longer pass every prop to the tag they render: `$` props, `theme` and the props their style functions or attrs read are kept away from a tag unless it takes them as attributes, and `shouldForwardProp` (Emotion options or styled-components withConfig) is evaluated at build time. A `shouldForwardProp` the build cannot evaluate is a build error naming the file, line and code, with the forms it accepts. An element using a styled component the file defines drops props the component neither reads nor passes on; spread props are passed as written", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_styled_targets.json b/.changepacks/changepack_log_styled_targets.json deleted file mode 100644 index a51d45fe7..000000000 --- a/.changepacks/changepack_log_styled_targets.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Styled components render what their `as` prop names, defaulting to the tag or component they were defined with, and pass `forwardedAs` on as `as`, as styled-components and Emotion do; `as` used to reach the rendered tag as an attribute. `Component.withComponent(target)` on a styled component the file binds to a const builds a component rendering the same styles and attrs as `target` (a tag name or a component JSX can name), where it used to call a method the generated function does not have and throw", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_stylex_attrs_style.json b/.changepacks/changepack_log_stylex_attrs_style.json deleted file mode 100644 index 7ccca57d3..000000000 --- a/.changepacks/changepack_log_stylex_attrs_style.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "packages/react/package.json": "Patch", - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "stylex.attrs() gives the dynamic CSS variables it sets as `style` attribute text (`\"--a:\" + value`), as StyleX does for spreading onto non-React targets, instead of a style object; stylex.props() keeps the object React takes. The attrs() return type declares `style` as a string", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_tailwind_classes.json b/.changepacks/changepack_log_tailwind_classes.json deleted file mode 100644 index 3e2f64256..000000000 --- a/.changepacks/changepack_log_tailwind_classes.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Tailwind classes in a className: each class compiles on its own and every class Tailwind does not define (custom, plugin and analytics classes) stays as written, where any recognized class used to rebuild the whole className without them and could rewrite part of another class; a class touching a template interpolation (icon-${name}) is left as written, and template classNames no longer get spaces inserted around interpolations. A class whose variant is not understood stays as written instead of applying unconditionally; variants follow Tailwind v4: stacked variants compose (hover:focus: matches the element itself), hover is guarded by @media (hover: hover), group-*/peer-* use the group/peer marker classes (and group-hover/name), and data-*, aria-*, has-*, nth-*, *, **, supports-[…] and [&…]/[@media …] variants compile. Utilities emit all their declarations (size-*, rounded-t-*, truncate, sr-only, not-sr-only, text-sm with its line height, text-sm/6, leading-*), translate/rotate/scale/skew compose through Tailwind's individual properties and registered variables (@property) with negative values kept negative, and arbitrary values follow Tailwind's grammar: spaces for underscores except in url() and var() names, \\_ for an underscore, spaces around math operators, type hints, [property:value] and (--variable) shorthands. Words that only share a utility's prefix (select-wrapper, order-summary, cursor-foo) are no longer compiled", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_tailwind_hover_active_order.json b/.changepacks/changepack_log_tailwind_hover_active_order.json deleted file mode 100644 index 6d748495f..000000000 --- a/.changepacks/changepack_log_tailwind_hover_active_order.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Order standalone nonresponsive hover-capability guards within their selector group so active, focus and disabled styles can override hover. Keep responsive Tailwind hover and Devup selector prop ordering unchanged. No new build errors.", - "date": "2026-10-09T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_tailwind_v4_complete.json b/.changepacks/changepack_log_tailwind_v4_complete.json deleted file mode 100644 index 31da09f54..000000000 --- a/.changepacks/changepack_log_tailwind_v4_complete.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/rsbuild-plugin/package.json": "Patch", - "packages/bun-plugin/package.json": "Patch" - }, - "note": "More of Tailwind CSS v4 compiles: container queries (@sm:, @max-md:, @min-[400px]:, @sm/main:) and @container utilities, mask-* (all but the gradient masks), text-shadow-*, inset-shadow-*, font-variant-numeric utilities (tabular-nums and the like), 3D transforms (rotate-x/y/z, translate-z, scale-z, translate-3d, scale-3d, transform-3d, backface-*, perspective-*, perspective-origin-*), contain-* and outline-hidden (with its forced-colors fallback). The project's Tailwind CSS is read further: functional @utility with --value() and --modifier(), @apply in @utility, and theme(--name) in arbitrary values; classes of @plugin entries stay as written. A className now compiles the classes of cn()/twMerge() calls whose arguments are all static (merged as tailwind-merge does, the later class wins), of consts bound to class strings, and of cva() calls (base, variants, compound variants). The Rsbuild plugin reads the Tailwind CSS again and compiles every module again when it changes, and the Bun plugin reads it again. No new build errors", - "date": "2026-10-01T00:00:00.000Z" -} \ No newline at end of file diff --git a/.changepacks/changepack_log_tailwind_v4_theme.json b/.changepacks/changepack_log_tailwind_v4_theme.json deleted file mode 100644 index b9ac3422e..000000000 --- a/.changepacks/changepack_log_tailwind_v4_theme.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Tailwind classes in a className follow Tailwind CSS v4: colors are the v4 default palette (oklch) and the colors and shadows of devup.json theme are usable as Tailwind theme values (bg-primary, text-text, shadow-card, as var(--token)); the opacity modifier (bg-red-500/50, /[71.37%], /(--alpha)) mixes with color-mix as v4 does; a trailing or leading ! makes every declaration important; blur, brightness, contrast, grayscale, hue-rotate, invert, saturate, sepia and their backdrop-* forms compose through Tailwind's custom properties instead of overwriting filter and backdrop-filter; gradients use bg-linear-*, bg-conic-* and bg-radial-* with from-*, via-* and to-* composing through the gradient variables (bg-gradient-to-* is not defined by v4 and stays as written); animate-* brings the @keyframes it names and transition, duration, delay and ease follow v4; space-* and divide-* apply to the children like v4 (:where(& > :not(:last-child))); @property rules are emitted only for the custom properties a class uses. Anything the build cannot reproduce exactly (drop-shadow-*) stays as written in the className. No new build errors", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_tailwind_v4_utilities.json b/.changepacks/changepack_log_tailwind_v4_utilities.json deleted file mode 100644 index f43315b48..000000000 --- a/.changepacks/changepack_log_tailwind_v4_utilities.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/plugin-utils/package.json": "Patch", - "packages/vite-plugin/package.json": "Patch", - "packages/webpack-plugin/package.json": "Patch", - "packages/next-plugin/package.json": "Patch", - "packages/rsbuild-plugin/package.json": "Patch", - "packages/bun-plugin/package.json": "Patch" - }, - "note": "Tailwind classes in a className read the Tailwind CSS of the project: the file that imports tailwindcss (the tailwind.css option of devup.json, else a conventional path) gives @theme variables (colors, spacing, shadows, blurs, radii, easings, animations with their @keyframes, default transitions, breakpoints), @utility utilities and @custom-variant variants, and the Vite, webpack and Next.js plugins read it again when it or a CSS file it imports changes. Anything that cannot be read exactly, and the classes of namespaces the build does not read, stay as written. More of Tailwind CSS v4 compiles: ring-*, inset-ring-*, ring-offset-* and drop-shadow-* compose with shadows and filters, borders and outlines draw in --tw-border-style and --tw-outline-style (a border now shows its style), line-clamp, text decoration, border-spacing, logical and scroll spacing, tables, perspective, font-stretch and more; the arguments of clsx(), classnames() and classNames() and [...].join(' ') compile in place. Radii follow v4 (rounded-sm is 0.25rem, rounded-full is calc(infinity * 1px)). No new build errors", - "date": "2026-10-01T00:00:00.000Z" -} \ No newline at end of file diff --git a/.changepacks/changepack_log_theme_reads.json b/.changepacks/changepack_log_theme_reads.json deleted file mode 100644 index 27dd8317c..000000000 --- a/.changepacks/changepack_log_theme_reads.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "A styled-components or Emotion style function reading the theme by literal keys, such as `p => p.theme.space[2]` or `({ theme }) => theme.colors['brand']`, now reads the CSS variable ThemeProvider declares (`var(--space-2)`). A theme read the build cannot turn into a CSS variable, such as `p => p.theme`, `p => p.theme.brand()` or `theme.space[i]`, is a build error naming the file, line, column and code, where it used to read a theme object that does not exist at runtime and give undefined or throw", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_toggle_switch.json b/.changepacks/changepack_log_toggle_switch.json deleted file mode 100644 index 744f10d0f..000000000 --- a/.changepacks/changepack_log_toggle_switch.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/components/package.json": "Patch" - }, - "note": "Toggle is an accessible switch: role=switch with aria-checked, focusable with a visible focus ring, toggled by Space and Enter, labelled through aria-label or aria-labelledby, and submitted under the name it is given; when disabled it leaves the tab order, ignores keys and its hidden input is disabled", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_transient_props.json b/.changepacks/changepack_log_transient_props.json deleted file mode 100644 index c4971dd57..000000000 --- a/.changepacks/changepack_log_transient_props.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/react/package.json": "Patch" - }, - "note": "Styled components now remove every runtime prop whose name starts with `$` before forwarding a rest spread to a tag or component, including props supplied by callers or attrs. Style and attrs functions can still read transient props, and all other build-time forwarding policies remain unchanged. The styled-components migration guide documents transient prop support. No new build errors", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_ts_styled_output.json b/.changepacks/changepack_log_ts_styled_output.json deleted file mode 100644 index 3a1536b3b..000000000 --- a/.changepacks/changepack_log_ts_styled_output.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "Generate React JSX-runtime calls for styled components in non-JSX source modules while preserving JSX and TSX output. No new build errors.", - "date": "2026-10-13T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_ui_kit_behavior.json b/.changepacks/changepack_log_ui_kit_behavior.json deleted file mode 100644 index 128cff001..000000000 --- a/.changepacks/changepack_log_ui_kit_behavior.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "changes": { - "packages/components/package.json": "Patch", - "packages/react/package.json": "Patch", - "packages/reset-css/package.json": "Patch" - }, - "note": "Components behave for keyboard, screen readers and both React 18 and 19: Button, Input and Textarea no longer force generic aria-labels (the visible text or an associated label names them), Input and Textarea mark errors with aria-invalid and aria-describedby pointing at the message, a loading Button sets aria-busy, is disabled by default (disableWhileLoading) and announces loadingLabel, Input clear dispatches a real change event instead of a fabricated one, color customization variables sit on the container so every part sees them and every public color key matches its CSS custom property (new keys inputDisabledBackground, inputDisabledText, inputPlaceholder, primaryBackground, Textarea disabledBackground and disabledText), Select positions against the viewport and clears the opposite inset, SelectTrigger asChild composes the child onClick, onKeyDown and ref with its own, Stepper counts without a controlled value, keeps its bound and disabled safeguards and renders its text mode as an output element. Select no longer forces aria-labels over its trigger, options, confirm button and container: an option is named by its content, the listbox by its trigger (aria-labelledby) or by what the caller passes. ThemeScript takes nonce and other script props and never aborts on blocked storage or missing matchMedia, follows the system while no theme was chosen and themes saved in other tabs; getTheme, setTheme and initTheme are safe on the server and initTheme returns a function that stops following. reset-css clips accessible-hidden content as sanitize.css does. No new build errors.", - "date": "2026-10-01T00:00:00.000Z" -} \ No newline at end of file diff --git a/.changepacks/changepack_log_ui_kit_forward_ref.json b/.changepacks/changepack_log_ui_kit_forward_ref.json deleted file mode 100644 index 883e0e61b..000000000 --- a/.changepacks/changepack_log_ui_kit_forward_ref.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/components/package.json": "Patch" - }, - "note": "Button, Checkbox, Input, Radio and Textarea forward their ref to the button, input or textarea they render, so a ref reaches the form element on React 18 as well as React 19", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_update_dependencies.json b/.changepacks/changepack_log_update_dependencies.json deleted file mode 100644 index a68aec264..000000000 --- a/.changepacks/changepack_log_update_dependencies.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/bun-plugin/package.json": "Patch", - "packages/components/package.json": "Patch", - "packages/eslint-plugin/package.json": "Patch", - "packages/next-plugin/package.json": "Patch", - "packages/react/package.json": "Patch", - "packages/rsbuild-plugin/package.json": "Patch", - "packages/webpack-plugin/package.json": "Patch" - }, - "note": "Refresh all dependency ranges and regenerated lockfiles with the latest dependency-check-updates CLI, including Oxc 0.154, sourcemap 9, Next, React, Panda, Playwright, ESLint, Vinext and WASM dependencies. Preserve the existing hybrid CommonJS bundler language through exact top-level declaration-goal classification without changing parser AST, diagnostics or source-type metadata; real invalid syntax, including nested ES declarations, still produces located parser errors. Keep React 18 and 19 peer support and the React 18 fixture pins. No new build errors for valid supported styling inputs or styling runtime.", - "date": "2026-10-18T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_vanilla_extract_companions.json b/.changepacks/changepack_log_vanilla_extract_companions.json deleted file mode 100644 index 4031f66aa..000000000 --- a/.changepacks/changepack_log_vanilla_extract_companions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch" - }, - "note": "While @vanilla-extract/css is aliased, importing @vanilla-extract/recipes or @vanilla-extract/sprinkles is a build error naming the file, line and column: those packages generate CSS Devup UI does not compile, so their rules used to be silently missing from the stylesheet. The error says to write the styles with css(), or to disable the alias and build with the vanilla-extract plugin. Type-only imports are allowed", - "date": "2026-10-01T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_wasm_skip_source_map.json b/.changepacks/changepack_log_wasm_skip_source_map.json deleted file mode 100644 index 48c846453..000000000 --- a/.changepacks/changepack_log_wasm_skip_source_map.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "changes": { - "bindings/devup-ui-wasm/package.json": "Patch", - "packages/next-plugin/package.json": "Patch" - }, - "note": "Skip source-map generation in the codeExtractWithoutSourceMap WASM export while preserving extracted code, CSS and dependencies. Add real WASM and Next loader regressions for map-enabled and map-disabled extraction. No new build errors.", - "date": "2026-10-09T00:00:00.000Z" -} diff --git a/.changepacks/changepack_log_webpack_theme_delivery.json b/.changepacks/changepack_log_webpack_theme_delivery.json deleted file mode 100644 index b3194b234..000000000 --- a/.changepacks/changepack_log_webpack_theme_delivery.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "changes": { - "packages/webpack-plugin/package.json": "Patch" - }, - "note": "Keep packed CommonJS Webpack plugins relocatable so initialization and both loaders use the installed package and the same WASM instance. Inherited theme declarations now survive in shipped production CSS in per-file and single-CSS modes. No new build errors.", - "date": "2026-10-19T00:00:00.000Z" -} diff --git a/bindings/devup-ui-wasm/package.json b/bindings/devup-ui-wasm/package.json index 963734de6..80c747fb7 100644 --- a/bindings/devup-ui-wasm/package.json +++ b/bindings/devup-ui-wasm/package.json @@ -17,7 +17,7 @@ "react", "wasm" ], - "version": "1.0.83", + "version": "1.0.84", "scripts": { "build": "node -e \"require('node:fs').rmSync('pkg', { recursive: true, force: true })\" && wasm-pack build --target nodejs --out-dir ./pkg --out-name index && node script.js", "test": "wasm-pack test --node" diff --git a/packages/bun-plugin/package.json b/packages/bun-plugin/package.json index 35a8044d5..c3bc5b64c 100644 --- a/packages/bun-plugin/package.json +++ b/packages/bun-plugin/package.json @@ -18,7 +18,7 @@ "bun" ], "type": "module", - "version": "1.0.22", + "version": "1.0.23", "scripts": { "lint": "eslint", "build": "bun ../../node_modules/@typescript/native/bin/tsc && bun build --target node src/index.cjs.ts --production --env=disable --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --env=disable --outfile dist/index.mjs --format esm --packages external && bun build --target node src/register.ts --production --env=disable --outfile dist/register.cjs --format cjs --packages external && bun build --target node src/register.ts --production --env=disable --outfile dist/register.mjs --format esm --packages external", diff --git a/packages/components/package.json b/packages/components/package.json index 45bd61746..40d2e0233 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -16,7 +16,7 @@ "css-in-js-framework", "react" ], - "version": "0.1.60", + "version": "0.1.61", "type": "module", "scripts": { "lint": "eslint", diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index e403598cf..e80bf1930 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -17,7 +17,7 @@ "react", "eslint" ], - "version": "1.0.22", + "version": "1.0.23", "main": "dist/index.cjs", "type": "module", "scripts": { diff --git a/packages/next-plugin/package.json b/packages/next-plugin/package.json index 27f4e4078..8ea95d547 100644 --- a/packages/next-plugin/package.json +++ b/packages/next-plugin/package.json @@ -19,7 +19,7 @@ "webpack" ], "type": "module", - "version": "1.0.90", + "version": "1.0.91", "scripts": { "lint": "eslint", "build": "bun ../../node_modules/@typescript/native/bin/tsc && bun build --target node src/index.ts --production --env=disable --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --env=disable --outfile dist/index.mjs --format esm --packages external && bun build --target node src/loader.ts --production --env=disable --outfile dist/loader.cjs --format cjs --packages external && bun build --target node src/loader.ts --production --env=disable --outfile dist/loader.mjs --format esm --packages external && bun build --target node src/css-loader.ts --production --env=disable --outfile dist/css-loader.cjs --format cjs --packages external && bun build --target node src/css-loader.ts --production --env=disable --outfile dist/css-loader.mjs --format esm --packages external" diff --git a/packages/plugin-utils/package.json b/packages/plugin-utils/package.json index a83918294..3f81a4cb3 100644 --- a/packages/plugin-utils/package.json +++ b/packages/plugin-utils/package.json @@ -15,7 +15,7 @@ "utils" ], "type": "module", - "version": "1.0.17", + "version": "1.0.18", "scripts": { "lint": "eslint", "build": "bun ../../node_modules/@typescript/native/bin/tsc && bun build --target node src/index.ts --production --env=disable --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --env=disable --outfile dist/index.mjs --format esm --packages external" diff --git a/packages/react/package.json b/packages/react/package.json index fa0d51662..ee9c5c181 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -16,7 +16,7 @@ "css-in-js-framework", "react" ], - "version": "1.0.44", + "version": "1.0.45", "type": "module", "scripts": { "lint": "eslint && bun ../../node_modules/@typescript/native/bin/tsc --noEmit && bun run test:types", diff --git a/packages/reset-css/package.json b/packages/reset-css/package.json index 3a9fac4aa..3287826db 100644 --- a/packages/reset-css/package.json +++ b/packages/reset-css/package.json @@ -16,7 +16,7 @@ "css-in-js-framework", "react" ], - "version": "1.0.31", + "version": "1.0.32", "type": "module", "scripts": { "lint": "eslint", diff --git a/packages/rsbuild-plugin/package.json b/packages/rsbuild-plugin/package.json index 9934c7b63..00b8ebf12 100644 --- a/packages/rsbuild-plugin/package.json +++ b/packages/rsbuild-plugin/package.json @@ -18,7 +18,7 @@ "rsbuild" ], "type": "module", - "version": "1.0.67", + "version": "1.0.68", "scripts": { "lint": "eslint", "build": "bun ../../node_modules/@typescript/native/bin/tsc && bun build --target node src/index.ts --production --env=disable --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --env=disable --outfile dist/index.mjs --format esm --packages external" diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 82eba9cac..67bcab807 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -18,7 +18,7 @@ "vite" ], "type": "module", - "version": "1.0.73", + "version": "1.0.74", "scripts": { "lint": "eslint", "build": "bun ../../node_modules/@typescript/native/bin/tsc && bun build --target node src/index.ts --production --env=disable --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --env=disable --outfile dist/index.mjs --format esm --packages external" diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index 2661a4c77..326c0e43e 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -18,7 +18,7 @@ "webpack" ], "type": "module", - "version": "1.0.71", + "version": "1.0.72", "scripts": { "build": "bun ../../node_modules/@typescript/native/bin/tsc && bun build --target node src/index.ts --production --env=disable --outfile dist/index.cjs --format cjs --packages external --define import.meta.url=module.filename && bun build --target node src/index.ts --production --env=disable --outfile dist/index.mjs --format esm --packages external && bun build --target node src/loader.ts --production --env=disable --outfile dist/loader.cjs --format cjs --packages external && bun build --target node src/loader.ts --production --env=disable --outfile dist/loader.mjs --format esm --packages external && bun build --target node src/css-loader.ts --production --env=disable --outfile dist/css-loader.cjs --format cjs --packages external && bun build --target node src/css-loader.ts --production --env=disable --outfile dist/css-loader.mjs --format esm --packages external" },