feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(swingset): proptable badges, inline variables reset, folder source links - #8822

Merged
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges
Jun 11, 2026
Merged

feat(swingset): proptable badges, inline variables reset, folder source links#8822
kylemac merged 3 commits into
mainfrom
kylemac/proptable-type-badges

Conversation

@kylemac

@kylemackylemac commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

TLDR

polish stuff

  • gives props in prop table the badge treatment so they stand out
  • links to the directory now for "view source" ctas
  • slight tweak to the "variables" footer in the playground section

Description

Polishes the @clerk/swingset component explorer UI (private/unpublished package, no user-facing impact):

  • PropTable — the Prop-name column now renders as a badge (bordered, muted-background pill) so it stands out from the Type column.
  • StoryPreview — the Variables collapsible trigger gets active styling when expanded, and a variables-only Reset button now appears inline next to it. The redundant header row inside VariablesPanel (label + reset) was removed.
  • View sourcesourceUrl now resolves index/barrel files (index.ts, etc.) to their containing GitHub folder (tree view) instead of the re-export file, while other paths still link straight to the file (blob view).

To test: run pnpm run dev:swingset and open a component overview — check the prop badges, the Variables panel reset, and that a primitive whose source is an index.ts (e.g. Collapsible) opens its folder.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 📖 Refactoring / dependency upgrade / documentation

Summary by CodeRabbit

  • New Features

    • Variables panel in story preview is now collapsible and offers a conditional reset control in its header when open.
    • Added a reusable Badge UI used for prop names and other inline labels.
  • UI / Style

    • Prop names in prop tables now display as badges for improved readability.
    • Header sticky positioning/z-index adjusted for more consistent behavior.
    • Source links now choose folder vs file views and normalize paths for more accurate navigation.

@changeset-bot

changeset-botBot commented Jun 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 78a1d8b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@vercel

vercelBot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
swingsetReadyReadyPreview, CommentJun 10, 2026 11:59pm
1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxSkippedSkippedJun 10, 2026 11:59pm

Request Review

@coderabbitai

coderabbitaiBot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 6323a95d-7d40-4418-b00f-c76efdb12765

📥 Commits

Reviewing files that changed from the base of the PR and between 4d491e3 and 78a1d8b.

📒 Files selected for processing (2)
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/ui/badge.tsx
✅ Files skipped from review due to trivial changes (1)
  • packages/swingset/src/components/ui/badge.tsx

📝 Walkthrough

Walkthrough

Refactors VariablesPanel control into StoryPreview (controlled Collapsible and conditional reset), adds a reusable Badge and uses it in PropTable prop names, updates sourceUrl to prefer tree for index files and normalize paths, tweaks ClientRoot header stacking, and adds a changeset.

Changes

SwingSet UI and Utilities Improvements

Layer / File(s)Summary
Variables panel controlled by StoryPreview
packages/swingset/src/components/StoryPreview.tsx, packages/swingset/src/components/VariablesPanel.tsx
Move variables open/close state into StoryPreview (adds useState, controls Collapsible via open/onOpenChange), render the variables reset button conditionally in StoryPreview (calls playground.setVariables({})), and remove the Reset button import/markup from VariablesPanel.
Badge component and PropTable usage
packages/swingset/src/components/ui/badge.tsx, packages/swingset/src/components/PropTable.tsx
Add Badge UI (badgeVariants, Badge component) and render row.name inside Badge variant="secondary" className="font-mono" in PropTable instead of plain code.
sourceUrl: tree/blob and normalization
packages/swingset/src/lib/source.ts
sourceUrl now uses REPO_BASE + BRANCH, strips leading slashes from input paths, links index.* files to the parent folder using GitHub tree, and links other files using blob; doc comment updated.
ClientRoot header stacking
packages/swingset/src/components/ClientRoot.tsx
header class list gains top-0 z-10, changing sticky offset and z-index stacking behavior without other layout changes.
Changeset entry for PropTable badges
.changeset/swingset-proptable-badges.md
New changeset file added documenting the PropTable badge styling update.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

ui

Suggested reviewers

  • alexcarpenter
  • prestonwebdev

Poem

🐰 I hopped through SwingSet, light and sly,
Collapsibles now heed my cry.
Props don badges, neat and small,
GitHub links find folders after all.
Header lifted — UI waves hi!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 50.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 nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly summarizes all three main changes: PropTable badges, inline variables reset, and folder source links for index files.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck 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.

@pkg-pr-new

pkg-pr-newBot commented Jun 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8822

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8822

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8822

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8822

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8822

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8822

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8822

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8822

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8822

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8822

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8822

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8822

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8822

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8822

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8822

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8822

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8822

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8822

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8822

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8822

commit: 78a1d8b

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/swingset/src/lib/source.ts (1)

