bernova 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +71 -101
  2. package/README.md +129 -12
  3. package/package.json +7 -2
package/CHANGELOG.md CHANGED
@@ -1,165 +1,135 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to Bernova will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
3
+ ## 1.4.0
7
4
 
8
- ## [1.3.2] - 2926-01-28
5
+ ### Minor Changes
9
6
 
10
- ### Patch
7
+ - Add documentation about changeset and automations workflows
8
+ - Add documentation about changeset and automations workflows
11
9
 
12
- - **Fixed js modules compability**: Fixed the compability when the js modules are transpiled with ts-node
13
- - **Deleted multiple ora instances**: Delete the multiple ora instances to prevent failures
10
+ All notable changes to Bernova will be documented in this file.
14
11
 
15
- ## [1.3.1] - 2026-01-21
12
+ The format uses [Changesets](https://github.com/changesets/changesets) for automated version management and changelog generation.
16
13
 
17
- ### Patch
14
+ ## 1.3.2
18
15
 
19
- - **prevent minify provider**: Prevent minify providerTemplate.js file
16
+ ### Patch Changes
20
17
 
21
- ## [1.3.0] - 2026-01-21
18
+ - Fixed js modules compability when transpiled with ts-node
19
+ - Deleted multiple ora instances to prevent failures
22
20
 
23
- ### New Features
21
+ ## 1.3.1
24
22
 
25
- - **Added --embed-css flag**: Added the function for embedded styles.
23
+ ### Patch Changes
26
24
 
27
- ## [1.2.2] - 2026-01-16
25
+ - Prevent minify providerTemplate.js file
28
26
 
29
- ### Fixed
27
+ ## 1.3.0
30
28
 
31
- - **Fixed the css generated into js modules folder**: Prevent the copy of the css into js modules folders
32
- - **Fixed the css minified name**: Fixed the minified css name
29
+ ### Minor Changes
33
30
 
34
- ## [1.2.1] - 2026-01-15
31
+ - Added --embed-css flag for embedded styles functionality
35
32
 
36
- ### Fixed
33
+ ## 1.2.2
37
34
 
38
- - **Fixed the dependencies**: Fixed the package.json dependencies types
39
- - **Fixed the css custom output dir**: Fixed the custom css output dir
35
+ ### Patch Changes
40
36
 
41
- ## [1.2.0] - 2026-01-14
37
+ - Fixed the css generated into js modules folder
38
+ - Fixed the css minified name
42
39
 
43
- ### New Features
40
+ ## 1.2.1
44
41
 
45
- - **Added new bv-build cli flags**: Added flags to overwrite baseOutDir, rootDir, preventMoveJS, preventMoveDTS and set preventProcessJS
42
+ ### Patch Changes
46
43
 
47
- ### Fixed
44
+ - Fixed the package.json dependencies types
45
+ - Fixed the css custom output dir
48
46
 
49
- - **Prevent minify declaration files**: Prevent minify with terser the typescript declaration files
47
+ ## 1.2.0
50
48
 
51
- ### Documentation
49
+ ### Minor Changes
52
50
 
53
- - **Added the new flags documentation**: Added the documentation about the new flags cases
51
+ - Added new bv-build cli flags: baseOutDir, rootDir, preventMoveJS, preventMoveDTS and preventProcessJS
54
52
 
55
- ## [1.1.0] - 2026-01-13
53
+ ### Patch Changes
56
54
 
57
- ### New Features
55
+ - Prevent minify declaration files with terser
58
56
 
59
- - **Added cli bv-build flags**: Added flags to overwrite css, tools and provider customOutDirs
57
+ ## 1.1.0
60
58
 
61
- ### Documentation
59
+ ### Minor Changes
62
60
 
63
- - **Added documentation for cli flags**: Added documentation about the flags uses cases
61
+ - Added cli bv-build flags to overwrite css, tools and provider customOutDirs
64
62
 
65
- ### Fixed
63
+ ### Patch Changes
66
64
 
67
- - **Prevent transpile declaration files**: Added logic to prevent process typescript declaration files
65
+ - Prevent transpile declaration files
68
66
 
69
- ## [1.0.1] - 2026-01-12
67
+ ## 1.0.1
70
68
 
71
- ### Fixed
69
+ ### Patch Changes
72
70
 
73
- - **Semantic problem solved**: change target for targets
71
+ - Semantic problem solved: change target for targets
72
+ - Added the bernova build script example
73
+ - Added the instalation examples with npm and yarn
74
74
 
75
- ### Documentatation
75
+ ## 1.0.0
76
76
 
77
- - **Added the bernova build script example**: Added the bv-build example.
78
- - **Added the instalation examples with anothers packages manager**: Added examples for `'npm'` and `'yarn`
77
+ ### Major Changes
79
78
 
80
- ## [1.0.0] - 2026-01-08
79
+ - **Initial stable release** - Production ready CSS-in-JS framework
81
80
 
82
- ### New Features
81
+ ### Minor Changes
83
82
 
84
- - **Improve library styles and tools build/dist**: Complete the buildStyle.js cli function.
85
- - **Improve provider router hanler**: Improve the Bernova provider for handler relative doc routes.
83
+ - Improve library styles and tools build/dist
84
+ - Improve provider router handler for relative doc routes
86
85
 
87
- ### Fixed
86
+ ### Patch Changes
88
87
 
89
- - **Fixed the doc routes**: Change the absolute routes for relative routes into provides's stats.
90
- - **Fixed Error in partial transpilation**: Fixed the function for the flags --foundationsOnly and --componentsOnly.
88
+ - Fixed the doc routes: Change absolute routes for relative routes
89
+ - Fixed Error in partial transpilation for --foundationsOnly and --componentsOnly flags
91
90
 
92
- ## [0.3.0] - 2026-01-01
91
+ ## 0.3.0
93
92
 
94
- ### New Features
93
+ ### Minor Changes
95
94
 
96
95
  - **Modern Build System**: Migrated to Vite 7 with TypeScript configuration for improved build performance
97
96
  - **Dual Package Support**: Added ESM (`.mjs`) and CommonJS (`.cjs`) support for better compatibility across different module systems
98
- - **Custom Build Plugins**: Implemented 4 specialized Vite plugins:
99
- - `copyCSSPlugin`: Minifies and copies CSS files
100
- - `copyCLIBinariesPlugin`: Preserves CLI executables with proper shebangs
101
- - `copySourcePlugin`: Minifies source files with aggressive optimization
102
- - `removeTestFilesPlugin`: Ensures test files are excluded from distribution
103
-
104
- ### 🚀 Performance Improvements
105
-
97
+ - **Custom Build Plugins**: Implemented 4 specialized Vite plugins (copyCSSPlugin, copyCLIBinariesPlugin, copySourcePlugin, removeTestFilesPlugin)
106
98
  - **Ultra-optimized Bundle**: Reduced package size from 56.4 KB to 41.4 KB (27% reduction)
107
99
  - **Aggressive Minification**: Implemented Terser with 3-pass optimization removing all comments
108
100
  - **Tree-shaking**: Enhanced dead code elimination for smaller bundles
109
- - **Zero JSDoc in Distribution**: Removed all TSDoc comments as they're unnecessary for CLI tools
110
-
111
- ### 📚 Documentation
112
-
113
- - **Professional README**: Added comprehensive badges (npm version, downloads, license, coverage, PRs welcome)
114
- - **Package Distribution**: Created `.npmignore` to exclude unnecessary files from npm package
115
- - **Modern Package Exports**: Updated `package.json` with conditional exports for better module resolution
116
-
117
- ### 🔧 Infrastructure
118
-
119
- - **TypeScript Build Configuration**: Separated development and production TypeScript configs (`tsconfig.build.json`)
120
- - **Node.js Compatibility**: Maintained Node.js >=20.0.0 target with ES2020 output
121
- - **Build Validation**: Enhanced CI/CD with proper build verification steps
122
101
 
123
- ## [0.1.2] - 2025-10-28
102
+ ### Patch Changes
124
103
 
125
- ### 🔧 Changed
104
+ - Professional README with comprehensive badges
105
+ - Created `.npmignore` to exclude unnecessary files from npm package
106
+ - Updated `package.json` with conditional exports for better module resolution
107
+ - Separated development and production TypeScript configs (`tsconfig.build.json`)
108
+ - Enhanced CI/CD with proper build verification steps
126
109
 
127
- - **License update**: Changed project license from ISC to Apache-2.0 for better open source compliance
128
- - **Package management**: Improved gitignore configuration to exclude package-lock.json for better npm/yarn compatibility
110
+ ## 0.1.2
129
111
 
130
- ### 🗑️ Removed
112
+ ### Patch Changes
131
113
 
114
+ - Changed project license from ISC to Apache-2.0 for better open source compliance
115
+ - Improved gitignore configuration to exclude package-lock.json
132
116
  - Removed package-lock.json file from version control to avoid package manager conflicts
133
117
 
134
- ## [0.1.1] - 2025-10-22
135
-
136
- ### 🐛 Fixed
137
-
138
- - **Build system**: Resolved NPM versioning and authentication issues
139
- - **Package metadata**: Improved package.json with complete metadata for open source distribution
140
- - **Workflow automation**: Fixed auto-publish workflow build validation and authentication verification
141
-
142
- ### 🔧 Changed
143
-
144
- - **Node.js compatibility**: Updated minimum Node.js version requirements
145
- - **Build optimization**: Enhanced build process for better distribution
146
-
147
- ## [0.1.0] - 2025-10-21
148
-
149
- All notable changes to Bernova will be documented in this file.
150
-
151
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
152
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
118
+ ## 0.1.1
153
119
 
154
- ## [0.1.2] - 2025-10-28
120
+ ### Patch Changes
155
121
 
156
- ## [0.1.1] - 2025-10-21
122
+ - Resolved NPM versioning and authentication issues
123
+ - Improved package.json with complete metadata for open source distribution
124
+ - Fixed auto-publish workflow build validation and authentication verification
125
+ - Updated minimum Node.js version requirements
126
+ - Enhanced build process for better distribution
157
127
 
158
- ## [0.1.0] - 2025-10-21
128
+ ## 0.1.0
159
129
 
160
- ### 🎉 Initial Release
130
+ ### Minor Changes
161
131
 
162
- Bernova is a powerful CSS-in-JS framework that allows you to write CSS with JavaScript syntax, providing a comprehensive solution for modern web styling.
132
+ - **Initial Release** - Bernova CSS-in-JS framework
163
133
 
164
134
  ### ✨ Core Features
165
135
 
package/README.md CHANGED
@@ -52,6 +52,11 @@
52
52
  - [Provider](#library-provider)
53
53
  - [Foreign CSS documents](#foreign-css-documents)
54
54
  - [Compiler Options](#compiler-options)
55
+ - [Contributing](#contributing)
56
+ - [Branch Naming](#branch-naming-required)
57
+ - [PR Title Format](#pr-title-format-required)
58
+ - [Commit Guidelines](#commit-message-guidelines)
59
+ - [Automated Workflow](#automated-workflow)
55
60
 
56
61
  ## Installation
57
62
 
@@ -651,16 +656,16 @@ const BUTTON = {
651
656
  color: 'white',
652
657
  $pseudoClasses: {
653
658
  active: {
654
- background_color: '#ac0202'
659
+ background_color: '#ac0202',
655
660
  },
656
661
  hover: {
657
662
  background_color: '#e94141',
658
663
  },
659
664
  focus: {
660
665
  border_color: '#0000ff',
661
- }
662
- }
663
- }
666
+ },
667
+ },
668
+ };
664
669
  ```
665
670
 
666
671
  The result of this when transpiling is:
@@ -1479,8 +1484,15 @@ table {
1479
1484
  }
1480
1485
  @supports (font: system-ui) {
1481
1486
  html {
1482
- font: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell,
1483
- Noto Sans, sans-serif;
1487
+ font:
1488
+ system-ui,
1489
+ -apple-system,
1490
+ Segoe UI,
1491
+ Roboto,
1492
+ Ubuntu,
1493
+ Cantarell,
1494
+ Noto Sans,
1495
+ sans-serif;
1484
1496
  }
1485
1497
  }
1486
1498
  ```
@@ -1845,18 +1857,17 @@ When publishing our projects, depending of the packager configuration, it is nec
1845
1857
  - **preventMoveDTS**: When set to `true`, TypeScript declaration files (.d.ts) will not be copied to the output directory. Set this to `true` if you're handling type definitions through another process.
1846
1858
 
1847
1859
  - **types**: An array that specifies the module formats to generate. Accepts `"cjs"` (Commonjs) and/or `"esm"` (ES Modules). For each type specified, Bernova will create a separate folder and transpile the code accordingly.
1848
-
1849
1860
  - `"cjs"`: Generate CommonJS modules for node.js compability.
1850
1861
  - `"esm"`: Generate ES Modules for modern JavaScript environments
1851
1862
 
1852
1863
  - **customOutDirs**: An optional object that allows you to specify custom output directories for different file types, overriding the default structure:
1853
- - `"css"`: Custom output path for CSS files
1854
- - `"provider"`: Custom output path for provider file
1855
- - `"tools"`: Custom output path for tools files (cssVars, cssClasses, etc)
1864
+ - `"css"`: Custom output path for CSS files
1865
+ - `"provider"`: Custom output path for provider file
1866
+ - `"tools"`: Custom output path for tools files (cssVars, cssClasses, etc)
1856
1867
 
1857
1868
  - **embedCss**: When set to `'true'`, instead of generating a static CSS file, the styles generated by Bernova will be embedded.
1858
1869
 
1859
- ### Overwrite or set a single customOutDirs
1870
+ ### Overwrite or set a single customOutDirs
1860
1871
 
1861
1872
  You may need to run the bv-build script in multiple outputs, and the bernova.config.json file configuration only supports one path. In these cases, you can use flags to specify the output path for the specific case.
1862
1873
 
@@ -1901,4 +1912,110 @@ npx bv-build --prevent-process-js
1901
1912
 
1902
1913
  # Embed styles
1903
1914
  npx bv-build --embed-css
1904
- ```
1915
+ ```
1916
+
1917
+ ---
1918
+
1919
+ ## Contributing
1920
+
1921
+ We welcome contributions to **Bernova**! This project uses **[Changesets](https://github.com/changesets/changesets)** for automated version management and publishing.
1922
+
1923
+ ### Quick Start for Contributors
1924
+
1925
+ 1. **Fork the repository** on GitHub
1926
+ 2. **Clone your fork** locally
1927
+ 3. **Create a branch** following our naming conventions
1928
+ 4. **Make your changes** with good commit messages
1929
+ 5. **Push to your fork** and open a Pull Request
1930
+
1931
+ ### Branch Naming (Required)
1932
+
1933
+ Your branch name determines the version bump type:
1934
+
1935
+ | Branch Pattern | Version Bump | Example |
1936
+ | --------------------------------------- | ------------------------- | -------------------- |
1937
+ | `feat/` or `feature/` | **MINOR** (1.3.2 → 1.4.0) | `feat/grid-system` |
1938
+ | `fix/` or `bugfix/` | **PATCH** (1.3.2 → 1.3.3) | `fix/button-styling` |
1939
+ | `break/` or `breaking/` | **MAJOR** (1.3.2 → 2.0.0) | `break/api-redesign` |
1940
+ | `docs/`, `chore/`, `refactor/`, `test/` | **PATCH** | `docs/update-readme` |
1941
+
1942
+ ### PR Title Format (Required)
1943
+
1944
+ Follow [Conventional Commits](https://www.conventionalcommits.org/):
1945
+
1946
+ ```
1947
+ <type>: <description>
1948
+ ```
1949
+
1950
+ **Examples:**
1951
+
1952
+ - ✅ `feat: add responsive grid system`
1953
+ - ✅ `fix: resolve button hover state issue`
1954
+ - ✅ `docs: update installation guide`
1955
+ - ✅ `feat(css): add spacing utility classes`
1956
+ - ✅ `fix(build): resolve minification error`
1957
+
1958
+ **Breaking changes:**
1959
+
1960
+ ```
1961
+ <type>!: <description>
1962
+ ```
1963
+
1964
+ - ✅ `feat!: redesign CSS variable naming`
1965
+ - ✅ `refactor(api)!: change provider interface`
1966
+
1967
+ ### Commit Message Guidelines
1968
+
1969
+ While branch names determine versioning, **good commit messages are essential** for code review and maintainability:
1970
+
1971
+ ```bash
1972
+ # Good commit messages
1973
+ git commit -m "feat(css): add margin utility classes"
1974
+ git commit -m "fix(build): resolve TypeScript compilation error"
1975
+ git commit -m "docs(readme): add usage examples"
1976
+ git commit -m "refactor(core): simplify style generation logic"
1977
+ git commit -m "test(unit): add tests for CSS parser"
1978
+ ```
1979
+
1980
+ ### Automated Workflow
1981
+
1982
+ When you open a PR:
1983
+
1984
+ 1. **Automated validation** checks branch name, PR title, tests, and code quality
1985
+ 2. **Bot comments** with validation results and expected version bump
1986
+ 3. **On merge**, changeset is auto-generated
1987
+ 4. **Version is bumped** automatically
1988
+ 5. **CHANGELOG is updated**
1989
+ 6. **Package is built and published** to NPM
1990
+ 7. **GitHub Release is created**
1991
+ 8. **PR comment** confirms the published version
1992
+
1993
+ **No manual changeset needed - it's all automatic!** 🚀
1994
+
1995
+ ### PR Validation Checks
1996
+
1997
+ ✅ Branch naming follows conventions
1998
+ ✅ PR title follows conventional commits
1999
+ ✅ TypeScript type checking passes
2000
+ ✅ All tests pass
2001
+ ✅ No `console.log` in production code
2002
+ ✅ TODOs reference GitHub issues
2003
+ ✅ Documentation updated for new features
2004
+
2005
+ For detailed contributing guidelines, see [CONTRIBUTING.md](./CONTRIBUTING.md).
2006
+
2007
+ ---
2008
+
2009
+ ## License
2010
+
2011
+ This project is licensed under the Apache-2.0 License - see the [LICENSE](./LICENSE) file for details.
2012
+
2013
+ ## Links
2014
+
2015
+ - [NPM Package](https://www.npmjs.com/package/bernova)
2016
+ - [GitHub Repository](https://github.com/kubit-ui/bernova)
2017
+ - [Issues](https://github.com/kubit-ui/bernova/issues)
2018
+ - [Contributing Guidelines](./CONTRIBUTING.md)
2019
+ - [Code of Conduct](./CODE_OF_CONDUCT.md)
2020
+ - [Security Policy](./SECURITY.md)
2021
+ - [Changelog](./CHANGELOG.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bernova",
3
- "version": "1.3.2",
3
+ "version": "1.4.0",
4
4
  "description": "The best way to write CSS with Javascript syntax",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -86,6 +86,7 @@
86
86
  },
87
87
  "devDependencies": {
88
88
  "@babel/cli": "^7.28.3",
89
+ "@changesets/cli": "^2.29.8",
89
90
  "@vitejs/plugin-legacy": "^6.1.1",
90
91
  "@vitest/coverage-v8": "3.2.4",
91
92
  "@vitest/ui": "^3.2.4",
@@ -122,6 +123,10 @@
122
123
  "test:coverage": "vitest run --coverage",
123
124
  "test:ci": "vitest --coverage.enabled=true --silent --run ",
124
125
  "clean": "rm -rf dist types",
125
- "postinstall": "echo 'postinstall'"
126
+ "postinstall": "echo 'postinstall'",
127
+ "changeset": "changeset",
128
+ "changeset:version": "changeset version",
129
+ "changeset:publish": "changeset publish",
130
+ "changeset:status": "changeset status --verbose"
126
131
  }
127
132
  }