@steroidsjs/bootstrap 3.0.0-beta.106 → 3.0.0-beta.108

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 (64) hide show
  1. package/content/CalendarSystem/MonthGrid/MonthGrid.js +2 -13
  2. package/content/CalendarSystem/MonthGrid/MonthGrid.scss +1 -91
  3. package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.d.ts +9 -0
  4. package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.js +57 -0
  5. package/content/CalendarSystem/MonthGrid/views/MonthDay/MonthDay.scss +125 -0
  6. package/content/CalendarSystem/MonthGrid/views/MonthDay/index.d.ts +2 -0
  7. package/content/CalendarSystem/MonthGrid/views/MonthDay/index.js +7 -0
  8. package/content/CalendarSystem/WeekGrid/WeekGrid.js +1 -1
  9. package/content/CalendarSystem/WeekGrid/WeekGrid.scss +5 -76
  10. package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.d.ts +0 -2
  11. package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.js +39 -15
  12. package/content/CalendarSystem/WeekGrid/views/WeekHour/WeekHour.scss +98 -8
  13. package/content/Kanban/KanbanView.d.ts +2 -0
  14. package/content/Kanban/KanbanView.js +29 -0
  15. package/content/Kanban/KanbanView.scss +12 -0
  16. package/content/Kanban/views/KanbanColumn/KanbanColumnView.d.ts +2 -0
  17. package/content/Kanban/views/KanbanColumn/KanbanColumnView.js +36 -0
  18. package/content/Kanban/views/KanbanColumn/KanbanColumnView.scss +75 -0
  19. package/content/Kanban/views/KanbanColumn/index.d.ts +2 -0
  20. package/content/Kanban/views/KanbanColumn/index.js +7 -0
  21. package/content/Kanban/views/KanbanModal/KanbanModalView.d.ts +2 -0
  22. package/content/Kanban/views/KanbanModal/KanbanModalView.js +57 -0
  23. package/content/Kanban/views/KanbanModal/KanbanModalView.scss +199 -0
  24. package/content/Kanban/views/KanbanModal/index.d.ts +2 -0
  25. package/content/Kanban/views/KanbanModal/index.js +7 -0
  26. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/CreateOrEditTaskModalContentView.d.ts +2 -0
  27. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/CreateOrEditTaskModalContentView.js +93 -0
  28. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/index.d.ts +2 -0
  29. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/index.js +7 -0
  30. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/Label/Label.d.ts +6 -0
  31. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/Label/Label.js +11 -0
  32. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/Label/index.d.ts +2 -0
  33. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/Label/index.js +7 -0
  34. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/TagsSelector/TagsSelector.d.ts +8 -0
  35. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/TagsSelector/TagsSelector.js +49 -0
  36. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/TagsSelector/TagsSelector.scss +30 -0
  37. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/TagsSelector/index.d.ts +2 -0
  38. package/content/Kanban/views/KanbanModal/views/CreateOrEditTaskModalContent/views/TagsSelector/index.js +7 -0
  39. package/content/Kanban/views/KanbanModal/views/TaskDetailsModalContent/TaskDetailsModalContentView.d.ts +2 -0
  40. package/content/Kanban/views/KanbanModal/views/TaskDetailsModalContent/TaskDetailsModalContentView.js +53 -0
  41. package/content/Kanban/views/KanbanModal/views/TaskDetailsModalContent/index.d.ts +2 -0
  42. package/content/Kanban/views/KanbanModal/views/TaskDetailsModalContent/index.js +7 -0
  43. package/content/Kanban/views/KanbanTask/KanbanTaskView.d.ts +5 -0
  44. package/content/Kanban/views/KanbanTask/KanbanTaskView.js +66 -0
  45. package/content/Kanban/views/KanbanTask/KanbanTaskView.scss +110 -0
  46. package/content/Kanban/views/KanbanTask/index.d.ts +2 -0
  47. package/content/Kanban/views/KanbanTask/index.js +7 -0
  48. package/content/Kanban/views/TaskTags/TaskTags.d.ts +9 -0
  49. package/content/Kanban/views/TaskTags/TaskTags.js +14 -0
  50. package/content/Kanban/views/TaskTags/TaskTags.scss +7 -0
  51. package/content/Kanban/views/TaskTags/index.d.ts +2 -0
  52. package/content/Kanban/views/TaskTags/index.js +7 -0
  53. package/form/DropDownField/DropDownFieldView.scss +3 -2
  54. package/index.d.ts +12 -0
  55. package/index.js +12 -0
  56. package/index.scss +4 -0
  57. package/package.json +2 -2
  58. package/scss/mixins/button.scss +24 -8
  59. package/scss/mixins/index.scss +1 -0
  60. package/scss/mixins/tooltip.scss +23 -0
  61. package/scss/variables/common/colors.scss +5 -2
  62. package/scss/variables/common/typography.scss +13 -0
  63. package/utils/getFormattedExpandLabel.d.ts +1 -0
  64. package/utils/getFormattedExpandLabel.js +5 -0
