feat!: remove the deprecated FileTabs component - #1290
Merged
Conversation
`FileTabs` was an editor-style tab bar with close buttons and dirty-state dots. Its `FileTabProps` has carried `@deprecated consider using <Tabs /> instead` since before the Glaze migration. Cube Cloud is the only known consumer, and it moved `FilesEditor` onto `Tabs` in October 2025 (cube-js/cloud@103e25e8e1). Neither `master` nor any branch there references `FileTabs` today, and nothing inside the UI Kit used it either — only the barrel export and an ESLint plugin fixture. Removes the component, its docs page, the `FileTabs` / `CubeFileTabProps` exports, and the ESLint plugin fixture, and regenerates `defaults.generated.ts`. Lowers the `defaults.test.ts` coverage ratchet from 72 to 71. That guard exists to stop fixtures being dropped for components that still exist; removing a component shrinks `total` alongside `covered`, so it is not a coverage regression. Noted as much in the comment. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: e2f6a22 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
📦 NPM canary releaseDeployed canary version 0.0.0-canary-ea6c4d5. |
Contributor
🏋️ Size limit report
Click here if you want to find out what is changed in this build |
Contributor
🧪 Storybook is successfully deployed!
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Removes
FileTabsfrom the public API: the component, itsFileTabs.TabPanesubcomponent, theCubeFileTabPropstype, its docs page, and its ESLint plugin fixture.Why
FileTabPropshas carried@deprecated consider using <Tabs /> insteadsince before the Glaze migration.FilesEditorwas moved ontoTabsin cube-js/cloud@103e25e8e1 on 2025-10-24. Neithermaster(checked at today's HEAD) nor any branch there referencesFileTabsnow.src/index.tsand one ESLint plugin fixture.Migration
The close button is the main thing to port: on
Tabsit isonDelete, and passing it is what makes the buttons appear.Tabshas no built-inisDirtyequivalent — render the unsaved indicator into the tab'stitleoractions, as Cloud'sFilesEditordoes.Marked
minor, matching how #1275 versioned removing public props (this repo is 0.x, somajorwould mean 1.0).One thing worth a look
defaults.test.tshas a coverage ratchet,COVERED = 72, lowered here to 71. The guard exists to stop fixtures being dropped for components that still exist; removing a component shrinkstotalalongsidecovered, so it is not a coverage regression. I noted that in the comment rather than silently editing the number.Verification
pnpm test— 1361 passed, 1 skipped, 62 filespnpm lint— clean (only pre-existingconsistent-token-usagewarnings in untouched files)pnpm build— passes;FileTabs/CubeFileTabPropsgone fromdist/index.d.tsanddist/index.jstsc --noEmit— 13 errors, identical toorigin/main, none mentioning FileTabs (pre-existing, not run in CI)defaults.generated.tsregenerated viapnpm audit-defaultsRelated, not done here
StatsCard(the otherorganisms/component) looks like the same situation — it is exported but unused by Cloud, which has its own localStatsCardbuilt on the kit'sCard. I left it alone since you only greenlit FileTabs; say the word and it can follow.🤖 Generated with Claude Code
Note
Low Risk
Deletion of an already-deprecated, unused public API with migration notes; no runtime logic changes beyond removing dead code.
Overview
Removes the deprecated editor-style
FileTabscomponent (includingFileTabs.TabPaneandCubeFileTabProps) from the public API, along with its Storybook docs and implementation underorganisms/FileTabs.Barrel exports in
src/index.tsno longer expose the component or type. The ESLint defaults pipeline drops theFileTabsfixture and generated defaults entry;defaults.test.tslowers the coverage ratchet from 72 to 71 with a comment that removing a component is not a regression.The changeset (minor) documents migration to
Tabs:onTabClose→onDelete,FileTabs.TabPane→Tabs.Panel, and unsaved state via customtitle/actionssinceTabshas no built-inisDirty.Reviewed by Cursor Bugbot for commit e2f6a22. Bugbot is set up for automated code reviews on this repo. Configure here.