Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
76c4b69
feat: new style injector
tenphi Aug 22, 2025
45ae614
feat(injector): improved version of style injector
tenphi Aug 23, 2025
56152f0
feat(injector): migrate to direct styles
tenphi Aug 23, 2025
437aeb9
feat(injector): streamline the injector usage
tenphi Aug 23, 2025
d87e4bf
feat(injector): streamline the injector usage * 2
tenphi Aug 23, 2025
f34b70a
feat(injector): improve style management
tenphi Aug 23, 2025
0f8b8e1
feat(injector): flatten the styles
tenphi Aug 23, 2025
e5fe847
feat(injector): remove style duplicates
tenphi Aug 23, 2025
61b2596
fix(renderStyles): subelement css state compose
tenphi Aug 25, 2025
f0e44c9
fix(renderStyles): custom selector in style functions
tenphi Aug 25, 2025
7ebb502
fix(taty): refactoring and isHidden, isDisabled prop mapping
tenphi Aug 25, 2025
20e40d8
fix(taty): refactoring and isHidden, isDisabled prop mapping * 2
tenphi Aug 25, 2025
bc997e7
fix(injector): global inject support
tenphi Aug 25, 2025
c9d292e
fix(tasty): tests and more
tenphi Aug 25, 2025
a024bbf
fix(injector): lru improvements and complex selector issues
tenphi Aug 25, 2025
61838a8
fix(injector): performance improvements
tenphi Aug 25, 2025
dce74f8
fix(tasty): responsive styles
tenphi Aug 25, 2025
605e299
fix(tasty): responsive styles * 2
tenphi Aug 25, 2025
c86fffb
fix(tasty): responsive styles * 3
tenphi Aug 25, 2025
6c545d5
chore: fix tests
tenphi Aug 25, 2025
2b8ce93
fix(Button): outline style
tenphi Aug 25, 2025
e66ccb8
fix(renderStyles): pseudo-elements case
tenphi Aug 25, 2025
6c09499
fix(MenuItem): prop passing
tenphi Aug 26, 2025
9472143
fix(MenuItem): prop passing * 2
tenphi Aug 26, 2025
606bda6
fix(tasty): optimize state combinator
tenphi Aug 26, 2025
1bf6072
fix(tasty): optimize state combinator * 2
tenphi Aug 26, 2025
14931f4
chore: increase size limit
tenphi Aug 26, 2025
1d6d65b
fix(tasty): responsive styles
tenphi Aug 26, 2025
d64e3af
chore: fix possible error
tenphi Aug 26, 2025
39df19c
chore: update github actions to use corepack
tenphi Aug 26, 2025
a2d3d9b
chore: update github actions to use corepack * 2
tenphi Aug 26, 2025
ec651a6
chore: update github actions to use corepack * 3
tenphi Aug 26, 2025
8f23fb6
fix(tasty): optimize state combinator * 3
tenphi Aug 26, 2025
466982f
chore: increase size limit
tenphi Aug 26, 2025
51eddff
fix(injector): reuse styles from cache
tenphi Aug 27, 2025
4fa3260
feat: add debug tool
tenphi Aug 27, 2025
29bded2
feat(tasty): debug css prettifier
tenphi Aug 27, 2025
11a8463
chore: add changelog
tenphi Aug 27, 2025
a1dda34
feat(tasty): debug css prettifier * 2
tenphi Aug 27, 2025
d236ba7
feat(tasty): debug injection optimized
tenphi Aug 27, 2025
7a4348d
feat(tasty): debug log methods
tenphi Aug 27, 2025
2cd830c
feat(tasty): debug logs improved
tenphi Aug 27, 2025
1713d3f
fix(tasty): style handler queue optimization
tenphi Aug 28, 2025
74b6cbd
fix(tasty): lru for attribute parsing
tenphi Aug 28, 2025
16dc2f5
Merge remote-tracking branch 'origin' into new-style-injector
tenphi Aug 28, 2025
a515b6d
fix(tasty): clean up and rules optimizations
tenphi Aug 28, 2025
1cf4222
fix(tasty): improved rule dedup
tenphi Aug 28, 2025
1fb26f0
fix(tasty): optimize string concatination
tenphi Aug 28, 2025
fc6cc89
refactor(tasty): injectGlobal refactoring
tenphi Aug 28, 2025
ae4b48b
refactor(tasty): optimize zone 1 cases
tenphi Aug 28, 2025
8176aad
fix(tasty): improve color parsing
tenphi Aug 28, 2025
83d5df4
fix(tasty): style normalization
tenphi Aug 28, 2025
553d5d8
fix(tasty): multiple performance improvements
tenphi Aug 28, 2025
0a5b073
fix(tasty): support for #color keys
tenphi Aug 28, 2025
94b144f
chore: update docs
tenphi Aug 28, 2025
edc12df
fix(ItemBase): resize observer
tenphi Aug 28, 2025
8766441
feat(tasty): add keyframes support
tenphi Aug 28, 2025
15d5d8b
chore: remove styled-components
tenphi Aug 28, 2025
682d701
chore: remove styled-components * 2
tenphi Aug 28, 2025
6c34f62
chore: remove styled-components * 3
tenphi Aug 28, 2025
c3b4d8c
fix(tasty): keyframes api
tenphi Aug 28, 2025
5903f4c
chore: update readme
tenphi Aug 28, 2025
ed7d3a4
fix(GlobalStyles): migration to injector
tenphi Aug 28, 2025
d6b3e4b
fix(tasty): increase selector specificity
tenphi Aug 28, 2025
52161f9
Revert "fix(GlobalStyles): migration to injector"
tenphi Aug 28, 2025
9c66fa5
feat(tasty): add createGlobalStyle method
tenphi Aug 28, 2025
e1e98de
fix(HiddenInput): migrate to tasty
tenphi Aug 28, 2025
6534015
chore: increase size limit
tenphi Aug 28, 2025
379ce3d
fix(tasty): keyframes and global styles improvements
tenphi Aug 29, 2025
aa6a2e7
feat(tasty): custom style support in keyframes
tenphi Aug 29, 2025
5a6d441
feat(tasty): add property method to declare css custom properties
tenphi Aug 29, 2025
c0ccbbe
fix(Modal): migrate to tasty
tenphi Aug 29, 2025
24e8952
feat(tasty): css property definition support
tenphi Aug 29, 2025
57a17b7
fix(tasty): improve tastyDebug summary
tenphi Aug 29, 2025
bff9fef
fix: support tastyDebug in storybook
tenphi Aug 29, 2025
12a7062
chore: cleanup history debug
tenphi Aug 29, 2025
d6dc832
chore: remove threshold from storybook
tenphi Aug 29, 2025
97d1016
fix(tasty): cleanup algorithm
tenphi Aug 29, 2025
9ab4922
fix(Action): isDisabled prop passing
tenphi Aug 30, 2025
51f712b
feat(tasty): leaf atrule support
tenphi Aug 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/calm-monkeys-serve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cube-dev/ui-kit": patch
---

