reactive-bulma 1.21.0 → 2.1.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.
- package/LICENSE +1 -1
- package/README.md +12 -1
- package/dist/cjs/index.js +33 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/molecules/ButtonGroup/index.d.ts +4 -0
- package/dist/cjs/types/components/molecules/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/interfaces/atomProps.d.ts +3 -15
- package/dist/cjs/types/interfaces/commonProps.d.ts +33 -0
- package/dist/cjs/types/interfaces/moleculeProps.d.ts +10 -0
- package/dist/esm/index.js +33 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/molecules/ButtonGroup/index.d.ts +4 -0
- package/dist/esm/types/components/molecules/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/interfaces/atomProps.d.ts +3 -15
- package/dist/esm/types/interfaces/commonProps.d.ts +33 -0
- package/dist/esm/types/interfaces/moleculeProps.d.ts +10 -0
- package/dist/index.d.ts +61 -38
- package/package.json +43 -41
package/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
MIT License
|
2
2
|
|
3
|
-
Copyright (c)
|
3
|
+
Copyright (c) 2023 Nicolás Omar González Passerino
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
@@ -25,10 +25,12 @@ Component library based on React, Bulma, Typescript and Rollup
|
|
25
25
|
- [Versioning](#versioning)
|
26
26
|
- [Roadmap](#roadmap)
|
27
27
|
- [Changelog](#changelog)
|
28
|
+
- [Contributing](#contributing)
|
28
29
|
- [Credit](#credit)
|
29
30
|
- [License](#license)
|
30
31
|
|
31
32
|
## Purpose
|
33
|
+
|
32
34
|
After studying [an 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
35
|
|
34
36
|
## Status
|
@@ -47,6 +49,7 @@ After studying [an Udemy course about Typescript](https://github.com/NicolasOmar
|
|
47
49
|
[![GitHub commit activity][badge-github-commits]][link-github-commit-activity]
|
48
50
|
[![GitHub last commit][badge-github-last-commit]][link-github-commit-history]
|
49
51
|
[![Semantic Commits][badge-semantic-commits]][link-semantic-commits]
|
52
|
+
[![Contributor Covenant][badge-code-of-conduct]][link-code-of-conduct]
|
50
53
|
|
51
54
|
[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
55
|
[badge-npm-size]: https://img.shields.io/bundlephobia/min/reactive-bulma?label=bundle%20size&labelColor=535353&logo=npm&style=flat
|
@@ -62,7 +65,7 @@ After studying [an Udemy course about Typescript](https://github.com/NicolasOmar
|
|
62
65
|
[badge-soundcloud-security]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=security_rating
|
63
66
|
[badge-soundcloud-tech-debt]: https://sonarcloud.io/api/project_badges/measure?project=NicolasOmar_reactive-bulma&metric=sqale_index
|
64
67
|
[link-soundcloud-status]: https://sonarcloud.io/summary/new_code?id=NicolasOmar_reactive-bulma
|
65
|
-
[badge-snyk-status]: https://
|
68
|
+
[badge-snyk-status]: https://snyk.io/test/github/nicolasomar/reactive-bulma/badge.svg
|
66
69
|
[link-snyk-status]: https://snyk.io/test/github/nicolasomar/reactive-bulma
|
67
70
|
[badge-github-repo-stars]: https://img.shields.io/github/stars/nicolasomar/reactive-bulma?label=stars&logo=github&labelColor=535353&style=flat
|
68
71
|
[badge-github-commits]: https://img.shields.io/github/commit-activity/m/nicolasomar/reactive-bulma?logo=github
|
@@ -72,6 +75,8 @@ After studying [an Udemy course about Typescript](https://github.com/NicolasOmar
|
|
72
75
|
[link-github-commit-history]: https://github.com/NicolasOmar/reactive-bulma/commits/main
|
73
76
|
[badge-semantic-commits]: https://img.shields.io/badge/using-conventional%20commits-e10079?logo=conventional-commits
|
74
77
|
[link-semantic-commits]: https://github.com/semantic-release/semantic-release
|
78
|
+
[badge-code-of-conduct]: https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg
|
79
|
+
[link-code-of-conduct]: code_of_conduct.md
|
75
80
|
|
76
81
|
## Dependencies
|
77
82
|
|
@@ -138,6 +143,7 @@ Reactive bulma's documentation, included in this repo in the root directory, is
|
|
138
143
|
Learn more about using `Storybook` by reading its [documentation](https://storybook.js.org/docs/react/get-started/install).
|
139
144
|
|
140
145
|
## Usage
|
146
|
+
|
141
147
|
```jsx
|
142
148
|
import React from 'react'
|
143
149
|
import { Button } from 'reactive-bulma'
|
@@ -193,6 +199,11 @@ In case you want the detailed list of current and future features, go to the [ro
|
|
193
199
|
|
194
200
|
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.
|
195
201
|
|
202
|
+
## Contributing
|
203
|
+
|
204
|
+
If you're interested in contributing to Reactive Bulma, please read [our contributing docs](./CONTRIBUTING.md) before submitting a pull request.
|
205
|
+
|
206
|
+
|
196
207
|
## Credit
|
197
208
|
|
198
209
|
Bulma was beautifully crafted by [@jgthms](https://github.com/jgthms)
|
package/dist/cjs/index.js
CHANGED
@@ -2862,7 +2862,7 @@ const parseTestId = (config) => {
|
|
2862
2862
|
return `test-${config.tag}${fixedClassString.replace(/ /gm, (_a = config.separator) !== null && _a !== void 0 ? _a : '')}`;
|
2863
2863
|
};
|
2864
2864
|
|
2865
|
-
const Button = ({ testId = null, cssClasses = null, style = null, type = 'button', text = null, isDisabled = false, color =
|
2865
|
+
const Button = ({ testId = null, cssClasses = null, style = null, type = 'button', text = null, isDisabled = false, color = null, isLightColor = false, isInvertedColor = false, isOutlined = false, isRounded = false, isLoading = false, isStatic = false, isSelected = false, size = null, onClick = null }) => {
|
2866
2866
|
const buttonClasses = parseClasses([
|
2867
2867
|
'button',
|
2868
2868
|
color,
|
@@ -2872,6 +2872,7 @@ const Button = ({ testId = null, cssClasses = null, style = null, type = 'button
|
|
2872
2872
|
isRounded ? 'is-rounded' : null,
|
2873
2873
|
isLoading ? 'is-loading' : null,
|
2874
2874
|
isStatic ? 'is-static' : null,
|
2875
|
+
isSelected ? 'is-selected' : null,
|
2875
2876
|
size,
|
2876
2877
|
cssClasses
|
2877
2878
|
]);
|
@@ -3172,9 +3173,40 @@ const RadioButton = ({ containerTestId = null, containerCssClasses = null, conta
|
|
3172
3173
|
return (React.createElement("section", { "data-testid": radioButtonContainerTestId, className: radioButtonContainerClasses, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined }, options.map((_option, i) => renderRadioButton(Object.assign(Object.assign({}, _option), { name, onChange: onChange !== null && onChange !== void 0 ? onChange : undefined }), i))));
|
3173
3174
|
};
|
3174
3175
|
|
3176
|
+
const ButtonGroup = ({ testId = null, cssClasses = null, style = null, buttonList, isAttached = false, position = 'left' }) => {
|
3177
|
+
const buttonGroupClasses = parseClasses([
|
3178
|
+
'buttons',
|
3179
|
+
isAttached ? 'has-addons' : null,
|
3180
|
+
!position || position === 'left' ? null : `is-${position}`,
|
3181
|
+
cssClasses
|
3182
|
+
]);
|
3183
|
+
const buttonGroupTestId = testId !== null && testId !== void 0 ? testId : parseTestId({
|
3184
|
+
tag: 'buttons',
|
3185
|
+
parsedClasses: buttonGroupClasses,
|
3186
|
+
rules: [
|
3187
|
+
{
|
3188
|
+
regExp: /has-|is-/gm,
|
3189
|
+
replacer: '-'
|
3190
|
+
},
|
3191
|
+
{
|
3192
|
+
regExp: /buttons/gm,
|
3193
|
+
replacer: ''
|
3194
|
+
}
|
3195
|
+
]
|
3196
|
+
});
|
3197
|
+
return (React.createElement("section", { "data-testid": buttonGroupTestId, className: buttonGroupClasses, style: style !== null && style !== void 0 ? style : undefined }, buttonList.map((currentButtonItem, i, originalButtonList) => {
|
3198
|
+
const hasSelectedButton = originalButtonList.some(({ isSelected }) => isSelected);
|
3199
|
+
const shouldApplyColor = (hasSelectedButton && currentButtonItem.isSelected) ||
|
3200
|
+
!hasSelectedButton;
|
3201
|
+
const buttonConfig = Object.assign(Object.assign({}, currentButtonItem), { color: shouldApplyColor ? currentButtonItem.color : undefined });
|
3202
|
+
return (React.createElement(Button, Object.assign({ key: `button-list-item-${i}` }, buttonConfig)));
|
3203
|
+
})));
|
3204
|
+
};
|
3205
|
+
|
3175
3206
|
exports.Block = Block;
|
3176
3207
|
exports.Box = Box;
|
3177
3208
|
exports.Button = Button;
|
3209
|
+
exports.ButtonGroup = ButtonGroup;
|
3178
3210
|
exports.Checkbox = CheckBox;
|
3179
3211
|
exports.Column = Column;
|
3180
3212
|
exports.Delete = Delete;
|