@steroidsjs/bootstrap 3.0.0-beta.71 → 3.0.0-beta.73

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.
@@ -18,8 +18,8 @@ var react_1 = __importDefault(require("react"));
18
18
  var hooks_1 = require("@steroidsjs/core/hooks");
19
19
  var form_1 = require("@steroidsjs/core/ui/form");
20
20
  var Avatar_1 = __importDefault(require("@steroidsjs/core/ui/content/Avatar/Avatar"));
21
- var Icon_1 = __importDefault(require("@steroidsjs/core/ui/content/Icon"));
22
21
  var nav_1 = require("@steroidsjs/core/ui/nav");
22
+ var content_1 = require("@steroidsjs/core/ui/content");
23
23
  function CardView(props) {
24
24
  var bem = (0, hooks_1.useBem)('CardView');
25
25
  var hasContent = !!(props.title || props.buttons || props.links || props.description || props.children);
@@ -33,7 +33,7 @@ function CardView(props) {
33
33
  react_1["default"].createElement("h3", { className: bem.element('header-head') }, props.header.head),
34
34
  react_1["default"].createElement("p", { className: bem.element('header-subhead') }, props.header.subhead))),
35
35
  props.header.menu && (react_1["default"].createElement("div", { className: bem.element('header-menu'), role: 'button' },
36
- react_1["default"].createElement(Icon_1["default"], { name: 'menu_dots', className: bem.element('header-dots') }))))),
36
+ react_1["default"].createElement(content_1.Menu, __assign({}, props.header.menu)))))),
37
37
  props.cover && (react_1["default"].createElement("div", { className: bem.element('cover') },
38
38
  react_1["default"].createElement("img", { src: props.cover, alt: 'Card cover img' }))),
39
39
  hasContent && (react_1["default"].createElement("div", { className: bem.element('content') },
@@ -1,16 +1,13 @@
1
1
  :root {
2
- --card-background-color: $white;
3
2
  --card-footer-background-color: var(--additional-light-blue);
4
3
  --card-dots-color: #323232;
5
4
  }
6
5
 
7
6
  html[data-theme="dark"] {
8
- --card-background-color: var(--graphite);
9
7
  --card-footer-background-color: var(--gray-dark);
10
8
  --card-dots-color: #ffffff;
11
9
  }
12
10
 
13
- $card-background-color: var(--card-background-color);
14
11
  $card-footer-background-color: var(--card-footer-background-color);
15
12
  $card-dots-color: var(--card-dots-color);
16
13
 
@@ -45,7 +42,7 @@ $card-dots-color: var(--card-dots-color);
45
42
  border: 1px solid $element-border-color;
46
43
  border-radius: $radius-large;
47
44
  color: $text-color;
48
- background-color: $card-background-color;
45
+ background-color: $element-background-color;
49
46
 
50
47
  &__header {
51
48
  display: flex;
@@ -55,7 +52,7 @@ $card-dots-color: var(--card-dots-color);
55
52
  padding: 18px;
56
53
  padding-bottom: 20px;
57
54
 
58
- &_withoutCover {
55
+ &_withoutCover {
59
56
  padding-bottom: 3px;
60
57
  }
61
58
 
@@ -66,7 +63,7 @@ $card-dots-color: var(--card-dots-color);
66
63
  column-gap: 8px;
67
64
  }
68
65
 
69
- &-avatar {
66
+ &-avatar {
70
67
  margin-right: 2px;
71
68
  }
72
69
 
@@ -88,22 +85,22 @@ $card-dots-color: var(--card-dots-color);
88
85
  justify-content: center;
89
86
  align-items: center;
90
87
  cursor: pointer;
91
- }
92
88
 
93
- &-dots {
94
- width: 24px;
95
- height: 24px;
89
+ .MenuView__icon {
90
+ width: 24px;
91
+ height: 24px;
96
92
 
97
- display: flex;
98
- justify-content: center;
99
- align-items: center;
93
+ display: flex;
94
+ justify-content: center;
95
+ align-items: center;
100
96
 
101
- rect {
102
- fill: $card-dots-color;
103
- }
97
+ rect {
98
+ fill: $card-dots-color;
99
+ }
104
100
 
105
- svg {
106
- transform: translateX(5px);
101
+ svg {
102
+ transform: translateX(5px);
103
+ }
107
104
  }
108
105
  }
109
106
  }
@@ -149,11 +146,11 @@ $card-dots-color: var(--card-dots-color);
149
146
  row-gap: 8px;
150
147
  column-gap: $columnGap;
151
148
 
152
- button:only-of-type {
149
+ button:only-of-type {
153
150
  width: 100%;
154
151
  }
155
152
 
156
- button:not(:only-of-type) {
153
+ button:not(:only-of-type) {
157
154
  width: calc(50% - $columnGap / 2);
158
155
  }
159
156
  }
@@ -51,7 +51,7 @@ function InputFieldView(props) {
51
51
  hasError: !!props.errors,
52
52
  hasLeadIcon: !!props.leadIcon,
53
53
  hasClearIcon: props.showClear && !props.disabled,
54
- filled: !!props.inputProps.value,
54
+ filled: !!props.input.value,
55
55
  hasAddonAfter: !!props.addonAfter,
56
56
  hasAddonBefore: !!props.addonBefore,
57
57
  hasAddon: !!props.addonAfter || !!props.addonBefore,
@@ -72,7 +72,7 @@ function InputFieldView(props) {
72
72
  })) }, props.inputProps, { onInput: function (e) { return props.inputProps.onChange(e.currentTarget.value); }, type: props.type, placeholder: props.placeholder, disabled: props.disabled, required: props.required, id: props.id, ref: props.maskedInputRef })))
