Files
zeekay 084b847d33 rebrand: complete white-label — all packages @hanzo/docs-* (one brand)
Finish the fumadocs→Hanzo Docs rebrand: rename the remaining fuma-named
workspace packages and every reference so the framework is uniformly
@hanzo/docs-*. One brand, no Fuma in package names or product surface.

Package renames (name field + all refs: deps, imports, CSS @import,
configs, .changeset, next/vite build config):
  fumadocs-core        → @hanzo/docs-core
  fumadocs-mdx         → @hanzo/docs-mdx
  fumadocs-ui          → @hanzo/docs-ui          (packages/radix-ui)
  fumadocs-openapi     → @hanzo/docs-openapi
  fumadocs-preview     → @hanzo/docs-preview
  @fumadocs/base-ui    → @hanzo/docs-base-ui
  @fumadocs/basehub    → @hanzo/docs-basehub
  @fumadocs/language   → @hanzo/docs-language
  @fumadocs/local-md   → @hanzo/docs-local-md
  @fumadocs/sanity     → @hanzo/docs-sanity
  @fumadocs/shadcn     → @hanzo/docs-shadcn
  @fumadocs/vite       → @hanzo/docs-vite
  @fumari/stf          → @hanzo/docs-stf
  create-fumadocs-app  → @hanzo/create-docs
  create-fumadocs-versions → @hanzo/docs-create-versions

Stale @fumadocs/{cli,story,tailwind,mdx-remote,...} references collapsed to
their existing @hanzo/docs-* canonical packages (no dup created).

De-branded product strings: Fumadocs/Fuma prose → Hanzo Docs/Hanzo; site
branding, CLI output, doc copy, AI-assistant name, metadata. URLs
fumadocs.dev → docs.hanzo.ai, repo fuma-nama/fumadocs → hanzoai/docs.
Filesystem renames: packages/python/fumapy → hanzodocs_py, preview config,
what-is-fumadocs.mdx → what-is-hanzo-docs.mdx, api/fumadocs-ui route.

KEPT (real external npm deps / attribution — NOT renamed):
  fuma-cli, fuma-content, @fumari/json-schema-ts (published upstream pkgs),
  typesense-/trieve-fumadocs-adapter (3rd-party search adapters),
  LICENSE "Copyright (c) 2023 Fuma" (OSS attribution, all 7 LICENSE files
  untouched), CHANGELOG.md history (accurate release records, left as-is).

Build: node 24, pnpm install clean; all 4 target apps next build GREEN
(spec, gui-docs, zen-docs, base-docs) + full package closure (18/18 turbo).
Gate: zero @hanzo-package fumadocs-/@fumadocs/ references remain.
2026-06-24 23:21:42 -07:00

356 lines
7.4 KiB
TypeScript

