benivo-ui-library 1.9.57 → 1.9.58

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 (82) hide show
  1. package/.prettierrc.json +8 -0
  2. package/.storybook/main.js +65 -0
  3. package/.storybook/preview.js +15 -0
  4. package/.vscode/extensions.json +5 -0
  5. package/.vscode/mcp.json +9 -0
  6. package/.vscode/settings.json +6 -0
  7. package/Benivo.UI.lib.csproj +21 -0
  8. package/Benivo.UI.lib.sln +33 -0
  9. package/LICENSE +21 -0
  10. package/Properties/launchSettings.json +27 -0
  11. package/jest.config.js +20 -0
  12. package/lib/README.md +38 -0
  13. package/{checkbox.less → lib/checkbox.less} +106 -12
  14. package/lib/index.js +2 -0
  15. package/lib/package.json +134 -0
  16. package/lib/radiobutton.less +214 -0
  17. package/mocking/fileMock.js +7 -0
  18. package/mocking/mock.worker.js +25 -0
  19. package/mocking/setup.js +1 -0
  20. package/mocking/styleMock.js +1 -0
  21. package/package.json +1 -1
  22. package/webpack.config.dev.js +90 -0
  23. package/index.js +0 -2
  24. package/radiobutton.less +0 -124
  25. /package/{arrowButton.less → lib/arrowButton.less} +0 -0
  26. /package/{asideSummaryCard.less → lib/asideSummaryCard.less} +0 -0
  27. /package/{asideSummaryCardSection.less → lib/asideSummaryCardSection.less} +0 -0
  28. /package/{assignmentSelectBox.less → lib/assignmentSelectBox.less} +0 -0
  29. /package/{autoComplete.less → lib/autoComplete.less} +0 -0
  30. /package/{benivo-ui-lib.less → lib/benivo-ui-lib.less} +0 -0
  31. /package/{benivoLogo.less → lib/benivoLogo.less} +0 -0
  32. /package/{button.less → lib/button.less} +0 -0
  33. /package/{buttonOld.less → lib/buttonOld.less} +0 -0
  34. /package/{copyInput.less → lib/copyInput.less} +0 -0
  35. /package/{countryFlag.less → lib/countryFlag.less} +0 -0
  36. /package/{data-table.less → lib/data-table.less} +0 -0
  37. /package/{datePicker.less → lib/datePicker.less} +0 -0
  38. /package/{drawer.less → lib/drawer.less} +0 -0
  39. /package/{dropdownButton.less → lib/dropdownButton.less} +0 -0
  40. /package/{expander.less → lib/expander.less} +0 -0
  41. /package/{fantasyButton.less → lib/fantasyButton.less} +0 -0
  42. /package/{forms.less → lib/forms.less} +0 -0
  43. /package/{frame.less → lib/frame.less} +0 -0
  44. /package/{freshDeskChat.less → lib/freshDeskChat.less} +0 -0
  45. /package/{googleTranslate.less → lib/googleTranslate.less} +0 -0
  46. /package/{image.less → lib/image.less} +0 -0
  47. /package/{index.js.LICENSE.txt → lib/index.js.LICENSE.txt} +0 -0
  48. /package/{infoMessageBanner.less → lib/infoMessageBanner.less} +0 -0
  49. /package/{input.less → lib/input.less} +0 -0
  50. /package/{loader.less → lib/loader.less} +0 -0
  51. /package/{main.less → lib/main.less} +0 -0
  52. /package/{mixins.less → lib/mixins.less} +0 -0
  53. /package/{navigation.less → lib/navigation.less} +0 -0
  54. /package/{notifications.less → lib/notifications.less} +0 -0
  55. /package/{pop-up.less → lib/pop-up.less} +0 -0
  56. /package/{select.less → lib/select.less} +0 -0
  57. /package/{sidebarMenu.less → lib/sidebarMenu.less} +0 -0
  58. /package/{spacing.less → lib/spacing.less} +0 -0
  59. /package/{spinner.less → lib/spinner.less} +0 -0
  60. /package/{splashScreen.less → lib/splashScreen.less} +0 -0
  61. /package/{status.less → lib/status.less} +0 -0
  62. /package/{swiper-a11y.less → lib/swiper-a11y.less} +0 -0
  63. /package/{swiper-effect-cube.less → lib/swiper-effect-cube.less} +0 -0
  64. /package/{swiper-effect-fade.less → lib/swiper-effect-fade.less} +0 -0
  65. /package/{swiper-effect-flip.less → lib/swiper-effect-flip.less} +0 -0
  66. /package/{swiper-lazy.less → lib/swiper-lazy.less} +0 -0
  67. /package/{swiper-navigation.less → lib/swiper-navigation.less} +0 -0
  68. /package/{swiper-pagination.less → lib/swiper-pagination.less} +0 -0
  69. /package/{swiper-scrollbar.less → lib/swiper-scrollbar.less} +0 -0
  70. /package/{swiper-thumb.less → lib/swiper-thumb.less} +0 -0
  71. /package/{swiper-zoom.less → lib/swiper-zoom.less} +0 -0
  72. /package/{swiper.less → lib/swiper.less} +0 -0
  73. /package/{tabGroup.less → lib/tabGroup.less} +0 -0
  74. /package/{table-sort.less → lib/table-sort.less} +0 -0
  75. /package/{tabs.less → lib/tabs.less} +0 -0
  76. /package/{tagsSelect.less → lib/tagsSelect.less} +0 -0
  77. /package/{textarea.less → lib/textarea.less} +0 -0
  78. /package/{tooltip.less → lib/tooltip.less} +0 -0
  79. /package/{typography-helper.less → lib/typography-helper.less} +0 -0
  80. /package/{typography.less → lib/typography.less} +0 -0
  81. /package/{variables.less → lib/variables.less} +0 -0
  82. /package/{withPortal.less → lib/withPortal.less} +0 -0
