@ciderpress/config

1.0.0-rc.3

Minor Changes

  • f71d7f4: Fix: the navbar fallback no longer overrides the auto-generated /logo.svg with the hardcoded <CiderpressLogo /> wordmark. When logo is omitted, the nav now shows the SVG written to the public dir by the banner module (derived from title). Sites that committed their own public/logo.svg already won this round; sites that didn't were silently getting the ciderpress wordmark.

    The themed wordmark is still available as an opt-in:

    import { CiderpressLogo } from "ciderpress";
    
    export default defineConfig({
      logo: ({ theme }) => <CiderpressLogo />,
    });

    New: two top-level config fields for overriding auto-generated asset paths.

    • banner?: string — hero image used on the home page and workspace landing pages. Defaults to /banner.svg.
    • favicon?: string — favicon path. Defaults to /icon.svg. Distinct from icon (the Iconify id for the inline topbar mark).
    export default defineConfig({
      banner: '/assets/hero.png',
      favicon: '/favicon.ico',
    })

    Auto-generation and the <!-- ciderpress-generated --> marker still carry the default case — these fields are only needed to point at a different filename or a CDN URL.

1.0.0-rc.2

Patch Changes

  • e4d81aa: Test/exercise the CI release pipeline.

    No code changes — this changeset only exists to force the changesets bot to open a release PR, validate that the GitHub Actions workflow can publish via npm trusted publishing (no NPM_TOKEN, OIDC-only with id-token: write + NPM_CONFIG_PROVENANCE: true), and confirm provenance attestations land on the resulting 1.0.0-rc.2 releases. Following the local bootstrap publish of 1.0.0-rc.1, this is the first CI-driven cut.

  • Updated dependencies [e4d81aa]

    • @ciderpress/theme@1.0.0-rc.2

1.0.0-rc.1