3-4: ⚡ Quick win

Move repository config out of hardcoded constants.

REPO_BASE and BRANCH are configuration values and should be sourced from environment/config instead of literals (Line 3-4), then defaulted safely where needed.

Proposed change
-const REPO_BASE = 'https://github.com/clerk/javascript';-const BRANCH = 'main';+const REPO_BASE = process.env.SWINGSET_REPO_BASE ?? 'https://github.com/clerk/javascript';+const BRANCH = process.env.SWINGSET_REPO_BRANCH ?? 'main';

As per coding guidelines, “packages/swingset/**/*.{ts,tsx,js}: Use environment variables for configuration instead of hardcoded values.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/swingset/src/lib/source.ts` around lines 3 - 4, REPO_BASE and BRANCH
are hardcoded constants in source.ts; replace them with configuration-sourced
values (e.g., read from process.env or a central config module) and provide safe
defaults where used. Update the symbols REPO_BASE and BRANCH in source.ts to be
initialized from process.env.REPO_BASE and process.env.REPO_BRANCH (or via a
config.get('repoBase', ...) / config.get('branch', ...)) and ensure any code
that imports or references REPO_BASE/BRANCH still gets the same exported names
or switch to exported getters so defaulting is applied consistently.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/swingset-proptable-badges.md:
- Around line 1-2: The changeset file .changeset/swingset-proptable-badges.md is
empty but the package `@clerk/swingset` is marked "private": true, so remove the
empty changeset file or replace it with a valid changeset payload (e.g., a short
summary and no release entries) only if some internal tooling requires its
presence; locate .changeset/swingset-proptable-badges.md and either delete the
file or populate it with appropriate non-empty changeset content consistent with
private packages.
---
Nitpick comments:
In `@packages/swingset/src/lib/source.ts`:
- Around line 3-4: REPO_BASE and BRANCH are hardcoded constants in source.ts;
replace them with configuration-sourced values (e.g., read from process.env or a
central config module) and provide safe defaults where used. Update the symbols
REPO_BASE and BRANCH in source.ts to be initialized from process.env.REPO_BASE
and process.env.REPO_BRANCH (or via a config.get('repoBase', ...) /
config.get('branch', ...)) and ensure any code that imports or references
REPO_BASE/BRANCH still gets the same exported names or switch to exported
getters so defaulting is applied consistently.
🪄 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: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 57c0cd9a-8845-4b49-9c07-ca9560c7fa0a

📥 Commits

Reviewing files that changed from the base of the PR and between be44bae and 5797f33.

📒 Files selected for processing (5)
  • .changeset/swingset-proptable-badges.md
  • packages/swingset/src/components/PropTable.tsx
  • packages/swingset/src/components/StoryPreview.tsx
  • packages/swingset/src/components/VariablesPanel.tsx
  • packages/swingset/src/lib/source.ts
💤 Files with no reviewable changes (1)
  • packages/swingset/src/components/VariablesPanel.tsx

Comment on lines +1 to +2
---
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash# Check if `@clerk/swingset` is a published package# Look for package.json and check private field
fd -t f '^package\.json$' packages/swingset -x cat {} \;| jq -r '{name: .name, private: .private, version: .version}'# Check if there are other non-empty changesets for swingset
rg -l '`@clerk/swingset`' .changeset/ -g '*.md'| head -5 | xargs -I {} sh -c 'echo "=== {} ===" && cat {}'

Repository: clerk/javascript

Length of output: 133


Remove/fill the empty changeset for private @clerk/swingset

@clerk/swingset is marked "private": true, so it doesn’t need a version-bump/changelog entry. The file .changeset/swingset-proptable-badges.md is currently just --- (lines 1-2); either delete it or add real content if some internal tooling relies on it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.changeset/swingset-proptable-badges.md around lines 1 - 2, The changeset
file .changeset/swingset-proptable-badges.md is empty but the package
`@clerk/swingset` is marked "private": true, so remove the empty changeset file or
replace it with a valid changeset payload (e.g., a short summary and no release
entries) only if some internal tooling requires its presence; locate
.changeset/swingset-proptable-badges.md and either delete the file or populate
it with appropriate non-empty changeset content consistent with private
packages.

Source: Learnings

@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:45 Inactive
Comment threadpackages/swingset/src/components/PropTable.tsx Outdated
@vercel
vercelBottemporarily deployed to Preview – clerk-js-sandbox June 10, 2026 23:58 Inactive
@kylemac
kylemac enabled auto-merge (squash) June 11, 2026 00:00
@kylemac
kylemac merged commit 5d0faaa into mainJun 11, 2026
47 checks passed
@kylemac
kylemac deleted the kylemac/proptable-type-badges branch June 11, 2026 00:01
Sign up for freeto 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.

2 participants

@kylemac@alexcarpenter