fix: 🐛 resolve circular dependencies (first pass)#841
Conversation
…act-19-rsc-support
|
Claude finished @punkbit's task in 2m 44s —— View job Code Review: fix/circular-dependencies-first-pass
Good systematic work here — the move from a three-line wildcard barrel ( 🚨 Must Fix
💡 Suggestions (non-blocking)
Nice approach overall — the atomic commits and before/after dependency graph make this easy to reason about. Once the missing exports and the broken |
|
Claude finished @punkbit's task in 2m 2s —— View job Code Review: fix/circular-dependencies-first-pass
Good progress since the last review pass — two of the previously flagged blockers have been resolved. Here's the current status: ✅ Fixed since last review
🚨 Must Fix
💡 Suggestions (non-blocking)
Two blockers remain: the missing hook exports and |
|
Claude finished @punkbit's task in 1m 11s —— View job Code Review: fix/circular-dependencies-first-pass
Good progress — three of the previously flagged blockers are now resolved. Here's the current status: ✅ Fixed since last review
🚨 Must Fix
💡 Suggestions (non-blocking)
Two blockers remain: the missing hook exports and |
|
Claude finished @punkbit's task in 1m 20s —— View job Code Review: fix/circular-dependencies-first-pass
Good progress again — the theme cast fix ( ✅ Fixed since last review
🚨 Must Fix
💡 Suggestions (non-blocking)
Two blockers remain: the missing hook exports and |
|
Claude finished @punkbit's task in 1m 11s —— View job Code Review: fix/circular-dependencies-first-pass
Good progress across the multiple review passes — the dependency graph cleanup is clear and systematic. One blocker from previous passes remains, while others have all been resolved. ✅ Fixed since last review
🚨 Must Fix
💡 Suggestions (non-blocking)
One blocker remains: the two missing hook exports and |
Ignore fix request, it shouldn't be public
Ignore fix request, it shouldn't be public
Ignore fix request, these types shouldn't be public |
|
Claude finished @punkbit's task in 1m 53s —— View job Code Review: fix/circular-dependencies-first-pass
All previously flagged blockers are now resolved or clarified. Here's the final status: ✅ All Fixed / Clarified
💡 Suggestions (non-blocking)
The dependency graph cleanup is clear and systematic — moving from a three-line wildcard barrel to an explicit, curated |
|
Claude finished @punkbit's task in 1m 28s —— View job Code Review: fix/circular-dependencies-first-pass
All previously flagged blockers have been resolved or clarified. The PR is clean. ✅ All Fixed / Clarified
💡 Suggestions (non-blocking)
The dependency graph improvement is clear (before/after screenshots make it easy to reason about), and the move to an explicit barrel in |
|
Claude finished @punkbit's task in 57s —— View job Code Review: fix/circular-dependencies-first-pass
All previously flagged blockers have been resolved. The PR is in good shape. ✅ All Fixed / Confirmed
💡 Suggestions (non-blocking)
The dependency graph cleanup is clear and systematic — moving from wildcard barrels to an explicit, curated |
📚 Storybook Preview Deployed✅ Preview URL: https://click-mlcwfq8sg-clickhouse.vercel.app Built from commit: |
* fix: 🐛 dropdown amends * fix: 🐛 theme prop * fix: 🐛 type * chore: 🤖 TIAS build version supported on next v16 RSC * chore: 🤖 WIP ongoing styled-component v6.1.11 (non experimental) support * chore: 🤖 strict react version for dev * fix: 🐛 missing ref on forwardRef, might have plenty of these * chore: 🤖 update lockfile * chore: 🤖 remove optional flag from ref (typo) * chore: 🤖 add comment for future ref * refactor: 💡 banner * chore: 🤖 lint amends (double quotes) * refactor: 💡 removes style prop as typed prop * chore: 🤖 remove ajv * chore: 🤖 format * test: 💍 add aria pressed to ButtonGroup * chore: 🤖 format * test: 💍 use local getByText * chore: 🤖 update lockfile * chore: 🤖 add changeset * chore: 🤖 small text amend to trigger vercel deploy * chore: 🤖 prevent running on CI * chore: 🤖 add HUSKY to preven husky runnig pre-commit hook * fix: 🐛 conflict resolution * chore: 🤖 bump rc number * docs: 📝 build esm, how to use * chore: 🤖 ESM vite builder (wip) * fix: 🐛 remove .tsx extension from import statements * fix: 🐛 remove .tsx extension from import statements * fix: 🐛 remove .tsx extension from import statements * fix: 🐛 remove .ts extension from import statements * fix: 🐛 remove .ts extension from import statements * chore: 🤖 add eslint to assess import extensions not required * chore: 🤖 format * chore: 🤖 temporary custom resolve tsconfig path * refactor: 💡 export from correct theme boundary * chore: 🤖 node externals in vite, remove alias * chore: 🤖 use relative paths * chore: 🤖 use externalize deps * chore: 🤖 for ESM compatibility, tweak/handle CJS components * chore: revert ts alias rewrite to relative * chore: lint do not allow barrel imports * chore: remove excludes from tsconfig * chore: set vite settings to preserve file struct in output * fix: solve import cycles * fix: solve import cycles in stories * fix: build amends * fix: add .js extension * chore: analyze and visualise bundle * chore: split ESM, CJS distribution * chore: format * fix: 🐛 lint code block * fix: 🐛 import Separator * chore: format * fix: 🐛 import Separator * chore: 🤖 add changeset * chore: 🤖 use 0.0.251-rc.62 * chore: 🤖 resolve conflict resolution, deleted files which were removed in main branch * chore: 🤖 resolve conflict resolution, middle truncator * chore: 🤖 resolve conflict resolution, missing container changes * refactor: 💡 FileMultiUpload to follow FileUpload due to middle truncator * fix: 🐛 prevent icon success pushed right * fix: 🐛 remove file size from multiple file upload * chore: 🤖 merge conflict amend for ButtonGroup * chore: 🤖 remove comment * refactor: 💡 reduce import path redundancy (WIP, pt1) * refactor: 💡 accordion as index * refactor: 💡 rename component by directory name to index * refactor: 💡 update import statements to prefer index * chore: 🤖 remove old indexes (this was a failed attempt, which imported the reduntant name) * fix: 🐛 import statements * fix: 🐛 import statements * fix: 🐛 import statements * fix: 🐛 icon names in types * chore: 🤖 add note * chore: 🤖 format * fix: 🐛 icon names location * fix: 🐛 icon names location * chore: 🤖 update changeset * refactor: 💡 use component level barrel, to allow devs see component name on editor * fix: 🐛 import statements * chore: 🤖 add eslint to prevent imports from index and request use of leafs when possible * fix: 🐛 dayjs version * fix: 🐛 merge from main,m incorrectly changed * chore: 🤖 prepare merge main * fix: 🐛 merge conflicts * refactor: 💡 further paths pass * chore: 🤖 add note * chore: 🤖 format * refactor: 💡 further paths pass for AutoComplete * fix: 🐛 merge conflict * refactor: 💡 further paths pass for Collapsible * chore: 🤖 init changeset * fix: 🐛 merge conflict * fix: 🐛 file extension * fix: 🐛 file extension * refactor: 💡 init GenericMenu structure * chore: 🤖 add generic menu test * chore: 🤖 add generic menu story * refactor: 💡 make components/Common to avoid loose files * refactor: 💡 move types * refactor: 💡 update path changes for common components * refactor: 💡 add Text index/exports * refactor: 💡 first pass, move types to *.types.ts * refactor: 💡 second pass, move types to *.types.ts * refactor: 💡 third pass, move types to *.types.ts * refactor: 💡 forth pass, move types to *.types.ts * refactor: 💡 fifth pass, move types to *.types.ts * refactor: 💡 export size color * refactor: 💡 move types for Avatar * fix: 🐛 imports * fix: 🐛 types * fix: 🐛 linter * fix: 🐛 test * chore: 🤖 add hmr benchmark * chore: 🤖 make component build name index to remove redundancy * chore: 🤖 generate exports, e.g. expose direct component imports and its types chore: 🤖 generate exports, e.g. expose direct component imports and its types * perf: ⚡ benchmark hmr deep nested components * chore: 🤖 link @clickhouse/click-ui to itself, required for benchmark * perf: ⚡ generate component exports, e.g. speedy component and type access * refactor: 💡 remove unused re-export files * chore: 🤖 update changeset * chore: 🤖 remove comments * fix: 🐛 TIAS circular dependencies, first 60 * refactor: 💡 make commons their own components * refactor: 💡 split common components * refactor: 💡 common components (styled components) exports * refactor: 💡 types in src/components/types * refactor: 💡 reconsile types * refactor: 💡 exports order * chore: 🤖 update exports * refactor: 💡 logo props * refactor: 💡 IconSize is an Icon type * refactor: 💡 rename icon types file * refactor: 💡 rename icon type import * refactor: 💡 move common icon SVG props * refactor: 💡 move common icon SVG element to icons * refactor: 💡 prefix types with type * chore: 🤖 format * fix: 🐛 redundancy in exports pathnames * refactor: 💡 text types in typography * refactor: 💡 cursor options type in panel * refactor: 💡 common types * chore: 🤖 add changeset * refactor: 💡 shared svg props * refactor: 💡 use shared types * refactor: 💡 remove re-export, prefer shared * refactor: 💡 shared types * refactor: 💡 rename icon size as shared asset size * chore: 🤖 merge conflict * fix: 🐛 resole theme conflicts * fix: 🐛 resolve theme types * refactor: 💡 theme * fix: 🐛 resolve merge conflicts due to circular deps * refactor: 💡 theme * refactor: 💡 remove hard typed theme * refactor: 💡 make theme and click ui provider as providers * refactor: 💡 export ClickUIProvider as named export * refactor: 💡 src/theme * refactor: 💡 theme files now follow the namespace pattern: * refactor: 💡 remove theme index * refactor: 💡 remove src/components/index.ts, prefer main src/index.ts as public api * refactor: 💡 prefer alias for internal inter component imports * refactor: 💡 main exports api * refactor: 💡 storybook * refactor: 💡 storybook * chore: 🤖 remove comment * chore: 🤖 deleted file * fix: 🐛 types deps * refactor: 💡 move THEMES data structure from types * test: 💍 update test (due to merge issues) * chore: 🤖 the asset system has to be updated to reflect architecture decisions, since its automated, here done manual changes * chore: 🤖 merge from refactor/modular-file-architecture * fix: 🐛 error TS2724: './IconButton' has no exported member named 'IconButtonSize'. * chore: 🤖 add TODO * fix: 🐛 circular dep * chore: 🤖 resolve merge conflict missing type * chore: 🤖 remove deprecated * fix: 🐛 ContextMenu.types.ts: Added type?: 'default' | 'danger' to the exported ContextMenuItemProps interface and remove duplicate * refactor: 💡 move local type * refactor: 💡 move local type (missed track file) * refactor: 💡 changeset * refactor: 💡 move ContextMenu types * chore: 🤖 remove FlyoutHeaderProps and FlyoutFooterProps are each declared twice in the same file * refactor: 💡 Replaced stale types in Flyout.types.ts with the correct definitions from Flyout.tsx * fix: 🐛 typo, should be orientation * refactor: 💡 changeset * chore: 🤖 update changeset, include what changed * fix: 🐛 types * fix: 🐛 missing exports InitCUIThemeScript and InitCUIThemeScriptProps * fix: 🐛 merge conflicts, update changeset, remove orphans * fix: 🐛 remove unknown casting in themes in theme.core.ts * refactor: 💡 theme const and types * chore: 🤖 remove unwanted file * fix: 🐛 derived types from THEMES tricky as it can cause circular deps * refactor: 💡 capitalize theme name * chore: 🤖 add bug fix in changeset * chore: 🤖 remove unrelated * refactor: 💡 import path redundancy
Why?
The Click-UI source code has several circular dependencies that must be resolved.
During the resolution of component path redundancies and public API encapsulation in #798, several circular dependencies were exposed. There, some quick basic fixes were applied to allow to progress, but it was found that a separate PR was needed to resolve them.
🤖 Once #832 is merged, change base to main.
How?
Preview?
❌ Before
👍 After