Skip to content

Make docs components app-owned#8

Merged
KayleeWilliams merged 2 commits into
mainfrom
KayleeWilliams/app-owned-docs-components
Apr 24, 2026
Merged

Make docs components app-owned#8
KayleeWilliams merged 2 commits into
mainfrom
KayleeWilliams/app-owned-docs-components

Conversation

@KayleeWilliams
Copy link
Copy Markdown
Collaborator

Moves the runtime MDX component implementation out of @inth/docs and into the docs-smoke app, so the package exposes only framework-neutral pipeline entry points. Removes root React component exports, React peer/dev dependencies, and the component build entry from @inth/docs while adding a package-surface test for the supported exports. Updates README, source docs, generated agent docs, search fixtures, and e2e labels to document that consuming apps own runtime components.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 22, 2026

📝 Walkthrough

Summary by CodeRabbit

  • Documentation

    • Repositioned package as a framework‑neutral docs pipeline; clarified that consuming apps must define and own MDX component maps and runtime UI.
  • Refactor

    • Converted several exported type declarations to interfaces without runtime changes.
  • Chores

    • Removed top‑level prebuilt component bundle/export and React runtime/dev dependencies; updated build config.
  • Tests

    • Deleted UI component render tests; added package‑surface export validation tests.

Walkthrough

This PR removes the package-root React MDX runtime export from @inth/docs, repositions the package as a framework-neutral docs pipeline, drops React deps/peerDeps, and updates docs, demo app imports, build config, and tests so consuming apps define and own their mdxComponents.

Changes