73
73
  : (React.createElement("input", __assign({ className: bem(bem.element('input', {
74
74
  size: props.size
75
- })) }, props.inputProps, { onChange: function (e) { return props.input.onChange(e.target.value); }, type: props.type, placeholder: props.placeholder, disabled: props.disabled, required: props.required, id: props.id }))),
75
+ })) }, props.inputProps, { onChange: function (e) { return props.inputProps.onChange(e.target.value); }, type: props.type, placeholder: props.placeholder, disabled: props.disabled, required: props.required, id: props.id }))),
76
76
  !props.disabled && props.showClear && !props.maskProps && (React.createElement(Icon_1["default"], { name: "cross_8x8", className: bem.element('icon-clear'), tabIndex: -1, onClick: props.onClear }))),
77
77
  props.textAfter && (React.createElement("span", { className: bem.element('text-after') }, props.textAfter)),
78
78
  props.addonAfter && (React.createElement("span", { className: bem.element('addon-after') }, props.addonAfter))));
@@ -26,20 +26,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  exports.__esModule = true;
29
+ /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
29
30
  var React = __importStar(require("react"));
30
31
  var hooks_1 = require("@steroidsjs/core/hooks");
31
32
  var Icon_1 = __importDefault(require("@steroidsjs/core/ui/content/Icon"));
32
33
  function RateFieldView(props) {
34
+ var _a;
33
35
  var bem = (0, hooks_1.useBem)('RateFieldView');
34
- return (React.createElement("div", { className: bem(bem.block(), props.className) }, props.items.map(function (item, index) { return (React.createElement("div", { key: index, className: bem.element('rate-item', {
35
- 'is-full': item.value <= props.inputProps.value
36
- }), onClick: function (e) {
37
- e.preventDefault();
38
- props.onItemClick(item);
39
- } },
40
- React.createElement("span", { className: bem.element('rate-value-first') },
41
- React.createElement(Icon_1["default"], { className: bem.element('rate-icon'), name: 'star' })),
42
- React.createElement("span", { className: bem.element('rate-value-second') },
43
- React.createElement(Icon_1["default"], { className: bem.element('rate-icon'), name: 'star' })))); })));
36
+ return (React.createElement("div", { className: bem(bem.block({
37
+ size: props.size,
38
+ disabled: props.disabled
39
+ }), props.className), style: props.style },
40
+ React.createElement("ul", { className: bem.element('rate-list') }, props.items.map(function (item, index) { return (React.createElement("div", { key: index, className: bem.element('rate-item', {
41
+ 'is-full': item.value <= props.inputProps.value
42
+ }), onClick: function (e) {
43
+ e.preventDefault();
44
+ props.onItemClick(item);
45
+ } },
46
+ React.createElement("span", { className: bem.element('rate-value-first') },
47
+ React.createElement(Icon_1["default"], { className: bem.element('rate-icon'), name: 'star' })),
48
+ React.createElement("span", { className: bem.element('rate-value-second') },
49
+ React.createElement(Icon_1["default"], { className: bem.element('rate-icon'), name: 'star' })))); })),
50
+ props.badge && (React.createElement("span", { className: bem.element('badge') }, (_a = props.badge) === null || _a === void 0 ? void 0 : _a.title))));
44
51
  }
