228 Commits
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Fuma Nama
18fad1e480 Version Packages (#3424)
* Version Packages

* pretrust

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Fuma Nama <[email protected]>
2026-07-23 03:05:29 +08:00
Fuma Nama 810953674d chore: bump deps 2026-07-23 01:24:22 +08:00
Fuma Nama 0382eca37e chore: bump deps 2026-07-16 21:09:24 +08:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
d2ee483b05 Version Packages (#3420)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-16 20:43:33 +08:00
github-actions[bot]andGitHub 52af6cf292 Merge pull request #3416 from fuma-nama/tegami/version-packages
Version Packages
2026-07-16 02:37:03 +08:00
github-actions[bot]andGitHub e4d5c0062e Merge pull request #3414 from fuma-nama/tegami/version-packages
Version Packages
2026-07-13 18:19:59 +08:00
Fuma Nama 8a280f5d3b refactor(*): migrate to yaml 2026-07-13 17:10:02 +08:00
github-actions[bot]andGitHub 1f9ca9a2b8 Merge pull request #3411 from fuma-nama/tegami/version-packages
Version Packages
2026-07-11 23:38:52 +08:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
63b5fed265 Version Packages (#3408)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-10 18:42:01 +08:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
ab09f500cb Version Packages (#3405)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-07 19:54:04 +08:00
Fuma Nama 9a269030df Version Packages 2026-07-07 17:53:33 +08:00
Fuma Nama 6f703bfde7 feat(core): noCopy attribute for codeblocks 2026-07-06 02:11:15 +08:00
Fuma Nama 76c8a9f6e7 refactor(*): default to Base UI 2026-07-05 17:49:46 +08:00
Fuma Nama 765e95f263 chore: bump deps 2026-06-17 20:00:41 +08:00
Fuma Nama 501728965f chore: bump deps 2026-06-12 02:39:52 +08:00
Fuma NamaandFuma Nama 2d2c65de8f refactor: migrate old usage 2026-06-07 20:08:57 +08:00
Fuma Nama a62a45de0b chore: bump deps 2026-06-05 16:53:20 +08:00
23055816e6 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 93a2003df6 chore: bump deps 2026-05-26 19:49:18 +08:00
Fuma Nama 975b530af3 OpenAPI: Add Source API methods & Dynamic Source support to server 2026-05-18 19:42:18 +08:00
d4c78e4aef 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 bf604daffa Refactor: pnpm v11 & remove bun 2026-05-12 18:50:36 +08:00
Fuma Nama 87829e585f Press: fix HMR 2026-05-09 21:30:38 +08:00
Fuma Nama 3696a7efc8 MDX: Make source config optional in Vite plugin 2026-05-08 16:28:55 +08:00
Fuma Nama b8eeca14d3 Bump deps 2026-05-07 22:40:49 +08:00
Fuma Nama 2a63a16fdf Sanity: ship content types via regsitry 2026-05-02 21:43:17 +08:00
Fuma Nama bdc043b288 Chore: bump deps 2026-04-27 23:21:15 +08:00
Fuma Nama 6faf2de0ac Bump deps 2026-04-24 20:07:29 +08:00
Fuma Nama c0f4d1a207 Bump deps 2026-04-19 22:23:53 +08:00
Fuma Nama 8d282d8fcf Docs: update for 16.8 2026-04-19 22:15:40 +08:00
Fuma Nama 690ddb9da2 Chore: bundle more deps 2026-04-12 13:41:16 +08:00
Fuma Nama 4840d9772d CLI: Clean unused files 2026-04-08 15:15:57 +08:00
Fuma Nama da50bc3b20 Twoslash: Force default options for TypeScript 6 2026-04-01 20:33:49 +08:00
Fuma Nama bae958418b Templates: improve scrollbar-gutter & react-remove-scroll 2026-04-01 19:41:39 +08:00
Fuma Nama 24866a39cd Chore: set scrollbar-gutter by default 2026-03-26 22:26:00 +08:00
Fuma Nama 698040ce85 Chore: migrate TypeScript 6 & Lucide 2026-03-24 23:59:05 +08:00
Fuma Nama 57c83a5012 UI: fix TOC 2026-03-21 22:48:56 +08:00
Fuma Nama faf02fffb3 Chore: Bump deps 2026-03-19 23:40:55 +08:00
Fuma Nama 04bd3494ec Chore: Migrate to Vite 8 2026-03-13 18:11:02 +08:00
Fuma Nama 86d3abb8c0 UI: fix broken tsdown CSS logic 2026-03-11 17:07:54 +08:00
Fuma Nama 2065a320bd Chore: enforce type-safe MDX components universally 2026-03-10 19:59:51 +08:00
Fuma Nama c3880b8afb Docs: rename fumadocs-mdx:collections/ to collections/ universally 2026-03-10 17:28:26 +08:00
Fuma Nama e96c0fb7cd Bump deps 2026-03-05 23:27:10 +08:00
Fuma Nama 5453502d03 Chore: use Shiki.js v4 2026-03-01 19:57:41 +08:00
Fuma Nama 7ea32fa757 Chore: bump deps 2026-02-26 20:48:28 +08:00
Fuma Nama d170bc09bc OpenAPI: refactor to support OpenAPI 3.2 2026-02-17 21:17:17 +08:00
Fuma Nama 89c6e65da6 Base UI: fix search dialog shortcuts 2026-02-13 19:03:36 +08:00
Fuma Nama c22f6ee3ca Chore: bump deps 2026-02-07 23:57:36 +08:00
SebastianandGitHub 1e6a8491c6 Assign object to a variable before exporting as module default (#2962) 2026-02-02 13:01:05 +08:00
Fuma Nama c611b2c946 Bump deps 2026-01-28 20:56:40 +08:00