Cohort / File(s) Summary
Docs & Guides
README.md, apps/docs-smoke/content/docs/*.mdx, packages/docs/README.md, packages/docs/agent-docs-src/docs/*, packages/docs/agent-docs/docs/*
Reframes @inth/docs as a framework-neutral conversion/lint/LLM/search pipeline and removes guidance to import mdxComponents from the package; instructs consuming apps to define app-owned mdxComponents.
App MDX Wiring & Imports
apps/docs-smoke/src/mdx-components.tsx, apps/docs-smoke/src/components/docs-mdx/*, apps/docs-smoke/src/routes/*.tsx, apps/docs-smoke/src/lib/docs.ts, apps/docs-smoke/content/docs/*
Replaces imports referencing @inth/docs with app-local @/components/docs-mdx; updates in-app copy and component attribution; removes package runtime surface entry from packageSurfaces.
Type Declaration Form Changes
apps/docs-smoke/src/components/docs-mdx/command-tabs.tsx, .../mermaid.tsx, .../selector.tsx, .../tabs.tsx, .../type-table.tsx, .../example.tsx
Converts multiple exported TypeScript type aliases to interface declarations without changing property shapes or runtime behavior.
Package Build & Exports
packages/docs/package.json, packages/docs/tsconfig.json, packages/docs/tsup.config.ts
Removes top-level exports["."]/main/types; drops React from deps/peerDeps/devDeps; switches tsconfig base to non-React; stops building the components/index bundle and removes the post-build "use client" injection step.
Tests
packages/docs/src/components/components.test.tsx, packages/docs/src/internal/package-surface.test.ts, apps/docs-smoke/tests/e2e/smoke.e2e.ts, packages/docs/src/remark/remark-output.test.ts
Deletes the comprehensive component rendering test; adds a package-surface test validating package.json exports (disallowing "."/"./react"); updates E2E test titles and one remark test import expectation to use app-local mdxComponents.
Smoke App UI Copy
apps/docs-smoke/src/routes/index.tsx, apps/docs-smoke/src/routes/playground.tsx, apps/docs-smoke/src/routes/docs/index.tsx
Updates UI/example snippets and descriptive copy to reflect that runtime MDX components are app-owned and imports come from @/components/docs-mdx.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 I hopped through README and code so bright,

Pushed components back to the app’s warm light.
Pipelines hum, converters steady and true,
Apps own the look; the docs just pass through.
🥕✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Make docs components app-owned' directly and clearly summarizes the main change: shifting runtime MDX component ownership from the @inth/docs package to consuming applications.
Description check ✅ Passed The description is directly related to the changeset, detailing the move of runtime MDX components from @inth/docs to the docs-smoke app and the removal of React dependencies while maintaining framework-neutral pipeline entry points.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/docs/agent-docs-src/docs/index.mdx`:
- Around line 28-33: Remove the repeated "Read" opener from the bullet list that
references [Convert], [Remark], [LLM], [Search], and [Lint]; instead start each
bullet with the link label or a short varied verb phrase (e.g., "Convert — when
you need...", "Remark — for custom plugin order...", "LLM — when generating...",
"Search — for static index or streaming answers", "Lint — for validating
frontmatter...") to improve scanability while keeping the same targets and
guidance.

In `@packages/docs/agent-docs/docs/llms-full/authoring/components.txt`:
- Line 19: Update the terminology in the sentence that reads "the remark
pipeline can flatten those components into markdown" to use the proper noun
capitalization: change "markdown" to "Markdown" so the phrase becomes "the
remark pipeline can flatten those components into Markdown"; locate this in the
string containing "remark pipeline can flatten those components into markdown"
within the component description and replace the lowercase term.

In `@packages/docs/src/internal/package-surface.test.ts`:
- Around line 8-17: The test currently asserts exact order of exportedPaths
which fails on harmless reordering; update the assertion in
package-surface.test.ts to be order-insensitive by comparing sets or by sorting
both arrays before asserting—reference the exportedPaths variable and the
expected list
["./remark","./convert","./llm","./search","./search/node","./search/ai","./search/bash","./lint"]
and change the expect(...) call to either compare new Set(exportedPaths) to a
new Set(expected) or to sort(exportedPaths) and sort(expected) before using
expect(...).toEqual(...).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3b655a6a-1064-4bd5-ae91-59310bc0229d

📥 Commits

Reviewing files that changed from the base of the PR and between 3138c30 and 625c841.

⛔ Files ignored due to path filters (3)
  • apps/docs-smoke/src/generated/docs-search-content.json is excluded by !**/generated/**
  • apps/docs-smoke/src/generated/docs-search-index.json is excluded by !**/generated/**
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (33)
  • README.md
  • apps/docs-smoke/content/docs/guides/components-fixture.mdx
  • apps/docs-smoke/content/docs/guides/quickstart.mdx
  • apps/docs-smoke/content/docs/index.mdx
  • apps/docs-smoke/src/components/docs-mdx/callout.tsx
  • apps/docs-smoke/src/components/docs-mdx/card.tsx
  • apps/docs-smoke/src/components/docs-mdx/command-tabs.tsx
  • apps/docs-smoke/src/components/docs-mdx/index.ts
  • apps/docs-smoke/src/components/docs-mdx/mdx-components.ts
  • apps/docs-smoke/src/components/docs-mdx/mermaid.tsx
  • apps/docs-smoke/src/components/docs-mdx/selector.tsx
  • apps/docs-smoke/src/components/docs-mdx/steps.tsx
  • apps/docs-smoke/src/components/docs-mdx/tabs.tsx
  • apps/docs-smoke/src/components/docs-mdx/type-table.tsx
  • apps/docs-smoke/src/lib/docs.ts
  • apps/docs-smoke/src/mdx-components.tsx
  • apps/docs-smoke/src/routes/docs/index.tsx
  • apps/docs-smoke/src/routes/index.tsx
  • apps/docs-smoke/src/routes/playground.tsx
  • apps/docs-smoke/tests/e2e/smoke.e2e.ts
  • packages/docs/README.md
  • packages/docs/agent-docs-src/docs/components.mdx
  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs/docs/llms.txt
  • packages/docs/package.json
  • packages/docs/src/components/components.test.tsx
  • packages/docs/src/internal/package-surface.test.ts
  • packages/docs/tsconfig.json
  • packages/docs/tsup.config.ts
💤 Files with no reviewable changes (3)
  • packages/docs/src/components/components.test.tsx
  • packages/docs/tsup.config.ts
  • apps/docs-smoke/src/components/docs-mdx/mdx-components.ts

Comment thread packages/docs/agent-docs-src/docs/index.mdx Outdated
Comment thread packages/docs/agent-docs/docs/llms-full/authoring/components.txt Outdated
Comment thread packages/docs/src/internal/package-surface.test.ts Outdated
@KayleeWilliams KayleeWilliams force-pushed the KayleeWilliams/app-owned-docs-components branch from 625c841 to 42ba2de Compare April 23, 2026 03:54
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (2)
packages/docs/agent-docs-src/docs/index.mdx (1)

28-32: 🧹 Nitpick | 🔵 Trivial

Consider varying the bullet openers for better scannability.

Lines 28–32 all begin with "Read", making the list harder to scan. Varying the verbs would improve readability.

✍️ Optional wording variation
- Read [Convert](/docs/convert) when you need markdown output from `.mdx` files.
- Read [Remark](/docs/remark) when you need custom plugin order or component flattening behavior.
- Read [LLM](/docs/llm) when generating `llms.txt` or topic-scoped full-context bundles.
- Read [Search](/docs/search) when generating a static index, querying docs at runtime, or streaming grounded answers.
- Read [Lint](/docs/lint) when validating frontmatter, docs URLs, or sidebar metadata.
+ Use [Convert](/docs/convert) for markdown output from `.mdx` files.
+ Check [Remark](/docs/remark) for custom plugin order or component flattening behavior.
+ See [LLM](/docs/llm) for generating `llms.txt` or topic-scoped full-context bundles.
+ Open [Search](/docs/search) for static indexing, runtime querying, or streaming grounded answers.
+ Use [Lint](/docs/lint) to validate frontmatter, docs URLs, or sidebar metadata.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/docs/agent-docs-src/docs/index.mdx` around lines 28 - 32, The
bulleted list items starting with "Read" (references: Convert, Remark, LLM,
Search, Lint) are repetitive; update each bullet opener to vary the verb for
better scannability (e.g., "Use Convert...", "Configure Remark...", "Generate
LLM...", "Use Search...", "Validate with Lint...") while preserving the target
links and short descriptions; edit the lines that mention Convert, Remark, LLM,
Search, and Lint to replace the leading "Read" with more specific verbs and
ensure tone and tense remain consistent across the list.
packages/docs/src/internal/package-surface.test.ts (1)

8-20: 🧹 Nitpick | 🔵 Trivial

Make the export allowlist assertion order-insensitive.

The current toEqual() assertion is order-sensitive, meaning a harmless reordering of exports in package.json would fail this test.

♻️ Proposed fix to make assertion order-insensitive
+  const expectedExports = [
+    "./remark",
+    "./convert",
+    "./llm",
+    "./search",
+    "./search/node",
+    "./search/ai",
+    "./search/bash",
+    "./search/vercel",
+    "./search/tanstack",
+    "./search/cloudflare",
+    "./lint",
+  ];
+
   it("does not expose runtime component entry points", () => {
-    expect(exportedPaths).toEqual([
-      "./remark",
-      "./convert",
-      "./llm",
-      "./search",
-      "./search/node",
-      "./search/ai",
-      "./search/bash",
-      "./search/vercel",
-      "./search/tanstack",
-      "./search/cloudflare",
-      "./lint",
-    ]);
+    expect(exportedPaths).toHaveLength(expectedExports.length);
+    expect(new Set(exportedPaths)).toEqual(new Set(expectedExports));
   });
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/docs/src/internal/package-surface.test.ts` around lines 8 - 20, The
test currently uses expect(exportedPaths).toEqual([...]) which is
order-sensitive; change it to an order-insensitive assertion by replacing that
line with two checks:
expect(exportedPaths).toEqual(expect.arrayContaining([...the same list...]));
and then assert the count to prevent extras, e.g.
expect(exportedPaths).toHaveLength([...the same list...].length). This uses the
existing exportedPaths symbol and removes reliance on toEqual's ordering.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/docs/agent-docs/docs/index.md`:
- Around line 29-33: The repeated "Read" opener in the list items for Convert,
Remark, LLM, Search, and Lint makes the bullets monotonous; change the leading
verb for some entries (for example use "Use", "See", "Generate", "Query",
"Validate") to improve scannability while keeping the link targets and
explanatory text intact—update the lines containing "Read
[Convert](/docs/convert)", "Read [Remark](/docs/remark)", "Read
[LLM](/docs/llm)", "Read [Search](/docs/search)", and "Read [Lint](/docs/lint)"
to alternate verbs and ensure tone and meaning remain equivalent.

In `@packages/docs/agent-docs/docs/llms-full/overview.txt`:
- Line 41: The repeated bullet opener "Read ..." in the "When To Read Which
Page" list reduces scanability; replace this specific bullet "* Read
[Lint](/docs/lint) when validating frontmatter, docs URLs, or sidebar metadata."
with a varied opener (e.g., "Refer to", "See", "Consult", or "When
validating...") and review neighboring bullets in the same list to introduce
different starters so the pattern is broken and the list reads more scannably.

---

Duplicate comments:
In `@packages/docs/agent-docs-src/docs/index.mdx`:
- Around line 28-32: The bulleted list items starting with "Read" (references:
Convert, Remark, LLM, Search, Lint) are repetitive; update each bullet opener to
vary the verb for better scannability (e.g., "Use Convert...", "Configure
Remark...", "Generate LLM...", "Use Search...", "Validate with Lint...") while
preserving the target links and short descriptions; edit the lines that mention
Convert, Remark, LLM, Search, and Lint to replace the leading "Read" with more
specific verbs and ensure tone and tense remain consistent across the list.

In `@packages/docs/src/internal/package-surface.test.ts`:
- Around line 8-20: The test currently uses expect(exportedPaths).toEqual([...])
which is order-sensitive; change it to an order-insensitive assertion by
replacing that line with two checks:
expect(exportedPaths).toEqual(expect.arrayContaining([...the same list...]));
and then assert the count to prevent extras, e.g.
expect(exportedPaths).toHaveLength([...the same list...].length). This uses the
existing exportedPaths symbol and removes reliance on toEqual's ordering.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6b46d5a4-9e6d-46ce-b1e1-cc124e3abcdd

📥 Commits

Reviewing files that changed from the base of the PR and between 625c841 and 42ba2de.

⛔ Files ignored due to path filters (3)
  • apps/docs-smoke/src/generated/docs-search-content.json is excluded by !**/generated/**
  • apps/docs-smoke/src/generated/docs-search-index.json is excluded by !**/generated/**
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (37)
  • README.md
  • apps/docs-smoke/content/docs/guides/components-fixture.mdx
  • apps/docs-smoke/content/docs/guides/quickstart.mdx
  • apps/docs-smoke/content/docs/index.mdx
  • apps/docs-smoke/src/components/docs-mdx/accordion.tsx
  • apps/docs-smoke/src/components/docs-mdx/callout.tsx
  • apps/docs-smoke/src/components/docs-mdx/card.tsx
  • apps/docs-smoke/src/components/docs-mdx/command-tabs.tsx
  • apps/docs-smoke/src/components/docs-mdx/example.tsx
  • apps/docs-smoke/src/components/docs-mdx/index.ts
  • apps/docs-smoke/src/components/docs-mdx/mdx-components.ts
  • apps/docs-smoke/src/components/docs-mdx/mermaid.tsx
  • apps/docs-smoke/src/components/docs-mdx/selector.tsx
  • apps/docs-smoke/src/components/docs-mdx/steps.tsx
  • apps/docs-smoke/src/components/docs-mdx/tabs.tsx
  • apps/docs-smoke/src/components/docs-mdx/topic-switcher.tsx
  • apps/docs-smoke/src/components/docs-mdx/type-table.tsx
  • apps/docs-smoke/src/lib/docs.ts
  • apps/docs-smoke/src/mdx-components.tsx
  • apps/docs-smoke/src/routes/docs/index.tsx
  • apps/docs-smoke/src/routes/index.tsx
  • apps/docs-smoke/src/routes/playground.tsx
  • apps/docs-smoke/tests/e2e/smoke.e2e.ts
  • packages/docs/README.md
  • packages/docs/agent-docs-src/docs/components.mdx
  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs/docs/llms.txt
  • packages/docs/package.json
  • packages/docs/src/components/components.test.tsx
  • packages/docs/src/internal/package-surface.test.ts
  • packages/docs/src/remark/remark-output.test.ts
  • packages/docs/tsconfig.json
  • packages/docs/tsup.config.ts
💤 Files with no reviewable changes (3)
  • packages/docs/tsup.config.ts
  • apps/docs-smoke/src/components/docs-mdx/mdx-components.ts
  • packages/docs/src/components/components.test.tsx

Comment thread packages/docs/agent-docs/docs/index.md Outdated
Comment thread packages/docs/agent-docs/docs/llms-full/overview.txt Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/docs/agent-docs/docs/llms-full/authoring/components.txt (1)

3-3: ⚠️ Potential issue | 🟡 Minor

Remove stale React-specific subtitle to avoid contract drift.

Line 3 still states “React MDX component adapters,” which contradicts the new app-owned/framework-neutral contract described in later updated lines.

✏️ Proposed fix
-> React MDX component adapters.
+> App-owned MDX component contract consumed by the remark pipeline.

Also applies to: 7-25

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/docs/agent-docs/docs/llms-full/authoring/components.txt` at line 3,
Remove the stale React-specific subtitle string "React MDX component adapters"
and replace it with a framework-neutral subtitle (e.g., "MDX component adapters"
or "MDX component adapters — framework-neutral") so the header aligns with the
new app-owned / framework-neutral contract described later; update the same
subtitle occurrences referenced around lines 7–25 to the neutral wording to
avoid contract drift.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@packages/docs/agent-docs/docs/llms-full/authoring/components.txt`:
- Line 3: Remove the stale React-specific subtitle string "React MDX component
adapters" and replace it with a framework-neutral subtitle (e.g., "MDX component
adapters" or "MDX component adapters — framework-neutral") so the header aligns
with the new app-owned / framework-neutral contract described later; update the
same subtitle occurrences referenced around lines 7–25 to the neutral wording to
avoid contract drift.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f577249d-420a-4e67-b36b-32ec46d48718

📥 Commits

Reviewing files that changed from the base of the PR and between 42ba2de and e50e4d5.

📒 Files selected for processing (7)
  • packages/docs/agent-docs-src/docs/components.mdx
  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/src/internal/package-surface.test.ts
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use explicit types for function parameters and return values when they enhance clarity
Prefer unknown over any when the type is genuinely unknown
Use const assertions (as const) for immutable values and literal types
Leverage TypeScript's type narrowing instead of type assertions

Files:

  • packages/docs/src/internal/package-surface.test.ts
**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,ts,jsx,tsx}: Use meaningful variable names instead of magic numbers - extract constants with descriptive names
Use arrow functions for callbacks and short functions
Prefer for...of loops over .forEach() and indexed for loops
Use optional chaining (?.) and nullish coalescing (??) for safer property access
Prefer template literals over string concatenation
Use destructuring for object and array assignments
Use const by default, let only when reassignment is needed, never var
Always await promises in async functions - don't forget to use the return value
Use async/await syntax instead of promise chains for better readability
Handle errors appropriately in async code with try-catch blocks
Don't use async functions as Promise executors
Remove console.log, debugger, and alert statements from production code
Throw Error objects with descriptive messages, not strings or other values
Use try-catch blocks meaningfully - don't catch errors just to rethrow them
Prefer early returns over nested conditionals for error cases
Extract complex conditions into well-named boolean variables
Use early returns to reduce nesting
Prefer simple conditionals over nested ternary operators
Don't use eval() or assign directly to document.cookie
Avoid spread syntax in accumulators within loops
Use top-level regex literals instead of creating them in loops
Prefer specific imports over namespace imports
Use descriptive names for functions, variables, and types for meaningful naming
Add comments for complex logic, but prefer self-documenting code

Files:

  • packages/docs/src/internal/package-surface.test.ts
**/*.{test,spec}.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{test,spec}.{js,ts,jsx,tsx}: Write assertions inside it() or test() blocks
Avoid done callbacks in async tests - use async/await instead
Don't use .only or .skip in committed code
Keep test suites reasonably flat - avoid excessive describe nesting

