Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
257 commits
Select commit Hold shift + click to select a range
62c10ef
fix: 🐛 dropdown amends
punkbit Jan 19, 2026
4a20902
fix: 🐛 theme prop
punkbit Jan 19, 2026
2ed9c1c
fix: 🐛 type
punkbit Jan 19, 2026
37ec2c9
chore: 🤖 TIAS build version supported on next v16 RSC
punkbit Jan 20, 2026
f72ad14
chore: 🤖 WIP ongoing styled-component v6.1.11 (non experimental) support
punkbit Jan 20, 2026
b6c48a4
chore: 🤖 strict react version for dev
punkbit Jan 20, 2026
ea50f3e
fix: 🐛 missing ref on forwardRef, might have plenty of these
punkbit Jan 20, 2026
57c554d
chore: 🤖 update lockfile
punkbit Jan 20, 2026
b22624d
chore: 🤖 remove optional flag from ref (typo)
punkbit Jan 20, 2026
a769ad9
chore: 🤖 add comment for future ref
punkbit Jan 20, 2026
694b240
refactor: 💡 banner
punkbit Jan 20, 2026
b373fd2
chore: 🤖 lint amends (double quotes)
punkbit Jan 20, 2026
1ce4ff9
refactor: 💡 removes style prop as typed prop
punkbit Jan 20, 2026
f9cc7f4
chore: 🤖 remove ajv
punkbit Jan 20, 2026
0c406c0
chore: 🤖 format
punkbit Jan 20, 2026
c9bf9f4
test: 💍 add aria pressed to ButtonGroup
punkbit Jan 20, 2026
eb0d393
chore: 🤖 format
punkbit Jan 20, 2026
8dea336
test: 💍 use local getByText
punkbit Jan 20, 2026
a231533
chore: 🤖 update lockfile
punkbit Jan 21, 2026
91f4800
chore: 🤖 add changeset
punkbit Jan 21, 2026
2206a99
chore: 🤖 small text amend to trigger vercel deploy
punkbit Jan 21, 2026
4729912
chore: 🤖 prevent running on CI
punkbit Jan 22, 2026
48523da
chore: 🤖 add HUSKY to preven husky runnig pre-commit hook
punkbit Jan 22, 2026
82ff68b
Merge branch 'main' into fix/minimal-react-19-rsc-support
punkbit Jan 22, 2026
f3a0dcc
Merge branch 'chore/prevent-pre-commit-run-on-ci' into fix/minimal-re…
punkbit Jan 22, 2026
b1de479
fix: 🐛 conflict resolution
punkbit Jan 22, 2026
b23c72f
chore: 🤖 bump rc number
punkbit Jan 22, 2026
adb82c3
docs: 📝 build esm, how to use
punkbit Jan 23, 2026
9e0cbc3
chore: 🤖 ESM vite builder (wip)
punkbit Jan 23, 2026
738d97e
fix: 🐛 remove .tsx extension from import statements
punkbit Jan 23, 2026
1e99d39
fix: 🐛 remove .tsx extension from import statements
punkbit Jan 23, 2026
ed4f7b8
fix: 🐛 remove .tsx extension from import statements
punkbit Jan 23, 2026
a5e4ee9
Merge branch 'main' into fix/remove-tsx-extension-import-statements
punkbit Jan 23, 2026
ade0c8a
Merge branch 'fix/remove-tsx-extension-import-statements' into perf/d…
punkbit Jan 23, 2026
a7a4b9d
fix: 🐛 remove .ts extension from import statements
punkbit Jan 23, 2026
f8a39e8
fix: 🐛 remove .ts extension from import statements
punkbit Jan 23, 2026
3da59f1
chore: 🤖 add eslint to assess import extensions not required
punkbit Jan 23, 2026
0b4d381
Merge branch 'chore/prevent-import-extensions' into perf/distribute-e…
punkbit Jan 23, 2026
1d0d42c
Merge branch 'fix/remove-tsx-extension-import-statements' into perf/d…
punkbit Jan 23, 2026
9df6254
chore: 🤖 format
punkbit Jan 23, 2026
641ca6b
chore: 🤖 temporary custom resolve tsconfig path
punkbit Jan 23, 2026
0f1082d
refactor: 💡 export from correct theme boundary
punkbit Jan 23, 2026
219b6ae
chore: 🤖 node externals in vite, remove alias
punkbit Jan 23, 2026
ae52a23
chore: 🤖 use relative paths
punkbit Jan 23, 2026
777ca23
chore: 🤖 use externalize deps
punkbit Jan 23, 2026
9f48675
Merge branch 'main' into perf/distribute-esm-unbundled
punkbit Jan 23, 2026
652552b
chore: 🤖 for ESM compatibility, tweak/handle CJS components
punkbit Jan 23, 2026
4487fcb
chore: revert ts alias rewrite to relative
punkbit Jan 23, 2026
95830e0
chore: lint do not allow barrel imports
punkbit Jan 23, 2026
b0bfea5
chore: remove excludes from tsconfig
punkbit Jan 23, 2026
e17a4ec
chore: set vite settings to preserve file struct in output
punkbit Jan 23, 2026
51a8c5b
fix: solve import cycles
punkbit Jan 23, 2026
3a50adf
fix: solve import cycles in stories
punkbit Jan 23, 2026
3c0f773
fix: build amends
punkbit Jan 23, 2026
677d314
fix: add .js extension
punkbit Jan 23, 2026
b80a63b
chore: analyze and visualise bundle
punkbit Jan 23, 2026
56099bb
chore: split ESM, CJS distribution
punkbit Jan 23, 2026
e76a47d
Merge branch 'main' into chore/distribution-unbundled
punkbit Jan 26, 2026
ac9c7c8
Merge branch 'main' into chore/distribution-unbundled
punkbit Jan 26, 2026
2f0b0f3
chore: format
punkbit Jan 26, 2026
3dd00a2
fix: 🐛 lint code block
punkbit Jan 26, 2026
a2ffec6
fix: 🐛 import Separator
punkbit Jan 26, 2026
d54269a
chore: format
punkbit Jan 26, 2026
ee433d9
fix: 🐛 import Separator
punkbit Jan 26, 2026
4edae27
chore: 🤖 add changeset
punkbit Jan 26, 2026
8a820d8
chore: merge main
punkbit Jan 29, 2026
ecbbc8b
chore: 🤖 use 0.0.251-rc.62
punkbit Jan 29, 2026
578471e
chore: 🤖 resolve conflict resolution, deleted files which were remove…
punkbit Jan 29, 2026
32cfad1
chore: 🤖 resolve conflict resolution, middle truncator
punkbit Jan 29, 2026
777aee5
chore: 🤖 resolve conflict resolution, missing container changes
punkbit Jan 29, 2026
e163516
refactor: 💡 FileMultiUpload to follow FileUpload due to middle truncator
punkbit Jan 29, 2026
38a68b1
fix: 🐛 prevent icon success pushed right
punkbit Jan 29, 2026
447491c
Merge branch 'fix/middle-truncator-icon-success-upload-val-position' …
punkbit Jan 29, 2026
b0fafa5
fix: 🐛 remove file size from multiple file upload
punkbit Jan 29, 2026
c682e36
Merge branch 'main' into chore/distribution-unbundled
punkbit Feb 2, 2026
ad93bef
Merge branch 'main' into chore/distribution-unbundled
punkbit Feb 2, 2026
332649d
chore: 🤖 merge conflict amend for ButtonGroup
punkbit Feb 2, 2026
c13bcd7
chore: 🤖 remove comment
punkbit Feb 2, 2026
a8c8db4
refactor: 💡 reduce import path redundancy (WIP, pt1)
punkbit Feb 2, 2026
9c13175
refactor: 💡 accordion as index
punkbit Feb 2, 2026
0d9b045
refactor: 💡 rename component by directory name to index
punkbit Feb 2, 2026
b2ee6e4
refactor: 💡 update import statements to prefer index
punkbit Feb 2, 2026
439d12b
chore: 🤖 remove old indexes (this was a failed attempt, which importe…
punkbit Feb 2, 2026
7ab0652
fix: 🐛 import statements
punkbit Feb 2, 2026
e0cba91
fix: 🐛 import statements
punkbit Feb 2, 2026
f9dfadd
fix: 🐛 import statements
punkbit Feb 2, 2026
7c323c6
fix: 🐛 icon names in types
punkbit Feb 2, 2026
6a3d7f4
chore: 🤖 add note
punkbit Feb 2, 2026
6d759b6
chore: 🤖 format
punkbit Feb 2, 2026
4105497
fix: 🐛 icon names location
punkbit Feb 2, 2026
3104380
fix: 🐛 icon names location
punkbit Feb 2, 2026
a0316ba
chore: 🤖 update changeset
punkbit Feb 2, 2026
9dd1f85
refactor: 💡 use component level barrel, to allow devs see component n…
punkbit Feb 2, 2026
150fe10
fix: 🐛 import statements
punkbit Feb 2, 2026
0da025f
chore: 🤖 add eslint to prevent imports from index and request use of …
punkbit Feb 2, 2026
2edec36
Merge branch 'main' into chore/distribution-unbundled
punkbit Feb 2, 2026
cee7b6b
Merge branch 'main' into chore/distribution-unbundled
punkbit Feb 3, 2026
abc152e
Merge branch 'chore/distribution-unbundled' into refactor/component-p…
punkbit Feb 3, 2026
af4e441
fix: 🐛 merge main conflict resolution
punkbit Feb 16, 2026
00ee734
fix: 🐛 dayjs version
punkbit Feb 16, 2026
beeae4f
fix: 🐛 merge from main,m incorrectly changed
punkbit Feb 16, 2026
8477295
chore: 🤖 prepare merge main
punkbit Feb 20, 2026
52e7c18
Merge branch 'main' into refactor/component-path-redundancy
punkbit Feb 20, 2026
7def5d8
fix: 🐛 merge conflicts
punkbit Feb 20, 2026
2be183c
refactor: 💡 further paths pass
punkbit Feb 20, 2026
16a4d5f
chore: 🤖 add note
punkbit Feb 20, 2026
b4ae1dc
chore: 🤖 format
punkbit Feb 20, 2026
329401f
refactor: 💡 further paths pass for AutoComplete
punkbit Feb 20, 2026
1c24c0d
fix: 🐛 merge conflict
punkbit Feb 20, 2026
332dd11
refactor: 💡 further paths pass for Collapsible
punkbit Feb 20, 2026
5b77caa
chore: 🤖 init changeset
punkbit Feb 20, 2026
9b51373
fix: 🐛 merge conflict
punkbit Feb 20, 2026
4e81c0c
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Feb 20, 2026
eeabb54
fix: 🐛 file extension
punkbit Feb 20, 2026
50195e1
fix: 🐛 file extension
punkbit Feb 20, 2026
19a2dd6
refactor: 💡 init GenericMenu structure
punkbit Feb 20, 2026
2b268d7
chore: 🤖 add generic menu test
punkbit Feb 20, 2026
4ebdecc
chore: 🤖 add generic menu story
punkbit Feb 20, 2026
abd0362
refactor: 💡 make components/Common to avoid loose files
punkbit Feb 20, 2026
2d4d8d4
refactor: 💡 move types
punkbit Feb 20, 2026
5fe875d
refactor: 💡 update path changes for common components
punkbit Feb 20, 2026
384907d
refactor: 💡 add Text index/exports
punkbit Feb 20, 2026
56bcf5a
refactor: 💡 first pass, move types to *.types.ts
punkbit Feb 20, 2026
cb3cb6a
refactor: 💡 second pass, move types to *.types.ts
punkbit Feb 20, 2026
99b1dd8
refactor: 💡 third pass, move types to *.types.ts
punkbit Feb 20, 2026
eb1e4d0
refactor: 💡 forth pass, move types to *.types.ts
punkbit Feb 20, 2026
0e1160a
refactor: 💡 fifth pass, move types to *.types.ts
punkbit Feb 20, 2026
cb39cab
refactor: 💡 export size color
punkbit Feb 20, 2026
61e3c21
refactor: 💡 move types for Avatar
punkbit Feb 20, 2026
d087a98
fix: 🐛 imports
punkbit Feb 20, 2026
a9b0dc5
fix: 🐛 types
punkbit Feb 20, 2026
f64864e
fix: 🐛 linter
punkbit Feb 20, 2026
9cbe820
fix: 🐛 test
punkbit Feb 20, 2026
7ac1cc7
chore: 🤖 add hmr benchmark
punkbit Feb 23, 2026
9c0715e
chore: 🤖 make component build name index to remove redundancy
punkbit Feb 23, 2026
9100a4e
chore: 🤖 generate exports, e.g. expose direct component imports and i…
punkbit Feb 23, 2026
f4308ad
perf: ⚡ benchmark hmr deep nested components
punkbit Feb 23, 2026
3398bc2
chore: 🤖 link @clickhouse/click-ui to itself, required for benchmark
punkbit Feb 23, 2026
fabed86
perf: ⚡ generate component exports, e.g. speedy component and type ac…
punkbit Feb 23, 2026
b18ce79
refactor: 💡 remove unused re-export files
punkbit Feb 23, 2026
3fdfbdb
chore: 🤖 update changeset
punkbit Feb 23, 2026
cf8aa56
chore: 🤖 remove comments
punkbit Feb 23, 2026
4c4f304
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Feb 23, 2026
a195c9e
fix: 🐛 TIAS circular dependencies, first 60
punkbit Feb 23, 2026
e1261e8
refactor: 💡 make commons their own components
punkbit Feb 23, 2026
0a80393
refactor: 💡 split common components
punkbit Feb 23, 2026
d76eed5
refactor: 💡 common components (styled components) exports
punkbit Feb 23, 2026
22adc5a
refactor: 💡 types in src/components/types
punkbit Feb 23, 2026
c274dc8
refactor: 💡 reconsile types
punkbit Feb 23, 2026
55f4c8a
refactor: 💡 exports order
punkbit Feb 23, 2026
e8e5839
chore: 🤖 update exports
punkbit Feb 23, 2026
f919a14
refactor: 💡 logo props
punkbit Feb 23, 2026
285845c
refactor: 💡 IconSize is an Icon type
punkbit Feb 23, 2026
450901c
refactor: 💡 rename icon types file
punkbit Feb 23, 2026
7f7c4ca
refactor: 💡 rename icon type import
punkbit Feb 23, 2026
fb2bc41
refactor: 💡 move common icon SVG props
punkbit Feb 23, 2026
955e7a7
refactor: 💡 move common icon SVG element to icons
punkbit Feb 23, 2026
913a867
refactor: 💡 prefix types with type
punkbit Feb 23, 2026
63b4b34
chore: 🤖 format
punkbit Feb 23, 2026
bf681fb
fix: 🐛 redundancy in exports pathnames
punkbit Feb 23, 2026
5cd3c50
refactor: 💡 text types in typography
punkbit Feb 23, 2026
920e528
refactor: 💡 cursor options type in panel
punkbit Feb 23, 2026
708157a
refactor: 💡 common types
punkbit Feb 23, 2026
76dd030
chore: 🤖 add changeset
punkbit Feb 23, 2026
1e1ee14
refactor: 💡 shared svg props
punkbit Feb 23, 2026
376cb97
refactor: 💡 use shared types
punkbit Feb 23, 2026
3e20499
refactor: 💡 remove re-export, prefer shared
punkbit Feb 23, 2026
dd6e14a
refactor: 💡 shared types
punkbit Feb 23, 2026
f086c43
refactor: 💡 rename icon size as shared asset size
punkbit Feb 23, 2026
6c8d24f
Merge branch 'main' into refactor/component-path-redundancy
punkbit Feb 23, 2026
75c2685
Merge branch 'main' into refactor/modular-file-architecture
punkbit Feb 24, 2026
4a21a1a
chore: 🤖 merge conflict
punkbit Feb 24, 2026
500aa15
fix: 🐛 resole theme conflicts
punkbit Feb 24, 2026
4d5da8f
fix: 🐛 resolve theme types
punkbit Feb 24, 2026
f2a863f
refactor: 💡 theme
punkbit Feb 24, 2026
3389991
Merge branch 'main' into refactor/component-path-redundancy
punkbit Feb 24, 2026
43f7247
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Feb 24, 2026
7ebf6b2
fix: 🐛 resolve merge conflicts due to circular deps
punkbit Feb 24, 2026
a1d22ad
refactor: 💡 theme
punkbit Feb 24, 2026
ca7988b
refactor: 💡 remove hard typed theme
punkbit Feb 24, 2026
c4599fe
chore: 🤖 merge base refactor/modular-file-architecture
punkbit Feb 24, 2026
0138807
refactor: 💡 make theme and click ui provider as providers
punkbit Feb 24, 2026
0271d2b
refactor: 💡 export ClickUIProvider as named export
punkbit Feb 24, 2026
8c4638c
refactor: 💡 src/theme
punkbit Feb 24, 2026
d690af4
refactor: 💡 theme files now follow the namespace pattern:
punkbit Feb 24, 2026
312c7f2
refactor: 💡 remove theme index
punkbit Feb 24, 2026
af25897
refactor: 💡 remove src/components/index.ts, prefer main src/index.ts …
punkbit Feb 24, 2026
2eca516
refactor: 💡 prefer alias for internal inter component imports
punkbit Feb 24, 2026
27db0c5
refactor: 💡 main exports api
punkbit Feb 24, 2026
6a9dedd
refactor: 💡 storybook
punkbit Feb 24, 2026
f9a2690
refactor: 💡 storybook
punkbit Feb 24, 2026
9a41224
chore: 🤖 remove comment
punkbit Feb 24, 2026
43f660d
chore: 🤖 deleted file
punkbit Feb 25, 2026
8591ff1
fix: 🐛 types deps
punkbit Feb 25, 2026
9e97615
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Feb 26, 2026
0838edd
refactor: 💡 move THEMES data structure from types
punkbit Feb 26, 2026
75452a2
Merge branch 'main' into refactor/component-path-redundancy
punkbit Feb 26, 2026
113fdae
test: 💍 update test (due to merge issues)
punkbit Feb 26, 2026
a60ad70
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Feb 26, 2026
74cdcf9
chore: 🤖 the asset system has to be updated to reflect architecture d…
punkbit Feb 26, 2026
541f617
chore: 🤖 merge from refactor/modular-file-architecture
punkbit Feb 26, 2026
91cff6d
Merge branch 'main' into refactor/component-path-redundancy
punkbit Feb 26, 2026
3a5527c
fix: 🐛 error TS2724: './IconButton' has no exported member named 'Ic…
punkbit Feb 26, 2026
2f92c76
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Feb 26, 2026
0faebfb
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Feb 26, 2026
c5e9d73
chore: 🤖 add TODO
punkbit Feb 26, 2026
f68fca0
Merge branch 'main' into refactor/modular-file-architecture
punkbit Mar 2, 2026
e077679
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Mar 2, 2026
b620dd9
fix: 🐛 circular dep
punkbit Mar 2, 2026
3a29007
Merge branch 'main' into refactor/component-path-redundancy
punkbit Mar 4, 2026
7feb175
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Mar 4, 2026
ab22012
Merge branch 'main' into refactor/component-path-redundancy
punkbit Mar 4, 2026
e018de2
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Mar 4, 2026
c68a672
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Mar 4, 2026
4e5063b
chore: 🤖 resolve merge conflict missing type
punkbit Mar 4, 2026
5761174
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Mar 4, 2026
1809ea8
Merge branch 'main' into refactor/component-path-redundancy
punkbit Mar 5, 2026
5088a1a
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Mar 5, 2026
0b455b6
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Mar 5, 2026
9168412
chore: 🤖 remove deprecated
punkbit Mar 5, 2026
6cf17e3
Merge branch 'main' into refactor/component-path-redundancy
punkbit Mar 5, 2026
8e4d084
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Mar 5, 2026
9e1c50a
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Mar 5, 2026
39e467c
Merge branch 'main' into refactor/component-path-redundancy
punkbit Mar 6, 2026
541a394
Merge branch 'refactor/component-path-redundancy' into refactor/modul…
punkbit Mar 6, 2026
6f2e21b
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Mar 6, 2026
8ab4715
fix: 🐛 ContextMenu.types.ts: Added type?: 'default' | 'danger' to the…
punkbit Mar 6, 2026
61ba957
refactor: 💡 move local type
punkbit Mar 6, 2026
0de665f
refactor: 💡 move local type (missed track file)
punkbit Mar 6, 2026
d010920
refactor: 💡 changeset
punkbit Mar 6, 2026
197bc09
Merge branch 'main' into refactor/modular-file-architecture
punkbit Mar 6, 2026
60e4059
refactor: 💡 move ContextMenu types
punkbit Mar 6, 2026
1a91961
chore: 🤖 remove FlyoutHeaderProps and FlyoutFooterProps are each decl…
punkbit Mar 6, 2026
1a6ed3a
refactor: 💡 Replaced stale types in Flyout.types.ts with the correct …
punkbit Mar 6, 2026
aefe081
fix: 🐛 typo, should be orientation
punkbit Mar 6, 2026
0c9a15c
refactor: 💡 changeset
punkbit Mar 6, 2026
5391578
Merge branch 'refactor/modular-file-architecture' into fix/circular-d…
punkbit Mar 6, 2026
718ea0e
Merge main into fix/circular-dependencies-first-pass
punkbit Mar 6, 2026
fc9b00d
chore: 🤖 update changeset, include what changed
punkbit Mar 6, 2026
a34417d
fix: 🐛 types
punkbit Mar 6, 2026
1de78a1
fix: 🐛 missing exports InitCUIThemeScript and InitCUIThemeScriptProps
punkbit Mar 6, 2026
9fe24a3
fix: 🐛 merge conflicts, update changeset, remove orphans
punkbit Mar 6, 2026
8b0f4f6
fix: 🐛 remove unknown casting in themes in theme.core.ts
punkbit Mar 6, 2026
d52c468
refactor: 💡 theme const and types
punkbit Mar 6, 2026
29eb3ea
chore: 🤖 remove unwanted file
punkbit Mar 6, 2026
3113b1c
fix: 🐛 derived types from THEMES tricky as it can cause circular deps
punkbit Mar 6, 2026
91c5a7a
refactor: 💡 capitalize theme name
punkbit Mar 6, 2026
d6d084b
chore: 🤖 add bug fix in changeset
punkbit Mar 6, 2026
0c5c3e8
chore: 🤖 remove unrelated
punkbit Mar 6, 2026
43f249a
refactor: 💡 import path redundancy
punkbit Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
38 changes: 38 additions & 0 deletions .changeset/fast-drinks-argue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
'@clickhouse/click-ui': minor
---

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.

**What changed?**

The `InitCUIThemeScript` component and `InitCUIThemeScriptProps` type were previously exported via `src/theme/index.ts` (which has been removed). They are now explicitly exported from the main entry point (`src/index.ts`). Consumers using SSR theme injection must update their imports:

```tsx
// Before
import { InitCUIThemeScript } from '@clickhouse/click-ui/theme';

// After
import { InitCUIThemeScript } from '@clickhouse/click-ui';
```


**Additional cleanup:**

Removed orphaned subpath exports for `CrossButton`, `EmptyButton`, and `GridCenter`. These components were moved to `@/components/Common` in a previous refactor but duplicate directories were left behind. They are now exclusively available via the Common module:

```tsx
// Before
import { CrossButton } from '@clickhouse/click-ui/CrossButton';

// After
import { CrossButton } from '@clickhouse/click-ui';
// or for internal use:
import { CrossButton } from '@/components/Common';
```

**Bug fix:**

Fixed a broken type export in `src/components/Common/index.ts` that was referencing a deleted file (`Common.types.ts`). The `TextSize`, `TextWeight`, and `CursorOptions` types are now correctly exported from their respective source files (`Typography` and `Panel`).
79 changes: 40 additions & 39 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { useState, useEffect, ReactNode } from "react";
import type { Preview } from "@storybook/react-vite";
import { Decorator } from "@storybook/react-vite";
import { styled } from "styled-components";
import { themes } from "storybook/theming";
import ClickUIProvider from "../src/theme/ClickUIProvider/ClickUIProvider";
import { useState, useEffect, ReactNode } from 'react';
import type { Preview } from '@storybook/react-vite';
import { Decorator } from '@storybook/react-vite';
import { styled } from 'styled-components';
import { themes } from 'storybook/theming';
import { ClickUIProvider } from '@/providers';

const ThemeBlock = styled.div<{ $left?: boolean; $bfill?: boolean }>(
({ $left, $bfill: fill, theme }) => `
position: absolute;
top: 0.5rem;
left: ${$left || fill ? 0 : "50vw"};
left: ${$left || fill ? 0 : '50vw'};
right: 0;
height: fit-content;
bottom: 0;
Expand All @@ -22,28 +22,26 @@ const ThemeBlock = styled.div<{ $left?: boolean; $bfill?: boolean }>(

export const globalTypes = {
theme: {
name: "Theme",
description: "Global theme for components",
defaultValue: "system",
name: 'Theme',
description: 'Global theme for components',
defaultValue: 'system',
toolbar: {
icon: "circlehollow",
icon: 'circlehollow',
items: [
{ value: "system", icon: "browser", title: "system" },
{ value: "dark", icon: "moon", title: "dark" },
{ value: "light", icon: "sun", title: "light" },
{ value: 'system', icon: 'browser', title: 'system' },
{ value: 'dark', icon: 'moon', title: 'dark' },
{ value: 'light', icon: 'sun', title: 'light' },
],
showName: true,
},
},
};

const getSystemTheme = (): "dark" | "light" => {
if (typeof window !== "undefined" && window.matchMedia) {
return window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light";
const getSystemTheme = (): 'dark' | 'light' => {
if (typeof window !== 'undefined' && window.matchMedia) {
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
return "dark";
return 'dark';
};

interface ThemeWrapperProps {
Expand All @@ -52,24 +50,27 @@ interface ThemeWrapperProps {
}

const ThemeWrapper = ({ themeSelection, children }: ThemeWrapperProps) => {
const [systemTheme, setSystemTheme] = useState<"dark" | "light">(getSystemTheme);
const [systemTheme, setSystemTheme] = useState<'dark' | 'light'>(getSystemTheme);

// Listen for system theme changes
useEffect(() => {
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
const handleChange = () => {
setSystemTheme(mediaQuery.matches ? "dark" : "light");
setSystemTheme(mediaQuery.matches ? 'dark' : 'light');
};
mediaQuery.addEventListener("change", handleChange);
return () => mediaQuery.removeEventListener("change", handleChange);
mediaQuery.addEventListener('change', handleChange);
return () => mediaQuery.removeEventListener('change', handleChange);
}, []);

// Resolve the actual theme: handle "system" and fallback for undefined/null
const theme =
themeSelection === "system" || !themeSelection ? systemTheme : themeSelection;
themeSelection === 'system' || !themeSelection ? systemTheme : themeSelection;

return (
<ClickUIProvider theme={theme} config={{ tooltip: { delayDuration: 0 } }}>
<ClickUIProvider
theme={theme}
config={{ tooltip: { delayDuration: 0 } }}
>
<ThemeBlock $left>{children}</ThemeBlock>
</ClickUIProvider>
);
Expand All @@ -90,22 +91,22 @@ const preview: Preview = {
parameters: {
options: {
storySort: {
method: "alphabetical",
method: 'alphabetical',
order: [
"Introduction",
"Buttons",
"Cards",
"Layout",
"Forms",
"Display",
"Sidebar",
"Typography",
"Colors",
["Title", "Text", "Link"],
'Introduction',
'Buttons',
'Cards',
'Layout',
'Forms',
'Display',
'Sidebar',
'Typography',
'Colors',
['Title', 'Text', 'Link'],
],
},
},
actions: { argTypesRegex: "^on[A-Z].*" },
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
Expand Down
5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,11 @@
"import": "./dist/esm/components/GenericLabel/index.js",
"require": "./dist/cjs/components/GenericLabel/index.cjs"
},
"./GenericMenu": {
"types": "./dist/types/components/GenericMenu/index.d.ts",
"import": "./dist/esm/components/GenericMenu/index.js",
"require": "./dist/cjs/components/GenericMenu/index.cjs"
},
"./Grid": {
"types": "./dist/types/components/Grid/index.d.ts",
"import": "./dist/esm/components/Grid/index.js",
Expand Down
8 changes: 4 additions & 4 deletions src/components/Accordion/Accordion.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { Meta, StoryObj } from '@storybook/react-vite';
import { Panel } from '..';
import { Panel } from '@/components/Panel';
import { Accordion } from '@/components/Accordion';
import { Spacer } from '../Spacer';
import { Text } from '../Typography/Text/Text';
import { Title } from '../Typography/Title/Title';
import { Spacer } from '@/components/Spacer';
import { Text } from '@/components/Typography/Text';
import { Title } from '@/components/Typography/Title';

const meta: Meta<typeof Accordion> = {
component: Accordion,
Expand Down
6 changes: 3 additions & 3 deletions src/components/Accordion/Accordion.types.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as RadixAccordion from '@radix-ui/react-accordion';
import { ReactNode } from 'react';
import { IconName } from '@/components/Icon';
import { IconSize } from '@/types';
import type { AssetSize } from '@/types';
import type { IconName } from '@/components/Icon';

export type Size = 'sm' | 'md' | 'lg';
export type Gap = 'sm' | 'md' | 'lg';
Expand All @@ -18,7 +18,7 @@ export interface AccordionProps
title: ReactNode;
color?: Color;
icon?: IconName;
iconSize?: IconSize;
iconSize?: AssetSize;
gap?: Gap;
children: React.ReactNode;
fillWidth?: boolean;
Expand Down
2 changes: 1 addition & 1 deletion src/components/Alert/Alert.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Icon, IconName } from '@/components/Icon';
import { Icon, type IconName } from '@/components/Icon';
import { useState, useCallback } from 'react';
import { styled } from 'styled-components';
import { AlertProps } from './Alert.types';
Expand Down
2 changes: 1 addition & 1 deletion src/components/Alert/Alert.types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IconName } from '@/components/Icon';
import type { IconName } from '@/components/Icon';
import { ReactNode } from 'react';

type AlertType = 'default' | 'banner';
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Australia.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Australia = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Brazil.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Brazil = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Canada.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Canada = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/European-Union.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const EuropeanUnion = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Germany.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Germany = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Hong-Kong.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const HongKong = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/India.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const India = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Indonesia.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Indonesia = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Ireland.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Ireland = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Israel.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Israel = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Japan.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Japan = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Netherlands.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Netherlands = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Singapore.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Singapore = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/South-Africa.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const SouthAfrica = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/South-Korea.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const SouthKorea = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Sweden.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Sweden = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/Switzerland.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const Switzerland = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/United-Arab-Emirates.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const UnitedArabEmirates = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/United-Kingdom.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';
const UnitedKingdom = (props: SVGAssetProps): React.ReactElement => (
<svg
xmlns="http://www.w3.org/2000/svg"
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/United-States.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { SVGAssetProps } from './system/types';
import type { SVGAssetProps } from '@/types';

const UnitedStates = (props: SVGAssetProps): React.ReactElement => (
<svg
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/system/Flag.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { SVGAttributes } from 'react';
import { useTheme } from 'styled-components';
import { getFallbackThemeName } from '@/utils/theme';
import { getFallbackThemeName } from '@/theme/theme.utils';
import { SvgImageElement } from '@/components/Icon/SvgImageElement';
import { FlagProps } from './types';
import { resolveFlagName } from './retroactiveNames';
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/system/FlagsDark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import United_Arab_Emirates from '../United-Arab-Emirates';
import United_Kingdom from '../United-Kingdom';
import United_States from '../United-States';
import { FlagName } from './types';
import type { SVGAssetProps } from '../../types';
import type { SVGAssetProps } from '@/types';
import type { ComponentType } from 'react';

const FlagsLight: Record<FlagName, ComponentType<SVGAssetProps>> = {
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/Flags/system/FlagsLight.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import United_Arab_Emirates from '../United-Arab-Emirates';
import United_Kingdom from '../United-Kingdom';
import United_States from '../United-States';
import { FlagName } from './types';
import type { SVGAssetProps } from '../../types';
import type { SVGAssetProps } from '@/types';
import type { ComponentType } from 'react';

const FlagsLight: Record<FlagName, ComponentType<SVGAssetProps>> = {
Expand Down
Loading
Loading