Major Changes

  • 0a651df: Rename to ciderpress. The project moved to the thebytefarm org and the kit now lives at the unscoped ciderpress package name (replacing @zpress/kit).

    Consumer migration:

    • @zpress/cli@ciderpress/cli
    • @zpress/config@ciderpress/config
    • @zpress/ui@ciderpress/ui
    • @zpress/theme@ciderpress/theme
    • @zpress/templates@ciderpress/templates
    • @zpress/kitciderpress (unscoped)
    • zpress.config.tsciderpress.config.ts
    • Window globals: __ZPRESS_*____CIDERPRESS_*__
    • CSS vars: --zp-*--cp-*

    The @zpress/* packages are not republished — @ciderpress/* starts fresh at this version. Tagline: press your docs.

Patch Changes

  • Updated dependencies [0a651df]
    • @ciderpress/theme@1.0.0-rc.1

1.0.0-rc.0

Major Changes

  • ciderpress 1.0 — release candidate

    This is a major release that locks the v1 public API. Headline changes:

    Theme system

    • Renamed the built-in base theme to honeycrisp (apple red, the canonical brand theme) and added grannysmith (apple green) as a second apple-themed default. Both ship with dark and light variants; the sun/moon toggle swaps between them. The legacy slug 'default' aliases to 'honeycrisp' via THEME_ALIASES for backward compatibility. The full built-in roster is now honeycrisp, grannysmith, midnight, and arcade.
    • Replaced theme.colorMode with theme.variant (values: 'dark' | 'light'). The 'toggle' value is no longer supported — themes that declare both variants always show the toggle; themes that declare one hide it.
    • defineTheme() input shape changed from { name, tokens, modes, defaultMode } to { name, variants: { dark?, light? }, defaultVariant? }. The factory validates the envelope before parsing token trees so error messages now point at the offending input field.
    • ciderpress and @ciderpress/config no longer re-export ColorMode, ThemeMode, COLOR_MODES, or resolveDefaultColorMode. Use ThemeVariant, THEME_VARIANTS, and resolveDefaultVariant from @ciderpress/theme. The deprecated aliases remain in @ciderpress/theme itself for one-version migration safety.

    Config surface

    • Frontmatter is now strict — unknown keys are rejected at config load and produce a typed compile-time error. On-disk markdown frontmatter is unaffected (gray-matter never typed it as Frontmatter).
    • Renamed WorkspaceCategoryWorkspaceGroup. The config.workspaces field name is unchanged.
    • Every field on CiderpressConfig and its sub-types now has solid JSDoc that propagates to IDE hover docs.
    • Tightened the CLI --color-mode schema from string to enum('dark', 'light').

    Dependency hygiene

    • Removed gray-matter (last released 2021, drags in the abandoned js-yaml@3 line with known prototype-pollution CVEs). Replaced with a ~25-line parse / stringify helper built on yaml (eemeli/yaml).
    • Removed unused js-yaml and @types/js-yaml direct deps from @ciderpress/cli.

    Fixes

    • safe-url.ts regex is now stored with �-  escape sequences instead of raw control bytes. Git no longer marks the file as binary; editors render it correctly.
    • Deleted orphaned packages/ui/src/head/js/color-mode-{dark,light}.js.
    • Hardened variant resolution across the head IIFE, theme provider, and theme switcher with cross-reference comments and a re-entrancy guard on the MutationObserver snap-back.

    Migration

    - import { ColorMode, ThemeMode, COLOR_MODES } from 'ciderpress'
    + import { ThemeVariant, THEME_VARIANTS } from 'ciderpress'
    
      defineConfig({
        theme: {
    -     colorMode: 'dark',
    +     variant: 'dark',
    -     name: 'base',
    +     name: 'honeycrisp',
        },
        themes: [
          defineTheme({
            name: 'sunset',
    -       tokens: sunsetTokens,
    -       modes: ['dark'],
    -       defaultMode: 'dark',
    +       variants: { dark: sunsetTokens },
    +       defaultVariant: 'dark',
          }),
        ],
    -   workspaces: [{ title: 'Integrations', ... } as WorkspaceCategory],
    +   workspaces: [{ title: 'Integrations', ... } as WorkspaceGroup],
      })

Patch Changes

  • Updated dependencies
    • @ciderpress/theme@1.0.0-rc.0

0.5.2

Patch Changes

  • f26cf74: fix: resolve SWC decorator panic by upgrading rsbuild to 2.0.0-rc.1

0.5.1

Patch Changes

  • 1e966e1: Fix workspace include resolution for apps and packages items:
    • Use deep glob pattern (docs/**/*.md) as default include when recursive: true. Previously the default was always docs/*.md regardless of the flag.
    • Add config check warning when an explicit include pattern already starts with the basePath derived from path, which causes double-prefixing and silently matches zero files. Surfaces during ciderpress check before the build step.

0.5.0

Minor Changes

  • 9b5099b: Restore apps and packages as first-class root config fields

    Re-adds apps and packages to CiderpressConfig alongside the existing generic workspaces field. The home page renders groups in fixed order: Apps, Packages, then custom workspace categories. Each group gets its own heading, auto-generated description, and scope prefix on cards.

    Also adds collectAllWorkspaceItems() utility to merge all three sources consistently across the sync engine, validation, landing page injection, and OpenAPI collection.

Patch Changes

  • b912b2d: Update and add READMEs
  • Updated dependencies [b912b2d]
    • @ciderpress/theme@0.3.2

0.4.0

Minor Changes

  • 179ae48: Add sidebar button variants (style/shape), site footer with social links toggle, client-side navigation via Link, typed IconId, and ESM compatibility patches for rspress plugins

Patch Changes

  • 62248ba: Align icon fields on Section, CardConfig, and Workspace with the IconConfig union type and remove stale iconColor properties

0.3.0

Minor Changes

  • 429846c: Add OpenAPI documentation support with auto-generated API reference pages from OpenAPI specs, interactive UI components (schema viewer, code examples in 6 languages, collapsible responses), workspace-scoped sidebar merging, and Copy Markdown functionality.

Patch Changes

  • 77796f1: Auto-generate section landing pages with SectionCard grids for all section groups with children. Fix sidebar group names, duplicate entries, and missing pages for auto-derived links. Redesign SectionCard with compact icon+title row and optional description. Remove all && chains from scripts in favor of turbo task dependencies and pnpm lifecycle hooks.

  • 3e7a28a: Enforce consistent file structure conventions across all packages and upgrade dependencies to latest versions.

    File Structure

    Apply a standardized file layout pattern to every source file in the monorepo:

    • Exports first: All exported functions, constants, and types appear at the top of each file immediately after imports.
    • Private separator: Non-exported (private) helper functions are placed below a // --- Private --- section separator comment.
    • Complete JSDoc: Every function now has full JSDoc documentation including @param and @returns tags. Non-exported helpers include the @private tag.
    • Spacing cleanup: Removed inconsistent double blank lines between declarations across all packages.

    Test Colocation

    Moved all test files from packages/*/test/ directories to sit alongside their source files in packages/*/src/:

    • packages/cli/test/packages/cli/src/lib/
    • packages/config/test/packages/config/src/
    • packages/core/test/packages/core/src/ (including sync/ and sync/sidebar/ subdirectories)
    • packages/templates/test/packages/templates/src/
    • packages/theme/test/packages/theme/src/
    • packages/ui/test/packages/ui/src/

    Standards

    Updated .claude/rules/typescript.md to codify the file structure conventions so all future code follows the same pattern.

    Dependency Upgrades

    • oxlint 1.55.0 → 1.56.0
    • oxfmt 0.40.0 → 0.41.0
    • @kidd-cli/core 0.4.0 → 0.7.0
    • c12 4.0.0-beta.3 → 4.0.0-beta.4
    • laufen 1.1.0 → 1.2.1
    • @iconify-json/material-icon-theme 1.2.55 → 1.2.56
    • @iconify-json/simple-icons 1.2.73 → 1.2.74
  • Updated dependencies [3e7a28a]

    • @ciderpress/theme@0.3.1

0.2.2

Patch Changes

  • 1b3b8e3: Add vitest test infrastructure and 122 unit tests across all packages
  • Updated dependencies [1b3b8e3]
  • Updated dependencies [c57ab70]
    • @ciderpress/theme@0.3.0

0.2.1

Patch Changes

  • 6df5ab7: fix(packages/core): map nav items with text instead of title for Rspress compatibility fix(packages/ui): inject critical CSS via Rsbuild html.tags so loading screen works in dev mode fix(packages/ui): re-enable data-cp-ready dismiss flag in ThemeProvider fix(packages/ui): replace pong/invaders loaders with simple dots loader fix(packages/theme): remove arcade-fx as standalone theme (effects already apply with arcade)
  • Updated dependencies [6df5ab7]
    • @ciderpress/theme@0.2.1

0.2.0

Minor Changes

  • 2055c1a: New Packages: @ciderpress/theme and @ciderpress/config

    This release introduces two new packages that refactor configuration and theme management:

    @ciderpress/theme - Theme definitions and utilities

    • Type-safe theme definitions with LiteralUnion pattern for autocomplete + extensibility
    • Built-in themes: base, midnight, arcade, arcade-fx
    • Icon color types with autocomplete support
    • Zod schemas for theme validation
    • Utility functions: resolveDefaultColorMode, isBuiltInTheme, isBuiltInIconColor

    @ciderpress/config - Configuration loading and validation

    • Multi-format config support: .ts, .js, .json, .jsonc, .yml, .yaml
    • Type-safe defineConfig helper
    • loadConfig function with Result-based error handling
    • Zod schemas for complete config validation
    • JSON Schema generation for IDE autocomplete (@ciderpress/config/schema)
    • Re-exports theme utilities for convenience

    @ciderpress/core - Internal refactoring

    • Removed direct c12 dependency
    • Now re-exports config and theme utilities from @ciderpress/config
    • Public API remains backwards compatible
    • Added new exports: ICON_COLORS, ConfigErrorType, LoadConfigOptions

    @ciderpress/ui - Dependency updates

    • Removed @ciderpress/core dependency for config types
    • Now uses @ciderpress/config and @ciderpress/theme directly
    • Added support for custom themes with fallback to 'toggle' color mode
    • Fixed: Added arcade-fx theme to theme switcher

    Migration Guide

    For most users, this is a drop-in replacement with no migration needed. All existing imports from @ciderpress/core continue to work.

    If you were importing from internal paths, update as follows:

    // Before
    import type { ThemeConfig } from '@ciderpress/core/theme'
    
    // After
    import type { ThemeConfig } from '@ciderpress/config'
    // or
    import type { ThemeConfig } from '@ciderpress/core' // still works via re-export

    JSON/YAML Config Support

    You can now use JSON or YAML config files with IDE autocomplete:

    {
      "$schema": "https://raw.githubusercontent.com/thebytefarm/ciderpress/main/packages/config/schemas/schema.json",
      "title": "My Docs",
      "sections": [{ "text": "Guide", "from": "docs" }]
    }
    # yaml-language-server: $schema=https://raw.githubusercontent.com/thebytefarm/ciderpress/main/packages/config/schemas/schema.json
    
    title: My Docs
    sections:
      - text: Guide
        from: docs

    Custom Themes

    The ThemeName type now supports custom theme names with autocomplete for built-ins:

    import { defineConfig } from '@ciderpress/config'
    
    export default defineConfig({
      theme: {
        name: 'my-custom-theme', // ✓ TypeScript accepts this
        colorMode: 'dark',
      },
    })

Patch Changes

  • Updated dependencies [2055c1a]
    • @ciderpress/theme@0.2.0