45
52
  exports["default"] = RateFieldView;
@@ -1,57 +1,130 @@
1
- @import '../../scss/variables';
1
+ $ratefield-sizes: () !default;
2
+ $ratefield-sizes: map-merge(
3
+ (
4
+ "sm": (
5
+ "size": 18px,
6
+ "badge-gap": 8px,
7
+ "badge-paddings": 1px 8px,
8
+ "badge-radius": 6px,
9
+ ),
10
+ "md": (
11
+ "size": 22px,
12
+ "badge-gap": 12px,
13
+ "badge-paddings": 3px 8px,
14
+ "badge-radius": 6px,
15
+ ),
16
+ "lg": (
17
+ "size": 24px,
18
+ "badge-gap": 16px,
19
+ "badge-paddings": 4px 8px,
20
+ "badge-radius": $radius-small,
21
+ ),
22
+ ),
23
+ $ratefield-sizes
24
+ );
2
25
 
3
26
  .RateFieldView {
27
+ $root: &;
4
28
 
5
- $root: &;
29
+ display: flex;
30
+ flex-flow: row nowrap;
31
+ align-items: center;
6
32
 
7
- &:focus, & *:focus {
8
- outline: none!important;
9
- }
33
+ &:focus,
34
+ & *:focus {
35
+ outline: none !important;
36
+ }
10
37
 
11
- display: flex;
12
- justify-content: flex-start;
13
- align-items: center;
38
+ &__rate-list {
39
+ display: flex;
40
+ justify-content: flex-start;
41
+ align-items: center;
42
+ column-gap: 2px;
43
+ }
14
44
 
15
- &__rate-item {
16
- cursor: pointer;
17
- position: relative;
18
- margin-right: 10px;
19
- line-height: 0;
45
+ &__rate-item {
46
+ cursor: pointer;
47
+ position: relative;
48
+ line-height: 0;
20
49
 
21
- &_is-full{
22
- #{$root}__rate-value-second {
23
- width: 100%;
50
+ &_is-full {
51
+ #{$root}__rate-value-second {
52
+ width: 100%;
24
53
 
25
- #{$root}__rate-icon {
26
- path {
27
- fill: $icon-color;
28
- }
54
+ #{$root}__rate-icon {
55
+ path {
56
+ fill: $primary;
57
+ }
58
+ }
59
+ }
29
60
  }
30
- }
31
61
  }
32
- }
33
62
 
34
- &__rate-value-first, &__rate-value-second {
35
- display: inline-block;
36
- width: $icon-size;
37
- height: $icon-size;
38
- }
63
+ &__rate-value-first,
64
+ &__rate-value-second {
65
+ display: inline-block;
66
+ }
39
67
 
40
- &__rate-value-second {
41
- position: absolute;
42
- top: 0;
43
- left: 0;
44
- width: 0;
45
- }
68
+ &__rate-value-second {
69
+ position: absolute;
70
+ top: 0;
71
+ left: 0;
72
+ width: 0;
73
+ }
46
74
 