import { fileURLToPath } from 'node:url';
import type { Registry } from '@hanzo/docs-cli/build';
import * as path from 'node:path';
import type { Registry } from 'fuma-cli/compiler';
import { commonComponents, findSlotComponents } from '../../shared/registry.ts';
const dir = path.join(path.dirname(fileURLToPath(import.meta.url)), '../src');
// in shadcn cli, the order of files matters when writing import paths on consumer's codebase
export const registry: Registry = {
name: 'hanzo/base-ui',
dir,
tsconfigPath: '../tsconfig.json',
packageJson: '../package.json',
env: {
ui: '@hanzo/docs-base-ui',
},
onResolve(ref) {
return resolveExternal(ref, '@hanzo/docs-ui', dir) ?? ref;
},
components: [
...commonComponents,
...(await findSlotComponents(dir)),
{
name: 'layouts/sidebar',
unlisted: true,
files: [
{
type: 'components',
path: 'components/sidebar/base.tsx',
target: '<dir>/docs-sidebar/base.tsx',
},
{
type: 'components',
path: 'components/sidebar/page-tree.tsx',
target: '<dir>/docs-sidebar/page-tree.tsx',
},
{
type: 'components',
path: 'components/sidebar/link-item.tsx',
target: '<dir>/docs-sidebar/link-item.tsx',
},
],
},
{
name: 'layouts/shared',
unlisted: true,
files: [
{
type: 'layout',
path: 'layouts/shared/index.tsx',
target: '<dir>/shared/index.tsx',
meta: {
preserveAs: 'layouts/shared',
},
},
{
type: 'layout',
path: 'layouts/shared/client.tsx',
target: '<dir>/shared/client.tsx',
meta: {
preserveAs: 'layouts/shared',
},
},
],
},
{
name: 'layouts/docs',
files: [
{
type: 'layout',
path: 'layouts/docs/index.tsx',
target: '<dir>/docs/index.tsx',
meta: {
preserveAs: 'layouts/docs',
},
},
{
type: 'layout',
path: 'layouts/docs/client.tsx',
target: '<dir>/docs/client.tsx',
meta: {
preserveAs: 'layouts/docs',
},
},
{
type: 'layout',
path: 'layouts/docs/page/index.tsx',
target: '<dir>/docs/page/index.tsx',
meta: {
preserveAs: 'layouts/docs/page',
},
},
],
unlisted: true,
},
{
name: 'layouts/flux',
files: [
{
type: 'layout',
path: 'layouts/flux/index.tsx',
target: '<dir>/flux/index.tsx',
meta: {
preserveAs: 'layouts/flux',
},
},
{
type: 'layout',
path: 'layouts/flux/page/index.tsx',
target: '<dir>/flux/page/index.tsx',
meta: {
preserveAs: 'layouts/flux/page',
},
},
],
unlisted: true,
},
{
name: 'layouts/notebook',
files: [
{
type: 'layout',
path: 'layouts/notebook/index.tsx',
target: '<dir>/notebook/index.tsx',
meta: {
preserveAs: 'layouts/notebook',
},
},
{
type: 'layout',
path: 'layouts/notebook/client.tsx',
target: '<dir>/notebook/client.tsx',
meta: {
preserveAs: 'layouts/notebook',
},
},
{
type: 'layout',
path: 'layouts/notebook/page/index.tsx',
target: '<dir>/notebook/page/index.tsx',
meta: {
preserveAs: 'layouts/notebook/page',
},
},
],
unlisted: true,
},
{
name: 'layouts/home',
files: [
{
type: 'layout',
path: 'layouts/home/index.tsx',
target: '<dir>/home/index.tsx',
meta: {
preserveAs: 'layouts/home',
},
},
{
type: 'ui',
path: 'components/ui/navigation-menu.tsx',
},
],
unlisted: true,
},
{
name: 'accordion',
files: [
{
type: 'components',
path: 'components/accordion.tsx',
},
{
type: 'ui',
path: 'components/ui/accordion.tsx',
},
],
},
{
name: 'github-info',
files: [
{
type: 'components',
path: 'components/github-info.tsx',
},
],
description: 'A card to display GitHub repo info',
},
{
name: 'banner',
files: [
{
type: 'components',
path: 'components/banner.tsx',
},
],
},
{
name: 'callout',
files: [
{
type: 'components',
path: 'components/callout.tsx',
},
],
},
{
name: 'card',
files: [
{
type: 'components',
path: 'components/card.tsx',
},
],
},
{
name: 'codeblock',
files: [
{
type: 'components',
path: 'components/codeblock.tsx',
},
],
},
{
name: 'files',
files: [
{
type: 'components',
path: 'components/files.tsx',
},
],
},
{
name: 'heading',
files: [
{
type: 'components',
path: 'components/heading.tsx',
},
],
},
{
name: 'image-zoom',
description: 'Zoomable Image',
files: [
{
type: 'components',
path: 'components/image-zoom.tsx',
},
{
type: 'css',
path: 'components/image-zoom.css',
},
],
},
{
name: 'inline-toc',
files: [
{
type: 'components',
path: 'components/inline-toc.tsx',
},
],
},
{
name: 'steps',
files: [
{
type: 'components',
path: 'components/steps.tsx',
},
],
},
{
name: 'tabs',
files: [
{
type: 'components',
path: 'components/tabs.tsx',
},
{
type: 'ui',
path: 'components/ui/tabs.tsx',
},
],
},
{
name: 'type-table',
files: [
{
type: 'components',
path: 'components/type-table.tsx',
},
],
},
{
name: 'button',
unlisted: true,
files: [
{
type: 'ui',
path: 'components/ui/button.tsx',
},
],
},
{
name: 'popover',
unlisted: true,
files: [
{
type: 'ui',
path: 'components/ui/popover.tsx',
},
],
},
{
name: 'scroll-area',
unlisted: true,
files: [
{
type: 'ui',
path: 'components/ui/scroll-area.tsx',
},
],
},
{
name: 'collapsible',
unlisted: true,
files: [
{
type: 'ui',
path: 'components/ui/collapsible.tsx',
},
],
},
{
name: 'ai/page-actions',
description: 'Common page actions',
files: [
{
type: 'components',
path: 'layouts/shared/page-actions.tsx',
target: '<dir>/ai/page-actions.tsx',
},
],
},
],
dependencies: {
'@hanzo/docs-core': null,
'@hanzo/docs-base-ui': null,
react: null,
},
};