@steroidsjs/bootstrap 3.0.0-beta.2 → 3.0.0-beta.21

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 (161) hide show
  1. package/README.md +1 -2
  2. package/content/Accordion/AccordionItemView.d.ts +2 -0
  3. package/content/Accordion/AccordionItemView.js +96 -0
  4. package/content/Accordion/AccordionItemView.scss +195 -0
  5. package/content/Accordion/AccordionView.d.ts +2 -0
  6. package/content/{Collapse/CollapseView.js → Accordion/AccordionView.js} +3 -3
  7. package/content/Accordion/AccordionView.scss +14 -0
  8. package/content/Alert/AlertView.d.ts +0 -1
  9. package/content/Alert/AlertView.js +12 -16
  10. package/content/Alert/AlertView.scss +46 -81
  11. package/content/Avatar/AvatarGroupView.d.ts +0 -1
  12. package/content/Avatar/AvatarView.d.ts +0 -1
  13. package/content/Avatar/AvatarView.js +4 -2
  14. package/content/Avatar/AvatarView.scss +139 -85
  15. package/content/Badge/BadgeView.d.ts +3 -0
  16. package/content/Badge/BadgeView.js +25 -0
  17. package/content/Badge/BadgeView.scss +107 -0
  18. package/content/Calendar/CalendarView.d.ts +0 -1
  19. package/content/Calendar/CaptionElement.d.ts +0 -1
  20. package/content/Calendar/CaptionElement.js +1 -1
  21. package/content/Calendar/CaptionElement.scss +2 -0
  22. package/content/Card/CardView.d.ts +0 -1
  23. package/content/Detail/DetailView.d.ts +0 -1
  24. package/content/DropDown/DropDownView.d.ts +0 -1
  25. package/content/DropDown/DropDownView.js +6 -3
  26. package/content/DropDown/DropDownView.scss +196 -27
  27. package/{icon → content}/Icon/IconView.d.ts +1 -2
  28. package/crud/Crud/CrudView.d.ts +0 -1
  29. package/form/AutoCompleteField/AutoCompleteFieldView.d.ts +0 -1
  30. package/form/Button/ButtonView.d.ts +0 -1
  31. package/form/Button/ButtonView.js +8 -8
  32. package/form/Button/ButtonView.scss +116 -78
  33. package/form/CheckboxField/CheckboxFieldView.d.ts +0 -1
  34. package/form/CheckboxField/CheckboxFieldView.js +3 -3
  35. package/form/CheckboxField/CheckboxFieldView.scss +121 -36
  36. package/form/CheckboxListField/CheckboxListFieldView.d.ts +0 -1
  37. package/form/DateField/DateFieldView.d.ts +0 -1
  38. package/form/DateField/DateFieldView.js +1 -1
  39. package/form/DateRangeField/DateRangeFieldView.d.ts +0 -1
  40. package/form/DateRangeField/DateRangeFieldView.js +1 -1
  41. package/form/DateTimeField/DateTimeFieldView.d.ts +0 -1
  42. package/form/DateTimeField/DateTimeFieldView.js +1 -1
  43. package/form/DateTimeRangeField/DateTimeRangeFieldView.d.ts +0 -1
  44. package/form/DateTimeRangeField/DateTimeRangeFieldView.js +1 -1
  45. package/form/DropDownField/DropDownFieldView.d.ts +0 -1
  46. package/form/DropDownField/DropDownFieldView.js +1 -1
  47. package/form/DropDownField/DropDownFieldView.scss +3 -0
  48. package/form/FieldLayout/FieldLayoutView.d.ts +0 -1
  49. package/form/FieldList/FieldListView.d.ts +0 -1
  50. package/form/FieldSet/FieldSetView.d.ts +0 -1
  51. package/form/FileField/FileFieldItemView.d.ts +0 -1
  52. package/form/FileField/FileFieldItemView.js +1 -1
  53. package/form/FileField/FileFieldView.d.ts +0 -1
  54. package/form/FileField/FileFieldView.js +1 -1
  55. package/form/HtmlField/HtmlFieldView.d.ts +0 -1
  56. package/form/ImageField/ImageFieldModalView.d.ts +0 -1
  57. package/form/ImageField/ImageFieldView.d.ts +1 -2
  58. package/form/ImageField/ImageFieldView.js +9 -9
  59. package/form/InputField/InputFieldView.d.ts +0 -1
  60. package/form/InputField/InputFieldView.scss +5 -4
  61. package/form/NumberField/NumberFieldView.d.ts +0 -1
  62. package/form/NumberField/NumberFieldView.scss +0 -1
  63. package/form/PasswordField/PasswordFieldView.d.ts +0 -1
  64. package/form/PasswordField/PasswordFieldView.js +11 -11
  65. package/form/PasswordField/PasswordFieldView.scss +221 -63
  66. package/form/RadioListField/RadioListFieldView.d.ts +0 -1
  67. package/form/RateField/RateFieldView.d.ts +0 -1
  68. package/form/RateField/RateFieldView.js +1 -1
  69. package/form/ReCaptchaField/ReCaptchaFieldView.d.ts +0 -1
  70. package/form/SliderField/SliderFieldView.d.ts +0 -1
  71. package/form/SwitcherField/SwitcherFieldView.d.ts +0 -1
  72. package/form/TextField/TextFieldView.d.ts +0 -1
  73. package/form/TimeField/TimeFieldView.d.ts +0 -1
  74. package/form/TimeField/TimeFieldView.js +1 -1
  75. package/form/TimeField/TimePanelView.d.ts +0 -1
  76. package/{icon/fontawesome.js → icons/index.js} +19 -6
  77. package/icons/svgs/accordion-chevron.svg +4 -0
  78. package/icons/svgs/badge-close.svg +3 -0
  79. package/icons/svgs/close.svg +4 -0
  80. package/icons/svgs/crossed-out-eye.svg +5 -0
  81. package/icons/svgs/default.svg +11 -0
  82. package/icons/svgs/error.svg +12 -0
  83. package/icons/svgs/info.svg +12 -0
  84. package/icons/svgs/loader.svg +3 -0
  85. package/icons/svgs/success.svg +4 -0
  86. package/icons/svgs/visible-eye.svg +4 -0
  87. package/icons/svgs/warning.svg +12 -0
  88. package/index.d.ts +14 -5
  89. package/index.js +16 -7
  90. package/index.scss +5 -3
  91. package/layout/Header/HeaderView.d.ts +0 -1
  92. package/layout/Header/HeaderView.js +1 -1
  93. package/layout/Header/HeaderView.scss +3 -3
  94. package/layout/Loader/LoaderView.d.ts +0 -1
  95. package/layout/Notifications/NotificationsItemView.d.ts +0 -1
  96. package/layout/Notifications/NotificationsView.d.ts +0 -1
  97. package/layout/ProgressBar/CircleProgressBarView.d.ts +0 -1
  98. package/layout/ProgressBar/CircleProgressBarView.js +5 -2
  99. package/layout/ProgressBar/LineProgressBarView.d.ts +0 -1
  100. package/layout/Skeleton/SkeletonView.d.ts +0 -1
  101. package/layout/Tooltip/TooltipView.d.ts +0 -1
  102. package/list/CheckboxColumn/CheckboxColumnView.d.ts +0 -1
  103. package/list/ControlsColumnView/ControlsColumnView.d.ts +0 -1
  104. package/list/Empty/EmptyView.d.ts +0 -1
  105. package/list/Grid/GridView.js +4 -4
  106. package/list/Grid/GridView.scss +28 -30
  107. package/list/List/ListItemView.d.ts +0 -1
  108. package/list/Pagination/PaginationButtonView.d.ts +0 -1
  109. package/list/Pagination/PaginationMoreView.d.ts +0 -1
  110. package/list/PaginationSize/PaginationSizeView.d.ts +0 -1
  111. package/list/Steps/StepItemView.d.ts +1 -2
  112. package/list/Steps/StepItemView.js +3 -3
  113. package/list/Steps/StepsView.d.ts +0 -1
  114. package/list/Steps/StepsView.js +1 -1
  115. package/modal/Modal/ModalView.d.ts +0 -1
  116. package/modal/TwoFactorModal/TwoFactorModalView.d.ts +0 -1
  117. package/nav/Breadcrubms/BreadcrumbsView.d.ts +0 -1
  118. package/nav/Controls/ControlsView.d.ts +0 -1
  119. package/nav/Nav/NavBarView.d.ts +0 -1
  120. package/nav/Nav/NavButtonView.d.ts +0 -1
  121. package/nav/Nav/NavIconView.d.ts +0 -1
  122. package/nav/Nav/NavLinkView.d.ts +0 -1
  123. package/nav/Nav/NavListView.d.ts +0 -1
  124. package/nav/Nav/NavTabsView.d.ts +0 -1
  125. package/nav/Tree/TreeView.d.ts +0 -1
  126. package/nav/Tree/TreeView.scss +9 -10
  127. package/package.json +55 -52
  128. package/scss/mixins/button.scss +50 -24
  129. package/scss/mixins/index.scss +2 -1
  130. package/scss/mixins/typography.scss +26 -0
  131. package/scss/variables/common/colors.scss +168 -0
  132. package/scss/variables/common/media.scss +2 -0
  133. package/scss/variables/common/old-variables.scss +24 -0
  134. package/scss/variables/common/radiuses.scss +5 -0
  135. package/scss/variables/common/spacing.scss +12 -0
  136. package/scss/variables/common/typography.scss +107 -0
  137. package/scss/variables/components/calendar.scss +1 -1
  138. package/scss/variables/components/card.scss +1 -1
  139. package/scss/variables/components/icon.scss +1 -1
  140. package/scss/variables/components/input.scss +3 -11
  141. package/scss/variables/components/ratefield.scss +1 -1
  142. package/scss/variables/index.scss +6 -3
  143. package/typography/Text/TextView.d.ts +3 -0
  144. package/typography/Text/TextView.js +46 -0
  145. package/typography/Text/TextView.scss +15 -0
  146. package/typography/Title/TitleView.d.ts +3 -0
  147. package/typography/Title/TitleView.js +50 -0
  148. package/typography/Title/TitleView.scss +15 -0
  149. package/content/Collapse/CollapseItemView.d.ts +0 -3
  150. package/content/Collapse/CollapseItemView.js +0 -64
  151. package/content/Collapse/CollapseItemView.scss +0 -88
  152. package/content/Collapse/CollapseView.d.ts +0 -3
  153. package/content/Collapse/CollapseView.scss +0 -15
  154. package/icon/Icon/IconView.scss +0 -25
  155. package/icon/Icon/index.d.ts +0 -1
  156. package/icon/Icon/index.js +0 -16
  157. package/scss/variables/colors.scss +0 -74
  158. package/scss/variables/components/alert.scss +0 -9
  159. package/scss/variables/components/avatar.scss +0 -17
  160. /package/{icon → content}/Icon/IconView.js +0 -0
  161. /package/{icon/fontawesome.d.ts → icons/index.d.ts} +0 -0