@@ -0,0 +1,6 @@
1
+ interface ILabelProps {
2
+ content: string;
3
+ className: string;
4
+ }
5
+ export default function Label(props: ILabelProps): JSX.Element;
6
+ export {};
@@ -0,0 +1,11 @@
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 typography_1 = require("@steroidsjs/core/ui/typography");
8
+ function Label(props) {
9
+ return (react_1["default"].createElement(typography_1.Text, { className: props.className, type: 'body2', content: props.content, color: "light-dark" }));
10
+ }
11
+ exports["default"] = Label;
@@ -0,0 +1,2 @@
1
+ import Label from './Label';
2
+ export default Label;
@@ -0,0 +1,7 @@
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 Label_1 = __importDefault(require("./Label"));
7
+ exports["default"] = Label_1["default"];
@@ -0,0 +1,8 @@
1
+ import { ITaskTag } from '@steroidsjs/core/ui/content/Kanban/Kanban';
2
+ import './TagsSelector.scss';
3
+ interface ITagsSelectorProps {
4
+ tags?: ITaskTag[];
5
+ formId?: string;
6
+ }
7
+ export default function TagsSelector(props: ITagsSelectorProps): JSX.Element;
8
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ exports.__esModule = true;
29
+ var react_1 = __importStar(require("react"));
30
+ var hooks_1 = require("@steroidsjs/core/hooks");
31
+ var form_1 = require("@steroidsjs/core/reducers/form");
32
+ var form_2 = require("@steroidsjs/core/ui/form");
33
+ var TaskTags_1 = __importDefault(require("../../../../../TaskTags"));
34
+ require("./TagsSelector.scss");
35
+ function TagsSelector(props) {
36
+ var bem = (0, hooks_1.useBem)('TagsSelector');
37
+ var selectedTags = (0, hooks_1.useSelector)(function (state) { return (0, form_1.getFormValues)(state, props.formId); }).tags;
38
+ var taskTags = (0, react_1.useMemo)(function () { return (props.tags.filter(function (tag) { return selectedTags === null || selectedTags === void 0 ? void 0 : selectedTags.includes(tag.id); })); }, [props.tags, selectedTags]);
39
+ var tagsList = (0, react_1.useMemo)(function () { return (props.tags.map(function (tag) { return ({
40
+ id: tag.id,
41
+ label: tag.message,
42
+ contentType: 'icon',
43
+ contentSrc: react_1["default"].createElement("div", { className: bem.element('tag-color', tag.type) })
44
+ }); })); }, [bem, props.tags]);
45
+ return (react_1["default"].createElement("div", { className: bem.block() },
46
+ !!(selectedTags === null || selectedTags === void 0 ? void 0 : selectedTags.length) && (react_1["default"].createElement(TaskTags_1["default"], { tags: taskTags })),
47
+ react_1["default"].createElement(form_2.DropDownField, { attribute: "tags", placeholder: __('Выберите теги'), multiple: true, items: tagsList, selectedIds: selectedTags, autoComplete: true, outline: true })));
48
+ }
49
+ exports["default"] = TagsSelector;
@@ -0,0 +1,30 @@
1
+ @use "../../../../../../../../scss/variables";
2
+
3
+ .TagsSelector {
4
+ $root: &;
5
+
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 16px;
9
+
10
+ $tag-types: (
11
+ "primary": variables.$primary,
12
+ "secondary": variables.$secondary,
13
+ "success": variables.$success,
14
+ "danger": variables.$danger,
15
+ "warning": variables.$warning,
16
+ "info": variables.$info,
17
+ );
18
+
19
+ @each $type, $color in $tag-types {
20
+ &__tag-color_#{$type} {
21
+ background-color: $color;
22
+ }
23
+ }
24
+
25
+ &__tag-color {
26
+ width: 12px;
27
+ height: 12px;
28
+ border-radius: 4px;
29
+ }
30
+ }
@@ -0,0 +1,2 @@
1
+ import TagsSelector from './TagsSelector';
2
+ export default TagsSelector;
@@ -0,0 +1,7 @@
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 TagsSelector_1 = __importDefault(require("./TagsSelector"));
7
+ exports["default"] = TagsSelector_1["default"];
@@ -0,0 +1,2 @@
1
+ import { IKanbanTaskDetailsModalViewProps } from '@steroidsjs/core/ui/content/Kanban/Kanban';
2
+ export default function TaskDetailsModalContentView(props: IKanbanTaskDetailsModalViewProps): JSX.Element;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ exports.__esModule = true;
29
+ var react_1 = __importStar(require("react"));
30
+ var content_1 = require("@steroidsjs/core/ui/content");
31
+ var typography_1 = require("@steroidsjs/core/ui/typography");
32
+ var KanbanPrioritiesEnum_1 = __importDefault(require("@steroidsjs/core/ui/content/Kanban/enums/KanbanPrioritiesEnum"));
33
+ function TaskDetailsModalContentView(props) {
34
+ var _a;
35
+ var _b = props.task, tags = _b.tags, priority = _b.priority, description = _b.description, assigner = _b.assigner;
36
+ var toTags = (0, react_1.useCallback)(function (tag) { return (react_1["default"].createElement(content_1.Badge, { key: tag.id, size: "md", roundingStyle: "squarer", message: tag.message, type: tag.type })); }, []);
37
+ var priorityLabel = (0, react_1.useMemo)(function () { return KanbanPrioritiesEnum_1["default"].getLabel(priority === null || priority === void 0 ? void 0 : priority.type); }, [priority === null || priority === void 0 ? void 0 : priority.type]);
38
+ var priorityColor = (0, react_1.useMemo)(function () { return KanbanPrioritiesEnum_1["default"].getColorByType(priority === null || priority === void 0 ? void 0 : priority.type); }, [priority === null || priority === void 0 ? void 0 : priority.type]);
39
+ return (react_1["default"].createElement("div", { className: props.bem.element('content') },
40
+ description && (react_1["default"].createElement(typography_1.Text, { type: "body", content: description, tag: "p" })),
41
+ !!(tags === null || tags === void 0 ? void 0 : tags.length) && (react_1["default"].createElement("div", { className: props.bem.element('row', 'tags') }, tags.map(toTags))),
42
+ react_1["default"].createElement("div", { className: props.bem.element('row') },
43
+ react_1["default"].createElement(typography_1.Text, { className: props.bem.element('label'), type: 'body3', content: __('Приоритет'), color: "light-dark" }),
44
+ react_1["default"].createElement("div", { className: props.bem.element('data') },
45
+ react_1["default"].createElement(content_1.Badge, { size: "md", roundingStyle: "squarer", message: priorityLabel, type: priorityColor }))),
46
+ assigner && (react_1["default"].createElement("div", { className: props.bem.element('row') },
47
+ react_1["default"].createElement(typography_1.Text, { className: props.bem.element('label'), type: 'body3', content: __('Исполнитель'), color: "light-dark" }),
48
+ react_1["default"].createElement("div", { className: props.bem.element('data') },
49
+ react_1["default"].createElement("div", { className: props.bem.element('assigner') },
50
+ react_1["default"].createElement(content_1.Avatar, { src: (_a = assigner.avatar) === null || _a === void 0 ? void 0 : _a.src, title: assigner.firstName, size: 'sm' }),
51
+ react_1["default"].createElement(typography_1.Text, { type: "body", content: "".concat(assigner.firstName || '', " ").concat(assigner.lastName || '') })))))));
52
+ }
53
+ exports["default"] = TaskDetailsModalContentView;
@@ -0,0 +1,2 @@
1
+ import TaskDetailsModalContentView from './TaskDetailsModalContentView';
2
+ export default TaskDetailsModalContentView;
@@ -0,0 +1,7 @@
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 TaskDetailsModalContentView_1 = __importDefault(require("./TaskDetailsModalContentView"));
7
+ exports["default"] = TaskDetailsModalContentView_1["default"];
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { IKanbanTaskViewProps } from '@steroidsjs/core/ui/content/Kanban/Kanban';
3
+ declare function KanbanTaskView(props: IKanbanTaskViewProps): JSX.Element;
4
+ declare const _default: React.MemoExoticComponent<typeof KanbanTaskView>;
5
+ export default _default;
@@ -0,0 +1,66 @@
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
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ exports.__esModule = true;
40
+ var react_1 = __importStar(require("react"));
41
+ var hooks_1 = require("@steroidsjs/core/hooks");
42
+ var Avatar_1 = __importDefault(require("@steroidsjs/core/ui/content/Avatar/Avatar"));
43
+ var typography_1 = require("@steroidsjs/core/ui/typography");
44
+ var TaskTags_1 = __importDefault(require("../TaskTags"));
45
+ function KanbanTaskView(props) {
46
+ var bem = (0, hooks_1.useBem)('KanbanTaskView');
47
+ var _a = props.task, id = _a.id, title = _a.title, description = _a.description, tags = _a.tags, assigner = _a.assigner, priority = _a.priority;
48
+ var Draggable = props.draggableComponent;
49
+ return (react_1["default"].createElement(Draggable, { draggableId: id.toString(), index: props.index }, function (provided) {
50
+ var _a;
51
+ return (react_1["default"].createElement("div", __assign({ className: bem.block() }, provided.draggableProps, provided.dragHandleProps, { ref: provided.innerRef }),
52
+ react_1["default"].createElement("div", { className: bem.element('wrapper') },
53
+ react_1["default"].createElement("div", { className: bem.element('content') },
54
+ react_1["default"].createElement("div", { className: bem.element('header') },
55
+ react_1["default"].createElement("h4", { className: bem.element('title'), "aria-hidden": "true", onClick: function () { return props.onOpenTaskDetailsModal(props.task, props.columnId); } },
56
+ react_1["default"].createElement("span", { className: bem.element('task-id') }, __("#".concat(id, " "))),
57
+ title)),
58
+ description && (react_1["default"].createElement(typography_1.Text, { type: 'body2', content: description, className: bem.element('description') }))),
59
+ react_1["default"].createElement("div", { className: bem.element('footer') },
60
+ tags && (react_1["default"].createElement(TaskTags_1["default"], { tags: tags })),
61
+ assigner && (react_1["default"].createElement("div", { className: bem.element('assigner') },
62
+ react_1["default"].createElement(Avatar_1["default"], { src: (_a = assigner.avatar) === null || _a === void 0 ? void 0 : _a.src, title: "".concat(assigner.firstName, " ").concat(assigner.lastName), size: 'sm' }))))),
63
+ priority && (react_1["default"].createElement("span", { className: bem.element('priority', !!priority && "".concat(priority.type)) }))));
64
+ }));
65
+ }
66
+ exports["default"] = (0, react_1.memo)(KanbanTaskView);
@@ -0,0 +1,110 @@
1
+ @use "../../../../scss/variables";
2
+
3
+ :root {
4
+ --kanban-background-color: #fff;
5
+ }
6
+
7
+ html[data-theme="dark"] {
8
+ --kanban-background-color: #333646;
9
+ }
10
+
11
+ $kanban-background-color: var(--kanban-background-color);
12
+
13
+ .KanbanTaskView {
14
+ $root: &;
15
+
16
+ position: relative;
17
+ display: flex;
18
+ flex-flow: column;
19
+ flex: 1 0 auto;
20
+ overflow: hidden;
21
+ height: fit-content;
22
+ width: 100%;
23
+ margin-bottom: 8px;
24
+ border-radius: variables.$radius-small;
25
+
26
+ &__wrapper {
27
+ border: 1px solid variables.$element-border-color;
28
+ border-radius: variables.$radius-small;
29
+ color: variables.$text-color;
30
+ background-color: $kanban-background-color;
31
+
32
+ position: relative;
33
+ display: flex;
34
+ flex-flow: column;
35
+ padding: 16px;
36
+ }
37
+
38
+ $card-priorities: (
39
+ "high": variables.$danger,
40
+ "middle": variables.$warning,
41
+ );
42
+
43
+ @each $priority, $color in $card-priorities {
44
+ &__priority_#{$priority} {
45
+ background-color: $color;
46
+ }
47
+ }
48
+
49
+ &__priority {
50
+ position: absolute;
51
+ top: 0;
52
+ left: 0;
53
+ bottom: 0;
54
+ width: 4px;
55
+ }
56
+
57
+ &__content {
58
+ display: flex;
59
+ flex-flow: column nowrap;
60
+ row-gap: 8px;
61
+ font-size: 14px;
62
+ }
63
+
64
+ &__header {
65
+ display: flex;
66
+ flex-flow: row nowrap;
67
+ }
68
+
69
+ &__title {
70
+ display: -webkit-box;
71
+ -webkit-line-clamp: 3;
72
+ -webkit-box-orient: vertical;
73
+ overflow: hidden;
74
+
75
+ &:hover {
76
+ cursor: pointer;
77
+ text-decoration: underline;
78
+ }
79
+ }
80
+
81
+ &__description {
82
+ display: -webkit-box;
83
+ -webkit-line-clamp: 3;
84
+ -webkit-box-orient: vertical;
85
+ overflow: hidden;
86
+ }
87
+
88
+ &__task-id {
89
+ color: variables.$element-placeholder-color;
90
+ }
91
+
92
+ &__footer {
93
+ display: flex;
94
+ justify-content: space-between;
95
+ flex-wrap: nowrap;
96
+ margin-top: 16px;
97
+ }
98
+
99
+ &__assigner {
100
+ display: flex;
101
+ justify-content: flex-end;
102
+ flex-grow: 1;
103
+ min-width: 32px;
104
+ min-height: 32px;
105
+ }
106
+
107
+ .TextView {
108
+ margin: 0;
109
+ }
110
+ }
@@ -0,0 +1,2 @@
1
+ import KanbanTaskView from './KanbanTaskView';
2
+ export default KanbanTaskView;
@@ -0,0 +1,7 @@
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 KanbanTaskView_1 = __importDefault(require("./KanbanTaskView"));
7
+ exports["default"] = KanbanTaskView_1["default"];
@@ -0,0 +1,9 @@
1
+ import { ITaskTag } from '@steroidsjs/core/ui/content/Kanban/Kanban';
2
+ import './TaskTags.scss';
3
+ interface ITaskTagsProps {
4
+ tags: ITaskTag[];
5
+ showClose?: boolean;
6
+ onClose?: (id: number) => void;
7
+ }
8
+ export default function TaskTags(props: ITaskTagsProps): JSX.Element;
9
+ export {};
@@ -0,0 +1,14 @@
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 content_1 = require("@steroidsjs/core/ui/content");
8
+ var hooks_1 = require("@steroidsjs/core/hooks");
9
+ require("./TaskTags.scss");
10
+ function TaskTags(props) {
11
+ var bem = (0, hooks_1.useBem)('TaskTags');
12
+ return (react_1["default"].createElement("div", { className: bem.block() }, props.tags.map(function (tag) { return (react_1["default"].createElement(content_1.Badge, { key: tag.id, size: "md", roundingStyle: "squarer", message: tag.message, type: tag.type, showClose: props.showClose, onClose: function () { return props.onClose(tag.id); } })); })));
13
+ }
14
+ exports["default"] = TaskTags;
@@ -0,0 +1,7 @@
1
+ .TaskTags {
2
+ display: flex;
3
+ flex-flow: row wrap;
4
+ align-items: flex-start;
5
+ flex-grow: 0;
6
+ gap: 4px;
7
+ }
@@ -0,0 +1,2 @@
1
+ import TaskTags from './TaskTags';
2
+ export default TaskTags;
@@ -0,0 +1,7 @@
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 TaskTags_1 = __importDefault(require("./TaskTags"));
7
+ exports["default"] = TaskTags_1["default"];
@@ -419,8 +419,9 @@ $drop-down-color-themes: map.merge(
419
419
  right: 36px;
420
420
  transform: translateY(-50%);
421
421
 
422
- path {
423
- stroke-width: 1.5px;
422
+ svg > * {
423
+ stroke: variables.$text-color
424
424
  }
425
+
425
426
  }
426
427
  }