47
- &__rate-icon {
48
- &.IconView svg {
49
- width: $icon-size;
75
+ &__rate-icon {
76
+ &.IconView svg {
77
+ path {
78
+ fill: $gray;
79
+ }
80
+ }
81
+ }
50
82
 
51
- path {
52
- fill: $gray-dark;
53
- }
83
+ &__badge {
84
+ display: block;
85
+ background-color: $primary;
86
+ color: $white;
87
+ font-size: $font-size-xs;
88
+ line-height: $line-height-xs;
54
89
  }
55
- }
56
90
 
57
- }
91
+ &_size {
92
+ @each $size, $sizeMap in $ratefield-sizes {
93
+ &_#{$size} {
94
+ #{$root}__rate-icon {
95
+ &.IconView svg {
96
+ width: map-get($sizeMap, size);
97
+ height: map-get($sizeMap, size);
98
+ }
99
+ }
100
+
101
+ #{$root}__rate-value-first,
102
+ #{$root}__rate-value-second {
103
+ width: map-get($sizeMap, size);
104
+ height: map-get($sizeMap, size);
105
+ }
106
+
107
+ #{$root}__badge {
108
+ margin-left: map-get($sizeMap, badge-gap);
109
+ padding: map-get($sizeMap, badge-paddings);
110
+ border-radius: map-get($sizeMap, badge-radius);
111
+ }
112
+ }
113
+ }
114
+ }
115
+
116
+ &_disabled {
117
+ cursor: not-allowed;
118
+
119
+ #{$root}__rate-item {
120
+ pointer-events: none;
121
+ }
122
+ #{$root}__rate-icon {
123
+ &.IconView svg {
124
+ path {
125
+ fill: $light-gray;
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -22,19 +33,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
33
  __setModuleDefault(result, mod);
23
34
  return result;
24
35
  };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
25
39
  exports.__esModule = true;
26
40
  var React = __importStar(require("react"));
27
41
  var hooks_1 = require("@steroidsjs/core/hooks");
28
- var nav_1 = require("@steroidsjs/core/ui/nav");
42
+ var react_google_recaptcha_1 = __importDefault(require("react-google-recaptcha"));
29
43
  function ReCaptchaFieldView(props) {
30
44
  var bem = (0, hooks_1.useBem)('ReCaptchaFieldView');
31
- return (React.createElement("div", { className: bem.block() },
32
- React.createElement("small", { className: 'text-muted' },
33
- __('This site is protected by reCAPTCHA and the Google') + ' ',
34
- React.createElement(nav_1.Link, { url: 'https://policies.google.com/privacy', target: '_blank', label: __('Privacy Policy') }),
35
- ' ' + __('and') + ' ',
36
- React.createElement(nav_1.Link, { url: 'https://policies.google.com/terms', target: '_blank', label: __('Terms of Service') }),
37
- ' ' + __('apply'),
38
- ".")));
45
+ var theme = (0, hooks_1.useTheme)().theme;
46
+ return (React.createElement("div", { className: bem(bem.block(), props.className), style: props.style },
47
+ React.createElement(react_google_recaptcha_1["default"], __assign({}, props.recaptchaOptions, { theme: theme }))));
39
48
  }
40
49
  exports["default"] = ReCaptchaFieldView;
@@ -1,5 +1,3 @@
1
- .ReCaptchaFieldView {}
1
+ @import "../../scss/variables";
2
2
 
3
- .grecaptcha-badge {
4
- visibility: hidden;
5
- }
3
+ .ReCaptchaFieldView {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/bootstrap",
3
- "version": "3.0.0-beta.71",
3
+ "version": "3.0.0-beta.73",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
@@ -29,13 +29,14 @@
29
29
  "react-collapse": "^5.0.1",
30
30
  "react-day-picker": "^7.4.10",
31
31
  "react-dom": "^18.2.0",
32
+ "react-google-recaptcha": "^3.1.0",
32
33
  "react-image-crop": "^9.0.2",
33
34
  "react-modal": "^3.11.2",
34
35
  "react-transition-group": "^2.9.0",
35
36
  "react-use": "^17.4.0"
36
37
  },
37
38
  "devDependencies": {
38
- "@steroidsjs/core": "^3.0 || >=3.0.0-beta.49",
39
+ "@steroidsjs/core": "^3.0 || >=3.0.0-beta.52",
39
40
  "@steroidsjs/eslint-config": "^2.1.4",
40
41
  "@types/enzyme": "^3.10.8",
41
42
  "@types/googlemaps": "^3.43.3",
@@ -53,6 +54,6 @@
53
54
  "typescript": "^4.9.5"
54
55
  },
55
56
  "peerDependencies": {
56
- "@steroidsjs/core": "^3.0 || >=3.0.0-beta.47"
57
+ "@steroidsjs/core": "^3.0 || >=3.0.0-beta.52"
57
58
  }
58
59
  }