Files:

  • packages/docs/src/internal/package-surface.test.ts
🧠 Learnings (56)
📓 Common learnings
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/src/components/**/*.tsx : Place reusable components in `src/components` within the docs app
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/src/components/**/* : Place reusable components in `src/components`
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/**/*.mdx : Use MDX for documentation pages in the docs app
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/**/*.mdx : Include code examples where appropriate in MDX documentation pages of the docs app
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/**/*.mdx : Use MDX for documentation pages
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/**/*.mdx : Keep documentation organized by categories
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/app/**/*.{ts,tsx} : Use Next.js App Router conventions in the docs app
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/**/*.mdx : Include code examples where appropriate in documentation
📚 Learning: 2026-03-19T22:57:33.411Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:33.411Z
Learning: Applies to packages/elements/**/*.{test,spec}.{ts,tsx} : Write unit tests for components in Elements package using Vitest

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2026-03-19T22:57:33.411Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:33.411Z
Learning: Applies to packages/elements/**/*.{test,spec}.{ts,tsx} : Test accessibility features in Elements package component tests

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.test.{ts,tsx} : Test accessibility features

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.test.{ts,tsx} : Use Vitest for testing framework

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-12-17T14:48:41.563Z
Learnt from: CR
Repo: consentdotio/c15t-docs PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-12-17T14:48:41.563Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Don't use export or module.exports in test files

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2026-03-19T22:57:33.411Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:33.411Z
Learning: Applies to packages/elements/**/*.{test,spec}.{ts,tsx} : Test error boundaries in Elements package component tests

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.test.{ts,tsx} : Write unit tests for components

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.test.{ts,tsx} : Test error boundaries

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2026-03-19T22:57:33.411Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:33.411Z
Learning: Applies to packages/elements/**/*.{test,spec}.{ts,tsx} : Use Vitest as the testing framework for Elements package

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.test.{ts,tsx} : Include integration tests

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-12-17T14:48:41.563Z
Learnt from: CR
Repo: consentdotio/c15t-docs PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-12-17T14:48:41.563Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Use `node:assert/strict` over `node:assert`

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-12-17T14:48:41.563Z
Learnt from: CR
Repo: consentdotio/c15t-docs PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-12-17T14:48:41.563Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Don't compare expressions that modify string case with non-compliant values

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-12-17T14:48:41.563Z
Learnt from: CR
Repo: consentdotio/c15t-docs PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-12-17T14:48:41.563Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Make sure iterable callbacks return consistent values

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2026-03-19T22:57:45.114Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:45.114Z
Learning: Applies to **/*.{ts,tsx} : Export type definitions for public API and avoid TypeScript enums; use const objects or 'as const' assertions instead due to runtime overhead and tree-shaking limitations

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-12-17T14:48:41.563Z
Learnt from: CR
Repo: consentdotio/c15t-docs PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-12-17T14:48:41.563Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Don't compare things where both sides are exactly the same

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2026-02-20T14:21:40.180Z
Learnt from: CR
Repo: consentdotio/dsar PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-20T14:21:40.180Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Don't use `.only` or `.skip` in committed code

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2025-12-17T14:48:41.563Z
Learnt from: CR
Repo: consentdotio/c15t-docs PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2025-12-17T14:48:41.563Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Make sure the assertion function, like expect, is placed inside an it() function call

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2026-02-20T14:21:19.208Z
Learnt from: CR
Repo: consentdotio/dsar PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2026-02-20T14:21:19.208Z
Learning: Applies to **/*.{test,spec}.{ts,tsx,js,jsx} : Keep test suites reasonably flat - avoid excessive `describe` nesting