package/index.d.ts CHANGED
@@ -41,6 +41,18 @@ declare const _default: {
41
41
  'content.SliderView': {
42
42
  lazy: () => any;
43
43
  };
44
+ 'content.KanbanView': {
45
+ lazy: () => any;
46
+ };
47
+ 'content.KanbanColumnView': {
48
+ lazy: () => any;
49
+ };
50
+ 'content.KanbanTaskView': {
51
+ lazy: () => any;
52
+ };
53
+ 'content.KanbanModalView': {
54
+ lazy: () => any;
55
+ };
44
56
  'content.CalendarSystemView': {
45
57
  lazy: () => any;
46
58
  };
package/index.js CHANGED
@@ -44,6 +44,18 @@ exports["default"] = {
44
44
  'content.SliderView': {
45
45
  lazy: function () { return require('./content/Slider/SliderView')["default"]; }
46
46
  },
47
+ 'content.KanbanView': {
48
+ lazy: function () { return require('./content/Kanban/KanbanView')["default"]; }
49
+ },
50
+ 'content.KanbanColumnView': {
51
+ lazy: function () { return require('./content/Kanban/views/KanbanColumn/KanbanColumnView')["default"]; }
52
+ },
53
+ 'content.KanbanTaskView': {
54
+ lazy: function () { return require('./content/Kanban/views/KanbanTask/KanbanTaskView')["default"]; }
55
+ },
56
+ 'content.KanbanModalView': {
57
+ lazy: function () { return require('./content/Kanban/views/KanbanModal/KanbanModalView')["default"]; }
58
+ },
47
59
  'content.CalendarSystemView': {
48
60
  lazy: function () { return require('./content/CalendarSystem/CalendarSystemView')["default"]; }
49
61
  },
package/index.scss CHANGED
@@ -24,6 +24,10 @@
24
24
  @include meta.load-css('content/Icon/IconView');
25
25
  @include meta.load-css('content/Slider/SliderView');
26
26
  @include meta.load-css('content/CopyToClipboard/CopyToClipboardView');
27
+ @include meta.load-css('content/Kanban/KanbanView');
28
+ @include meta.load-css('content/Kanban/views/KanbanColumn/KanbanColumnView');
29
+ @include meta.load-css('content/Kanban/views/KanbanTask/KanbanTaskView');
30
+ @include meta.load-css('content/Kanban/views/KanbanModal/KanbanModalView');
27
31
  @include meta.load-css('crud/Crud/CrudView');
28
32
  @include meta.load-css('form/AutoCompleteField/AutoCompleteFieldView');
29
33
  @include meta.load-css('form/Button/ButtonView');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/bootstrap",
3
- "version": "3.0.0-beta.106",
3
+ "version": "3.0.0-beta.108",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
@@ -37,7 +37,7 @@
37
37
  "react-use": "^17.4.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@steroidsjs/core": "^3.0 || >=3.0.0-beta.90",
40
+ "@steroidsjs/core": "^3.0 || >=3.0.0-beta.92",
41
41
  "@steroidsjs/eslint-config": "^2.1.4",
42
42
  "@types/enzyme": "^3.10.8",
43
43
  "@types/googlemaps": "^3.43.3",
@@ -1,9 +1,10 @@
1
1
  @use "sass:map";
2
2
  @use "../variables/common/colors";
3
+ @use "../variables/index" as variables;
3
4
 
4
5
  @mixin svg-color($color) {
5
6
  svg {
6
- path {
7
+ path {
7
8
  stroke: $color;
8
9
  }
9
10
  }
@@ -18,7 +19,9 @@
18
19
  }
19
20
  &:focus,
20
21
  &:focus-visible {
21
- box-shadow: 0 0 0 4px map.get($colorMap, color-light), 0 0 0 4px map.get($colorMap, color-light);
22
+ box-shadow:
23
+ 0 0 0 4px map.get($colorMap, color-light),
24
+ 0 0 0 4px map.get($colorMap, color-light);
22
25
  }
23
26
  &:active {
24
27
  background-color: map.get($colorMap, color-light);
@@ -29,12 +32,12 @@
29
32
  color: map.get($colorMap, text-color);
30
33
  }
31
34
 
32
- #{$root}__loader {
35
+ #{$root}__loader {
33
36
  svg {
34
- path {
37
+ path {
35
38
  stroke: map.get($colorMap, color-light);
36
39
 
37
- @if ($colorName == 'basic' ) {
40
+ @if ($colorName == "basic") {
38
41
  stroke: map.get($colorMap, color-dark);
39
42
  }
40
43
  }
@@ -64,7 +67,9 @@
64
67
  border-color: map.get($colorMap, color-dark);
65
68
  }
66
69
  &:focus {
67
- box-shadow: 0 0 0 4px map.get($colorMap, color-light), 0 0 0 4px map.get($colorMap, color-light);
70
+ box-shadow:
71
+ 0 0 0 4px map.get($colorMap, color-light),
72
+ 0 0 0 4px map.get($colorMap, color-light);
68
73
  border: 1px solid transparent;
69
74
  }
70
75
  &:active {
@@ -84,9 +89,20 @@
84
89
 
85
90
  @if ($colorName == "basic") {
86
91
  color: colors.$text-color;
87
- }
92
+ }
88
93
 
89
- #{$root}__loader {
94
+ #{$root}__loader {
90
95
  @include svg-color(map.get($colorMap, color));
91
96
  }
92
97
  }
98
+
99
+ @mixin expand-button() {
100
+ font-size: variables.$font-size-xs;
101
+ font-weight: variables.$font-weight-sm;
102
+ line-height: variables.$line-height-xs;
103
+ text-align: center;
104
+
105
+ .ButtonView__text {
106
+ color: variables.$text-color;
107
+ }
108
+ }
@@ -4,3 +4,4 @@
4
4
  @forward "customMixins";
5
5
  @forward "date";
6
6
  @forward "navs";
7
+ @forward "tooltip";
@@ -0,0 +1,23 @@
1
+ @use "../variables/index" as variables;
2
+
3
+ :root {
4
+ --tooltip-background-color: rgba(255, 255, 255, 0.4);
5
+ }
6
+
7
+ html[data-theme="dark"] {
8
+ --tooltip-background-color: rgba(255, 255, 255, 0.4);
9
+ }
10
+ $tooltip-background-color: var(--tooltip-background-color);
11
+
12
+ @mixin calendar-tooltip() {
13
+ background-color: $tooltip-background-color;
14
+ border-radius: 4px;
15
+
16
+ .TooltipView__arrow {
17
+ display: none;
18
+ }
19
+
20
+ .TooltipView__content {
21
+ color: variables.$text-color;
22
+ }
23
+ }