@@ -1,103 +1,157 @@
1
+ :root {
2
+ --border-width-small: 1px;
3
+ --border-width-medium: 2px;
4
+ --border-width-large: 2px;
5
+ --border-width: var(--border-width-large);
6
+
7
+ --status-border-width-small: 1px;
8
+ --status-border-width-medium: 2px;
9
+ --status-border-width-large: 4px;
10
+ --status-border-width: var(--status-border-width-large);
11
+
12
+ --status-size-small: 8px;
13
+ --status-size-medium: 12px;
14
+ --status-size-large: 14px;
15
+ --status-size: var(--status-size-x-large);
16
+ }
1
17
 
2
- .AvatarView {
3
- $root: &;
4
-
5
- display: inline-block;
6
- position: relative;
7
-
8
- &_size {
9
- &_x-large {
10
- #{$root}__body {
11
- height: $avatar-x-large-size;
12
- width: $avatar-x-large-size;
13
- line-height: $avatar-x-large-size;
14
- font-size: $avatar-x-large-font-size;
15
- }
18
+ @mixin border($background) {
19
+ &::before {
20
+ content: "";
21
+ position: absolute;
22
+ inset: 0;
23
+ top: 50%;
24
+ left: 50%;
25
+ transform: translate(-50%, -50%);
26
+ padding: 53%;
27
+ border-radius: 100%;
28
+ border: var(--border-width) solid transparent;
29
+ background: $background border-box;
30
+ -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
31
+ -webkit-mask-composite: xor;
32
+ mask-composite: exclude;
16
33
  }
34
+ }
17
35
 
18
- &_large {
19
- #{$root}__body {
20
- height: $avatar-large-size;
21
- width: $avatar-large-size;
22
- line-height: $avatar-large-size;
23
- font-size: $avatar-large-font-size;
24
- }
25
- }
36
+ .AvatarView {
37
+ $root: &;
26
38
 
27
- &_middle {
28
- #{$root}__body {
29
- height: $avatar-middle-size;
30
- width: $avatar-middle-size;
31
- line-height: $avatar-middle-size;
32
- font-size: $avatar-middle-font-size;
33
- }
34
- }
39
+ display: inline-block;
40
+ position: relative;
41
+ aspect-ratio: 1;
35
42
 
36
- &_small {
37
- #{$root}__body {
38
- height: $avatar-small-size;
39
- width: $avatar-small-size;
40
- line-height: $avatar-small-size;
41
- font-size: $avatar-small-font-size;
42
- }
43
+ &_has-custom-status {
44
+ --status-size: 25%;
45
+ --status-border-width: 2px;
43
46
  }
44
- }
45
47
 