Applied to files:

  • packages/docs/src/internal/package-surface.test.ts
📚 Learning: 2026-03-19T22:57:19.913Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/**/*.mdx : Use MDX for documentation pages

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-01-31T11:24:55.220Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/**/*.mdx : Use MDX for documentation pages in the docs app

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-01-31T11:24:55.220Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/**/*.mdx : Include code examples where appropriate in MDX documentation pages of the docs app

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-03-19T22:57:19.913Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/**/*.mdx : Keep documentation organized by categories

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-03-19T22:57:19.913Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/**/*.mdx : Include code examples where appropriate in documentation

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:43.299Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:43.299Z
Learning: Applies to **/*.{tsx,jsx} : For each component, documentation should include: purpose and use case, required and optional props, context requirements, example usage, and common pitfalls

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-03-19T22:57:45.114Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:45.114Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Document components with purpose and use case, required and optional props, context requirements, example usage, and common pitfalls

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-01-31T11:24:55.220Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/app/**/{layout,page}.tsx : Keep layouts and pages separate in the docs app directory

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-01-31T11:24:55.220Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/app/**/*.{ts,tsx} : Use Next.js App Router conventions in the docs app

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-01-31T11:24:55.220Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/app/**/page.tsx : Place page components in appropriate route segments within the docs app

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-02-19T01:12:44.177Z
Learnt from: CR
Repo: consentdotio/agent-skills PR: 0
File: tsdoc-jsdoc-authoring/AGENTS.md:0-0
Timestamp: 2026-02-19T01:12:44.177Z
Learning: Applies to tsdoc-jsdoc-authoring/**/*.{ts,tsx,js,jsx} : Write clear summary sentences in TSDoc and JSDoc comments

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
  • packages/docs/agent-docs/docs/llms-full/overview.txt