Add @property definition support via `property` method.
5 changes: 5 additions & 0 deletions .changeset/clever-feet-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cube-dev/ui-kit": patch
---

Fix MenuItem prop passing.
5 changes: 5 additions & 0 deletions .changeset/sharp-books-lie.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cube-dev/ui-kit": minor
---

A brand new style injector. Drop `styled-components` dependency.
5 changes: 5 additions & 0 deletions .changeset/smart-pumpkins-exist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@cube-dev/ui-kit": patch
---

Add `tastyDebug` tool for debugging.
1 change: 1 addition & 0 deletions .cursor/rules/coding.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ alwaysApply: true
- Do not run tests if you only changed stories or documentation since the last test run.
- If you need to move or rename a file: use command line tools for that.
- If you need to move a part of code from one file to another: First, write the code at the new place, then delete the code in the original place.
- Don't implement backward compatibility unless asked.

# Coding rules

Expand Down
7 changes: 3 additions & 4 deletions .cursor/rules/guidelines.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Package name: `@cube-dev/ui-kit`

All tests: `$ pnpm test`
Specific test: `$ pnpm test -- {TestFileName}`
Update snaphosts: `$ pnpm test -u -- {TestFileName}`

## Build

Expand All @@ -45,7 +46,6 @@ Specific test: `$ pnpm test -- {TestFileName}`
- `src/stories/CreateComponent.docs.mdx` - create components using tasty helper.
- Storybook v8.6
- React and React DOM v18
- `styled-components` v6
- `react-aria` and `react-stately` with the latest versions.
- `tabler/icons-react` - icons.

Expand Down Expand Up @@ -113,7 +113,7 @@ Specific test: `$ pnpm test -- {TestFileName}`
- Sub-elements: Target inner elements using capitalized keys in styles
- Style props: Direct style application without `styles` prop
- CSS custom properties: Use `@token-name` syntax for design tokens
- To declare a CSS animation use `styled-components` and then pass the animation name to the tasty styles.
- To declare a CSS animation use `keyframes` method and then pass the animation name to the tasty styles.

## Export Patterns

Expand Down Expand Up @@ -187,7 +187,6 @@ Specific test: `$ pnpm test -- {TestFileName}`
- `src/stories/CreateComponent.docs.mdx` - create components using tasty helper.
- Storybook v8.6
- React and React DOM v18
- `styled-components` v6
- `react-aria` and `react-stately` with the latest versions.
- `tabler/icons-react` - icons.

Expand Down Expand Up @@ -255,7 +254,7 @@ Specific test: `$ pnpm test -- {TestFileName}`
- Sub-elements: Target inner elements using capitalized keys in styles
- Style props: Direct style application without `styles` prop
- CSS custom properties: Use `@token-name` syntax for design tokens
- To declare a CSS animation use `styled-components` and then pass the animation name to the tasty styles.
- To declare a CSS animation use `keyframes` method and then pass the animation name to the tasty styles.

