reactive-bulma 1.18.0 → 1.20.0

Sign up to get free protection for your applications and to get access to all the features.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 Nicolás Omar González Passerino
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Nicolás Omar González Passerino
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,193 +1,197 @@
1
- <p align="center">
2
- <a href="https://reactivebulma.netlify.app">
3
- <img width="75" src="https://cdn.svgporn.com/logos/react.svg">
4
- <img width="50" src="https://cdn.svgporn.com/logos/bulma.svg">
5
- </a>
6
- </p>
7
-
8
- <h1 align="center">Reactive Bulma</h1>
9
-
10
- <div align="center">
11
-
12
- Component library based on React, Bulma, Typescript and Rollup
13
-
14
- <div align="left">
15
-
16
- ## Table of contents
17
-
18
- - [Status](#status)
19
- - [Dependencies](#dependencies)
20
- - [Quick start](#quick-start)
21
- - [Folder structure](#folder-structure)
22
- - [Documentation](#documentation)
23
- - [Usage](#usage)
24
- - [Versioning](#versioning)
25
- - [Roadmap](#roadmap)
26
- - [Changelog](#changelog)
27
- - [Credit](#credit)
28
- - [License](#license)
29
-
30
- ## Status
31
-
32
- ![Npm Version][badge-npm-version]
33
- ![Npm Bundle Size][badge-npm-size]
34
- [![Npm Downloads][badge-npm-downloads]][link-npm-downloads]
35
- [![Netlify Status][badge-netlify-status]][link-netlify-status]
36
- [![Code Coverage][badge-code-coverage]][link-code-coverage]
37
- [![Quality Gate Status][badge-soundcloud-quality]][link-soundcloud-status]
38
- [![Maintainability Rating][badge-soundcloud-maintanibility]][link-soundcloud-status]
39
- [![Security Rating][badge-soundcloud-security]][link-soundcloud-status]
40
- [![Technical Debt][badge-soundcloud-tech-debt]][link-soundcloud-status]
41
- [![Known Vulnerabilities][badge-snyk-status]][link-snyk-status]
42
- ![GitHub Repo stars][badge-github-repo-stars]
43
- ![GitHub commit activity][badge-github-commits]
44
- ![GitHub last commit][badge-github-last-commit]
45
- [![Semantic Commits][badge-semantic-commits]][link-semantic-commits]
46
-
47
- [badge-npm-version]: https://img.shields.io/github/package-json/v/nicolasomar/reactive-bulma?label=npm%20version&logo=npm&labelColor=535353&color=success&style=flat
48
- [badge-npm-size]: https://img.shields.io/bundlephobia/min/reactive-bulma?label=bundle%20size&labelColor=535353&logo=npm&style=flat
49
- [badge-npm-downloads]: https://img.shields.io/npm/dm/reactive-bulma?label=downloads&labelColor=535353&style=flat&logo=npm
50
- [link-npm-downloads]: https://www.npmjs.com/package/reactive-bulma?activeTab=versions
51
- [badge-netlify-status]: https://api.netlify.com/api/v1/badges/3101f2b5-0e28-4734-b749-ebb0e3e413c6/deploy-status
52
- [link-netlify-status]: https://app.netlify.com/sites/reactivebulma/deploys
53
- [badge-code-coverage]: https://img.shields.io/codecov/c/github/nicolasomar/reactive-bulma?label=coverage&labelColor=535353&logo=codecov&style=flat
54
- [link-code-coverage]: https://app.codecov.io/gh/NicolasOmar/reactive-bulma
55
- [badge-soundcloud-quality]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=alert_status
56
- [badge-soundcloud-maintanibility]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=sqale_rating
57
- [badge-soundcloud-security]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=security_rating
58
- [badge-soundcloud-tech-debt]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=sqale_index
59
- [link-soundcloud-status]: https://sonarcloud.io/summary/new_code?id=NicolasOmar_reactive-bulma
60
- [badge-snyk-status]: https://img.shields.io/snyk/vulnerabilities/github/nicolasomar/reactive-bulma?logo=snyk
61
- [link-snyk-status]: https://snyk.io/test/github/nicolasomar/reactive-bulma
62
- [badge-github-repo-stars]: https://img.shields.io/github/stars/nicolasomar/reactive-bulma?label=stars&logo=github&labelColor=535353&style=flat
63
- [badge-github-commits]: https://img.shields.io/github/commit-activity/m/nicolasomar/reactive-bulma?logo=github
64
- [badge-github-last-commit]: https://img.shields.io/github/last-commit/nicolasomar/reactive-bulma?logo=github
65
- [badge-semantic-commits]: https://img.shields.io/badge/using-conventional%20commits-e10079?logo=conventional-commits
66
- [link-semantic-commits]: https://github.com/semantic-release/semantic-release
67
-
68
- ## Dependencies
69
-
70
- ![react dependency][badge-dependency-react]
71
- ![bulma dependency][badge-dependency-bulma]
72
- ![material design dependency][badge-dependency-material-design]
73
- ![typescript dependency][badge-dependency-typescript]
74
- ![rollup dependency][badge-dependency-rollup]
75
- ![storybook dependency][badge-dependency-storybook]
76
- ![semantic release dependency][badge-dependency-semantic-release]
77
- ![babel dependency][badge-dependency-babel]
78
- ![jest dependency][badge-dependency-jest]
79
- ![react testing library dependency][badge-dependency-react-testing]
80
- ![prettier dependency][badge-dependency-prettier]
81
- ![eslint dependency][badge-dependency-eslint]
82
- ![husky dependency][badge-dependency-husky]
83
-
84
- [badge-dependency-react]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/react/main?logo=react
85
- [badge-dependency-bulma]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/bulma/main?logo=bulma
86
- [badge-dependency-material-design]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/@mdi/font/main?logo=materialdesignicons
87
- [badge-dependency-typescript]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/typescript/main?logo=typescript
88
- [badge-dependency-rollup]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/rollup/main?logo=rollup.js
89
- [badge-dependency-storybook]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/storybook/main?logo=storybook
90
- [badge-dependency-semantic-release]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/semantic-release/main?logo=semantic-release
91
- [badge-dependency-babel]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/@babel/core/main?logo=babel
92
- [badge-dependency-jest]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/jest/main?logo=jest
93
- [badge-dependency-react-testing]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/@testing-library/react/main?logo=testing-library
94
- [badge-dependency-prettier]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/prettier/main?logo=prettier
95
- [badge-dependency-eslint]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/eslint/main?logo=eslint
96
- [badge-dependency-husky]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/husky/main?logo=husky
97
-
98
- ## Quick start
99
-
100
- Several quick start options are available:
101
-
102
- - Clone the repo: `git clone https://github.com/NicolasOmar/reactive-bulma.git`
103
- - Install with [npm](https://www.npmjs.com/package/reactive-bulma): `npm install reactive-bulma@latest`
104
- - Before cloning this repo, I recommend installing [Node](https://nodejs.org/en/download/) `>=18` to install packages.
105
-
106
- ## Folder structure
107
-
108
- In case you have cloned the repo, it will show you the following folders:
109
- - `.github:` [Github Actions](https://github.com/features/actions/) files used to run post-merge.commits like unit test coverage collection.
110
- - `.husky:` Dedicated to [Husky](https://typicode.github.io/husky/) configuration files.
111
- - `.storybook:` Dedicated to [Storybook](https://storybook.js.org/) configuration files.
112
- - `src:`
113
- - `components:` Location of all used components, using [Atomic Design hierarchy structure](https://atomicdesign.bradfrost.com/chapter-2/)
114
- - `atoms` (from `v1.0.0`).
115
- - `molecules` (from `v2.0.0`).
116
- - `organisms` (from `v3.0.0`).
117
-
118
- ## Documentation
119
-
120
- Reactive bulma's documentation, included in this repo in the root directory, is built with [Storybook](https://storybook.js.org/) and publicly hosted on `Netlify` at <https://reactivebulma.netlify.app/>. The docs may also be run locally.
121
-
122
- ### Running documentation locally
123
- - Go to `reactive-bulma` folder (where you cloned the repo before).
124
- - Run `npm install` to install the Node.js dependencies, including Storybook (the site builder).
125
- - Run `npm start`.
126
- - Wait until a new tab opens with url <http://localhost:6006/> in your browser.
127
- - In case you want to initiate it on the background, you can run `npm run start:cli`.
128
-
129
- Learn more about using `Storybook` by reading its [documentation](https://storybook.js.org/docs/react/get-started/install).
130
-
131
- ## Usage
132
- ```jsx
133
- import React from 'react'
134
- import { Button } from 'reactive-bulma'
135
-
136
- const App = () => (
137
- <Button text="This is a test" />
138
- );
139
- ```
140
- To see all component's variants and its code snippets, go to [Documentation](#documentation) section
141
-
142
- ## Versioning
143
-
144
- After investigating [semantic-release documentation](https://semantic-release.gitbook.io/semantic-release/) (reffer to [#3](https://github.com/NicolasOmar/reactive-bulma/issues/3)) and having a problematic implementation, I decided to change version meaning for this project with the following:
145
- - Major versions (`1.0.0`, `2.0.0` and beyond) will reffer to milestones/version achievement.
146
- - Minor versions (`1.1.0`, `1.2.0` and so on) will reffer to branch/story completition.
147
- - Patch versions (`1.0.1`, `1.0.2` and so on) will reffer to bugfixes only.
148
-
149
- In case you are interested in check current project's status, you can go to [Roadmap](#roadmap) section.
150
-
151
- ### Branching
152
-
153
- Giving the mentioned release logic, `main` is the only static branch, and each developed feature or fix will have an unique branch with its PR and a merge commit following [semantic versioning](https://semver.org/) and [semantic commits](https://github.com/semantic-release/semantic-release#commit-message-format) specifications.
154
-
155
- ## Roadmap
156
-
157
- Having in mind the [versioning section](#versioning), repo's status in a glance can be observed in this table.
158
-
159
- | Version | Progress | Open issues | Closed issues
160
- | :---: | :---: | :---: | :---: |
161
- | `v1.0.0` | ![v1.0.0, progress][badge-progress-100] | ![v1.0.0, open][badge-issues-open-100] | ![v1.0.0, closed][badge-issues-closed-100] |
162
- | `v2.0.0` | ![v2.0.0, progress][badge-progress-200] | ![v2.0.0, open][badge-issues-open-200] | ![v2.0.0, closed][badge-issues-closed-200] |
163
- | `v3.0.0` | ![v3.0.0, progress][badge-progress-300] | ![v3.0.0, open][badge-issues-open-300] | ![v3.0.0, closed][badge-issues-closed-300] |
164
- | `v4.0.0` | ![v4.0.0, progress][badge-progress-400] | ![v4.0.0, open][badge-issues-open-400] | ![v4.0.0, closed][badge-issues-closed-400] |
165
-
166
- [badge-progress-100]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/1?label=%20&style=flat&color=informational
167
- [badge-issues-open-100]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/1?label=%20&style=flat&color=orange
168
- [badge-issues-closed-100]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/1?label=%20&style=flat&color=success
169
- [badge-progress-200]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/2?label=%20&style=flat&color=informational
170
- [badge-issues-open-200]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/2?label=%20&style=flat&color=orange
171
- [badge-issues-closed-200]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/2?label=%20&style=flat&color=success
172
- [badge-progress-300]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/3?label=%20&style=flat&color=informational
173
- [badge-issues-open-300]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/3?label=%20&style=flat&color=orange
174
- [badge-issues-closed-300]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/3?label=%20&style=flat&color=success
175
- [badge-progress-400]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/4?label=%20&style=flat&color=informational
176
- [badge-issues-open-400]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/4?label=%20&style=flat&color=orange
177
- [badge-issues-closed-400]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/4?label=%20&style=flat&color=success
178
-
179
- In case you want the short-term status, go to the [project board](https://github.com/users/NicolasOmar/projects/3) (powered by `GitHub Projects`).
180
-
181
- In case you want the detailed list of current and future features, go to the [roadmap document](https://docs.google.com/document/d/1kWX-dDTD-cQUeB_Vbu0K6xRvtHaSA38h76yQnhiCe9U).
182
-
183
- ## Changelog
184
-
185
- The [changelog](https://github.com/NicolasOmar/reactive-bulma/blob/main/CHANGELOG.md) (powered by `semantic-release`) is regularly updated to reflect what's changed in each new release.
186
-
187
- ## Credit
188
-
189
- Bulma was beautifully crafted by [@jgthms](https://github.com/jgthms)
190
-
191
- ## License
192
-
1
+ <p align="center">
2
+ <a href="https://reactivebulma.netlify.app">
3
+ <img width="75" src="https://cdn.svgporn.com/logos/react.svg">
4
+ <img width="50" src="https://cdn.svgporn.com/logos/bulma.svg">
5
+ </a>
6
+ </p>
7
+
8
+ <h1 align="center">Reactive Bulma</h1>
9
+
10
+ <div align="center">
11
+
12
+ Component library based on React, Bulma, Typescript and Rollup
13
+
14
+ <div align="left">
15
+
16
+ ## Table of contents
17
+
18
+ - [Status](#status)
19
+ - [Purpose](#purpose)
20
+ - [Dependencies](#dependencies)
21
+ - [Quick start](#quick-start)
22
+ - [Folder structure](#folder-structure)
23
+ - [Documentation](#documentation)
24
+ - [Usage](#usage)
25
+ - [Versioning](#versioning)
26
+ - [Roadmap](#roadmap)
27
+ - [Changelog](#changelog)
28
+ - [Credit](#credit)
29
+ - [License](#license)
30
+
31
+ ## Purpose
32
+ After studying [a Udemy course about Typescript](https://github.com/NicolasOmar/typescript-practice), I wanted to start a new project to practice my new knowledge in a meaningful tool. Therefore, I started this project to understand how to create a component library and investigate the best ways to maintain and nourish it as any professional-level alternatives.
33
+
34
+ ## Status
35
+
36
+ ![Npm Version][badge-npm-version]
37
+ ![Npm Bundle Size][badge-npm-size]
38
+ [![Npm Downloads][badge-npm-downloads]][link-npm-downloads]
39
+ [![Netlify Status][badge-netlify-status]][link-netlify-status]
40
+ [![Code Coverage][badge-code-coverage]][link-code-coverage]
41
+ [![Quality Gate Status][badge-soundcloud-quality]][link-soundcloud-status]
42
+ [![Maintainability Rating][badge-soundcloud-maintanibility]][link-soundcloud-status]
43
+ [![Security Rating][badge-soundcloud-security]][link-soundcloud-status]
44
+ [![Technical Debt][badge-soundcloud-tech-debt]][link-soundcloud-status]
45
+ [![Known Vulnerabilities][badge-snyk-status]][link-snyk-status]
46
+ ![GitHub Repo stars][badge-github-repo-stars]
47
+ ![GitHub commit activity][badge-github-commits]
48
+ ![GitHub last commit][badge-github-last-commit]
49
+ [![Semantic Commits][badge-semantic-commits]][link-semantic-commits]
50
+
51
+ [badge-npm-version]: https://img.shields.io/github/package-json/v/nicolasomar/reactive-bulma?label=npm%20version&logo=npm&labelColor=535353&color=success&style=flat
52
+ [badge-npm-size]: https://img.shields.io/bundlephobia/min/reactive-bulma?label=bundle%20size&labelColor=535353&logo=npm&style=flat
53
+ [badge-npm-downloads]: https://img.shields.io/npm/dm/reactive-bulma?label=downloads&labelColor=535353&style=flat&logo=npm
54
+ [link-npm-downloads]: https://www.npmjs.com/package/reactive-bulma?activeTab=versions
55
+ [badge-netlify-status]: https://api.netlify.com/api/v1/badges/3101f2b5-0e28-4734-b749-ebb0e3e413c6/deploy-status
56
+ [link-netlify-status]: https://app.netlify.com/sites/reactivebulma/deploys
57
+ [badge-code-coverage]: https://img.shields.io/codecov/c/github/nicolasomar/reactive-bulma?label=coverage&labelColor=535353&logo=codecov&style=flat
58
+ [link-code-coverage]: https://app.codecov.io/gh/NicolasOmar/reactive-bulma
59
+ [badge-soundcloud-quality]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=alert_status
60
+ [badge-soundcloud-maintanibility]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=sqale_rating
61
+ [badge-soundcloud-security]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=security_rating
62
+ [badge-soundcloud-tech-debt]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=sqale_index
63
+ [link-soundcloud-status]: https://sonarcloud.io/summary/new_code?id=NicolasOmar_reactive-bulma
64
+ [badge-snyk-status]: https://img.shields.io/snyk/vulnerabilities/github/nicolasomar/reactive-bulma?logo=snyk
65
+ [link-snyk-status]: https://snyk.io/test/github/nicolasomar/reactive-bulma
66
+ [badge-github-repo-stars]: https://img.shields.io/github/stars/nicolasomar/reactive-bulma?label=stars&logo=github&labelColor=535353&style=flat
67
+ [badge-github-commits]: https://img.shields.io/github/commit-activity/m/nicolasomar/reactive-bulma?logo=github
68
+ [badge-github-last-commit]: https://img.shields.io/github/last-commit/nicolasomar/reactive-bulma?logo=github
69
+ [badge-semantic-commits]: https://img.shields.io/badge/using-conventional%20commits-e10079?logo=conventional-commits
70
+ [link-semantic-commits]: https://github.com/semantic-release/semantic-release
71
+
72
+ ## Dependencies
73
+
74
+ ![react dependency][badge-dependency-react]
75
+ ![bulma dependency][badge-dependency-bulma]
76
+ ![material design dependency][badge-dependency-material-design]
77
+ ![typescript dependency][badge-dependency-typescript]
78
+ ![rollup dependency][badge-dependency-rollup]
79
+ ![storybook dependency][badge-dependency-storybook]
80
+ ![semantic release dependency][badge-dependency-semantic-release]
81
+ ![babel dependency][badge-dependency-babel]
82
+ ![jest dependency][badge-dependency-jest]
83
+ ![react testing library dependency][badge-dependency-react-testing]
84
+ ![prettier dependency][badge-dependency-prettier]
85
+ ![eslint dependency][badge-dependency-eslint]
86
+ ![husky dependency][badge-dependency-husky]
87
+
88
+ [badge-dependency-react]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/react/main?logo=react
89
+ [badge-dependency-bulma]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/bulma/main?logo=bulma
90
+ [badge-dependency-material-design]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/@mdi/font/main?logo=materialdesignicons
91
+ [badge-dependency-typescript]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/typescript/main?logo=typescript
92
+ [badge-dependency-rollup]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/rollup/main?logo=rollup.js
93
+ [badge-dependency-storybook]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/storybook/main?logo=storybook
94
+ [badge-dependency-semantic-release]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/semantic-release/main?logo=semantic-release
95
+ [badge-dependency-babel]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/@babel/core/main?logo=babel
96
+ [badge-dependency-jest]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/jest/main?logo=jest
97
+ [badge-dependency-react-testing]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/@testing-library/react/main?logo=testing-library
98
+ [badge-dependency-prettier]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/prettier/main?logo=prettier
99
+ [badge-dependency-eslint]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/eslint/main?logo=eslint
100
+ [badge-dependency-husky]: https://img.shields.io/github/package-json/dependency-version/nicolasomar/reactive-bulma/dev/husky/main?logo=husky
101
+
102
+ ## Quick start
103
+
104
+ Several quick start options are available:
105
+
106
+ - Clone the repo: `git clone https://github.com/NicolasOmar/reactive-bulma.git`
107
+ - Install with [npm](https://www.npmjs.com/package/reactive-bulma): `npm install reactive-bulma@latest`
108
+ - Before cloning this repo, I recommend installing [Node](https://nodejs.org/en/download/) `>=18` to install packages.
109
+
110
+ ## Folder structure
111
+
112
+ In case you have cloned the repo, it will show you the following folders:
113
+ - `.github:` [Github Actions](https://github.com/features/actions/) files used to run post-merge.commits like unit test coverage collection.
114
+ - `.husky:` Dedicated to [Husky](https://typicode.github.io/husky/) configuration files.
115
+ - `.storybook:` Dedicated to [Storybook](https://storybook.js.org/) configuration files.
116
+ - `src:`
117
+ - `components:` Location of all used components, using [Atomic Design hierarchy structure](https://atomicdesign.bradfrost.com/chapter-2/)
118
+ - `atoms` (from `v1.0.0`).
119
+ - `molecules` (from `v2.0.0`).
120
+ - `organisms` (from `v3.0.0`).
121
+
122
+ ## Documentation
123
+
124
+ Reactive bulma's documentation, included in this repo in the root directory, is built with [Storybook](https://storybook.js.org/) and publicly hosted on `Netlify` at <https://reactivebulma.netlify.app/>. The docs may also be run locally.
125
+
126
+ ### Running documentation locally
127
+ - Go to `reactive-bulma` folder (where you cloned the repo before).
128
+ - Run `npm install` to install the Node.js dependencies, including Storybook (the site builder).
129
+ - Run `npm start`.
130
+ - Wait until a new tab opens with url <http://localhost:6006/> in your browser.
131
+ - In case you want to initiate it on the background, you can run `npm run start:cli`.
132
+
133
+ Learn more about using `Storybook` by reading its [documentation](https://storybook.js.org/docs/react/get-started/install).
134
+
135
+ ## Usage
136
+ ```jsx
137
+ import React from 'react'
138
+ import { Button } from 'reactive-bulma'
139
+
140
+ const App = () => (
141
+ <Button text="This is a test" />
142
+ );
143
+ ```
144
+ To see all component's variants and its code snippets, go to [Documentation](#documentation) section
145
+
146
+ ## Versioning
147
+
148
+ After investigating [semantic-release documentation](https://semantic-release.gitbook.io/semantic-release/) (reffer to [#3](https://github.com/NicolasOmar/reactive-bulma/issues/3)) and having a problematic implementation, I decided to change version meaning for this project with the following:
149
+ - Major versions (`1.0.0`, `2.0.0` and beyond) will reffer to milestones/version achievement.
150
+ - Minor versions (`1.1.0`, `1.2.0` and so on) will reffer to branch/story completition.
151
+ - Patch versions (`1.0.1`, `1.0.2` and so on) will reffer to bugfixes only.
152
+
153
+ In case you are interested in check current project's status, you can go to [Roadmap](#roadmap) section.
154
+
155
+ ### Branching
156
+
157
+ Giving the mentioned release logic, `main` is the only static branch, and each developed feature or fix will have an unique branch with its PR and a merge commit following [semantic versioning](https://semver.org/) and [semantic commits](https://github.com/semantic-release/semantic-release#commit-message-format) specifications.
158
+
159
+ ## Roadmap
160
+
161
+ Having in mind the [versioning section](#versioning), repo's status in a glance can be observed in this table.
162
+
163
+ | Version | Progress | Open issues | Closed issues
164
+ | :---: | :---: | :---: | :---: |
165
+ | `v1.0.0` | ![v1.0.0, progress][badge-progress-100] | ![v1.0.0, open][badge-issues-open-100] | ![v1.0.0, closed][badge-issues-closed-100] |
166
+ | `v2.0.0` | ![v2.0.0, progress][badge-progress-200] | ![v2.0.0, open][badge-issues-open-200] | ![v2.0.0, closed][badge-issues-closed-200] |
167
+ | `v3.0.0` | ![v3.0.0, progress][badge-progress-300] | ![v3.0.0, open][badge-issues-open-300] | ![v3.0.0, closed][badge-issues-closed-300] |
168
+ | `v4.0.0` | ![v4.0.0, progress][badge-progress-400] | ![v4.0.0, open][badge-issues-open-400] | ![v4.0.0, closed][badge-issues-closed-400] |
169
+
170
+ [badge-progress-100]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/1?label=%20&style=flat&color=informational
171
+ [badge-issues-open-100]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/1?label=%20&style=flat&color=orange
172
+ [badge-issues-closed-100]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/1?label=%20&style=flat&color=success
173
+ [badge-progress-200]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/2?label=%20&style=flat&color=informational
174
+ [badge-issues-open-200]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/2?label=%20&style=flat&color=orange
175
+ [badge-issues-closed-200]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/2?label=%20&style=flat&color=success
176
+ [badge-progress-300]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/3?label=%20&style=flat&color=informational
177
+ [badge-issues-open-300]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/3?label=%20&style=flat&color=orange
178
+ [badge-issues-closed-300]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/3?label=%20&style=flat&color=success
179
+ [badge-progress-400]: https://img.shields.io/github/milestones/progress-percent/nicolasomar/reactive-bulma/4?label=%20&style=flat&color=informational
180
+ [badge-issues-open-400]: https://img.shields.io/github/milestones/issues-open/nicolasomar/reactive-bulma/4?label=%20&style=flat&color=orange
181
+ [badge-issues-closed-400]: https://img.shields.io/github/milestones/issues-closed/nicolasomar/reactive-bulma/4?label=%20&style=flat&color=success
182
+
183
+ In case you want the short-term status, go to the [project board](https://github.com/users/NicolasOmar/projects/3) (powered by `GitHub Projects`).
184
+
185
+ In case you want the detailed list of current and future features, go to the [roadmap document](https://docs.google.com/document/d/1kWX-dDTD-cQUeB_Vbu0K6xRvtHaSA38h76yQnhiCe9U).
186
+
187
+ ## Changelog
188
+
189
+ The [changelog](https://github.com/NicolasOmar/reactive-bulma/blob/main/CHANGELOG.md) (powered by `semantic-release`) is regularly updated to reflect what's changed in each new release.
190
+
191
+ ## Credit
192
+
193
+ Bulma was beautifully crafted by [@jgthms](https://github.com/jgthms)
194
+
195
+ ## License
196
+
193
197
  Code released under the [MIT License](https://github.com/nicolasomar/reactive-bulma/blob/main/LICENSE).
package/dist/cjs/index.js CHANGED
@@ -3065,11 +3065,46 @@ const Select = ({ testId = null, showOptions = 1, options = [], isMultiple = fal
3065
3065
  React.createElement("select", { multiple: isMultiple, size: showOptions, "data-testid": selectTestId }, options.map(({ id, name, selected }, i) => (React.createElement("option", { "data-testid": `${selectTestId}-option-${i}`, key: id.toString(), selected: selected !== null && selected !== void 0 ? selected : false, onClick: onClick !== null && onClick !== void 0 ? onClick : undefined }, name))))));
3066
3066
  };
3067
3067
 
3068
+ const File = ({ testId = null, fileName = null, uploadIcon = { iconLabel: 'upload' }, uploadText = 'Choose a file…', style = null, buttonOnRight = false, isFullWidth = false, isBoxed = false, color = null, size = null, onClick = null }) => {
3069
+ const fileClasses = parseClasses([
3070
+ 'file',
3071
+ fileName ? 'has-name' : null,
3072
+ buttonOnRight ? 'is-right' : null,
3073
+ isFullWidth ? 'is-fullwidth' : null,
3074
+ isBoxed ? 'is-boxed' : null,
3075
+ color,
3076
+ size
3077
+ ]);
3078
+ const fileTestId = testId !== null && testId !== void 0 ? testId : parseTestId({
3079
+ tag: 'file',
3080
+ parsedClasses: fileClasses,
3081
+ rules: [
3082
+ {
3083
+ usedRegExp: /has/gm,
3084
+ regExpReplacer: '-has'
3085
+ },
3086
+ {
3087
+ usedRegExp: /is|file/gm,
3088
+ regExpReplacer: ''
3089
+ }
3090
+ ]
3091
+ });
3092
+ const fileInputTestId = `${fileTestId}-input`;
3093
+ return (React.createElement("section", { "data-testid": fileTestId, className: fileClasses, style: style !== null && style !== void 0 ? style : undefined },
3094
+ React.createElement("label", { className: 'file-label' },
3095
+ React.createElement("input", { "data-testid": fileInputTestId, className: 'file-input', type: 'file', name: 'resume', onClick: onClick !== null && onClick !== void 0 ? onClick : undefined }),
3096
+ React.createElement("span", { className: 'file-cta' },
3097
+ uploadIcon ? React.createElement(Icon, Object.assign({}, uploadIcon)) : null,
3098
+ React.createElement("span", { className: 'file-label' }, uploadText)),
3099
+ fileName ? React.createElement("span", { className: 'file-name' }, fileName) : null)));
3100
+ };
3101
+
3068
3102
  exports.Block = Block;
3069
3103
  exports.Box = Box;
3070
3104
  exports.Button = Button;
3071
3105
  exports.Column = Column;
3072
3106
  exports.Delete = Delete;
3107
+ exports.File = File;
3073
3108
  exports.Icon = Icon;
3074
3109
  exports.Input = Input;
3075
3110
  exports.ProgressBar = ProgressBar;