📚 Learning: 2026-02-19T01:12:44.177Z
Learnt from: CR
Repo: consentdotio/agent-skills PR: 0
File: tsdoc-jsdoc-authoring/AGENTS.md:0-0
Timestamp: 2026-02-19T01:12:44.177Z
Learning: Applies to tsdoc-jsdoc-authoring/**/*.{ts,tsx,js,jsx} : Prefer `{link ...}` for symbol references in TSDoc and JSDoc comments

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
📚 Learning: 2026-02-20T14:21:19.208Z
Learnt from: CR
Repo: consentdotio/dsar PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2026-02-20T14:21:19.208Z
Learning: Applies to **/*.{tsx,jsx} : Use `next/head` or App Router metadata API for head elements

Applied to files:

  • packages/docs/agent-docs-src/docs/index.mdx
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.{ts,tsx} : Document props and usage examples

Applied to files:

  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-02-20T14:21:40.180Z
Learnt from: CR
Repo: consentdotio/dsar PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-20T14:21:40.180Z
Learning: Focus code review attention on business logic correctness, meaningful naming, architecture decisions, edge cases, user experience, and documentation - Oxlint + Oxfmt handles most formatting and common issues automatically

Applied to files:

  • packages/docs/agent-docs/docs/index.md
📚 Learning: 2026-01-31T11:24:55.220Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/src/components/**/*.tsx : Place reusable components in `src/components` within the docs app

