kandown 0.30.0 → 0.31.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.31.0 — 2026-07-21 — "Fable UI Themes Overhaul"
4
+
5
+ - **Added**: **Google Fonts Signature Typography Integration** — imported web font packages (`Inter Tight`, `Plus Jakarta Sans`, `Newsreader`, `SF Pro Display`, `Syne`, `Space Grotesk`, `JetBrains Mono`, `Fira Code`, `VT323`) so every theme preset features a distinct signature typography stack.
6
+ - **Added**: **Full-Width Theme Gallery & Grid Layout** — refactored `SettingsPage.tsx` so the theme selector is no longer squished into a narrow 190px right column. It now occupies 100% of the settings container width with a responsive 4-column desktop grid.
7
+ - **Changed**: **Signature Typography & Visual Personalities for 8 Presets**:
8
+ - ⚡ **Vercel**: Geist / Inter Tight font, radical monochrome `#000` / `#FFF`, sharp 6px radius, zero shadows.
9
+ - 📐 **Linear**: Plus Jakarta Sans font, electric violet accent `#5E6AD2`, dark-first surface `#08090A`, 8px radius.
10
+ - 🧡 **Claude**: Newsreader serif display headings, oat crème background `#F5F1EA`, terracotta accent `#D97757`, 12px radius.
11
+ - 🍎 **Apple**: SF Pro Display typography, translucent backdrop blur, system blue `#0A84FF`, 14px squircle radius.
12
+ - 💳 **Stripe**: Syne & Space Grotesk display, indigo night `#0A0A23`, blurple accent `#635BFF`, elevated shadows.
13
+ - 📄 **Paper**: Newsreader serif display, warm studio paper background `#F7F6F3`, flat cards, 4px radius.
14
+ - 🧛 **Catppuccin**: JetBrains Mono & Fira Code monospaced display, official Mocha `#1E1E2E` mauve `#CBA6F7` & Latte.
15
+ - 🖥️ **Terminal**: VT323 retro CRT mono font, pitch black `#0C0C0C`, phosphor neon green `#33FF66`, 0px radius.
16
+ - **Changed**: **Live Mini-Board Preview Cards (`ThemePreviewCard`)** — added live signature font banners (`Aa ✦ <FontName>`), real text task cards ("Refactor Auth", "Theme Engine", "CLI Doctor"), and font signature rendering inside previews.
17
+
18
+ ## 0.30.1 — 2026-07-21 — "Fix Auto-Updater Crash"
19
+
20
+ - **Fixed**: **`performGlobalPackageUpdate` missing function error** — added the missing `performGlobalPackageUpdate` definition in `bin/kandown.js`, fixing a runtime `ReferenceError` crash during automatic background CLI updates and `kandown update`.
21
+
3
22
  ## 0.30.0 — 2026-07-21 — "Fable UI Themes"
4
23
 
5
24
  - **Added**: **Customizable JSON Theme Engine (`KandownTheme`)** — upgraded Kandown's skin system from 5 hardcoded HSL presets to an open, JSON-driven theme engine with dynamic inheritance (`base`), fallback safety, and runtime custom theme registration (`registerCustomThemes`).
package/bin/kandown.js CHANGED
@@ -227,6 +227,34 @@ function rememberUpdateCheck() {
227
227
  writeFileSync(UPDATE_CHECK_CACHE, JSON.stringify({ lastCheck: Date.now() }), 'utf8');
228
228
  } catch { /* read-only install — check again next time */ }
229
229
  }
230
+ async function performGlobalPackageUpdate(packageSpec) {
231
+ const cleanEnv = { ...process.env };
232
+ for (const k of Object.keys(cleanEnv)) {
233
+ if (k.startsWith('npm_config_') || k.startsWith('npm_') || k === 'INIT_CWD') {
234
+ delete cleanEnv[k];
235
+ }
236
+ }
237
+
238
+ const tryPkgCmd = (cmd, args) => {
239
+ return new Promise((res) => {
240
+ const child = spawn(cmd, args, {
241
+ timeout: 60000,
242
+ stdio: ['pipe', 'pipe', 'pipe'],
243
+ env: cleanEnv,
244
+ detached: false,
245
+ });
246
+ child.stderr.on('data', () => {});
247
+ child.stdout.on('data', () => {});
248
+ child.on('error', () => res(false));
249
+ child.on('close', (code) => res(code === 0));
250
+ });
251
+ };
252
+
253
+ if (await tryPkgCmd('pnpm', ['add', '-g', packageSpec])) return true;
254
+ if (await tryPkgCmd('npm', ['install', '-g', packageSpec])) return true;
255
+ if (await tryPkgCmd('yarn', ['global', 'add', packageSpec])) return true;
256
+ return await tryPkgCmd('bun', ['add', '-g', packageSpec]);
257
+ }
230
258
 
231
259
  /**
232
260
  * 📖 Check npm for a newer version and auto-update if outdated.