Skip to content

feat(themes): add getThemeCatalog (monorepo reconciliation, TIN-1746)#46

Merged
Jess Sullivan (Jesssullivan) merged 2 commits into
mainfrom
feat/tin-1746-theme-catalog
May 31, 2026
Merged

feat(themes): add getThemeCatalog (monorepo reconciliation, TIN-1746)#46
Jess Sullivan (Jesssullivan) merged 2 commits into
mainfrom
feat/tin-1746-theme-catalog

Conversation

@Jesssullivan

Copy link
Copy Markdown
Contributor

Why

getThemeCatalog/getThemeCatalogEntry/ThemeCatalogEntry existed only in the tinyland.dev monorepo mirror (tinyvectors 0.2.3) and were never upstreamed; the standalone evolved separately to 0.3.0 (THEME_PRESETS line) — a bidirectional drift the TIN-1721 Phase-0 version sweep missed. Blocks TIN-1741 (tinyland-stores themeStore.svelte.ts imports getThemeCatalog).

What

Ports the catalog API into src/themes/index.ts against the standalone's schema (verified compatible: ThemePreset already carries label/hasVectors/colors[]; ThemePresetName is the exact union). Adds:

  • getThemeCatalog(), getThemeCatalogEntry(), getThemePreviewColors(), getThemeVectorColors()
  • ThemeCatalogEntry, PackageThemeName types
  • exports from src/index.ts; version 0.3.0 → 0.3.1 (package.json + MODULE.bazel)

Self-contained (builds on existing getThemePreset + THEME_PRESETS); no new deps. CI = Bazel //:pkg //:test.

Release

Per the model (Bazel module = SSOT, npm derived/disabled): merge → tag v0.3.1 → BCR-register 0.3.1 → tinyland-stores pins it.

Backport the package-curated theme catalog API that existed only in the
tinyland.dev monorepo mirror (tinyvectors 0.2.3) and was lost when the
standalone evolved to 0.3.0 along the THEME_PRESETS line — a bidirectional
drift. Ports verbatim against the standalone's theme-presets schema
(ThemePreset already has label/hasVectors/colors; ThemePresetName matches):

- getThemeCatalog(), getThemeCatalogEntry(), getThemePreviewColors(),
  getThemeVectorColors(); ThemeCatalogEntry + PackageThemeName types.
- Export from src/index.ts. Version 0.3.0 -> 0.3.1 (package.json + MODULE.bazel).

Prerequisite for tinyland-stores (TIN-1741): themeStore.svelte.ts imports
getThemeCatalog from @tummycrypt/tinyvectors. The Bazel module is the SSOT;
release = tag v0.3.1 + BCR registration (npm derived/disabled).
The release-metadata verifier requires package.json + MODULE.bazel +
BUILD.bazel npm_package versions to match; the catalog PR bumped the first
two but not the npm_package rule.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant