@steroidsjs/bootstrap 2.1.0-beta.2 → 2.1.0-beta.7

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 (125) hide show
  1. package/README.md +7 -0
  2. package/content/Alert/AlertView.d.ts +3 -0
  3. package/content/Alert/AlertView.js +33 -0
  4. package/content/Alert/AlertView.scss +120 -0
  5. package/content/Avatar/AvatarGroupView.d.ts +0 -1
  6. package/content/Avatar/AvatarGroupView.js +20 -21
  7. package/content/Avatar/AvatarGroupView.scss +5 -1
  8. package/content/Avatar/AvatarView.d.ts +0 -1
  9. package/content/Avatar/AvatarView.js +14 -47
  10. package/content/Avatar/AvatarView.scss +93 -34
  11. package/content/Calendar/CalendarView.d.ts +0 -1
  12. package/content/Calendar/CalendarView.js +0 -1
  13. package/content/Calendar/CalendarView.scss +24 -24
  14. package/content/Calendar/CaptionElement.d.ts +0 -1
  15. package/content/Calendar/CaptionElement.js +2 -3
  16. package/content/Calendar/CaptionElement.scss +22 -17
  17. package/content/Card/CardView.d.ts +0 -1
  18. package/content/Card/CardView.js +15 -12
  19. package/content/Card/CardView.scss +138 -26
  20. package/content/Collapse/CollapseItemView.d.ts +3 -0
  21. package/content/Collapse/CollapseItemView.js +60 -0
  22. package/content/Collapse/CollapseItemView.scss +88 -0
  23. package/content/Collapse/CollapseView.d.ts +3 -0
  24. package/content/Collapse/CollapseView.js +28 -0
  25. package/content/Collapse/CollapseView.scss +15 -0
  26. package/content/Detail/DetailView.d.ts +3 -0
  27. package/content/Detail/DetailView.js +37 -0
  28. package/content/Detail/DetailView.scss +66 -0
  29. package/content/DropDown/DropDownView.scss +1 -2
  30. package/form/AutoCompleteField/AutoCompleteFieldView.d.ts +1 -0
  31. package/form/AutoCompleteField/AutoCompleteFieldView.js +1 -0
  32. package/form/AutoCompleteField/AutoCompleteFieldView.scss +31 -20
  33. package/form/Button/ButtonView.js +15 -11
  34. package/form/Button/ButtonView.scss +63 -2
  35. package/form/CheckboxField/CheckboxFieldView.js +1 -1
  36. package/form/CheckboxField/CheckboxFieldView.scss +40 -6
  37. package/form/CheckboxListField/CheckboxListFieldView.js +4 -5
  38. package/form/CheckboxListField/CheckboxListFieldView.scss +45 -1
  39. package/form/DateField/DateFieldView.d.ts +0 -1
  40. package/form/DateField/DateFieldView.js +1 -1
  41. package/form/DateField/DateFieldView.scss +8 -9
  42. package/form/DateRangeField/DateRangeFieldView.d.ts +0 -1
  43. package/form/DateRangeField/DateRangeFieldView.js +0 -1
  44. package/form/DateRangeField/DateRangeFieldView.scss +8 -9
  45. package/form/DateTimeField/DateTimeFieldView.js +4 -1
  46. package/form/DateTimeField/DateTimeFieldView.scss +11 -11
  47. package/form/DateTimeRangeField/DateTimeRangeFieldView.d.ts +0 -1
  48. package/form/DateTimeRangeField/DateTimeRangeFieldView.js +0 -1
  49. package/form/DateTimeRangeField/DateTimeRangeFieldView.scss +10 -10
  50. package/form/DropDownField/DropDownFieldView.js +1 -1
  51. package/form/DropDownField/DropDownFieldView.scss +28 -18
  52. package/form/FileField/FileFieldView.js +1 -1
  53. package/form/Form/FormView.js +4 -1
  54. package/form/Form/FormView.scss +16 -2
  55. package/form/HtmlField/HtmlFieldView.d.ts +4 -0
  56. package/form/HtmlField/HtmlFieldView.js +37 -0
  57. package/form/ImageField/ImageFieldModalView.d.ts +4 -0
  58. package/form/ImageField/ImageFieldModalView.js +55 -0
  59. package/form/ImageField/ImageFieldModalView.scss +7 -0
  60. package/form/ImageField/ImageFieldView.d.ts +3 -0
  61. package/form/ImageField/ImageFieldView.js +43 -0
  62. package/form/ImageField/ImageFieldView.scss +108 -0
  63. package/form/InputField/InputFieldView.js +8 -3
  64. package/form/InputField/InputFieldView.scss +77 -14
  65. package/form/NumberField/NumberFieldView.js +2 -2
  66. package/form/NumberField/NumberFieldView.scss +30 -12
  67. package/form/PasswordField/PasswordFieldView.scss +5 -5
  68. package/form/RateField/RateFieldView.d.ts +0 -1
  69. package/form/RateField/RateFieldView.js +0 -1
  70. package/form/RateField/RateFieldView.scss +5 -5
  71. package/form/SliderField/SliderFieldView.js +29 -9
  72. package/form/SliderField/SliderFieldView.scss +39 -20
  73. package/form/TextField/TextFieldView.scss +3 -2
  74. package/form/TimeField/TimeFieldView.d.ts +0 -1
  75. package/form/TimeField/TimeFieldView.js +0 -1
  76. package/form/TimeField/TimeFieldView.scss +8 -9
  77. package/form/TimeField/TimePanelView.d.ts +0 -1
  78. package/form/TimeField/TimePanelView.js +0 -1
  79. package/form/TimeField/TimePanelView.scss +11 -11
  80. package/icon/Icon/IconView.d.ts +0 -1
  81. package/icon/Icon/IconView.js +0 -1
  82. package/icon/Icon/IconView.scss +6 -6
  83. package/icon/fontawesome.js +5 -1
  84. package/index.d.ts +33 -0
  85. package/index.js +217 -67
  86. package/index.scss +22 -2
  87. package/layout/ProgressBar/CircleProgressBarView.d.ts +4 -0
  88. package/layout/ProgressBar/CircleProgressBarView.js +40 -0
  89. package/layout/ProgressBar/CircleProgressBarView.scss +150 -0
  90. package/layout/ProgressBar/LineProgressBarView.d.ts +4 -0
  91. package/layout/ProgressBar/LineProgressBarView.js +31 -0
  92. package/layout/ProgressBar/LineProgressBarView.scss +115 -0
  93. package/layout/Skeleton/SkeletonView.d.ts +3 -0
  94. package/layout/Skeleton/SkeletonView.js +31 -0
  95. package/layout/Skeleton/SkeletonView.scss +71 -0
  96. package/list/List/ListView.js +3 -0
  97. package/list/Steps/StepItemView.d.ts +3 -0
  98. package/list/Steps/StepItemView.js +41 -0
  99. package/list/Steps/StepItemView.scss +144 -0
  100. package/list/Steps/StepsView.d.ts +3 -0
  101. package/list/Steps/StepsView.js +28 -0
  102. package/list/Steps/StepsView.scss +16 -0
  103. package/modal/Modal/ModalView.js +13 -14
  104. package/modal/Modal/ModalView.scss +34 -30
  105. package/nav/Breadcrubms/BreadcrumbsView.js +4 -4
  106. package/nav/Breadcrubms/BreadcrumbsView.scss +14 -0
  107. package/nav/Controls/ControlsView.scss +1 -1
  108. package/nav/Nav/NavButtonView.js +1 -1
  109. package/nav/Nav/NavIconView.js +1 -1
  110. package/package.json +4 -3
  111. package/scss/mixins/button.scss +33 -0
  112. package/scss/mixins/card.scss +26 -0
  113. package/scss/mixins/index.scss +2 -0
  114. package/scss/variables/colors.scss +74 -0
  115. package/scss/variables/components/alert.scss +9 -0
  116. package/scss/variables/components/avatar.scss +17 -0
  117. package/scss/variables/components/button.scss +14 -0
  118. package/scss/variables/components/calendar.scss +15 -0
  119. package/scss/variables/components/card.scss +20 -0
  120. package/scss/variables/components/icon.scss +3 -0
  121. package/scss/variables/components/input.scss +11 -0
  122. package/scss/variables/components/ratefield.scss +2 -0
  123. package/scss/variables/index.scss +9 -0
  124. package/list/Accordion/AccordionView.scss +0 -10
  125. package/list/Detail/DetailView.scss +0 -5
@@ -15,19 +15,27 @@
15
15
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
16
16
  min-width: 100px;
17
17
  min-height: 38px;
18
- background-color: $input-bg;
18
+ overflow: hidden;
19
+ white-space: nowrap;
20
+ text-overflow: ellipsis;
19
21
  background-clip: padding-box;
20
- border: 1px solid $input-border-color;
22
+
23
+ background-color: #fff;
24
+ box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
25
+ border: 1px solid $border-default;
21
26
  border-radius: 0.25rem;
27
+ color: $heading;
22
28
  line-height: 1.5;
23
- color: $input-color;
24
- white-space: nowrap;
25
- overflow: hidden;
26
- text-overflow: ellipsis;
27
29
 
28
30
  display: flex;
29
31
  flex-flow: row wrap;
30
32
 
33
+
34
+ &:focus {
35
+ border: 1px solid $info-dark;
36
+ box-shadow: 0 0 0 4px $info-light;
37
+ }
38
+
31
39
  &::after {
32
40
  content: '';
33
41
  position: absolute;
@@ -50,6 +58,7 @@
50
58
  &_no-border {
51
59
  padding-left: 0;
52
60
  border-color: transparent;
61
+ box-shadow: unset;
53
62
 
54
63
  &#{$root}__selected-items_is-invalid {
55
64
  border-color: transparent;
@@ -57,7 +66,7 @@
57
66
  }
58
67
 
59
68
  &_is-invalid {
60
- border-color: $danger;
69
+ border-color: red;
61
70
  }
62
71
 
63
72
  &_disabled {
@@ -127,7 +136,7 @@
127
136
  left: 50%;
128
137
  width: 1px;
129
138
  height: 10px;
130
- background-color: $text-muted;
139
+ // background-color: $text-muted;
131
140
  content: '';
132
141
  }
133
142
 
@@ -142,18 +151,18 @@
142
151
 
143
152
  &__drop-down {
144
153
  position: absolute;
145
- top: calc(100%);
154
+ top: calc(100% + 8px);
146
155
  left: 0;
147
156
  padding: 0.375rem 0;
148
157
  width: 100%;
149
- z-index: $zindex-dropdown;
150
- background-color: $dropdown-bg;
158
+ z-index: 100;
159
+ background-color: #fff;
151
160
  background-clip: padding-box;
152
- border: $dropdown-border-width solid $dropdown-border-width;
153
- border-radius: $dropdown-border-radius;
154
- box-shadow: $dropdown-box-shadow;
161
+ border: 1px solid #CCCCCC;
162
+ border-radius: 10px;
163
+ box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
155
164
  line-height: 1.5;
156
- color: $dropdown-color;
165
+ color: #152536;
157
166
  }
158
167
 
159
168
  &__drop-down-list {
@@ -179,14 +188,15 @@
179
188
  cursor: pointer;
180
189
  transition: background-color .2s ease;
181
190
  background-color: transparent;
191
+ border: unset;
182
192
 
183
193
  &_hover {
184
194
  background-color: $dropdown-divider-bg;
185
195
  }
186
196
 
187
197
  &_select {
188
- background-color: $dropdown-link-active-bg;
189
- color: $dropdown-link-active-color;
198
+ background-color: #D8CCF6;
199
+ color: #152536;
190
200
  }
191
201
  }
192
202
  &_size_sm &__drop-down-item {
@@ -196,6 +206,6 @@
196
206
  padding: 0.5rem 1rem;
197
207
  }
198
208
  &__placeholder {
199
- color: $input-placeholder-color;
209
+ color: #fff;
200
210
  }
201
211
  }