## Export Patterns

Expand Down
36 changes: 28 additions & 8 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,27 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.14.0
- name: Update Corepack
run: npm i -g corepack@latest

- name: Enable Corepack (pre)
run: corepack enable

- name: Prepare pnpm (pre)
run: corepack prepare [email protected] --activate

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'

- name: Enable Corepack
run: corepack enable

- name: Prepare pnpm
run: corepack prepare [email protected] --activate

- name: Install Dependencies
run: pnpm install

Expand Down Expand Up @@ -63,10 +73,14 @@ jobs:
with:
fetch-depth: 0

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.14.0
- name: Update Corepack
run: npm i -g corepack@latest

- name: Enable Corepack (pre)
run: corepack enable

- name: Prepare pnpm (pre)
run: corepack prepare [email protected] --activate

- uses: actions/cache@v4
name: Download storybook cache
Expand All @@ -82,6 +96,12 @@ jobs:
node-version-file: '.nvmrc'
cache: 'pnpm'

- name: Enable Corepack
run: corepack enable

- name: Prepare pnpm
run: corepack prepare [email protected] --activate

- name: Install dependencies
run: pnpm install

Expand Down
54 changes: 42 additions & 12 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,26 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.14.0
- name: Update Corepack
run: npm i -g corepack@latest

- name: Enable Corepack (pre)
run: corepack enable

- name: Prepare pnpm (pre)
run: corepack prepare [email protected] --activate

- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'

- name: Enable Corepack
run: corepack enable

- name: Prepare pnpm
run: corepack prepare [email protected] --activate

- name: Install dependencies
run: pnpm install

Expand Down Expand Up @@ -81,10 +91,14 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.14.0
- name: Update Corepack
run: npm i -g corepack@latest

- name: Enable Corepack (pre)
run: corepack enable

- name: Prepare pnpm (pre)
run: corepack prepare [email protected] --activate

- uses: actions/cache@v4
name: Download eslint cache
Expand All @@ -98,6 +112,12 @@ jobs:
node-version-file: '.nvmrc'
cache: 'pnpm'

- name: Enable Corepack
run: corepack enable

- name: Prepare pnpm
run: corepack prepare [email protected] --activate

- name: Install dependencies
run: pnpm install

Expand All @@ -121,10 +141,14 @@ jobs:
with:
fetch-depth: 0

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.14.0
- name: Update Corepack
run: npm i -g corepack@latest

- name: Enable Corepack (pre)
run: corepack enable

- name: Prepare pnpm (pre)
run: corepack prepare [email protected] --activate

- uses: actions/cache@v4
name: Download storybook cache
Expand All @@ -140,6 +164,12 @@ jobs:
node-version-file: '.nvmrc'
cache: 'pnpm'

- name: Enable Corepack
run: corepack enable

- name: Prepare pnpm
run: corepack prepare [email protected] --activate

- name: Install dependencies
run: pnpm install

Expand Down
18 changes: 14 additions & 4 deletions .github/workflows/size-limit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,26 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.14.0
- name: Update Corepack
run: npm i -g corepack@latest

- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'

- name: Enable Corepack (pre)
run: corepack enable

- name: Prepare pnpm (pre)
run: corepack prepare [email protected] --activate

- name: Enable Corepack
run: corepack enable

- name: Prepare pnpm
run: corepack prepare [email protected] --activate

- name: Install dependencies
run: pnpm install

Expand Down
6 changes: 3 additions & 3 deletions .size-limit.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,20 @@ module.exports = [
}),
);
},
limit: '295kB',
limit: '305kB',
},
{
name: 'Tree shaking (just a Button)',
path: './dist/es/index.js',
webpack: true,
import: '{ Button }',
limit: '26 kB',
limit: '32 kB',
},
{
name: 'Tree shaking (just an Icon)',
path: './dist/es/index.js',
webpack: true,
import: '{ AiIcon }',
limit: '13 kB',
limit: '19 kB',
},
];
11 changes: 11 additions & 0 deletions .storybook/preview.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@ import { Root } from '../src';

configure({ testIdAttribute: 'data-qa', asyncUtilTimeout: 10000 });

// Load tasty debug utilities in local Storybook only (exclude Chromatic)
if (!isChromatic() && import.meta.env.DEV) {
import('../src/tasty/debug').then(({ installGlobalDebug }) => {
try {
installGlobalDebug({ force: true });
} catch (e) {
console.warn('tastyDebug installation failed:', e);
}
});
}

if (isChromatic()) {
// disabling transitions
config.disabled = true;
Expand Down
7 changes: 6 additions & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,12 @@ export default [

// Test files override
{
files: ['**/*.test.ts', '**/*.test.tsx'],
files: ['**/*.test.ts', '**/*.test.tsx', '**/test/**/*.ts'],
languageOptions: {
globals: {
...globals.jest,
},
},
rules: {
'no-unused-vars': 'off',
'react/prop-types': 'off',
Expand Down
Loading
Loading