46
- &_shape {
47
- &_square {
48
- #{$root}__body{
49
- border-radius: unset;
50
- }
48
+ &_size {
49
+
50
+ &_large {
51
+ #{$root}__body {
52
+ height: 64px;
53
+ width: 64px;
54
+ line-height: 64px;
55
+ font-size: $font-size-base;
56
+ }
57
+ --border-width: var(--border-width-large);
58
+ --status-border-width: var(--status-border-width-large);
59
+ --status-size: var(--status-size-large);
60
+ }
61
+
62
+ &_middle {
63
+ #{$root}__body {
64
+ height: 46px;
65
+ width: 46px;
66
+ line-height: 46px;
67
+ font-size: $font-size-sm;
68
+ }
69
+ --border-width: var(--border-width-medium);
70
+ --status-border-width: var(--status-border-width-medium);
71
+ --status-size: var(--status-size-medium);
72
+ }
73
+
74
+ &_small {
75
+ #{$root}__body {
76
+ height: 28px;
77
+ width: 28px;
78
+ line-height: 28px;
79
+ font-size: $font-size-xs;
80
+ }
81
+ --border-width: var(--border-width-small);
82
+ --status-border-width: var(--status-border-width-small);
83
+ --status-size: var(--status-size-small);
84
+ }
51
85
  }
