Commit Graph
992 Commits
Author SHA1 Message Date
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
zeekay 72f2c55f72 fix(docs): restore real cli/build registry API + content barrel + openapi codeblock path
Three phantom/path stragglers the prior normalization passes did not cover,
all blocking the package build chain (`turbo run build --filter=./packages/*`):

- packages/cli: `@hanzo/docs-cli/build` was imported by apps/docs +
  shared/radix-ui/base-ui registries but the cli package never exposed it.
  The real registry-build API is fuma-cli/compiler (cli already deps on
  fuma-cli). Add src/build.ts re-export + ./build export + tsdown entry so
  `@hanzo/docs-cli/build` resolves to the real symbols (compile, writeRegistry,
  Registry, Component, Reference, SubComponentReference, CompileOptions).
- packages/hanzo-docs core/content/index.ts: barrel re-exported a bare
  fumadocs-core/content subpath that exists in no version (upstream or fork).
  Aggregate the real sibling modules (./github + ./toc) instead — no symbol
  collision (getGithubLastEdit vs getTableOfContents).
- packages/openapi src/ui/client/full.tsx: import of ./components/codeblock
  resolved one dir too shallow (file lives in src/ui/client/, codeblock in
  src/ui/components/). Fix to ../components/codeblock, matching create-client.tsx.

Verified: full package chain builds green from cold cache (29/29, node 24.18).
2026-06-24 16:08:14 -07:00
zeekay bb90824285 fix(docs): normalize phantom workspace package names — monorepo installs again
The fumadocs-fork rebrand left ~13 apps + examples referencing packages under
names that don't exist in the workspace (in BOTH directions: some kept
fumadocs-*, some became @hanzo/docs-*). pnpm install failed outright. Mapped
every reference (deps + imports, 607 source + 61 package.json) to the package
that actually exists, by suffix:
  @hanzo/docs-{core,mdx,ui,base-ui} → fumadocs-{core,mdx,ui} / @fumadocs/base-ui
  @fumadocs/{story,cli,mdx-remote,tailwind} → @hanzo/docs-{story,cli,...}
  fumadocs-{docgen,epub,twoslash,typescript} → @hanzo/docs-{...}
  drop phantom eslint-config-custom
Guarded @hanzo/docs-mdx vs -mdx-remote. Also fixes a pre-existing cli bug
(createConfigSchema referenced undefined isSrc) that blocked the package build.

