Conversation
- Adds design for `@arkenv/fumadocs-ui-theme` - Outlines proposal for theme externalization - Details requirements and specifications - Includes implementation tasks and overall plan
🦋 Changeset detectedLatest commit: 5d33421 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
WalkthroughThis PR extracts a new Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant User
participant AIActions as "AIActions (client)"
participant Origin as "window.location"
participant Fetch as "Markdown URL (remote/GitHub)"
participant Clipboard as "navigator.clipboard"
User->>AIActions: Click "Copy Markdown"
AIActions->>Origin: read origin (useEffect)
AIActions->>Fetch: fetch(fullMarkdownUrl)
Fetch-->>AIActions: response (markdown text)
AIActions->>Clipboard: navigator.clipboard.writeText(markdown)
Clipboard-->>AIActions: success
AIActions-->>User: show copied feedback
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- Outlines new theme package proposal - Details architecture and components - Specifies functional and style requirements - Lists implementation and migration tasks
- Create `@arkenv/fumadocs-ui-theme` package - Move custom MDX components to new theme -
- Centralize URL utility functions - Remove duplicated `isExternalUrl` and `optimizeInternalLink` - Update
- Delete redundant URL utilities from `apps/www` - Rename `Url` type to `ArkenvUrl` for clarity -
- Update package dependencies and lockfile - Add `tsdown` to dev dependencies
- Configure tsdown for package build - Set entry points: index.ts, mdx.tsx - Output
- Separates utilities into a dedicated bundle - Allows importing utils without client directive - Refactors tsdown config for multiple outputs -
- Separate MDX components into own bundle - Remove global 'use client' from MDX bundle - Enable granular client directives in MDX
- Replaced tsdown with tsc and tsc-alias - Updated import paths to use '@/' alias - Changed declaration file extension from .mts to .ts
- Set allowImportingTsExtensions to false - Prevents importing .ts files directly in build
This comment was marked as resolved.
This comment was marked as resolved.
…nks; update imports in index and mdx files
…ross the application
…build; create README for @arkenv/fumadocs-ui package
📦 Bundle Size Report✅ All size limits passed! |
…o publish-fumadocs-ui; adjust loading state handling in AIActions component
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@packages/fumadocs-ui/README.md`:
- Around line 30-36: The code fence in the README is missing a language
specifier which prevents proper syntax highlighting; update the fenced block
surrounding the import/exports so the opening triple backticks include "ts"
(TypeScript) for the snippet that contains arkenvComponents and the
mdxComponents export to ensure correct highlighting and accessibility.
🧹 Nitpick comments (4)
packages/fumadocs-ui/src/components/ai-actions.tsx (1)
222-222: Remove explicitanytype annotation.The
anytype is unnecessary here since TypeScript can infer the item type from theitemsarray. If explicit typing is preferred, define a proper type for the item shape.♻️ Suggested fix
- {items.map((item: any) => ( + {items.map((item) => (Alternatively, define a type for better documentation:
type ActionItem = { title: string; href: string; icon: React.ReactNode; };packages/fumadocs-ui/README.md (1)
13-13: List specific peer dependencies for clarity.The current instruction to "ensure peer dependencies from
fumadocs-uiare available" is vague. Users need to know exactly which packages and versions are required.📝 Recommended enhancement
Consider replacing line 13 with specific peer dependency information:
-Ensure peer dependencies from `fumadocs-ui` are available, then install: +This package requires the following peer dependencies: + +```bash +pnpm add fumadocs-ui fumadocs-core react react-dom +``` + +Then install the theme package:Alternatively, add a Prerequisites section before Install that lists Node.js version requirements and peer dependencies explicitly.
Based on learnings, README files should document environment requirements clearly.
packages/fumadocs-ui/src/components/code-blocks.tsx (1)
24-62: Prefertypeoverinterfaceper coding guidelines.As per coding guidelines, prefer
typeoverinterfacefor type definitions in TypeScript.♻️ Suggested change
-export interface CodeBlockProps extends ComponentProps<"figure"> { +export type CodeBlockProps = ComponentProps<"figure"> & { /** * Icon of code block * * When passed as a string, it assumes the value is SVG markup. * The string will be sanitized at runtime and should be trusted SVG only. */ icon?: ReactNode; // ... rest of properties Actions?: (props: { className?: string; children?: ReactNode }) => ReactNode; -} +};apps/www/bin/mdx.js (1)
5-45: Consider extracting shared preflight logic withpostinstall.js.
This block mirrors the same Node-options/pnpm/dist checks; a shared helper would reduce drift between scripts.
…ng; update turbo configuration for mdx dependency
…eck for built @arkenv/fumadocs-ui
…of specific config file
…puts and remove output existence check in mdx.js
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
We still need to fix the headings, and the theme itself can be improved but that can be in a separate PR, except for the header I think what we have is working |
- Add guides for applying changes - Add guides for archiving changes - Add guides for creating proposals - Include general OpenSpec instructions
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @.claude/commands/openspec/apply.md:
- Line 8: Replace the bolded section titles "**Guardrails**", "**Steps**", and
"**Reference**" with proper level-2 Markdown headings by changing them to "##
Guardrails", "## Steps", and "## Reference"; locate these literal strings in
.claude/commands/openspec/apply.md and update each occurrence to the `##` form
so markdownlint warnings are resolved and document structure uses proper
headings.
🧹 Nitpick comments (2)
.claude/commands/openspec/proposal.md (2)
15-22: Add explicit guidance on proposal.md structure.Based on learnings, the proposal.md created by users should contain specific sections: "Why", "What Changes" (with BREAKING markers when applicable), and "Impact". The current scaffold provides excellent procedural steps but doesn't explicitly instruct users to include these sections in their proposal.md file.
Consider adding a step or note that clarifies the expected structure of the resulting proposal.md document.
📝 Suggested addition to make structure explicit
Add a step or clarification after step 2, for example:
2. Choose a unique verb-led `change-id` and scaffold `proposal.md`, `tasks.md`, and `design.md` (when needed) under `openspec/changes/<id>/`. + - Your `proposal.md` should include: **Why** (rationale), **What Changes** (with BREAKING markers for breaking changes), and **Impact** (affected areas/users). 3. Map the change into concrete capabilities or requirements, breaking multi-scope efforts into distinct spec deltas with clear relationships and sequencing.Based on learnings, this is the expected structure for OpenSpec proposals.
8-8: Consider using markdown headings instead of bold text.The section labels (
**Guardrails**,**Steps**,**Reference**) are flagged by markdownlint for using emphasis instead of proper headings. If these represent structural divisions, they should use heading syntax (### Guardrails, etc.) for better semantic markup and consistency with markdown conventions.However, if the bold formatting is intentional for this specific OPENSPEC scaffold format, this can be safely ignored.
♻️ Optional refinement
-**Guardrails** +### Guardrails + - Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.Apply similar changes to
**Steps**(line 15) and**Reference**(line 24).Also applies to: 15-15, 24-24
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @arkenv/fumadocs-ui@0.0.2 ### Patch Changes - #### First release _[`#775`](#775) [`bb34860`](bb34860) [@yamcodes](https://github.com/yamcodes)_ `@arkenv/fumadocs-ui` provides a theme, and components, for `fumadocs-ui` to replicate the "ArkEnv" website look. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Closes #774
Summary by CodeRabbit
New Features
Improvements
Chores
✏️ Tip: You can customize this high-level summary in your review settings.