52
86
 
53
- &_circle {
54
- #{$root}__body{
55
- border-radius: 50%;
56
- }
87
+ &_shape {
88
+ &_square {
89
+ #{$root}__body {
90
+ border-radius: unset;
91
+ }
92
+ }
93
+
94
+ &_circle {
95
+ #{$root}__body {
96
+ border-radius: 50%;
97
+ }
98
+ }
57
99
  }
58
- }
59
100
 
60
- &_has-image {
61
- #{$root}__body{
62
- background-color: unset;
101
+ &_has-image {
102
+ #{$root}__body {
103
+ background-color: unset;
104
+ }
63
105
  }
64
- }
65
-
66
- &_has-status {
67
- ::after {
68
- content: '';
69
- position: absolute;
70
- right: 0;
71
- bottom: 0;
72
- width: 25%;
73
- height: 25%;
74
- z-index: 10;
75
-
76
- color: $avatar-status-color;
77
- font-size: 6px;
78
-
79
- border-radius: 50%;
80
- background-color: $avatar-status-color;
81
- border: $avatar-status-border;
82
- }
83
- }
84
106
 
85
- &__body {
86
- display: inline-block;
87
- overflow: hidden;
107
+ &_has-status {
108
+ &::after {
109
+ content: "";
110
+ position: absolute;
111
+ box-sizing: content-box;
112
+ right: -6%;
113
+ bottom: -6%;
114
+ width: var(--status-size);
115
+ height: var(--status-size);
116
+ z-index: 10;
117
+
118
+ color: $success;
88
119
 
89
- text-align: center;
90
- white-space: nowrap;
91
- vertical-align: middle;
120
+ border-radius: $radius-circle;
121
+ background-color: $success;
92
122
 
93
- color: $avatar-text-color;
94
- background-color: $avatar-background-color;
123
+ border: var(--status-border-width) solid $white;
124
+ }
125
+ }
126
+
127
+ &_has-border {
128
+ @include border($gradient-blue);
129
+ }
95
130
 
96
- img {
97
- display: block;
98
- width: 100%;
99
- height: 100%;
100
- object-fit: cover;
131
+ &__body {
132
+ display: inline-block;
133
+ overflow: hidden;
134
+
135
+ text-align: center;
136
+ white-space: nowrap;
137
+ vertical-align: middle;
138
+
139
+ color: $white;
140
+ background: $gradient-blue border-box;
141
+ border: 1px solid #fff;
142
+
143
+ span {
144
+ display: block;
145
+ font-family: $font-family-nunito;
146
+ font-weight: 800;
147
+ letter-spacing: 0.1em;
148
+ }
149
+
150
+ img {
151
+ display: block;
152
+ width: 100%;
153
+ height: 100%;
154
+ object-fit: cover;
155
+ }
101
156
  }
102
- }
103
157
  }