Applied to files:

  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.{tsx,jsx} : Use compound components pattern (e.g., `Component.Root`, `Component.Child`)

Applied to files:

  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:43.299Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:43.299Z
Learning: Applies to **/*.{tsx,jsx} : Each component should follow the specified structure using `forwardRef`, proper prop typing, and support for `asChild`, `className`, and HTML attributes

Applied to files:

  • packages/docs/agent-docs/docs/index.md
  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs/docs/llms-full/overview.txt
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-03-19T22:57:19.913Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:19.913Z
Learning: Applies to apps/docs/app/**/* : Use Next.js App Router conventions

Applied to files:

  • packages/docs/agent-docs/docs/index.md
📚 Learning: 2026-02-19T01:12:44.177Z
Learnt from: CR
Repo: consentdotio/agent-skills PR: 0
File: tsdoc-jsdoc-authoring/AGENTS.md:0-0
Timestamp: 2026-02-19T01:12:44.177Z
Learning: Applies to tsdoc-jsdoc-authoring/**/*.{ts,tsx,js,jsx} : Use `deprecated` with migration guidance in TSDoc and JSDoc comments

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
📚 Learning: 2026-02-19T01:12:44.177Z
Learnt from: CR
Repo: consentdotio/agent-skills PR: 0
File: tsdoc-jsdoc-authoring/AGENTS.md:0-0
Timestamp: 2026-02-19T01:12:44.177Z
Learning: Applies to tsdoc-jsdoc-authoring/**/*.{ts,tsx,js,jsx} : Use `remarks` for long-form context in TSDoc and JSDoc comments

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
📚 Learning: 2026-03-19T22:57:33.411Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:33.411Z
Learning: Applies to packages/elements/**/*.{ts,tsx} : Document props and usage examples in Elements package components

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:43.299Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:43.299Z
Learning: Applies to **/*.{tsx,jsx} : Support custom styling and rendering in components

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-02-20T14:21:40.180Z
Learnt from: CR
Repo: consentdotio/dsar PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-20T14:21:40.180Z
Learning: Applies to **/*.{tsx,jsx} : Don't define components inside other components

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-02-19T01:12:44.177Z
Learnt from: CR
Repo: consentdotio/agent-skills PR: 0
File: tsdoc-jsdoc-authoring/AGENTS.md:0-0
Timestamp: 2026-02-19T01:12:44.177Z
Learning: Applies to tsdoc-jsdoc-authoring/**/*.{js,jsx} : Add practical `example` snippets in JSDoc comments

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:10.961Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:10.961Z
Learning: Applies to packages/elements/**/*.{ts,tsx} : Include TypeScript examples

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-02-19T01:12:44.177Z
Learnt from: CR
Repo: consentdotio/agent-skills PR: 0
File: tsdoc-jsdoc-authoring/AGENTS.md:0-0
Timestamp: 2026-02-19T01:12:44.177Z
Learning: Applies to tsdoc-jsdoc-authoring/**/*.{ts,tsx,js,jsx} : Use `example` for non-obvious usage in TSDoc and JSDoc comments

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-03-19T22:57:33.411Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/elements-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:33.411Z
Learning: Applies to packages/elements/**/*.{ts,tsx,md} : Include TypeScript examples in Elements package documentation

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-03-19T22:57:45.114Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:45.114Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Implement compound components pattern with components namespaced under a single parent (e.g., FormWizard.Root, FormWizard.Step), using React Context for state management

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:43.299Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:43.299Z
Learning: Applies to **/*.{tsx,jsx} : Components should be namespaced under a single parent (e.g., `FormWizard.Root`, `FormWizard.Step`)

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:43.299Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:43.299Z
Learning: Applies to **/*.{tsx,jsx} : Support screen readers through semantic markup in components

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-12-01T15:20:25.102Z
Learnt from: CR
Repo: consentdotio/c15t-docs PR: 0
File: .cursor/rules/open-graph.mdc:0-0
Timestamp: 2025-12-01T15:20:25.102Z
Learning: Applies to src/pkgs/open-graph/**/*.{ts,tsx} : Keep JSX components pure, synchronous, and stateless—no React hooks, useEffect, or dynamic behavior

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2026-01-31T11:24:55.220Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/docs-rules.mdc:0-0
Timestamp: 2026-01-31T11:24:55.220Z
Learning: Applies to apps/docs/**/*.{ts,tsx,css} : Prefer utility classes over custom CSS in the docs app

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
  • packages/docs/agent-docs-src/docs/components.mdx