@@ -0,0 +1,8 @@
1
+ {
2
+ "trailingComma": "es5",
3
+ "tabWidth": 4,
4
+ "semi": true,
5
+ "singleQuote": true,
6
+ "jsxSingleQuote": true,
7
+ "printWidth": 200
8
+ }
@@ -0,0 +1,65 @@
1
+ /** @type { import('@storybook/react-webpack5').StorybookConfig } */
2
+ const path = require('path');
3
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
4
+
5
+ const config = {
6
+ stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
7
+
8
+ addons: [
9
+ '@storybook/addon-webpack5-compiler-swc',
10
+ '@storybook/addon-onboarding',
11
+ '@storybook/addon-links',
12
+ '@storybook/addon-essentials',
13
+ '@chromatic-com/storybook',
14
+ '@storybook/addon-interactions',
15
+ '@storybook/addon-styling-webpack',
16
+ ],
17
+
18
+ framework: {
19
+ name: '@storybook/react-webpack5',
20
+ options: {
21
+ builder: { useSWC: true }
22
+ }
23
+ },
24
+
25
+ swc: () => ({
26
+ jsc: {
27
+ parser: {
28
+ syntax: 'ecmascript',
29
+ jsx: true,
30
+ },
31
+ transform: {
32
+ react: {
33
+ runtime: 'automatic',
34
+ },
35
+ },
36
+ },
37
+ }),
38
+
39
+ webpackFinal: async (config) => {
40
+ config.resolve.alias = {
41
+ ...config.resolve.alias,
42
+ '@': path.resolve(__dirname, '../src/'),
43
+ Hooks: path.resolve(__dirname, '../src/hooks'),
44
+ HOC: path.resolve(__dirname, '../src/components/HOC'),
45
+ Utils: path.resolve(__dirname, '../src/utils'),
46
+ Component: path.resolve(__dirname, '../src/components'),
47
+ Contexts: path.resolve(__dirname, '../src/contexts'),
48
+ };
49
+
50
+ config.module.rules.push({
51
+ test: /\.less$/,
52
+ use: [
53
+ MiniCssExtractPlugin.loader,
54
+ { loader: 'css-loader', options: { sourceMap: true } },
55
+ { loader: 'less-loader', options: { sourceMap: true } }
56
+ ]
57
+ });
58
+
59
+ config.plugins.push(new MiniCssExtractPlugin());
60
+
61
+ return config;
62
+ },
63
+ };
64
+
65
+ export default config;
@@ -0,0 +1,15 @@
1
+ /** @type { import('@storybook/react').Preview } */
2
+ import '../src/assets/main.less';
3
+
4
+ const preview = {
5
+ parameters: {
6
+ controls: {
7
+ matchers: {
8
+ color: /(background|color)$/i,
9
+ date: /Date$/i,
10
+ },
11
+ },
12
+ },
13
+ };
14
+
15
+ export default preview;
@@ -0,0 +1,5 @@
1
+ {
2
+ "recommendations": [
3
+ "esbenp.prettier-vscode",
4
+ ]
5
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "inputs": [],
3
+ "servers": {
4
+ "figma": {
5
+ "url": "https://mcp.figma.com/mcp",
6
+ "type": "http"
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "editor.formatOnSave": true,
3
+ "[javascript]": {
4
+ "editor.defaultFormatter": "vscode.typescript-language-features"
5
+ }
6
+ }
@@ -0,0 +1,21 @@
1
+ <Project Sdk="Microsoft.NET.Sdk.Web">
2
+
3
+ <PropertyGroup Label="Globals">
4
+ <SccProjectName>SAK</SccProjectName>
5
+ <SccProvider>SAK</SccProvider>
6
+ <SccAuxPath>SAK</SccAuxPath>
7
+ <SccLocalPath>SAK</SccLocalPath>
8
+ </PropertyGroup>
9
+
10
+ <PropertyGroup>
11
+ <TargetFramework>netcoreapp3.1</TargetFramework>
12
+ </PropertyGroup>
13
+
14
+ <ItemGroup>
15
+ <Compile Remove="lib\**" />
16
+ <Content Remove="lib\**" />
17
+ <EmbeddedResource Remove="lib\**" />
18
+ <None Remove="lib\**" />
19
+ </ItemGroup>
20
+
21
+ </Project>
@@ -0,0 +1,33 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio Version 16
4
+ VisualStudioVersion = 16.0.30503.244
5
+ MinimumVisualStudioVersion = 10.0.40219.1
6
+ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benivo.UI.lib", "Benivo.UI.lib.csproj", "{1AA1D8F2-00EE-407C-8520-FB4A67381AF5}"
7
+ EndProject
8
+ Global
9
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
+ Debug|Any CPU = Debug|Any CPU
11
+ Release|Any CPU = Release|Any CPU
12
+ EndGlobalSection
13
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
14
+ {1AA1D8F2-00EE-407C-8520-FB4A67381AF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15
+ {1AA1D8F2-00EE-407C-8520-FB4A67381AF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
16
+ {1AA1D8F2-00EE-407C-8520-FB4A67381AF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
17
+ {1AA1D8F2-00EE-407C-8520-FB4A67381AF5}.Release|Any CPU.Build.0 = Release|Any CPU
18
+ EndGlobalSection
19
+ GlobalSection(SolutionProperties) = preSolution
20
+ HideSolutionNode = FALSE
21
+ EndGlobalSection
22
+ GlobalSection(ExtensibilityGlobals) = postSolution
23
+ SolutionGuid = {262C0D48-5B19-41E7-96BD-5B2C9D72BD07}
24
+ EndGlobalSection
25
+ GlobalSection(TeamFoundationVersionControl) = preSolution
26
+ SccNumberOfProjects = 2
27
+ SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
28
+ SccTeamFoundationServer = https://brandjourney.visualstudio.com/
29
+ SccLocalPath0 = .
30
+ SccProjectUniqueName1 = Benivo.UI.lib.csproj
31
+ SccLocalPath1 = .
32
+ EndGlobalSection
33
+ EndGlobal
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Benivo
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.
@@ -0,0 +1,27 @@
1
+ {
2
+ "iisSettings": {
3
+ "windowsAuthentication": false,
4
+ "anonymousAuthentication": true,
5
+ "iisExpress": {
6
+ "applicationUrl": "http://localhost:62524/",
7
+ "sslPort": 44383
8
+ }
9
+ },
10
+ "profiles": {
11
+ "IIS Express": {
12
+ "commandName": "IISExpress",
13
+ "launchBrowser": true,
14
+ "environmentVariables": {
15
+ "ASPNETCORE_ENVIRONMENT": "Development"
16
+ }
17
+ },
18
+ "Benivo.UI.lib": {
19
+ "commandName": "Project",
20
+ "launchBrowser": true,
21
+ "environmentVariables": {
22
+ "ASPNETCORE_ENVIRONMENT": "Development"
23
+ },
24
+ "applicationUrl": "https://localhost:5001;http://localhost:5000"
25
+ }
26
+ }
27
+ }
package/jest.config.js ADDED
@@ -0,0 +1,20 @@
1
+
2
+ module.exports = {
3
+ testEnvironment: 'jsdom',
4
+ setupFiles: ['<rootDir>/mocking/setup.js', '<rootDir>/mocking/mock.worker.js'],
5
+ moduleFileExtensions: ["js", "json", "jsx"],
6
+ moduleNameMapper: {
7
+ "\\.(css|less)$": "identity-obj-proxy",
8
+ "\\.(gif|ttf|eot|svg)$": "<rootDir>/mocking/fileMock.js",
9
+ "^Component(.*)$": "<rootDir>/src/components$1",
10
+ "^Utils(.*)$": "<rootDir>/src/utils$1",
11
+ "^Hooks(.*)$": "<rootDir>/src/hooks$1",
12
+ "^HOK(.*)$": "<rootDir>/src/HOK$1",
13
+ "^Contexts(.*)$": "<rootDir>/src/contexts$1",
14
+ },
15
+ transform: {
16
+ "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/mocking/fileMock.js",
17
+ "^.+\\.jsx?$": "babel-jest"
18
+ },
19
+ transformIgnorePatterns: ["/node_modules/"],
20
+ }
package/lib/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # benivo-ui-library
2
+
3
+ [![Build Status](https://travis-ci.org/joemccann/dillinger.svg?branch=master)](https://travis-ci.org/joemccann/dillinger)
4
+
5
+ `benivo-ui-library` is a collection of react hooks and components for faster development.
6
+
7
+ # Installation
8
+
9
+ ```sh
10
+ $npm install benivo-ui-library --save
11
+ ```
12
+ # Basic usage
13
+
14
+ ```js
15
+ import React from 'react';
16
+ import { Input, Select, Checkbox, Button } from 'benivo-ui-library';
17
+ import { useInput, useSelect, useCheckbox } from 'benivo-ui-library';
18
+ import { withTransition } from 'benivo-ui-library';
19
+
20
+ function MyApp() {
21
+ const email = useInput('initialvalue@gmail.com');
22
+ const agree = useCheckbox(false);
23
+ const event= useSelect('all');
24
+ const eventOptions=['all', 'news', 'promotional'];
25
+ const handleSubmit=()=>{
26
+ //some smart code here
27
+ };
28
+
29
+ return (
30
+ <form>
31
+ <Input label="Email" {...email.bind} />
32
+ <Select label="Events" options={eventOptions} {...event.bind}/>
33
+ <Checkbox label="I agree" {...agree.bind} />
34
+ <Button onClick={handleSubmit}>Subscribe</Button>
35
+ </form>
36
+ );
37
+ }
38
+ ```
@@ -3,11 +3,45 @@
3
3
  //
4
4
  .form-check {
5
5
  position: relative;
6
- padding-left: 1.75rem;
6
+ padding-left: 2rem;
7
7
  min-height: 1.75rem;
8
8
  min-width: 1.75rem;
9
9
  font-size: 1rem;
10
10
 
11
+ &.checkbox-sm {
12
+ min-height: 1.5rem;
13
+ min-width: 1.5rem;
14
+ padding-left: 1.5rem;
15
+
16
+ .checkbox-box {
17
+ top: 0.25rem;
18
+ width: 1rem;
19
+ height: 1rem;
20
+ min-width: 16px;
21
+ .border-radius(.25rem);
22
+ }
23
+
24
+ input {
25
+
26
+ &:checked,
27
+ &:indeterminate {
28
+ &+.checkbox-box {
29
+ &:after {
30
+ font-size: 0.45rem;
31
+ }
32
+ }
33
+ }
34
+
35
+ &:indeterminate {
36
+ &+.checkbox-box {
37
+ &:after {
38
+ width: 0.5rem;
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+
11
45
  &.round-checkbox {
12
46
  padding-left: 46px;
13
47
 
@@ -15,7 +49,7 @@
15
49
  top: 0;
16
50
  height: 20px;
17
51
  width: 36px;
18
- border: solid 1px var(--border-100);
52
+ border: solid 1px var(--grey-300);
19
53
  .border-radius(100px);
20
54
  background-color: var(--bg-100);
21
55
  transition: .4s;
@@ -76,14 +110,21 @@
76
110
  &:checked {
77
111
  &+.checkbox-box {
78
112
  background-color: var(--white);
79
- border-color: var(--border-200);
113
+ border-color: var(--grey-300);
80
114
  }
81
115
  }
82
116
  }
83
117
  }
84
118
 
85
119
  input {
86
- display: none;
120
+ position: absolute;
121
+ top: 0;
122
+ left: 0;
123
+ width: 1px;
124
+ height: 1px;
125
+ margin: 0;
126
+ opacity: 0;
127
+ pointer-events: none;
87
128
 
88
129
  &+.checkbox-box.disabled {
89
130
  box-shadow: none;
@@ -97,8 +138,8 @@
97
138
 
98
139
  &:checked {
99
140
  &+.checkbox-box {
100
- background-color: var(--primary);
101
- border-color: var(--primary);
141
+ background-color: var(--brand-600);
142
+ border-color: var(--brand-600);
102
143
 
103
144
  &:after {
104
145
  display: inline-block;
@@ -129,9 +170,46 @@
129
170
  }
130
171
  }
131
172
 
132
- &:hover:not(:checked):not(:disabled) {
173
+ &:indeterminate {
174
+ &+.checkbox-box {
175
+ background-color: var(--brand-600);
176
+ border-color: var(--brand-600);
177
+
178
+ &:after {
179
+ content: '';
180
+ position: absolute;
181
+ left: 50%;
182
+ top: 50%;
183
+ width: 0.625rem;
184
+ height: 0.125rem;
185
+ border-radius: 999px;
186
+ background-color: var(--white);
187
+ .transform(translate(-50%, -50%));
188
+ }
189
+
190
+ &.disabled {
191
+ box-shadow: none;
192
+ background-color: var(--bg-50);
193
+ border-color: var(--grey-300);
194
+
195
+ &:after {
196
+ background-color: var(--grey-300);
197
+ }
198
+ }
199
+ }
200
+ }
201
+
202
+ &:focus-visible {
203
+ &+.checkbox-box {
204
+ outline: none;
205
+ box-shadow: 0 0 0 4px rgba(152, 162, 179, 0.14);
206
+ }
207
+ }
208
+
209
+ &:checked:focus-visible,
210
+ &:indeterminate:focus-visible {
133
211
  &+.checkbox-box {
134
- border-color: var(--primary);
212
+ box-shadow: 0 0 0 4px rgba(41, 112, 255, 0.24);
135
213
  }
136
214
  }
137
215
  }
@@ -143,13 +221,13 @@
143
221
  height: 1.25rem;
144
222
  width: 1.25rem;
145
223
  min-width: 20px;
146
- border: 1px solid var(--border-200);
224
+ border: 1px solid var(--grey-300);
147
225
  margin-right: .25px;
148
226
  color: var(--white);
149
227
  display: flex;
150
228
  justify-content: center;
151
229
  align-items: center;
152
- .border-radius(.25rem);
230
+ .border-radius(.375rem);
153
231
 
154
232
  &:focus-visible {
155
233
  outline: none;
@@ -174,10 +252,25 @@
174
252
  border-color: var(--error-main);
175
253
  }
176
254
  }
255
+
256
+ &:disabled {
257
+ &+.checkbox-box {
258
+ background-color: var(--bg-50);
259
+ border-color: var(--grey-300);
260
+ box-shadow: none;
261
+ cursor: not-allowed;
262
+ }
263
+
264
+ &~.form-check-label,
265
+ &~small {
266
+ color: var(--grey-400);
267
+ }
268
+ }
177
269
  }
178
270
 
179
271
  small {
180
272
  display: block;
273
+ color: var(--grey-600);
181
274
  }
182
275
 
183
276
  label {
@@ -187,7 +280,7 @@
187
280
  &.right-side {
188
281
  text-align: right;
189
282
  padding-left: 0;
190
- padding-right: 1.75rem;
283
+ padding-right: 2rem;
191
284
 
192
285
  .checkbox-box {
193
286
  left: inherit;
@@ -197,6 +290,7 @@
197
290
 
198
291
  .form-check-label {
199
292
  color: var(--grey-700);
293
+ font-weight: @font-weight-medium;
200
294
 
201
295
  &:focus-visible {
202
296
  outline: 1px auto Highlight;
@@ -231,7 +325,7 @@
231
325
  left: 0;
232
326
  right: 0;
233
327
  bottom: 0;
234
- border: solid 1px var(--border-100);
328
+ border: solid 1px var(--grey-300);
235
329
  .border-radius(18px);
236
330
  background-color: var(--bg-100);
237
331
  .transition(.4s);