@@ -0,0 +1,3 @@
1
+ import { IBadgeViewProps } from '@steroidsjs/core/ui/content/Badge/Badge';
2
+ import './BadgeView.scss';
3
+ export default function BadgeView(props: IBadgeViewProps): JSX.Element;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ exports.__esModule = true;
6
+ var react_1 = __importDefault(require("react"));
7
+ var useBem_1 = __importDefault(require("@steroidsjs/core/hooks/useBem"));
8
+ var Icon_1 = __importDefault(require("@steroidsjs/core/ui/content/Icon"));
9
+ require("./BadgeView.scss");
10
+ function BadgeView(props) {
11
+ var _a;
12
+ var bem = (0, useBem_1["default"])('BadgeView');
13
+ return (props.isExist && (react_1["default"].createElement("div", { className: bem(bem.block((_a = {},
14
+ _a[props.type] = !!props.type,
15
+ _a[props.size] = !!props.size,
16
+ _a[props.roundingStyle] = !!props.roundingStyle,
17
+ _a['has-counter'] = !!props.counter,
18
+ _a)), props.className), style: props.style },
19
+ react_1["default"].createElement("div", { className: bem.element('wrapper') },
20
+ react_1["default"].createElement("div", { className: bem.element('content') },
21
+ react_1["default"].createElement("span", { className: bem.element('message') }, props.message),
22
+ props.counter && (react_1["default"].createElement("span", { className: bem.element('counter') }, typeof props.counter === 'object' && (react_1["default"].createElement("span", { className: bem.element('counter-content') }, props.counter.content)))),
23
+ props.showClose && (react_1["default"].createElement(Icon_1["default"], { onClick: props.onClose, className: bem.element('close'), name: 'badge-close' })))))));
24
+ }
25
+ exports["default"] = BadgeView;
@@ -0,0 +1,107 @@
1
+ @import "../../scss/variables";
2
+
3
+ .BadgeView {
4
+ $root: &;
5
+
6
+ display: inline-block;
7
+ position: relative;
8
+ width: fit-content;
9
+
10
+ font-family: $font-family-nunito;
11
+ color: $white;
12
+ font-weight: $font-weight-sm;
13
+
14
+ &__content {
15
+ display: flex;
16
+ flex-direction: row;
17
+ align-items: center;
18
+
19
+ #{$root}__message {
20
+ margin-right: 4px;
21
+ }
22
+ }
23
+
24
+ $badge-types: (
25
+ "primary": $primary,
26
+ "secondary": $secondary,
27
+ "success": $success,
28
+ "danger": $danger,
29
+ "warning": $warning,
30
+ "info": $info,
31
+ );
32
+
33
+ @each $type, $color in $badge-types {
34
+ &_#{$type} {
35
+ background-color: $color;
36
+
37
+ @if ($type == "warning" or $type == "info") {
38
+ color: $text-color;
39
+
40
+ #{$root}__close {
41
+ svg {
42
+ path {
43
+ stroke: #000;
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ &_squarer {
52
+ border-radius: $radius-small;
53
+ }
54
+
55
+ &_rounder {
56
+ border-radius: $radius-xlarge;
57
+ }
58
+
59
+ &_large {
60
+ padding: 4px 8px;
61
+ }
62
+
63
+ &_medium {
64
+ padding: 2px 8px;
65
+ }
66
+
67
+ &_small {
68
+ padding: 0 8px;
69
+ }
70
+
71
+ &_has-counter {
72
+ border: 1px solid #e9e9e9;
73
+ border-radius: 100px;
74
+
75
+ background: $light-gray;
76
+ color: $text-color;
77
+ padding: 4px 12px;
78
+
79
+ #{$root}__message {
80
+ margin-right: 8px;
81
+ }
82
+
83
+ #{$root}__counter {
84
+ margin-right: 8px;
85
+ width: 18px;
86
+ background-color: $white;
87
+ display: flex;
88
+ justify-content: center;
89
+ align-items: center;
90
+ border-radius: $radius-circle;
91
+ }
92
+
93
+ #{$root}__counter-content {
94
+ font-weight: $font-weight-sm;
95
+ font-size: $font-size-xs;
96
+ line-height: 16px;
97
+ }
98
+
99
+ #{$root}__close {
100
+ svg {
101
+ path {
102
+ stroke: #000;
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { ICalendarViewProps } from '@steroidsjs/core/ui/content/Calendar/Calendar';
3
2
  export default function CalendarView(props: ICalendarViewProps): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { CaptionElementProps } from 'react-day-picker/types/Props';
3
2
  import { ICalendarViewProps } from '@steroidsjs/core/ui/content/Calendar/Calendar';
4
3
  interface ICaptionElementProps extends CaptionElementProps, Pick<ICalendarViewProps, 'fromYear' | 'toYear' | 'isCaptionPanelVisible' | 'toggleCaptionPanel'> {
@@ -29,7 +29,7 @@ exports.__esModule = true;
29
29
  var React = __importStar(require("react"));
30
30
  var react_1 = require("react");
31
31
  var hooks_1 = require("@steroidsjs/core/hooks");
32
- var Icon_1 = __importDefault(require("@steroidsjs/core/ui/icon/Icon"));
32
+ var Icon_1 = __importDefault(require("@steroidsjs/core/ui/content/Icon"));
33
33
  var upperFirst_1 = __importDefault(require("lodash-es/upperFirst"));
34
34
  function CaptionElement(props) {
35
35
  var bem = (0, hooks_1.useBem)('CaptionElement');
@@ -1,3 +1,5 @@
1
+ $border-color: gray;
2
+
1
3
  .CaptionElement {
2
4
  height: 45px;
3
5
  display: table-caption;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { ICardViewProps } from '@steroidsjs/core/ui/content/Card/Card';
3
2
  export default function CardView(props: ICardViewProps): JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { IDetailViewProps } from '@steroidsjs/core/ui/content/Detail/Detail';
3
2
  export default function DetailView(props: IDetailViewProps): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IDropDownViewProps } from '@steroidsjs/core/ui/content/DropDown/DropDown';
3
2
  import './DropDownView.scss';
4
3
  export default function DropDownView(props: IDropDownViewProps): JSX.Element;
@@ -42,9 +42,12 @@ function DropDownView(props) {
42
42
  var contentProps = (0, react_1.useMemo)(function () { return ({
43
43
  onClose: props.onClose
44
44
  }); }, [props.onClose]);
45
- var content = props.content();
46
- if ((0, isFunction_1["default"])(content)) {
47
- content = ui.renderView(content, contentProps);
45
+ var content;
46
+ if (props.content) {
47
+ content = props.content();
48
+ if ((0, isFunction_1["default"])(content)) {
49
+ content = ui.renderView(content, contentProps);
50
+ }
48
51
  }
49
52
  return (React.createElement("div", { ref: props.forwardedRef, className: bem(bem.block((_a = {
50
53
  show: props.isComponentVisible
@@ -1,31 +1,200 @@
1
+ @import "../../scss/variables/";
2
+
3
+ :root {
4
+ --dropdown-background: #fff;
5
+ --dropdown-triangle-border: #eef1f2;
6
+ --dropdown-triangle-svg: url("data:image/svg+xml,%3Csvg width='21' height='11' viewBox='0 0 21 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19.0416 0.5L10.1719 10.2567L1.30215 0.499998L19.0416 0.5Z' fill='white' stroke='%23EEF1F2'/%3E%3C/svg%3E%0A");
7
+ }
8
+
9
+ html[data-theme="dark"] {
10
+ --dropdown-background: #4e4f57;
11
+ --dropdown-triangle-border: transparent;
12
+ --dropdown-triangle-svg: url("data:image/svg+xml,%3Csvg width='21' height='11' viewBox='0 0 21 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.1719 11L0.171876 -1.74846e-06L20.1719 0L10.1719 11Z' fill='%234E4F57'/%3E%3C/svg%3E%0A");
13
+ }
14
+
15
+ $dropdown-background: var(--dropdown-background);
16
+ $dropdown-triangle-border: var(--triangle-border);
17
+ $dropdown-triangle-svg: var(--dropdown-triangle-svg);
18
+
1
19
  $gap: 12px;
2
20
 
21
+ %triangle {
22
+ content: "";
23
+ position: absolute;
24
+ width: 20px;
25
+ height: 11px;
26
+ z-index: 2;
27
+ background-image: $dropdown-triangle-svg;
28
+ }
29
+
30
+ %borderShaper {
31
+ content: "";
32
+ position: absolute;
33
+ z-index: 3;
34
+
35
+ width: 16px;
36
+ height: 1px;
37
+ background-color: $dropdown-background;
38
+ border-left: 2px solid $dropdown-triangle-border;
39
+ border-right: 2px solid $dropdown-triangle-border;
40
+ }
41
+
42
+ @mixin drop($edge, $padding) {
43
+ @if ($edge == "top") {
44
+ &::before {
45
+ @extend %triangle;
46
+
47
+ top: 100%;
48
+ left: $padding;
49
+ transform: translateX(-50%);
50
+ }
51
+
52
+ &::after {
53
+ @extend %borderShaper;
54
+
55
+ top: 100%;
56
+ left: $padding;
57
+ transform: translateX(-50%);
58
+ }
59
+ } @else if ($edge == "bottom") {
60
+ &::before {
61
+ @extend %triangle;
62
+
63
+ top: 0;
64
+ left: $padding;
65
+ top: -11px;
66
+ transform: translateX(-50%) rotate(180deg);
67
+ }
68
+
69
+ &::after {
70
+ @extend %borderShaper;
71
+
72
+ transform: translateX(-50%);
73
+ top: -1px;
74
+ left: $padding;
75
+ }
76
+ } @else if($edge == "left") {
77
+ &::before {
78
+ @extend %triangle;
79
+
80
+ left: 100%;
81
+ top: $padding;
82
+ transform: translateX(-22.5%) rotate(-90deg);
83
+ }
84
+
85
+ &::after {
86
+ @extend %borderShaper;
87
+
88
+ left: 100%;
89
+ top: $padding;
90
+ transform: rotate(-90deg) translate(-30%, -7.5px) ;
91
+ }
92
+ }
93
+ @else if($edge == "right") {
94
+ &::before {
95
+ @extend %triangle;
96
+
97
+ right: 100%;
98
+ top: $padding;
99
+ transform: translateX(22.5%) rotate(90deg);
100
+ }
101
+
102
+ &::after {
103
+ @extend %borderShaper;
104
+
105
+ right: 100%;
106
+ top: $padding;
107
+ transform: rotate(-90deg) translate(-30%, 7.5px) ;
108
+ }
109
+ }
110
+ }
111
+
3
112
  .DropDownView {
4
- z-index: 1000;
5
- position: absolute;
6
-
7
- transform: translate(0,0);
8
- opacity: 0;
9
- transition: opacity .15s ease-in, transform .15s ease-in;
10
-
11
- border-radius: 4px;
12
- border: 1px solid #ccc;
13
- background-color: #fff;
14
- box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
15
-
16
- &_show {
17
- opacity: 1;
18
- }
19
- &_position-top, &_position-topLeft, &_position-topRight {
20
- transform: translateY(-$gap);
21
- }
22
- &_position-bottom, &_position-bottomLeft, &_position-bottomRight {
23
- transform: translateY($gap);
24
- }
25
- &_position-left, &_position-leftTop, &_position-leftBottom {
26
- transform: translateX(-$gap);
27
- }
28
- &_position-right, &_position-rightTop, &_position-rightBottom{
29
- transform: translateX($gap);
30
- }
113
+ $root: &;
114
+
115
+ z-index: 1000;
116
+ position: absolute;
117
+
118
+ transform: translate(0, 0);
119
+ opacity: 0;
120
+ transition: opacity 0.15s ease-in, transform 0.15s ease-in;
121
+
122
+ z-index: 4;
123
+ width: 200px;
124
+ padding: 12px;
125
+ border-radius: $radius-large;
126
+ background-color: $dropdown-background;
127
+ border: 1px solid $gray;
128
+
129
+ &_show {
130
+ opacity: 1;
131
+ }
132
+ &_position-top,
133
+ &_position-topLeft,
134
+ &_position-topRight {
135
+ transform: translateY(-$gap);
136
+ }
137
+ &_position-bottom,
138
+ &_position-bottomLeft,
139
+ &_position-bottomRight {
140
+ transform: translateY($gap);
141
+ }
142
+ &_position-left,
143
+ &_position-leftTop,
144
+ &_position-leftBottom {
145
+ transform: translateX(-$gap);
146
+ }
147
+ &_position-right,
148
+ &_position-rightTop,
149
+ &_position-rightBottom {
150
+ transform: translateX($gap);
151
+ }
152
+
153
+ &_position-top {
154
+ @include drop("top", 50%);
155
+ }
156
+
157
+ &_position-topLeft {
158
+ @include drop("top", 15%);
159
+ }
160
+
161
+ &_position-topRight {
162
+ @include drop("top", 85%);
163
+ }
164
+
165
+ &_position-bottom {
166
+ @include drop("bottom", 50%);
167
+ }
168
+
169
+ &_position-bottomLeft {
170
+ @include drop("bottom", 15%);
171
+ }
172
+
173
+ &_position-bottomRight {
174
+ @include drop("bottom", 85%);
175
+ }
176
+
177
+ &_position-left {
178
+ @include drop("left", 46.5%);
179
+ }
180
+
181
+ &_position-leftTop {
182
+ @include drop("left", 12.5%)
183
+ }
184
+
185
+ &_position-leftBottom {
186
+ @include drop("left", 80%)
187
+ }
188
+
189
+ &_position-right {
190
+ @include drop("right", 46.5%);
191
+ }
192
+
193
+ &_position-rightTop {
194
+ @include drop("right", 12.5%);
195
+ }
196
+
197
+ &_position-rightBottom {
198
+ @include drop("right", 80%);
199
+ }
31
200
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IBemHocOutput } from '@steroidsjs/core/hoc/bem';
3
- import { IIconViewProps } from '@steroidsjs/core/ui/icon/Icon/Icon';
2
+ import { IIconViewProps } from '@steroidsjs/core/ui/content/Icon/Icon';
4
3
  export default function IconView(props: IIconViewProps & IBemHocOutput): JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { ICrudViewProps } from '@steroidsjs/core/ui/crud/Crud/Crud';
3
2
  export default function CrudView(props: ICrudViewProps): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IBemHocOutput } from '@steroidsjs/core/hoc/bem';
3
2
  import { IAutoCompleteFieldViewProps } from '@steroidsjs/core/ui/form/AutoCompleteField/AutoCompleteField';
4
3
  import './AutoCompleteFieldView.scss';