📚 Learning: 2025-07-23T12:51:43.299Z
Learnt from: CR
Repo: consentdotio/monorepo PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2025-07-23T12:51:43.299Z
Learning: Applies to **/*.{tsx,jsx} : Root component should serve as the main context provider, manage global state, and handle initialization

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/authoring/components.txt
  • packages/docs/agent-docs/docs/components.md
📚 Learning: 2026-03-19T22:57:45.114Z
Learnt from: CR
Repo: consentdotio/GDPRish PR: 0
File: .cursor/rules/global-rules.mdc:0-0
Timestamp: 2026-03-19T22:57:45.114Z
Learning: Applies to **/*.{ts,tsx,js,jsx} : Use React Context for global state management, implement proper state updates, and handle side effects appropriately

Applied to files:

  • packages/docs/agent-docs/docs/components.md
📚 Learning: 2026-02-19T01:12:44.177Z
Learnt from: CR
Repo: consentdotio/agent-skills PR: 0
File: tsdoc-jsdoc-authoring/AGENTS.md:0-0
Timestamp: 2026-02-19T01:12:44.177Z
Learning: Applies to tsdoc-jsdoc-authoring/**/*.{js,jsx} : Write JSDoc summaries with intent in JavaScript files

Applied to files:

  • packages/docs/agent-docs/docs/llms-full/overview.txt
