@activecollab/components 2.0.305 → 2.0.308
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.
- package/dist/cjs/components/SelectDate/SelectDate.js +5 -1
- package/dist/cjs/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/cjs/presentation/shared/FloatingControls.js +32 -0
- package/dist/cjs/presentation/shared/FloatingControls.js.map +1 -0
- package/dist/cjs/presentation/shared/MainLogo.js +50 -0
- package/dist/cjs/presentation/shared/MainLogo.js.map +1 -0
- package/dist/cjs/presentation/shared/PresentationShell.js +299 -0
- package/dist/cjs/presentation/shared/PresentationShell.js.map +1 -0
- package/dist/cjs/presentation/shared/RoundAvatar.js +38 -0
- package/dist/cjs/presentation/shared/RoundAvatar.js.map +1 -0
- package/dist/cjs/presentation/shared/TaskOptionsMenu.js +148 -0
- package/dist/cjs/presentation/shared/TaskOptionsMenu.js.map +1 -0
- package/dist/cjs/presentation/shared/headers.js +221 -0
- package/dist/cjs/presentation/shared/headers.js.map +1 -0
- package/dist/cjs/presentation/shared/index.js +96 -0
- package/dist/cjs/presentation/shared/index.js.map +1 -0
- package/dist/cjs/presentation/shared/tokens.js +28 -0
- package/dist/cjs/presentation/shared/tokens.js.map +1 -0
- package/dist/esm/components/SelectDate/SelectDate.d.ts +2 -2
- package/dist/esm/components/SelectDate/SelectDate.d.ts.map +1 -1
- package/dist/esm/components/SelectDate/SelectDate.js +5 -1
- package/dist/esm/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/esm/presentation/shared/FloatingControls.d.ts +7 -0
- package/dist/esm/presentation/shared/FloatingControls.d.ts.map +1 -0
- package/dist/esm/presentation/shared/FloatingControls.js +23 -0
- package/dist/esm/presentation/shared/FloatingControls.js.map +1 -0
- package/dist/esm/presentation/shared/MainLogo.d.ts +10 -0
- package/dist/esm/presentation/shared/MainLogo.d.ts.map +1 -0
- package/dist/esm/presentation/shared/MainLogo.js +42 -0
- package/dist/esm/presentation/shared/MainLogo.js.map +1 -0
- package/dist/esm/presentation/shared/PresentationShell.d.ts +22 -0
- package/dist/esm/presentation/shared/PresentationShell.d.ts.map +1 -0
- package/dist/esm/presentation/shared/PresentationShell.js +272 -0
- package/dist/esm/presentation/shared/PresentationShell.js.map +1 -0
- package/dist/esm/presentation/shared/RoundAvatar.d.ts +13 -0
- package/dist/esm/presentation/shared/RoundAvatar.d.ts.map +1 -0
- package/dist/esm/presentation/shared/RoundAvatar.js +26 -0
- package/dist/esm/presentation/shared/RoundAvatar.js.map +1 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.d.ts +22 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.d.ts.map +1 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.js +119 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.js.map +1 -0
- package/dist/esm/presentation/shared/headers.d.ts +28 -0
- package/dist/esm/presentation/shared/headers.d.ts.map +1 -0
- package/dist/esm/presentation/shared/headers.js +194 -0
- package/dist/esm/presentation/shared/headers.js.map +1 -0
- package/dist/esm/presentation/shared/index.d.ts +17 -0
- package/dist/esm/presentation/shared/index.d.ts.map +1 -0
- package/dist/esm/presentation/shared/index.js +14 -0
- package/dist/esm/presentation/shared/index.js.map +1 -0
- package/dist/esm/presentation/shared/tokens.d.ts +21 -0
- package/dist/esm/presentation/shared/tokens.d.ts.map +1 -0
- package/dist/esm/presentation/shared/tokens.js +22 -0
- package/dist/esm/presentation/shared/tokens.js.map +1 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import styled from "styled-components";
|
|
3
|
+
import { MD, SM } from "./tokens";
|
|
4
|
+
import { Button } from "../../components/Button";
|
|
5
|
+
import { GlobalAddButton } from "../../components/Button/GlobalAddButton";
|
|
6
|
+
import { Checkbox } from "../../components/Checkbox";
|
|
7
|
+
import { CounterButton } from "../../components/CounterButton";
|
|
8
|
+
import { Header } from "../../components/Header";
|
|
9
|
+
import { IconButton } from "../../components/IconButton";
|
|
10
|
+
import { ArrowLeftIcon, CheckboxBlankTogglerIcon, DuplicateIcon, EditIcon, EditMultipleIcon, FilterIcon, InfoIcon, InsertLinkIcon, LabelsIcon, NotificationBellIcon, PeopleIcon, ProjectTemplateConvertIcon, ProjectTemplateIcon, StarIcon, TrashIcon, TreeDotsIcon, ViewListIcon, ViewTimelineIcon } from "../../components/Icons";
|
|
11
|
+
import { List, ListItem, ListSeparator } from "../../components/List";
|
|
12
|
+
import { Menu } from "../../components/Menu";
|
|
13
|
+
import { Item, Nav } from "../../components/Nav";
|
|
14
|
+
import { ProgressPie } from "../../components/ProgressPie";
|
|
15
|
+
import { Tooltip } from "../../components/Tooltip";
|
|
16
|
+
import { Body2, Header2, Title2 } from "../../components/Typography";
|
|
17
|
+
|
|
18
|
+
/* ------------------------------------------------------------------ */
|
|
19
|
+
/* Page header row (mirrors PageHeader.jsx) */
|
|
20
|
+
/* ------------------------------------------------------------------ */
|
|
21
|
+
|
|
22
|
+
const StyledPageHeader = styled.div.withConfig({
|
|
23
|
+
displayName: "headers__StyledPageHeader",
|
|
24
|
+
componentId: "sc-yf6o6n-0"
|
|
25
|
+
})(["display:flex;align-items:center;justify-content:space-between;margin:12px 0;width:100%;height:40px;flex-shrink:0;.page-header-left{display:flex;align-items:center;width:100%;max-width:100%;@media (min-width:", "){min-width:0;}}.back-button{flex-shrink:0;margin-right:4px;@media (min-width:", "){margin-right:8px;}}.page-title-desktop{display:none;margin-right:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;@media (min-width:", "){display:block;}}.page-title-mobile{display:block;margin-right:8px;font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;@media (min-width:", "){display:none;}}.page-header-children{flex-shrink:0;display:flex;align-items:center;}.page-header-spacer{display:none;height:100%;width:208px;flex-shrink:0;@media (min-width:", "){display:flex;}}"], SM, MD, MD, MD, SM);
|
|
26
|
+
/** Generic page header (title + optional controls), mirrors PageHeader.jsx. */
|
|
27
|
+
export const PageHeader = _ref => {
|
|
28
|
+
let title = _ref.title,
|
|
29
|
+
children = _ref.children;
|
|
30
|
+
return /*#__PURE__*/React.createElement(StyledPageHeader, null, /*#__PURE__*/React.createElement("div", {
|
|
31
|
+
className: "page-header-left"
|
|
32
|
+
}, /*#__PURE__*/React.createElement(Title2, {
|
|
33
|
+
className: "page-title-desktop"
|
|
34
|
+
}, title), /*#__PURE__*/React.createElement(Header2, {
|
|
35
|
+
className: "page-title-mobile"
|
|
36
|
+
}, title), /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: "page-header-children"
|
|
38
|
+
}, children)), /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: "page-header-spacer"
|
|
40
|
+
}));
|
|
41
|
+
};
|
|
42
|
+
PageHeader.displayName = "PageHeader";
|
|
43
|
+
|
|
44
|
+
/* ------------------------------------------------------------------ */
|
|
45
|
+
/* Project page header (mirrors ProjectPage.js Page.Header children) */
|
|
46
|
+
/* ------------------------------------------------------------------ */
|
|
47
|
+
|
|
48
|
+
const StyledProjectHeaderChildren = styled.div.withConfig({
|
|
49
|
+
displayName: "headers__StyledProjectHeaderChildren",
|
|
50
|
+
componentId: "sc-yf6o6n-1"
|
|
51
|
+
})(["display:flex;align-items:center;gap:8px;.project-progress{display:flex;align-items:center;margin-left:4px;}"]);
|
|
52
|
+
|
|
53
|
+
/* Project "..." options menu (Menu + List with leading-icon items). Two items
|
|
54
|
+
(Favorite, Subscribe) have a checkbox on the right. Clicks are no-ops. */
|
|
55
|
+
const StyledProjectMenu = styled.div.withConfig({
|
|
56
|
+
displayName: "headers__StyledProjectMenu",
|
|
57
|
+
componentId: "sc-yf6o6n-2"
|
|
58
|
+
})([".toggle-item{justify-content:space-between;}.toggle-item .opt-left{display:flex;align-items:center;min-width:0;}.toggle-item .opt-left svg{margin-right:8px;flex-shrink:0;}"]);
|
|
59
|
+
const ProjectOptionsMenu = () => {
|
|
60
|
+
const _useState = useState(false),
|
|
61
|
+
open = _useState[0],
|
|
62
|
+
setOpen = _useState[1];
|
|
63
|
+
return /*#__PURE__*/React.createElement(Menu, {
|
|
64
|
+
open: open,
|
|
65
|
+
onOpen: () => setOpen(true),
|
|
66
|
+
onClose: () => setOpen(false),
|
|
67
|
+
position: "bottom-end",
|
|
68
|
+
target: /*#__PURE__*/React.createElement(IconButton, {
|
|
69
|
+
type: "button",
|
|
70
|
+
variant: "text gray",
|
|
71
|
+
active: open
|
|
72
|
+
}, /*#__PURE__*/React.createElement(TreeDotsIcon, null))
|
|
73
|
+
}, /*#__PURE__*/React.createElement(StyledProjectMenu, null, /*#__PURE__*/React.createElement(List, {
|
|
74
|
+
style: {
|
|
75
|
+
padding: "8px 0"
|
|
76
|
+
},
|
|
77
|
+
tabIndex: -1
|
|
78
|
+
}, /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(EditIcon, null), "Edit"), /*#__PURE__*/React.createElement(ListItem, {
|
|
79
|
+
className: "toggle-item"
|
|
80
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
81
|
+
className: "opt-left"
|
|
82
|
+
}, /*#__PURE__*/React.createElement(StarIcon, null), "Mark as Favorite"), /*#__PURE__*/React.createElement(Checkbox, {
|
|
83
|
+
id: "proj-favorite",
|
|
84
|
+
onChange: () => undefined
|
|
85
|
+
})), /*#__PURE__*/React.createElement(ListItem, {
|
|
86
|
+
className: "toggle-item"
|
|
87
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
88
|
+
className: "opt-left"
|
|
89
|
+
}, /*#__PURE__*/React.createElement(NotificationBellIcon, null), "Subscribe to Everything"), /*#__PURE__*/React.createElement(Checkbox, {
|
|
90
|
+
id: "proj-subscribe",
|
|
91
|
+
onChange: () => undefined
|
|
92
|
+
})), /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(LabelsIcon, null), "Manage Task Labels"), /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(InsertLinkIcon, null), "Copy Link"), /*#__PURE__*/React.createElement(ListSeparator, null), /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(CheckboxBlankTogglerIcon, null), "Complete"), /*#__PURE__*/React.createElement(ListSeparator, null), /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(DuplicateIcon, null), "Duplicate"), /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(ProjectTemplateIcon, null), "Apply Template"), /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(ProjectTemplateConvertIcon, null), "Convert to Template"), /*#__PURE__*/React.createElement(ListSeparator, null), /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement(TrashIcon, null), "Delete"))));
|
|
93
|
+
};
|
|
94
|
+
/** The project page header: back arrow, title, progress, info, people, options. */
|
|
95
|
+
export const ProjectPageHeader = _ref2 => {
|
|
96
|
+
let _ref2$title = _ref2.title,
|
|
97
|
+
title = _ref2$title === void 0 ? "#131: Ime projekta" : _ref2$title;
|
|
98
|
+
return /*#__PURE__*/React.createElement(StyledPageHeader, null, /*#__PURE__*/React.createElement("div", {
|
|
99
|
+
className: "page-header-left"
|
|
100
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
101
|
+
variant: "text gray",
|
|
102
|
+
className: "back-button"
|
|
103
|
+
}, /*#__PURE__*/React.createElement(ArrowLeftIcon, null)), /*#__PURE__*/React.createElement(Title2, {
|
|
104
|
+
className: "page-title-desktop"
|
|
105
|
+
}, title), /*#__PURE__*/React.createElement(Header2, {
|
|
106
|
+
className: "page-title-mobile"
|
|
107
|
+
}, title), /*#__PURE__*/React.createElement("div", {
|
|
108
|
+
className: "page-header-children"
|
|
109
|
+
}, /*#__PURE__*/React.createElement(StyledProjectHeaderChildren, null, /*#__PURE__*/React.createElement("span", {
|
|
110
|
+
className: "project-progress"
|
|
111
|
+
}, /*#__PURE__*/React.createElement(ProgressPie, {
|
|
112
|
+
radius: 11,
|
|
113
|
+
progress: 64,
|
|
114
|
+
progressColor: "var(--color-secondary)",
|
|
115
|
+
backgroundColor: "var(--color-theme-300)"
|
|
116
|
+
})), /*#__PURE__*/React.createElement(Tooltip, {
|
|
117
|
+
title: "Project Info"
|
|
118
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
119
|
+
variant: "text gray"
|
|
120
|
+
}, /*#__PURE__*/React.createElement(InfoIcon, null))), /*#__PURE__*/React.createElement(CounterButton, {
|
|
121
|
+
label: "5",
|
|
122
|
+
icon: /*#__PURE__*/React.createElement(PeopleIcon, null),
|
|
123
|
+
onClearAll: () => undefined
|
|
124
|
+
}), /*#__PURE__*/React.createElement(ProjectOptionsMenu, null)))), /*#__PURE__*/React.createElement("div", {
|
|
125
|
+
className: "page-header-spacer"
|
|
126
|
+
}));
|
|
127
|
+
};
|
|
128
|
+
ProjectPageHeader.displayName = "ProjectPageHeader";
|
|
129
|
+
|
|
130
|
+
/* ------------------------------------------------------------------ */
|
|
131
|
+
/* Tab bar (mirrors the <Header> with <Nav> on ProjectPage.js) */
|
|
132
|
+
/* ------------------------------------------------------------------ */
|
|
133
|
+
|
|
134
|
+
const NAV_TABS = ["Tasks", "Discussions", "Files", "Notes", "Activity"];
|
|
135
|
+
const StyledTabHeader = styled(Header).withConfig({
|
|
136
|
+
displayName: "headers__StyledTabHeader",
|
|
137
|
+
componentId: "sc-yf6o6n-3"
|
|
138
|
+
})(["justify-content:space-between;align-items:center;margin-bottom:16px;min-height:64px;flex-shrink:0;"]);
|
|
139
|
+
const StyledTabControls = styled.div.withConfig({
|
|
140
|
+
displayName: "headers__StyledTabControls",
|
|
141
|
+
componentId: "sc-yf6o6n-4"
|
|
142
|
+
})(["display:flex;align-items:center;flex-shrink:0;gap:4px;.vertical-separator{width:1px;height:24px;background-color:var(--color-theme-400);margin:0 8px;}.filter-button{display:flex;align-items:center;gap:6px;}"]);
|
|
143
|
+
/** The Tasks/Discussions/… tab bar plus the right-hand view toolbar. */
|
|
144
|
+
export const TabHeader = _ref3 => {
|
|
145
|
+
let _ref3$activeView = _ref3.activeView,
|
|
146
|
+
activeView = _ref3$activeView === void 0 ? "list" : _ref3$activeView;
|
|
147
|
+
const _useState2 = useState(0),
|
|
148
|
+
active = _useState2[0],
|
|
149
|
+
setActive = _useState2[1];
|
|
150
|
+
return /*#__PURE__*/React.createElement(StyledTabHeader, null, /*#__PURE__*/React.createElement(Nav, {
|
|
151
|
+
onSelect: setActive
|
|
152
|
+
}, NAV_TABS.map((label, index) => /*#__PURE__*/React.createElement(Item, {
|
|
153
|
+
active: index === active,
|
|
154
|
+
key: label,
|
|
155
|
+
name: label
|
|
156
|
+
}, /*#__PURE__*/React.createElement(Body2, {
|
|
157
|
+
color: "secondary",
|
|
158
|
+
weight: "medium"
|
|
159
|
+
}, label)))), /*#__PURE__*/React.createElement(StyledTabControls, null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
160
|
+
title: "Batch Edit"
|
|
161
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
162
|
+
variant: "text gray"
|
|
163
|
+
}, /*#__PURE__*/React.createElement(EditMultipleIcon, null))), /*#__PURE__*/React.createElement("span", {
|
|
164
|
+
className: "vertical-separator"
|
|
165
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
166
|
+
variant: "text gray",
|
|
167
|
+
className: "filter-button"
|
|
168
|
+
}, /*#__PURE__*/React.createElement(FilterIcon, null), "Filter"), /*#__PURE__*/React.createElement(Tooltip, {
|
|
169
|
+
title: "List view"
|
|
170
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
171
|
+
variant: "text gray",
|
|
172
|
+
active: activeView === "list"
|
|
173
|
+
}, /*#__PURE__*/React.createElement(ViewListIcon, null))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
174
|
+
title: "Column view"
|
|
175
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
176
|
+
variant: "text gray",
|
|
177
|
+
active: activeView === "column"
|
|
178
|
+
}, /*#__PURE__*/React.createElement(ViewListIcon, {
|
|
179
|
+
style: {
|
|
180
|
+
transform: "rotate(90deg)"
|
|
181
|
+
}
|
|
182
|
+
}))), /*#__PURE__*/React.createElement(Tooltip, {
|
|
183
|
+
title: "Timeline view"
|
|
184
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
185
|
+
variant: "text gray",
|
|
186
|
+
active: activeView === "timeline"
|
|
187
|
+
}, /*#__PURE__*/React.createElement(ViewTimelineIcon, null))), /*#__PURE__*/React.createElement("span", {
|
|
188
|
+
className: "vertical-separator"
|
|
189
|
+
}), /*#__PURE__*/React.createElement(Tooltip, {
|
|
190
|
+
title: "Add New"
|
|
191
|
+
}, /*#__PURE__*/React.createElement(GlobalAddButton, null))));
|
|
192
|
+
};
|
|
193
|
+
TabHeader.displayName = "TabHeader";
|
|
194
|
+
//# sourceMappingURL=headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.js","names":["React","useState","styled","MD","SM","Button","GlobalAddButton","Checkbox","CounterButton","Header","IconButton","ArrowLeftIcon","CheckboxBlankTogglerIcon","DuplicateIcon","EditIcon","EditMultipleIcon","FilterIcon","InfoIcon","InsertLinkIcon","LabelsIcon","NotificationBellIcon","PeopleIcon","ProjectTemplateConvertIcon","ProjectTemplateIcon","StarIcon","TrashIcon","TreeDotsIcon","ViewListIcon","ViewTimelineIcon","List","ListItem","ListSeparator","Menu","Item","Nav","ProgressPie","Tooltip","Body2","Header2","Title2","StyledPageHeader","div","withConfig","displayName","componentId","PageHeader","_ref","title","children","createElement","className","StyledProjectHeaderChildren","StyledProjectMenu","ProjectOptionsMenu","_useState","open","setOpen","onOpen","onClose","position","target","type","variant","active","style","padding","tabIndex","id","onChange","undefined","ProjectPageHeader","_ref2","_ref2$title","radius","progress","progressColor","backgroundColor","label","icon","onClearAll","NAV_TABS","StyledTabHeader","StyledTabControls","TabHeader","_ref3","_ref3$activeView","activeView","_useState2","setActive","onSelect","map","index","key","name","color","weight","transform"],"sources":["../../../../src/presentation/shared/headers.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { MD, SM } from \"./tokens\";\nimport { Button } from \"../../components/Button\";\nimport { GlobalAddButton } from \"../../components/Button/GlobalAddButton\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { CounterButton } from \"../../components/CounterButton\";\nimport { Header } from \"../../components/Header\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n ArrowLeftIcon,\n CheckboxBlankTogglerIcon,\n DuplicateIcon,\n EditIcon,\n EditMultipleIcon,\n FilterIcon,\n InfoIcon,\n InsertLinkIcon,\n LabelsIcon,\n NotificationBellIcon,\n PeopleIcon,\n ProjectTemplateConvertIcon,\n ProjectTemplateIcon,\n StarIcon,\n TrashIcon,\n TreeDotsIcon,\n ViewListIcon,\n ViewTimelineIcon,\n} from \"../../components/Icons\";\nimport { List, ListItem, ListSeparator } from \"../../components/List\";\nimport { Menu } from \"../../components/Menu\";\nimport { Item, Nav } from \"../../components/Nav\";\nimport { ProgressPie } from \"../../components/ProgressPie\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Body2, Header2, Title2 } from \"../../components/Typography\";\n\n/* ------------------------------------------------------------------ */\n/* Page header row (mirrors PageHeader.jsx) */\n/* ------------------------------------------------------------------ */\n\nconst StyledPageHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 12px 0;\n width: 100%;\n height: 40px;\n flex-shrink: 0;\n\n .page-header-left {\n display: flex;\n align-items: center;\n width: 100%;\n max-width: 100%;\n\n @media (min-width: ${SM}) {\n min-width: 0;\n }\n }\n\n /* back button spacing (tw-shrink-0 tw-mr-1 md:tw-mr-2) */\n .back-button {\n flex-shrink: 0;\n margin-right: 4px;\n\n @media (min-width: ${MD}) {\n margin-right: 8px;\n }\n }\n\n .page-title-desktop {\n display: none;\n margin-right: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n @media (min-width: ${MD}) {\n display: block;\n }\n }\n\n .page-title-mobile {\n display: block;\n margin-right: 8px;\n font-weight: 300;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n @media (min-width: ${MD}) {\n display: none;\n }\n }\n\n .page-header-children {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n }\n\n /* spacer that keeps the header clear of the absolutely positioned\n top-right controls, same as in the app (tw-w-52) */\n .page-header-spacer {\n display: none;\n height: 100%;\n width: 208px;\n flex-shrink: 0;\n\n @media (min-width: ${SM}) {\n display: flex;\n }\n }\n`;\n\nexport interface PageHeaderProps {\n title: string;\n children?: ReactNode;\n}\n\n/** Generic page header (title + optional controls), mirrors PageHeader.jsx. */\nexport const PageHeader = ({\n title,\n children,\n}: PageHeaderProps): ReactElement => (\n <StyledPageHeader>\n <div className=\"page-header-left\">\n <Title2 className=\"page-title-desktop\">{title}</Title2>\n <Header2 className=\"page-title-mobile\">{title}</Header2>\n <div className=\"page-header-children\">{children}</div>\n </div>\n <div className=\"page-header-spacer\" />\n </StyledPageHeader>\n);\n\nPageHeader.displayName = \"PageHeader\";\n\n/* ------------------------------------------------------------------ */\n/* Project page header (mirrors ProjectPage.js Page.Header children) */\n/* ------------------------------------------------------------------ */\n\nconst StyledProjectHeaderChildren = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n\n .project-progress {\n display: flex;\n align-items: center;\n margin-left: 4px;\n }\n`;\n\n/* Project \"...\" options menu (Menu + List with leading-icon items). Two items\n (Favorite, Subscribe) have a checkbox on the right. Clicks are no-ops. */\nconst StyledProjectMenu = styled.div`\n .toggle-item {\n justify-content: space-between;\n }\n\n .toggle-item .opt-left {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n .toggle-item .opt-left svg {\n margin-right: 8px;\n flex-shrink: 0;\n }\n`;\n\nconst ProjectOptionsMenu = (): ReactElement => {\n const [open, setOpen] = useState(false);\n return (\n <Menu\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n position=\"bottom-end\"\n target={\n <IconButton type=\"button\" variant=\"text gray\" active={open}>\n <TreeDotsIcon />\n </IconButton>\n }\n >\n <StyledProjectMenu>\n <List style={{ padding: \"8px 0\" }} tabIndex={-1}>\n <ListItem>\n <EditIcon />\n Edit\n </ListItem>\n <ListItem className=\"toggle-item\">\n <span className=\"opt-left\">\n <StarIcon />\n Mark as Favorite\n </span>\n <Checkbox id=\"proj-favorite\" onChange={() => undefined} />\n </ListItem>\n <ListItem className=\"toggle-item\">\n <span className=\"opt-left\">\n <NotificationBellIcon />\n Subscribe to Everything\n </span>\n <Checkbox id=\"proj-subscribe\" onChange={() => undefined} />\n </ListItem>\n <ListItem>\n <LabelsIcon />\n Manage Task Labels\n </ListItem>\n <ListItem>\n <InsertLinkIcon />\n Copy Link\n </ListItem>\n <ListSeparator />\n <ListItem>\n <CheckboxBlankTogglerIcon />\n Complete\n </ListItem>\n <ListSeparator />\n <ListItem>\n <DuplicateIcon />\n Duplicate\n </ListItem>\n <ListItem>\n <ProjectTemplateIcon />\n Apply Template\n </ListItem>\n <ListItem>\n <ProjectTemplateConvertIcon />\n Convert to Template\n </ListItem>\n <ListSeparator />\n <ListItem>\n <TrashIcon />\n Delete\n </ListItem>\n </List>\n </StyledProjectMenu>\n </Menu>\n );\n};\n\nexport interface ProjectPageHeaderProps {\n title?: string;\n}\n\n/** The project page header: back arrow, title, progress, info, people, options. */\nexport const ProjectPageHeader = ({\n title = \"#131: Ime projekta\",\n}: ProjectPageHeaderProps): ReactElement => (\n <StyledPageHeader>\n <div className=\"page-header-left\">\n <IconButton variant=\"text gray\" className=\"back-button\">\n <ArrowLeftIcon />\n </IconButton>\n <Title2 className=\"page-title-desktop\">{title}</Title2>\n <Header2 className=\"page-title-mobile\">{title}</Header2>\n <div className=\"page-header-children\">\n <StyledProjectHeaderChildren>\n <span className=\"project-progress\">\n <ProgressPie\n radius={11}\n progress={64}\n progressColor=\"var(--color-secondary)\"\n backgroundColor=\"var(--color-theme-300)\"\n />\n </span>\n <Tooltip title=\"Project Info\">\n <IconButton variant=\"text gray\">\n <InfoIcon />\n </IconButton>\n </Tooltip>\n <CounterButton\n label=\"5\"\n icon={<PeopleIcon />}\n onClearAll={() => undefined}\n />\n <ProjectOptionsMenu />\n </StyledProjectHeaderChildren>\n </div>\n </div>\n <div className=\"page-header-spacer\" />\n </StyledPageHeader>\n);\n\nProjectPageHeader.displayName = \"ProjectPageHeader\";\n\n/* ------------------------------------------------------------------ */\n/* Tab bar (mirrors the <Header> with <Nav> on ProjectPage.js) */\n/* ------------------------------------------------------------------ */\n\nconst NAV_TABS = [\"Tasks\", \"Discussions\", \"Files\", \"Notes\", \"Activity\"];\n\nconst StyledTabHeader = styled(Header)`\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n min-height: 64px;\n flex-shrink: 0;\n`;\n\nconst StyledTabControls = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n gap: 4px;\n\n .vertical-separator {\n width: 1px;\n height: 24px;\n background-color: var(--color-theme-400);\n margin: 0 8px;\n }\n\n .filter-button {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n`;\n\nexport interface TabHeaderProps {\n /** Which view-mode toggle is highlighted as active. */\n activeView?: \"list\" | \"column\" | \"timeline\";\n}\n\n/** The Tasks/Discussions/… tab bar plus the right-hand view toolbar. */\nexport const TabHeader = ({\n activeView = \"list\",\n}: TabHeaderProps): ReactElement => {\n const [active, setActive] = useState(0);\n return (\n <StyledTabHeader>\n <Nav onSelect={setActive}>\n {NAV_TABS.map((label, index) => (\n <Item active={index === active} key={label} name={label}>\n <Body2 color=\"secondary\" weight=\"medium\">\n {label}\n </Body2>\n </Item>\n ))}\n </Nav>\n <StyledTabControls>\n <Tooltip title=\"Batch Edit\">\n <IconButton variant=\"text gray\">\n <EditMultipleIcon />\n </IconButton>\n </Tooltip>\n <span className=\"vertical-separator\" />\n <Button variant=\"text gray\" className=\"filter-button\">\n <FilterIcon />\n Filter\n </Button>\n <Tooltip title=\"List view\">\n <IconButton variant=\"text gray\" active={activeView === \"list\"}>\n <ViewListIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Column view\">\n <IconButton variant=\"text gray\" active={activeView === \"column\"}>\n <ViewListIcon style={{ transform: \"rotate(90deg)\" }} />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Timeline view\">\n <IconButton variant=\"text gray\" active={activeView === \"timeline\"}>\n <ViewTimelineIcon />\n </IconButton>\n </Tooltip>\n <span className=\"vertical-separator\" />\n <Tooltip title=\"Add New\">\n <GlobalAddButton />\n </Tooltip>\n </StyledTabControls>\n </StyledTabHeader>\n );\n};\n\nTabHeader.displayName = \"TabHeader\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared building blocks for the Presentation mock-ups (`Presentation/*`
|
|
3
|
+
* stories). The application shell, page headers, tab bar and small widgets are
|
|
4
|
+
* defined once here and reused by the List view, Column view, Task sheet and
|
|
5
|
+
* empty-page stories so the chrome stays identical and in one place.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./tokens";
|
|
8
|
+
export { MainLogo } from "./MainLogo";
|
|
9
|
+
export { RoundAvatar } from "./RoundAvatar";
|
|
10
|
+
export { PresentationShell, StyledPagePaper } from "./PresentationShell";
|
|
11
|
+
export type { PresentationShellProps } from "./PresentationShell";
|
|
12
|
+
export { PageHeader, ProjectPageHeader, TabHeader } from "./headers";
|
|
13
|
+
export type { PageHeaderProps, ProjectPageHeaderProps, TabHeaderProps, } from "./headers";
|
|
14
|
+
export { FloatingControls } from "./FloatingControls";
|
|
15
|
+
export { TaskOptionsMenu, TaskListOptionsMenu } from "./TaskOptionsMenu";
|
|
16
|
+
export type { TaskOptionsMenuProps, TaskListOptionsMenuProps, } from "./TaskOptionsMenu";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared building blocks for the Presentation mock-ups (`Presentation/*`
|
|
3
|
+
* stories). The application shell, page headers, tab bar and small widgets are
|
|
4
|
+
* defined once here and reused by the List view, Column view, Task sheet and
|
|
5
|
+
* empty-page stories so the chrome stays identical and in one place.
|
|
6
|
+
*/
|
|
7
|
+
export * from "./tokens";
|
|
8
|
+
export { MainLogo } from "./MainLogo";
|
|
9
|
+
export { RoundAvatar } from "./RoundAvatar";
|
|
10
|
+
export { PresentationShell, StyledPagePaper } from "./PresentationShell";
|
|
11
|
+
export { PageHeader, ProjectPageHeader, TabHeader } from "./headers";
|
|
12
|
+
export { FloatingControls } from "./FloatingControls";
|
|
13
|
+
export { TaskOptionsMenu, TaskListOptionsMenu } from "./TaskOptionsMenu";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["MainLogo","RoundAvatar","PresentationShell","StyledPagePaper","PageHeader","ProjectPageHeader","TabHeader","FloatingControls","TaskOptionsMenu","TaskListOptionsMenu"],"sources":["../../../../src/presentation/shared/index.ts"],"sourcesContent":["/**\n * Shared building blocks for the Presentation mock-ups (`Presentation/*`\n * stories). The application shell, page headers, tab bar and small widgets are\n * defined once here and reused by the List view, Column view, Task sheet and\n * empty-page stories so the chrome stays identical and in one place.\n */\nexport * from \"./tokens\";\nexport { MainLogo } from \"./MainLogo\";\nexport { RoundAvatar } from \"./RoundAvatar\";\nexport { PresentationShell, StyledPagePaper } from \"./PresentationShell\";\nexport type { PresentationShellProps } from \"./PresentationShell\";\nexport { PageHeader, ProjectPageHeader, TabHeader } from \"./headers\";\nexport type {\n PageHeaderProps,\n ProjectPageHeaderProps,\n TabHeaderProps,\n} from \"./headers\";\nexport { FloatingControls } from \"./FloatingControls\";\nexport { TaskOptionsMenu, TaskListOptionsMenu } from \"./TaskOptionsMenu\";\nexport type {\n TaskOptionsMenuProps,\n TaskListOptionsMenuProps,\n} from \"./TaskOptionsMenu\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,SAASA,QAAQ,QAAQ,YAAY;AACrC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,iBAAiB,EAAEC,eAAe,QAAQ,qBAAqB;AAExE,SAASC,UAAU,EAAEC,iBAAiB,EAAEC,SAAS,QAAQ,WAAW;AAMpE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for the Presentation mock-ups.
|
|
3
|
+
*
|
|
4
|
+
* Breakpoints mirror new-activecollab-front (Tailwind sm / md / lg / xl).
|
|
5
|
+
*/
|
|
6
|
+
export declare const BREAKPOINT = 640;
|
|
7
|
+
export declare const SM = "640px";
|
|
8
|
+
export declare const MD = "768px";
|
|
9
|
+
export declare const LG = "1024px";
|
|
10
|
+
export declare const XL = "1280px";
|
|
11
|
+
export declare const TRANSITION = "200ms ease";
|
|
12
|
+
/** Mock avatar background colours (stand-ins for real user avatars). */
|
|
13
|
+
export declare const AVATAR_COLORS: {
|
|
14
|
+
yellow: string;
|
|
15
|
+
purple: string;
|
|
16
|
+
blue: string;
|
|
17
|
+
orange: string;
|
|
18
|
+
green: string;
|
|
19
|
+
teal: string;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/tokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,EAAE,UAAU,CAAC;AAC1B,eAAO,MAAM,EAAE,UAAU,CAAC;AAC1B,eAAO,MAAM,EAAE,WAAW,CAAC;AAC3B,eAAO,MAAM,EAAE,WAAW,CAAC;AAC3B,eAAO,MAAM,UAAU,eAAe,CAAC;AAEvC,wEAAwE;AACxE,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for the Presentation mock-ups.
|
|
3
|
+
*
|
|
4
|
+
* Breakpoints mirror new-activecollab-front (Tailwind sm / md / lg / xl).
|
|
5
|
+
*/
|
|
6
|
+
export const BREAKPOINT = 640;
|
|
7
|
+
export const SM = "640px";
|
|
8
|
+
export const MD = "768px";
|
|
9
|
+
export const LG = "1024px";
|
|
10
|
+
export const XL = "1280px";
|
|
11
|
+
export const TRANSITION = "200ms ease";
|
|
12
|
+
|
|
13
|
+
/** Mock avatar background colours (stand-ins for real user avatars). */
|
|
14
|
+
export const AVATAR_COLORS = {
|
|
15
|
+
yellow: "#F5B041",
|
|
16
|
+
purple: "#A569BD",
|
|
17
|
+
blue: "#5499C7",
|
|
18
|
+
orange: "#E67E22",
|
|
19
|
+
green: "#32B370",
|
|
20
|
+
teal: "#48C9B0"
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","names":["BREAKPOINT","SM","MD","LG","XL","TRANSITION","AVATAR_COLORS","yellow","purple","blue","orange","green","teal"],"sources":["../../../../src/presentation/shared/tokens.ts"],"sourcesContent":["/**\n * Shared constants for the Presentation mock-ups.\n *\n * Breakpoints mirror new-activecollab-front (Tailwind sm / md / lg / xl).\n */\nexport const BREAKPOINT = 640;\nexport const SM = \"640px\";\nexport const MD = \"768px\";\nexport const LG = \"1024px\";\nexport const XL = \"1280px\";\nexport const TRANSITION = \"200ms ease\";\n\n/** Mock avatar background colours (stand-ins for real user avatars). */\nexport const AVATAR_COLORS = {\n yellow: \"#F5B041\",\n purple: \"#A569BD\",\n blue: \"#5499C7\",\n orange: \"#E67E22\",\n green: \"#32B370\",\n teal: \"#48C9B0\",\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,UAAU,GAAG,GAAG;AAC7B,OAAO,MAAMC,EAAE,GAAG,OAAO;AACzB,OAAO,MAAMC,EAAE,GAAG,OAAO;AACzB,OAAO,MAAMC,EAAE,GAAG,QAAQ;AAC1B,OAAO,MAAMC,EAAE,GAAG,QAAQ;AAC1B,OAAO,MAAMC,UAAU,GAAG,YAAY;;AAEtC;AACA,OAAO,MAAMC,aAAa,GAAG;EAC3BC,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -22025,9 +22025,13 @@
|
|
|
22025
22025
|
},
|
|
22026
22026
|
nonWorkingDaysOfWeek: function nonWorkingDaysOfWeek(day) {
|
|
22027
22027
|
var isNonWorkingDay = _nonWorkingDaysOfWeek.includes(day.day());
|
|
22028
|
+
var title = null;
|
|
22029
|
+
if (isNonWorkingDay) {
|
|
22030
|
+
title = typeof nonWorkingDaysOfWeekLabel === "function" ? nonWorkingDaysOfWeekLabel(moment__default["default"].utc(day).format("YYYY-MM-DD")) : nonWorkingDaysOfWeekLabel;
|
|
22031
|
+
}
|
|
22028
22032
|
return {
|
|
22029
22033
|
matched: isNonWorkingDay,
|
|
22030
|
-
title
|
|
22034
|
+
title
|
|
22031
22035
|
};
|
|
22032
22036
|
},
|
|
22033
22037
|
day_disabled: function day_disabled(day) {
|