Verified: pnpm install resolves clean (46.8s, was broken); package dist
regenerates phantom-free from the corrected source (hanzo-docs 430→0). Full
app build-green is blocked only by a node v26 toolchain bug in fumadocs-mdx's
config loader (repo targets node >=24.14; CI node builds it).
2026-06-24 15:17:27 -07:00
zeekay e4d28a6e97 merge: upstream/main (preserve Hanzo brand, 334 commits)
# Conflicts:
#	apps/docs/app/(home)/sponsors/data.tsx
#	apps/docs/app/(home)/uwu.tsx
#	apps/docs/app/og/[...slug]/generate.tsx
#	apps/docs/app/static.json/route.ts
#	apps/docs/content/blog/customise-ui.mdx
#	apps/docs/content/blog/mdx-v10-summary.mdx
#	apps/docs/content/blog/openapi-v9.mdx
#	apps/docs/content/blog/v15.mdx
#	apps/docs/content/blog/v16-2.mdx
#	apps/docs/content/docs/(framework)/deploying/static.mdx
#	apps/docs/content/docs/(framework)/integrations/content/custom.mdx
#	apps/docs/content/docs/(framework)/integrations/openapi/generate-files.mdx
#	apps/docs/content/docs/(framework)/integrations/openapi/server.mdx
#	apps/docs/content/docs/(framework)/integrations/story/client.story.tsx
#	apps/docs/content/docs/(framework)/integrations/story/index.mdx
#	apps/docs/content/docs/(framework)/integrations/story/next.mdx
#	apps/docs/content/docs/(framework)/search/orama.mdx
#	apps/docs/content/docs/(framework)/what-is-fumadocs.mdx
#	apps/docs/content/docs/cli/index.mdx
#	apps/docs/content/docs/headless/mdx/headings.mdx
#	apps/docs/content/docs/headless/mdx/rehype-code.mdx
#	apps/docs/content/docs/headless/mdx/remark-image.mdx
#	apps/docs/content/docs/headless/source-api/plugins.mdx
#	apps/docs/content/docs/mdx/(integrations)/loader/node.mdx
#	apps/docs/content/docs/mdx/global.mdx
#	apps/docs/content/docs/mdx/index.mdx
#	apps/docs/content/docs/ui/components/banner.mdx
#	apps/docs/content/docs/ui/components/graph-view.mdx
#	apps/docs/content/docs/ui/layouts/flux.mdx
#	apps/docs/content/docs/ui/layouts/home-layout.mdx
#	apps/docs/content/docs/ui/layouts/root-provider.mdx
#	apps/docs/content/docs/ui/theme.mdx
#	apps/docs/eslint.config.mjs
#	apps/docs/scripts/preload.ts
#	apps/docs/scripts/update-orama-index.ts
#	examples/openapi/README.md
#	examples/openapi/scripts/generate-docs.ts
#	examples/react-router-i18n/scripts/preload.ts
#	examples/tanstack-start-story/src/components/callout/story-client.tsx
#	packages/base-ui/scripts/compile-inline.utils.ts
#	packages/cli/src/build/index.ts
#	packages/core/src/content/md/frontmatter.ts
#	packages/create-app/scripts/update-git-repo.js
#	packages/create-app/scripts/update-git-repo.sh
#	packages/mdx-runtime/eslint.config.mjs
#	packages/openapi/scripts/compile-inline.utils.ts
#	packages/openapi/src/server/create.ts
#	packages/openapi/src/ui/full.tsx
#	packages/openapi/src/utils/process-document.ts
#	packages/press/waku.config.ts
#	packages/radix-ui/scripts/compile-inline.utils.ts
2026-06-02 09:55:12 -07:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
62c95e3d08 Version Packages (#3331)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-02 17:54:12 +08:00
Fuma Nama 185b058632 feat(openapi): better Webhook UI 2026-06-02 17:48:58 +08:00
zeekay 9f2bd33c02 merge: dev (aggressive theirs) 2026-06-01 18:31:05 -07:00
59983551b6 feat(openapi): anchor links for request/response/parameter properties (#3327)
* feat(openapi): anchor links on schema properties

Each property rendered inline in a request body, response body, or parameter
now gets a stable id and a hover-revealed link icon, enabling deep links to
specific fields from guides. Ids follow:
  - body-<prop> for request bodies
  - response-<status>-<prop> for responses
  - parameters-<location>-<name> for parameters

A new idPrefix option on SchemaUI opts other Schema renderings into the same
behavior. See fuma-nama/fumadocs#3322.

* feat(openapi): deep-link nested schema properties

Extend the property anchor scheme to support hashes that point inside a
popover or below an array's "Show array" collapsible. Schema-internal
segments are joined with `.` so `#body.user.address.street` resolves
unambiguously regardless of dashes in property names.

On hash match, the inline anchor scrolls into view, the matching popover
auto-opens with its breadcrumb pre-navigated, the array collapsible
expands, and oneOf/anyOf tabs switch to the variant containing the
targeted field. The deep target is consumed after the first auto-open,
so subsequent user clicks on the same trigger get the base view; a
different deep hash re-arms it.

The hover anchor is now a copy-link button (matches fumadocs heading
anchors) that writes the full URL to the clipboard and updates the
address bar via history.replaceState (no hashchange, no popover reset).

* address PR review feedback

- Clarified the changeset: split anchor ID rules by context (request/response property paths vs flat parameter anchors) so dots aren't implied to apply to parameters.
- Namespaced anchors by media type when an operation has multiple request-body or response content types: prefix becomes `<media-slug>-body` / `response-<status>-<media-slug>`, and the content-type SelectTabs auto-switches to the targeted tab when a deep link arrives. Single-content-type operations keep the simple `body` / `response-<status>` form.
- Made findUnionPropMatch validate the *full* remaining path (via new pathResolves helper) so two variants that share the first prop name no longer race; the wrong tab can't be selected for a deep hash anymore.
- Reset SchemaUIPopover breadcrumb state when initialPath changes so a fresh deep hash takes effect on an already-open popover.
- Replaced the lossy slugifyPropertyName with encodeURIComponent (plus % encoding for `.`) so property anchors stay collision-safe across case-only differences, punctuation-only differences, and non-ASCII keys, while `.` remains exclusively a path separator.

* address PR review feedback

- Fix potential hydration mismatch in useTabValueFromHash by initializing state with the fallback value and resolving from the URL hash inside useEffect; the deep-linked tab now corrects after hydration on the client.

* fix(openapi): move useTabValueFromHash into a client component

The previous hydration-mismatch fix put `useEffect`/`useState` directly in
`operation/index.tsx`, which is a Server Component — Next refused to compile
because RSC modules can't import client-only React APIs. Extract the
hash-aware tab wrapper into `operation/hash-tabs.tsx` (with `"use client"`)
and switch both body and response sites to `HashAwareSelectTabs`. The parent
tree stays server-side; only the tab wrapper hydrates on the client.

* address PR review feedback

- Wrap decodeURIComponent in try/catch in both deep-link hash parsers so a malformed percent-encoded fragment (e.g. `#body%`) is treated as "no target" instead of throwing URIError and breaking tab / popover resolution.

* address PR review feedback

- Match the URL hash against DOM ids using the raw fragment first, with the fully-decoded form as a fallback, in both DeepLinkProvider and hash-tabs. Property anchors are generated via slugifyPropertyName (which percent-encodes reserved chars like `.`), so DOM ids contain the encoded form; decoding the hash before lookup caused links like `#body.foo%2Ebar` to miss the matching element.

* redesign

* fix types

---------

Co-authored-by: Fuma Nama <[email protected]>
2026-06-02 03:43:01 +08:00
Fuma Nama c86e79f1a2 chore: bump deps 2026-05-29 18:22:54 +08:00
Fuma Nama 184022fd4d feat(core): support invalidate & revalidate on dynamic loader 2026-05-29 16:47:48 +08:00
Fuma Nama 839e9d3584 fix(openapi): newer scalar client 2026-05-28 16:38:17 +08:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
802186a87d Version Packages (#3314)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-28 15:43:53 +08:00
Fuma Nama 28ed43b412 fix(openapi): improve loader API types 2026-05-27 19:27:48 +08:00
Fuma Nama 383f8e614f chore: bump deps 2026-05-26 19:49:18 +08:00
Fuma Nama ee906218a1 Version Packages 2026-05-21 16:19:39 +08:00
Fuma Nama f8ddb7804f fix(ui): strict types 2026-05-20 22:34:26 +08:00
Fuma Nama 0310733755 feat(openapi): add missing labels 2026-05-20 20:46:37 +08:00
Fuma Nama 78e1206139 docs: use new i18n API 2026-05-20 20:22:12 +08:00
Fuma NamaGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
76aab15250 Version Packages (#3294)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-19 20:45:51 +08:00
Fuma Nama 10121fef62 OpenAPI: expose proxy types 2026-05-18 22:39:10 +08:00
Fuma Nama acec661604 fix 2026-05-18 20:20:08 +08:00
Fuma Nama dfdc7179de Chore: bump deps 2026-05-18 19:44:58 +08:00
Fuma Nama 0f5942983d OpenAPI: Add Source API methods & Dynamic Source support to server 2026-05-18 19:42:18 +08:00
Fuma NamaGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
724784bd8e Version Packages (#3292)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-17 18:41:00 +08:00
Fuma Nama 6748c6d6bf OpenAPI: Bundle ajv 2026-05-17 18:39:29 +08:00
Fuma NamaGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
adcaac08a7 Version Packages (#3291)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-17 17:29:36 +08:00
Fuma Nama 0576884bfb OpenAPI: bundle cjs deps 2026-05-17 17:25:01 +08:00
Fuma Nama cd7c5208cc chore: bump deps 2026-05-16 00:10:59 +08:00
Fuma NamaGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
ed1a875e3e Version Packages (#3280)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-14 17:24:21 +08:00
8f97e7a238 OpenAPI: render deprecated badge for deprecated operations (#3281)
* OpenAPI: render deprecated badge for deprecated operations

Show a yellow "Deprecated" badge for any OpenAPI operation marked
`deprecated: true`. The badge appears in two places: inline with the
operation heading when `showTitle` is true, and as a standalone header
above the playground card when `showTitle` is false (which is the
default for individual operation pages generated by `openapiSource`).

This restores the behaviour originally added in #2417, which was lost
during the v9→v10 move of the operation renderer from
`packages/openapi/src/render/operation/index.tsx` to
`packages/openapi/src/ui/operation/index.tsx`. The parameter-level,
schema-property-level and auth-scheme-level deprecated badges all
survived the refactor; the operation-level one was silently dropped.

The example spec's `deletePlanet` operation already claimed in its
description to be deprecated but never set the flag (inherited from the
upstream Scalar Galaxy fixture). Setting it both fixes the
inconsistency and provides a visible demo for the new badge.

* OpenAPI: improve operation deprecation styles

---------

Co-authored-by: Fuma Nama <[email protected]>
2026-05-14 17:18:41 +08:00
Fuma Nama ae34a7ab35 Chore: Bump deps 2026-05-12 18:51:40 +08:00
Fuma Nama fe63d1fdf8 Version Packages 2026-05-10 13:48:19 +08:00
Fuma Nama 8f63198848 OpenAPI: clean code 2026-05-09 22:00:36 +08:00
Fuma Nama f6b9ba23f8 Press: fix HMR 2026-05-09 21:30:38 +08:00
Fuma Nama 5cdf6692c4 OpenAPI: fix hydration errors 2026-05-09 16:30:59 +08:00
Fuma Nama 90f7affc23 MDX: Make source config optional in Vite plugin 2026-05-08 16:28:55 +08:00
Fuma Nama 984d2b56d5 Bump deps 2026-05-07 22:40:49 +08:00
Fuma Nama cb998b0e6a Version Packages 2026-05-02 22:00:12 +08:00
Fuma Nama 1223d2fd7b Sanity: ship content types via regsitry 2026-05-02 21:43:17 +08:00
Fuma Nama 2884a15862 Sanity: add official integration 2026-05-02 20:30:08 +08:00
Fuma NamaandGitHub cf3a94ac1c Merge pull request #3235 from fuma-nama/changeset-release/dev
Version Packages
2026-04-27 21:52:00 +08:00
Fuma Nama 10f36bf4ff OpenAPI: fix inconsistency in option names 2026-04-27 20:39:30 +08:00
Fuma Nama d7f5fc3295 Core: fix Shiki languages not loaded under lazy mode 2026-04-25 22:49:02 +08:00
Fuma Nama b424b2cdde UI: reduce generated Tailwind CSS bundle 2026-04-24 21:30:23 +08:00
Fuma Nama 6a36bfe1f6 Bump deps 2026-04-24 20:07:29 +08:00
Fuma NamaandGitHub f96ab28ec1 Merge pull request #3221 from fuma-nama/changeset-release/dev
Version Packages
2026-04-20 18:22:58 +08:00
Fuma Nama 7dca5a5c40 Docs: introduce Local MD 2026-04-20 17:25:36 +08:00
Fuma Nama 72aeb5626a OpenAPI: Fix @scalar/api-client-react version as 2.0.2 has a breaking change 2026-04-20 16:48:31 +08:00
Fuma Nama 9e2d2f46dd Chore: keep legacy types for backward compat 2026-04-20 15:13:17 +08:00
Fuma Nama e67192179b Bump deps 2026-04-19 22:23:53 +08:00