📚 Learning: 2026-02-20T14:21:19.208Z
Learnt from: CR
Repo: consentdotio/dsar PR: 0
File: .cursor/rules/ultracite.mdc:0-0
Timestamp: 2026-02-20T14:21:19.208Z
Learning: Applies to **/*.{tsx,jsx,html} : Use proper heading hierarchy in HTML/React components

Applied to files:

  • packages/docs/agent-docs-src/docs/components.mdx
🔍 Remote MCP Context7

Additional context relevant to this PR

  • MDX supports an app-owned component mapping via the useMDXComponents hook and passing a components object (including a special wrapper key); components can be merged at render time. This is an established pattern for injecting app-provided runtime components rather than relying on package-provided adapters.

  • MDX also documents a providerImportSource pattern (mdx-components file) that can be used to supply a global component map from the consuming app, which aligns with the PR’s approach of relocating mdxComponents into the docs app (e.g., "@/components/docs-mdx").

  • remark is the established AST-based markdown pipeline used for conversion, linting, and plugins (remark-lint, etc.). Using remark/remark plugins for conversion/LLM/lint/search as framework-neutral entry points (server/CLI) is consistent with the PR’s aim to keep conversion/search/lint pipeline responsibilities in the package while leaving runtime rendering to the app.

Tools used:

  • Resolved library IDs: /mdx-js/mdx and /remarkjs/remark.,
  • Queried documentation for MDX and Remark (useMDXComponents, providerImportSource, remark-lint examples).,
🔇 Additional comments (8)
packages/docs/src/internal/package-surface.test.ts (3)

1-5: Clean test setup and export key extraction.

Imports and exportedPaths initialization are straightforward and fit the package-surface contract test goal.


8-24: Order-insensitive allowlist assertion is robust.

Using both length and Set equality makes this check strict while avoiding flaky failures from harmless key reordering.


26-29: Good guardrails for removed public entry points.

Explicitly asserting absence of "." and "./react" correctly protects the new framework-neutral package surface.

packages/docs/agent-docs/docs/index.md (1)

19-37: Strong doc boundary clarification.

The updated package-surface and framework notes clearly separate app-owned runtime components from framework-neutral pipeline APIs.

packages/docs/agent-docs-src/docs/index.mdx (1)

18-36: LGTM for source docs alignment.

This source page now accurately reflects the app-owned mdxComponents model and matches the framework-neutral package positioning.

packages/docs/agent-docs-src/docs/components.mdx (1)

8-16: Clear and actionable contract update.

The revised ownership model, import example, and guidance bullets are consistent and easy to implement for consuming docs apps.

Also applies to: 38-46, 84-100, 145-146

packages/docs/agent-docs/docs/llms-full/overview.txt (1)

27-45: Full-context overview update looks good.

The generated overview now consistently communicates the same app-owned runtime/component boundary as the primary docs pages.

packages/docs/agent-docs/docs/components.md (1)

9-17: Generated Components page is aligned and consistent.

The updated markdown correctly mirrors the app-owned runtime contract and the expected mdxComponents import pattern.

Also applies to: 39-46, 85-100, 146-147

@KayleeWilliams KayleeWilliams merged commit 92f7a0f into main Apr 24, 2026
2 checks passed
KayleeWilliams added a commit that referenced this pull request Apr 26, 2026
Integrates main's component-ownership refactor (PR #8) and AI search
work (#5/#7). Adapts the c15t-compat changes from d289d82 onto the new
component locations under apps/docs-smoke/src/components/docs-mdx/:

  - Callout: keeps `type` alias and `warn`/`note` mapping. Inlined
    normalizeVariant/titleCase since the component now lives in the app
    (no shared internal/ helpers needed).
  - Card: keeps `icon`, `variant`, `CardVariant` type.
  - Tabs: keeps `groupId` prop with JSDoc.
  - CommandTabs: takes main's design wholesale (`mode: run|install|create`,
    discriminated union). Drops the duplicate PackageCommandTabs.

Drops `packages/docs/src/internal/{callout-variant,package-managers}.{ts,test.ts}`
since main's design has the component app-owned (with its own table)
and main's command-tabs.remark.ts is self-contained.

Keeps the new remark plugins (section, details, remove-jsx-comments) and
the warn/note alias in callout.remark.ts. Updates remark-output tests to
use the renamed convertMdxToMarkdown.
@KayleeWilliams KayleeWilliams deleted the KayleeWilliams/app-owned-docs-components branch May 9, 2026 02:30
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