@kbach/ui 0.1.0-beta.2 → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/KBACH.md CHANGED
@@ -32,7 +32,7 @@ export default { plugins: [react({ jsxImportSource: '@kbach/ui' })] };
32
32
  import { ThemeProvider, KbachReset } from '@kbach/ui';
33
33
  <ThemeProvider defaultMode="system"><KbachReset /><App /></ThemeProvider>
34
34
  ```
35
- `<KbachReset />` renders Kbach's base browser-default reset (borderless button/input, visible checkbox/radio, no arrow-less `<select>`, `a`/`h1-h6`/`p`/`ul`/`ol`/`img` normalized, etc.) as a real `<style>` tag — needed for SSR under runtime-only setups (no JS runs server-side, but this is just JSX so it still renders), a no-op-but-harmless nice-to-have for plain CSR. Skip it if using static `kbach.css` (below) — that file already includes the same reset, and the runtime injector auto-detects `<KbachReset />` and skips re-adding it either way, so having both is harmless too.
35
+ `<KbachReset />` renders Kbach's base browser-default reset (borderless button/input, visible checkbox/radio, no arrow-less `<select>`, `a`/`h1-h6`/`p`/`ul`/`ol`/`img` normalized, etc.) as a real `<style>` tag — needed for SSR under runtime-only setups (no JS runs server-side, but this is just JSX so it still renders), a no-op-but-harmless nice-to-have for plain CSR. Not needed if using static `kbach.css` (below) — that file already includes the same reset. `<KbachReset />` checks `disableRuntimeCSS()` (which the Vite plugin calls automatically wherever `kbach.css` gets imported) and renders nothing once it's active, so leaving it mounted alongside the static setup is safe rather than a duplicate reset on every page load.
36
36
 
37
37
  ### Next.js
38
38
  - tsconfig `jsxImportSource` setup above applies as-is (SWC reads it like Vite does).
package/dist/index.d.ts CHANGED
@@ -167,9 +167,16 @@ declare function ThemeProvider({ children, defaultMode, colorScheme, windowWidth
167
167
  * hydration catches up. Render this once, as high in <head> as your
168
168
  * framework allows, to close that gap.
169
169
  *
170
- * Not needed if you're on the static-CSS setup kbach.css already includes
171
- * the same reset, and the runtime injector detects this tag and skips adding
172
- * it a second time either way.
170
+ * Skips rendering entirely once disableRuntimeCSS() has firedthe Vite
171
+ * plugin calls it automatically wherever kbach.css gets imported (see
172
+ * vite-plugin.ts's transform hook), and that static file already inlines
173
+ * this exact reset. Previously this rendered unconditionally regardless of
174
+ * that flag, so an app using the static-CSS setup that ALSO keeps
175
+ * <KbachReset/> mounted (e.g. copied from a starter template's root layout
176
+ * and never revisited) got the same reset rules twice — once from the
177
+ * static file, once from this tag — on every single page load, real static
178
+ * CSS or not. Checked here (render time), not just documented, so the
179
+ * static setup is actually leak-free even when this stays in the tree.
173
180
  */
174
181
  declare function KbachReset(): React.JSX.Element | null;
175
182
 
package/dist/index.js CHANGED
@@ -383,6 +383,7 @@ var import_core4 = require("./core");
383
383
  var import_jsx_runtime2 = require("react/jsx-runtime");
384
384
  function KbachReset() {
385
385
  if (import_core4.isNative) return null;
386
+ if ((0, import_core4.isRuntimeCSSDisabled)()) return null;
386
387
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("style", { id: import_core4.RESET_STYLE_ID, children: import_core4.BASE_RESET });
387
388
  }
388
389
 
package/dist/index.mjs CHANGED
@@ -26,6 +26,7 @@ import {
26
26
  initConfig,
27
27
  isModeAwareColor,
28
28
  isNative,
29
+ isRuntimeCSSDisabled,
29
30
  isWeb,
30
31
  kbachWarn,
31
32
  normalizeClassString,
@@ -354,6 +355,7 @@ function ThemeProvider({
354
355
  import { jsx as jsx2 } from "react/jsx-runtime";
355
356
  function KbachReset() {
356
357
  if (isNative) return null;
358
+ if (isRuntimeCSSDisabled()) return null;
357
359
  return /* @__PURE__ */ jsx2("style", { id: RESET_STYLE_ID, children: BASE_RESET });
358
360
  }
359
361
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kbach/ui",
3
- "version": "0.1.0-beta.2",
3
+ "version": "0.1.0-beta.3",
4
4
  "description": "Tailwind-like utility classes and components for React — web, React Native, and Expo",
5
5
  "license": "MIT",
6
6
  "repository": {