@@ -45,7 +45,7 @@ function FileFieldView(props) {
45
45
  React.createElement("div", { className: bem(bem.element('files'), 'clearfix') }, props.items.map(function (item) { return (React.createElement(FileItemView, __assign({ key: item.uid }, item, props.itemProps))); })),
46
46
  React.createElement("div", { className: bem.element('button') },
47
47
  React.createElement(ButtonComponent, __assign({}, props.buttonProps, { layout: false, label: null }),
48
- React.createElement(Icon_1["default"], { className: bem.element('button-icon'), name: props.imagesOnly ? 'file-image' : 'file' }),
48
+ React.createElement(Icon_1["default"], { className: bem.element('button-icon'), name: props.imagesOnly ? 'file-image' : 'upload' }),
49
49
  React.createElement("span", { className: bem.element('button-label') }, props.buttonProps.label)))));
50
50
  }
51
51
  exports["default"] = FileFieldView;
@@ -40,7 +40,10 @@ var Field_1 = __importDefault(require("@steroidsjs/core/ui/form/Field"));
40
40
  var Button_1 = __importDefault(require("@steroidsjs/core/ui/form/Button"));
41
41
  function FormView(props) {
42
42
  var bem = hooks_1.useBem('FormView');
43
- return (React.createElement("form", { className: bem(bem.block(), props.className, props.layout.layout === 'horizontal' && 'form-horizontal'), onSubmit: props.onSubmit, style: props.style },
43
+ return (React.createElement("form", { className: bem(bem.block({
44
+ border: props.isBordered,
45
+ inline: props.layout.layout === 'inline'
46
+ }), props.className, props.layout.layout === 'horizontal' && 'form-horizontal'), onSubmit: props.onSubmit, style: props.style },
44
47
  props.children,
45
48
  (props.fields || []).map(function (field, index) { return (React.createElement(Field_1["default"], __assign({ key: index }, (isString_1["default"](field) ? { attribute: field } : field)))); }),
46
49
  props.submitLabel && (React.createElement(Button_1["default"], { type: 'submit', label: props.submitLabel }))));
@@ -1,3 +1,17 @@
1
1
  .FormView {
2
-
3
- }
2
+ &_border {
3
+ padding: 20px;
4
+ border: 1px solid $border-default;
5
+ box-sizing: border-box;
6
+ box-shadow: $shadow-default;
7
+ border-radius: 0.5rem;
8
+ }
9
+ &_inline {
10
+ display: flex;
11
+ grid-gap: 20px;
12
+ align-items: flex-start;
13
+ }
14
+ .form-control {
15
+ display: flex;
16
+ }
17
+ }
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { IBemHocOutput } from '@steroidsjs/core/hoc/bem';
3
+ import { IHtmlFieldViewProps } from '@steroidsjs/core/ui/form/HtmlField/HtmlField';
4
+ export default function HtmlFieldView(props: IHtmlFieldViewProps & IBemHocOutput): JSX.Element;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ exports.__esModule = true;
25
+ var React = __importStar(require("react"));
26
+ var ckeditor5_react_1 = require("@ckeditor/ckeditor5-react");
27
+ var ckeditor5_build_classic_1 = __importDefault(require("@steroidsjs/ckeditor5/packages/ckeditor5-build-classic"));
28
+ var hooks_1 = require("@steroidsjs/core/hooks");
29
+ function HtmlFieldView(props) {
30
+ var bem = hooks_1.useBem('HtmlFieldView');
31
+ if (process.env.IS_SSR) {
32
+ return null;
33
+ }
34
+ return (React.createElement("div", { className: bem.block() },
35
+ React.createElement(ckeditor5_react_1.CKEditor, { editor: ckeditor5_build_classic_1["default"], disabled: props.disabled, config: props.editorProps, data: !props.input.value ? '' : props.input.value, onChange: props.onChange, onFocus: props.onFocus, onBlur: props.onBlur })));
36
+ }
37
+ exports["default"] = HtmlFieldView;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { IImageFieldModalViewProps } from '@steroidsjs/core/ui/form/ImageField/ImageField';
3
+ import 'react-image-crop/dist/ReactCrop.css';
4
+ export default function ImageFieldModalView(props: IImageFieldModalViewProps): JSX.Element;
@@ -0,0 +1,55 @@
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
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ exports.__esModule = true;
36
+ var React = __importStar(require("react"));
37
+ var hooks_1 = require("@steroidsjs/core/hooks");
38
+ var react_1 = require("react");
39
+ var react_image_crop_1 = __importDefault(require("react-image-crop"));
40
+ var Modal_1 = __importDefault(require("@steroidsjs/core/ui/modal/Modal"));
41
+ require("react-image-crop/dist/ReactCrop.css");
42
+ function ImageFieldModalView(props) {
43
+ var bem = hooks_1.useBem('ImageFieldModalView');
44
+ var _a = react_1.useState(props.crop.initialValues), crop = _a[0], setCrop = _a[1];
45
+ return (React.createElement(Modal_1["default"], { className: bem.block(), title: props.title || __('Выберите область изображения'), onClose: props.onClose, controls: [{
46
+ label: __(('Сохранить')),
47
+ onClick: function () {
48
+ props.onClose();
49
+ props.crop.onSubmit(crop, props.image.id);
50
+ }
51
+ }] },
52
+ React.createElement("div", { className: 'mb-3' },
53
+ React.createElement(react_image_crop_1["default"], __assign({}, props.crop.reactImageCropProps, { className: bem.element('crop'), src: props.image.url, crop: crop, onChange: setCrop })))));
54
+ }
55
+ exports["default"] = ImageFieldModalView;
@@ -0,0 +1,7 @@
1
+ .ImageFieldModalView {
2
+ &__crop img {
3
+ display: block;
4
+ width: 100%;
5
+ height: auto;
6
+ }
7
+ }
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { IImageFieldViewProps } from "@steroidsjs/core/ui/form/ImageField/ImageField";
3
+ export default function ImageFieldView(props: IImageFieldViewProps): JSX.Element;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ exports.__esModule = true;
25
+ var React = __importStar(require("react"));
26
+ var hooks_1 = require("@steroidsjs/core/hooks");
27
+ var Icon_1 = __importDefault(require("@steroidsjs/core/ui/icon/Icon"));
28
+ function ImageFieldView(props) {
29
+ var bem = hooks_1.useBem("ImageFieldView");
30
+ var item = props.item;
31
+ return (React.createElement("div", { className: bem.block() }, !item || !item.image ? (React.createElement("button", { className: bem.element("button", {
32
+ loading: item ? item.progress : false
33
+ }), onClick: props.onClick },
34
+ !item || !item.progress ? (React.createElement(Icon_1["default"], { className: bem.element("button-icon"), name: 'plus' })) : (React.createElement("div", { className: bem.element("progress-bar") },
35
+ React.createElement("div", { className: bem.element("progress-slider"), style: {
36
+ width: (item ? item.progress.percent : 0) + "%"
37
+ } }))),
38
+ React.createElement("span", { className: bem.element("button-label") }, !item || !item.progress ? props.label : "Uploading..."))) : (React.createElement("div", { className: bem.element("content") },
39
+ React.createElement("img", { className: bem.element("image"), src: item.image.url, width: item.image.width, height: item.image.height, alt: item.title }),
40
+ React.createElement("div", { className: bem.element("image-controls") },
41
+ React.createElement(Icon_1["default"], { className: bem.element("delete-icon"), name: 'trash', onClick: item.onRemove }))))));
42
+ }
43
+ exports["default"] = ImageFieldView;
@@ -0,0 +1,108 @@
1
+ .ImageFieldView {
2
+ $root: &;
3
+
4
+ width: 128px;
5
+ height: 128px;
6
+
7
+ &__button {
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ flex-direction: column;
12
+ width: 100%;
13
+ height: 100%;
14
+ background: #ebebeb;
15
+ border: 1px dashed #b0b0b0;
16
+ border-radius: 10px;
17
+
18
+ &_loading {
19
+ pointer-events: none;
20
+ }
21
+ }
22
+
23
+ &__button-icon {
24
+ display: flex;
25
+
26
+ svg {
27
+ width: 12px;
28
+ height: 12px;
29
+ }
30
+
31
+ path {
32
+ fill: #152536
33
+ }
34
+ }
35
+
36
+ &__button-label {
37
+ margin-top: 18px;
38
+ font-size: 14px;
39
+ line-height: 140%;
40
+ color: #152536;
41
+ }
42
+
43
+ &__progress-bar {
44
+ width: 80px;
45
+ height: 4px;
46
+ border-radius: 100px;
47
+ background: #cccccc;
48
+ overflow: hidden;
49
+ }
50
+
51
+ &__progress-slider {
52
+ height: 100%;
53
+ background: #651fff;
54
+ transition: width linear 0.1s;
55
+ }
56
+
57
+ &__content {
58
+ position: relative;
59
+ border-radius: 10px;
60
+ width: 100%;
61
+ height: 100%;
62
+ border: 1px solid #cccccc;
63
+ padding: 5px;
64
+
65
+ &:hover {
66
+ #{$root}__image-controls {
67
+ opacity: 1;
68
+ }
69
+ }
70
+ }
71
+
72
+ &__image-controls {
73
+ position: absolute;
74
+ inset: 5px;
75
+ display: flex;
76
+ align-items: center;
77
+ justify-content: center;
78
+ opacity: 0;
79
+ transition: opacity 0.15s;
80
+
81
+ &:before {
82
+ content: '';
83
+ position: absolute;
84
+ inset: 0;
85
+ opacity: 0.6;
86
+ background: #343a40;
87
+ border-radius: 6px;
88
+ }
89
+ }
90
+
91
+
92
+ &__image {
93
+ border-radius: 6px;
94
+ display: block;
95
+ width: 100%;
96
+ height: 100%;
97
+ object-fit: cover;
98
+ }
99
+
100
+ &__delete-icon {
101
+ position: relative;
102
+ cursor: pointer;
103
+
104
+ path {
105
+ fill: #ffffff;
106
+ }
107
+ }
108
+ }
@@ -35,16 +35,21 @@ var hooks_1 = require("@steroidsjs/core/hooks");
35
35
  function InputFieldView(props) {
36
36
  var bem = hooks_1.useBem('InputFieldView');
37
37
  return (React.createElement("div", { className: bem(bem.block({
38
- disabled: props.inputProps.disabled
38
+ disabled: props.inputProps.disabled,
39
+ size: props.size
39
40
  }), 'form-control', 'form-control-' + props.size, !!props.errors && 'is-invalid', props.className), style: props.style },
40
41
  props.addonBefore && (React.createElement("span", { className: bem.element('addon-before') }, props.addonBefore)),
41
42
  props.textBefore && (React.createElement("span", { className: bem.element('text-before') }, props.textBefore)),
42
43
  props.maskProps
43
44
  ? (React.createElement("input", __assign({ onBlur: props.onBlur, onFocus: props.onFocus, onMouseDown: props.onMouseDown, className: bem(bem.element('input', {
44
- size: props.size
45
+ size: props.size,
46
+ disabled: props.inputProps.disabled
45
47
  }), !!props.errors && 'is-invalid') }, props.inputProps, { type: props.type, placeholder: props.placeholder, disabled: props.disabled, required: props.required })))
46
48
  : (React.createElement("input", __assign({ className: bem(bem.element('input', {
47
- size: props.size
49
+ size: props.size,
50
+ disabled: props.disabled,
51
+ success: props.success,
52
+ failed: props.failed
48
53
  }), !!props.errors && 'is-invalid') }, props.inputProps, { onChange: function (e) { return props.input.onChange(e.target.value); }, type: props.type, placeholder: props.placeholder, disabled: props.disabled, required: props.required }))),
49
54
  props.textAfter && (React.createElement("span", { className: bem.element('text-after') }, props.textAfter)),
50
55
  props.addonAfter && (React.createElement("span", { className: bem.element('addon-after') }, props.addonAfter))));
@@ -1,47 +1,110 @@
1
- $addon-padding: 0.6rem;
2
- $text-padding: 0.4rem;
3
-
4
1
  .InputFieldView {
2
+ $root: &;
3
+
5
4
  display: flex;
6
5
  flex-flow: row nowrap;
7
6
  align-items: stretch;
8
7
  padding: 0;
8
+ border: $input-border;
9
+ border-radius: $input-border-radius;
10
+
11
+ &_size {
12
+ &_small {
13
+ height: $input-height-sm;
14
+ }
15
+ &_medium {
16
+ height: $input-height-md;
17
+ }
18
+ &_large {
19
+ height: $input-height-lg;
20
+ }
21
+ }
9
22
 
10
23
  &:focus-within{
11
24
  outline: 0;
12
- border-color: $blue;
13
- box-shadow: 0 0 0 0.2rem rgba($blue, 0.25);
25
+ border-color: $border-action;
26
+ box-shadow: 0 0 0 3px $border-typing, 0 0 0 3px $border-typing;
14
27
  }
28
+
15
29
  &.is-invalid:focus-within{
16
- border-color: $red;
17
- box-shadow: 0 0 0 0.2rem rgba($red, 0.25);
30
+ border-color: $border-action;
31
+ box-shadow: 0 0 0 3px $border-typing, 0 0 0 3px $border-typing;
18
32
  }
33
+
19
34
  &_disabled {
20
35
  color: rgba(0, 0, 0, .25);
21
- background-color: rgba($input-border-color, .3);
36
+ background-color: $back-disabled;
22
37
  cursor: not-allowed;
38
+
23
39
  input {
24
40
  cursor: inherit;
25
41
  }
42
+
43
+ &#{$root}_input {
44
+ background-color: $back-disabled;
45
+ }
46
+ }
47
+
48
+ &_caption {
49
+
50
+ }
51
+
52
+ &_failed {
53
+ background: $back-error;
54
+ &::after {
55
+ content: 'Error message';
56
+ color: $border-error;
57
+ }
58
+ }
59
+
60
+ &_success {
61
+ background: $back-success;
62
+ &::after {
63
+ content: 'Success message';
64
+ color: $border-success;
65
+ }
26
66
  }
27
67
 
28
68
  &__input {
29
69
  flex-grow: 1;
30
70
  border: none;
31
71
  outline: none;
32
- background-color: transparent;
33
-
72
+ background-color: $white;
73
+ overflow: hidden;
74
+ color: $heading;
34
75
  padding: $input-padding-y $input-padding-x;
76
+ border-radius: $input-border-radius;
77
+
78
+ &_disabled {
79
+ color: rgba(0, 0, 0, .25);
80
+ background: $back-disabled;
81
+ cursor: not-allowed;
82
+
83
+ input {
84
+ cursor: inherit;
85
+ }
86
+ }
87
+
88
+ &_failed {
89
+ box-sizing: border-box;
90
+ }
91
+
92
+ &:active {
93
+ color: $heading;
94
+ }
95
+ &:focus {
96
+ color: $heading;
97
+ }
35
98
  }
36
99
 
37
100
  &__addon-before, &__addon-after {
38
101
  display: flex;
39
102
  align-items: center;
40
- padding: 0 $addon-padding;
103
+ padding: 0 $input-addon-padding;
41
104
 
42
105
  color: rgba(0, 0, 0, .85);
43
106
  text-align: center;
44
- background-color: #fafafa;
107
+ background-color: $back-disabled;
45
108
  }
46
109
 
47
110
  &__addon-before {
@@ -61,11 +124,11 @@ $text-padding: 0.4rem;
61
124
  }
62
125
 
63
126
  &__text-before {
64
- padding-left: $text-padding;
127
+ padding-left: $input-text-padding;
65
128
  }
66
129
 
67
130
  &__text-after {
68
- padding-right: $text-padding;
131
+ padding-right: $input-text-padding;
69
132
  }
70
133
 
71
134
  }
@@ -58,11 +58,11 @@ function NumberFieldView(props) {
58
58
  disabled: props.inputProps.max && value >= props.inputProps.max
59
59
  }), onClick: onStepUp },
60
60
  React.createElement("svg", { viewBox: '64 64 896 896', width: '1em', height: '1em' },
61
- React.createElement("path", { d: 'M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5\n 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39\n 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z' }))),
61
+ React.createElement("path", { d: 'M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140\n 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1\n 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z' }))),
62
62
  React.createElement("button", { className: bem.element('arrow', {
63
63
  disabled: props.inputProps.min && value <= props.inputProps.min
64
64
  }), onClick: onStepDown },
65
65
  React.createElement("svg", { viewBox: '64 64 896 896', width: '1em', height: '1em' },
66
- React.createElement("path", { d: 'M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140\n 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1\n 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z' })))))));
66
+ React.createElement("path", { d: 'M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5\n 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39\n 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z' })))))));
67
67
  }
68
68
  exports["default"] = NumberFieldView;