@activecollab/components 2.0.343 → 2.0.345
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/Icons/collection/{SourceCode.js → GitRepository.js} +13 -11
- package/dist/cjs/components/Icons/collection/GitRepository.js.map +1 -0
- package/dist/cjs/components/Icons/collection/GitRepositoryConnect.js +95 -0
- package/dist/cjs/components/Icons/collection/GitRepositoryConnect.js.map +1 -0
- package/dist/cjs/components/Icons/collection/index.js +14 -7
- package/dist/cjs/components/Icons/collection/index.js.map +1 -1
- package/dist/cjs/presentation/shared/headers.js +326 -47
- package/dist/cjs/presentation/shared/headers.js.map +1 -1
- package/dist/esm/components/Icons/collection/GitRepository.d.ts +16 -0
- package/dist/esm/components/Icons/collection/GitRepository.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/{SourceCode.js → GitRepository.js} +13 -11
- package/dist/esm/components/Icons/collection/GitRepository.js.map +1 -0
- package/dist/esm/components/Icons/collection/GitRepositoryConnect.d.ts +17 -0
- package/dist/esm/components/Icons/collection/GitRepositoryConnect.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/GitRepositoryConnect.js +78 -0
- package/dist/esm/components/Icons/collection/GitRepositoryConnect.js.map +1 -0
- package/dist/esm/components/Icons/collection/index.d.ts +2 -1
- package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
- package/dist/esm/components/Icons/collection/index.js +2 -1
- package/dist/esm/components/Icons/collection/index.js.map +1 -1
- package/dist/esm/presentation/shared/headers.d.ts +8 -1
- package/dist/esm/presentation/shared/headers.d.ts.map +1 -1
- package/dist/esm/presentation/shared/headers.js +294 -43
- package/dist/esm/presentation/shared/headers.js.map +1 -1
- package/dist/index.js +529 -449
- 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 +1 -1
- package/dist/cjs/components/Icons/collection/SourceCode.js.map +0 -1
- package/dist/esm/components/Icons/collection/SourceCode.d.ts +0 -16
- package/dist/esm/components/Icons/collection/SourceCode.d.ts.map +0 -1
- package/dist/esm/components/Icons/collection/SourceCode.js.map +0 -1
|
@@ -5,12 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.TabHeader = exports.ProjectPageHeader = exports.PageHeader = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _styledComponents =
|
|
8
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
9
|
+
var _ConnectRepositoryDialog = require("./ConnectRepositoryDialog");
|
|
10
|
+
var _RoundAvatar = require("./RoundAvatar");
|
|
9
11
|
var _tokens = require("./tokens");
|
|
10
12
|
var _Button = require("../../components/Button");
|
|
11
13
|
var _GlobalAddButton = require("../../components/Button/GlobalAddButton");
|
|
12
|
-
var
|
|
14
|
+
var _CompleteCheckbox = require("../../components/CompleteCheckbox");
|
|
13
15
|
var _CounterButton = require("../../components/CounterButton");
|
|
16
|
+
var _Dialog = require("../../components/Dialog");
|
|
14
17
|
var _Header = require("../../components/Header");
|
|
15
18
|
var _IconButton = require("../../components/IconButton");
|
|
16
19
|
var _Icons = require("../../components/Icons");
|
|
@@ -19,8 +22,8 @@ var _Menu = require("../../components/Menu");
|
|
|
19
22
|
var _Nav = require("../../components/Nav");
|
|
20
23
|
var _ProgressPie = require("../../components/ProgressPie");
|
|
21
24
|
var _Tooltip = require("../../components/Tooltip");
|
|
25
|
+
var _Transitions = require("../../components/Transitions");
|
|
22
26
|
var _Typography = require("../../components/Typography");
|
|
23
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
27
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
25
28
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
26
29
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -28,6 +31,9 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
28
31
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
29
32
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
30
33
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
34
|
+
/** Gold used for the project-leader cues (a data colour, not a theme token). */
|
|
35
|
+
var LEADER_GOLD = "#FFCC6B";
|
|
36
|
+
|
|
31
37
|
/* ------------------------------------------------------------------ */
|
|
32
38
|
/* Page header row (mirrors PageHeader.jsx) */
|
|
33
39
|
/* ------------------------------------------------------------------ */
|
|
@@ -68,55 +74,332 @@ var StyledProjectHeaderChildren = _styledComponents.default.div.withConfig({
|
|
|
68
74
|
var StyledProjectMenu = _styledComponents.default.div.withConfig({
|
|
69
75
|
displayName: "headers__StyledProjectMenu",
|
|
70
76
|
componentId: "sc-yf6o6n-2"
|
|
71
|
-
})([".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;}"]);
|
|
72
|
-
|
|
77
|
+
})([".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;}.toggle-item .c-complete-checkbox{width:16px;height:16px;border-radius:3px;align-self:center;flex-shrink:0;}.submenu-item{justify-content:space-between;}.submenu-item .repo-caret{flex-shrink:0;fill:var(--color-theme-600);}.repo-row{min-width:0;}.repo-row > svg{flex-shrink:0;}.repo-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}"]);
|
|
78
|
+
|
|
79
|
+
/** Submenu row label for a connected repository: "path (Connection, Type)",
|
|
80
|
+
* matching the grouped picker headers in the Link Branch / Pull Request
|
|
81
|
+
* dialog. */
|
|
82
|
+
var repositoryMenuLabel = function repositoryMenuLabel(repo) {
|
|
83
|
+
var connection = _ConnectRepositoryDialog.CONNECTIONS.find(function (c) {
|
|
84
|
+
return c.id === repo.connectionId;
|
|
85
|
+
});
|
|
86
|
+
return connection ? "".concat(repo.name, " (").concat(connection.name, ", ").concat((0, _ConnectRepositoryDialog.serviceLabel)(connection.service), ")") : repo.name;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/** Width of the project "..." menu (matches the DS "normal" menu mode). */
|
|
90
|
+
var PROJECT_MENU_WIDTH = 260;
|
|
91
|
+
|
|
92
|
+
/* The menu drills in place (index → Repositories), so the paper must clip the
|
|
93
|
+
sliding panels and give them a positioning context. */
|
|
94
|
+
var ProjectMenuSliderStyle = (0, _styledComponents.createGlobalStyle)([".c-simple-menu__paper.project-options-menu{overflow:hidden;position:relative;}"]);
|
|
95
|
+
/**
|
|
96
|
+
* The project "..." options menu. When the `source` module is loaded it gains
|
|
97
|
+
* a **Repositories** item that, instead of flying out to the side, **drills in
|
|
98
|
+
* within the same menu** (the pattern used across the app — see `Filter`): the
|
|
99
|
+
* index slides out to the left and the Repositories view (a back-arrow header,
|
|
100
|
+
* the connected repositories sorted by name, and a **Connect Repository**
|
|
101
|
+
* action) slides in. Connecting adds a repository to the list; clicking one
|
|
102
|
+
* would, in production, open it in a new tab (surfaced here via a dialog).
|
|
103
|
+
*/
|
|
104
|
+
var ProjectOptionsMenu = function ProjectOptionsMenu(_ref2) {
|
|
105
|
+
var _ref2$sourceModuleLoa = _ref2.sourceModuleLoaded,
|
|
106
|
+
sourceModuleLoaded = _ref2$sourceModuleLoa === void 0 ? false : _ref2$sourceModuleLoa;
|
|
73
107
|
var _useState = (0, _react.useState)(false),
|
|
74
108
|
_useState2 = _slicedToArray(_useState, 2),
|
|
75
109
|
open = _useState2[0],
|
|
76
110
|
setOpen = _useState2[1];
|
|
77
|
-
|
|
111
|
+
var _useState3 = (0, _react.useState)("index"),
|
|
112
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
113
|
+
view = _useState4[0],
|
|
114
|
+
setView = _useState4[1];
|
|
115
|
+
var _useState5 = (0, _react.useState)(true),
|
|
116
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
117
|
+
isLeft = _useState6[0],
|
|
118
|
+
setIsLeft = _useState6[1];
|
|
119
|
+
var _useState7 = (0, _react.useState)(0),
|
|
120
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
121
|
+
height = _useState8[0],
|
|
122
|
+
setHeight = _useState8[1];
|
|
123
|
+
var _useState9 = (0, _react.useState)([]),
|
|
124
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
125
|
+
connectedRepos = _useState0[0],
|
|
126
|
+
setConnectedRepos = _useState0[1];
|
|
127
|
+
var _useState1 = (0, _react.useState)(false),
|
|
128
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
129
|
+
connectOpen = _useState10[0],
|
|
130
|
+
setConnectOpen = _useState10[1];
|
|
131
|
+
var _useState11 = (0, _react.useState)(false),
|
|
132
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
133
|
+
infoOpen = _useState12[0],
|
|
134
|
+
setInfoOpen = _useState12[1];
|
|
135
|
+
|
|
136
|
+
// Repositories still available to connect (not already on the project).
|
|
137
|
+
var connectableRepos = _ConnectRepositoryDialog.CONNECTABLE_REPOSITORIES.filter(function (r) {
|
|
138
|
+
return !connectedRepos.some(function (c) {
|
|
139
|
+
return c.id === r.id;
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Connected repositories are listed in the submenu sorted by name.
|
|
144
|
+
var sortedRepos = [...connectedRepos].sort(function (a, b) {
|
|
145
|
+
return a.name.localeCompare(b.name);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
// Each view measures itself as it mounts so the paper can animate its height.
|
|
149
|
+
var measure = (0, _react.useCallback)(function (node) {
|
|
150
|
+
if (node) {
|
|
151
|
+
setHeight(node.offsetHeight);
|
|
152
|
+
}
|
|
153
|
+
}, []);
|
|
154
|
+
var goToRepositories = function goToRepositories() {
|
|
155
|
+
setView("repositories");
|
|
156
|
+
setIsLeft(true);
|
|
157
|
+
};
|
|
158
|
+
var backToIndex = function backToIndex() {
|
|
159
|
+
setView("index");
|
|
160
|
+
setIsLeft(false);
|
|
161
|
+
};
|
|
162
|
+
var handleClose = function handleClose() {
|
|
163
|
+
setOpen(false);
|
|
164
|
+
// Reset to the index so the next open starts at the top level.
|
|
165
|
+
setView("index");
|
|
166
|
+
setIsLeft(true);
|
|
167
|
+
};
|
|
168
|
+
var handleConnected = function handleConnected(repo) {
|
|
169
|
+
setConnectedRepos(function (prev) {
|
|
170
|
+
return prev.some(function (r) {
|
|
171
|
+
return r.id === repo.id;
|
|
172
|
+
}) ? prev : [...prev, repo];
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
var handleConnect = function handleConnect() {
|
|
176
|
+
handleClose();
|
|
177
|
+
setConnectOpen(true);
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
// In production this closes the menu and opens the repository in a new tab;
|
|
181
|
+
// in the mock we surface that behaviour in a small dialog instead.
|
|
182
|
+
var handleOpenRepository = function handleOpenRepository() {
|
|
183
|
+
handleClose();
|
|
184
|
+
setInfoOpen(true);
|
|
185
|
+
};
|
|
186
|
+
var indexView = /*#__PURE__*/_react.default.createElement(StyledProjectMenu, null, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
187
|
+
style: {
|
|
188
|
+
padding: "8px 0"
|
|
189
|
+
},
|
|
190
|
+
tabIndex: -1
|
|
191
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.EditIcon, null), "Edit"), /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
192
|
+
className: "toggle-item"
|
|
193
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
194
|
+
className: "opt-left"
|
|
195
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.StarIcon, null), "Mark as Favorite"), /*#__PURE__*/_react.default.createElement(_CompleteCheckbox.CompleteCheckbox, {
|
|
196
|
+
primary: true,
|
|
197
|
+
completed: true
|
|
198
|
+
})), /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
199
|
+
className: "toggle-item"
|
|
200
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
201
|
+
className: "opt-left"
|
|
202
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.NotificationBellIcon, null), "Subscribe to Everything"), /*#__PURE__*/_react.default.createElement(_CompleteCheckbox.CompleteCheckbox, {
|
|
203
|
+
primary: true,
|
|
204
|
+
completed: false
|
|
205
|
+
})), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.LabelsIcon, null), "Manage Task Labels"), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.InsertLinkIcon, null), "Copy Link"), /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.CheckboxBlankTogglerIcon, null), "Complete"), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.DownloadIcon, null), "Export"), sourceModuleLoaded ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null), /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
206
|
+
className: "toggle-item submenu-item",
|
|
207
|
+
onClick: goToRepositories
|
|
208
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
209
|
+
className: "opt-left"
|
|
210
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.GitRepositoryIcon, null), "Repositories"), /*#__PURE__*/_react.default.createElement(_Icons.CaretRightIcon, {
|
|
211
|
+
className: "repo-caret",
|
|
212
|
+
width: 16,
|
|
213
|
+
height: 16
|
|
214
|
+
}))) : null, /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.DuplicateIcon, null), "Duplicate"), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.ProjectTemplateIcon, null), "Apply Template"), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.ProjectTemplateConvertIcon, null), "Convert to Template"), /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.TrashIcon, null), "Delete")));
|
|
215
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ProjectMenuSliderStyle, null), /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
78
216
|
open: open,
|
|
79
217
|
onOpen: function onOpen() {
|
|
80
218
|
return setOpen(true);
|
|
81
219
|
},
|
|
82
|
-
onClose:
|
|
83
|
-
return setOpen(false);
|
|
84
|
-
},
|
|
220
|
+
onClose: handleClose,
|
|
85
221
|
position: "bottom-end",
|
|
222
|
+
menuClassName: sourceModuleLoaded ? "project-options-menu" : undefined,
|
|
86
223
|
target: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
87
224
|
type: "button",
|
|
88
225
|
variant: "text gray",
|
|
89
226
|
active: open
|
|
90
227
|
}, /*#__PURE__*/_react.default.createElement(_Icons.TreeDotsIcon, null))
|
|
91
|
-
},
|
|
228
|
+
}, sourceModuleLoaded ? /*#__PURE__*/_react.default.createElement(_Transitions.ResizeTransition, {
|
|
229
|
+
in: true,
|
|
230
|
+
style: {
|
|
231
|
+
height,
|
|
232
|
+
width: PROJECT_MENU_WIDTH
|
|
233
|
+
}
|
|
234
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
235
|
+
style: {
|
|
236
|
+
position: "relative",
|
|
237
|
+
overflow: "hidden"
|
|
238
|
+
}
|
|
239
|
+
}, /*#__PURE__*/_react.default.createElement(_Transitions.SlideLeftRightTransition, {
|
|
240
|
+
in: view === "index",
|
|
241
|
+
direction: isLeft ? "left" : "right"
|
|
242
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
243
|
+
ref: measure,
|
|
244
|
+
style: {
|
|
245
|
+
width: PROJECT_MENU_WIDTH
|
|
246
|
+
}
|
|
247
|
+
}, indexView)), /*#__PURE__*/_react.default.createElement(_Transitions.SlideLeftRightTransition, {
|
|
248
|
+
in: view === "repositories",
|
|
249
|
+
direction: isLeft ? "left" : "right"
|
|
250
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
251
|
+
ref: measure,
|
|
252
|
+
style: {
|
|
253
|
+
width: PROJECT_MENU_WIDTH
|
|
254
|
+
}
|
|
255
|
+
}, /*#__PURE__*/_react.default.createElement(_Menu.MenuHeader, {
|
|
256
|
+
title: "Repositories",
|
|
257
|
+
leftElement: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
258
|
+
type: "button",
|
|
259
|
+
variant: "text gray",
|
|
260
|
+
size: "small",
|
|
261
|
+
onClick: backToIndex,
|
|
262
|
+
"aria-label": "Back"
|
|
263
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.ArrowLeftIcon, null))
|
|
264
|
+
}), /*#__PURE__*/_react.default.createElement(StyledProjectMenu, null, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
92
265
|
style: {
|
|
93
266
|
padding: "8px 0"
|
|
94
267
|
},
|
|
95
268
|
tabIndex: -1
|
|
96
|
-
},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
269
|
+
}, sortedRepos.map(function (repo) {
|
|
270
|
+
return /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
271
|
+
key: repo.id,
|
|
272
|
+
className: "repo-row",
|
|
273
|
+
onClick: function onClick() {
|
|
274
|
+
return handleOpenRepository();
|
|
275
|
+
}
|
|
276
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.GitRepositoryIcon, null), /*#__PURE__*/_react.default.createElement("span", {
|
|
277
|
+
className: "repo-name"
|
|
278
|
+
}, repositoryMenuLabel(repo)));
|
|
279
|
+
}), sortedRepos.length > 0 ? /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null) : null, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
280
|
+
onClick: handleConnect
|
|
281
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.GitRepositoryConnectIcon, null), "Connect Repository"))))))) : indexView), /*#__PURE__*/_react.default.createElement(_ConnectRepositoryDialog.ConnectRepositoryDialog, {
|
|
282
|
+
open: connectOpen,
|
|
283
|
+
onClose: function onClose() {
|
|
284
|
+
return setConnectOpen(false);
|
|
285
|
+
},
|
|
286
|
+
onConnect: handleConnected,
|
|
287
|
+
repositories: connectableRepos,
|
|
288
|
+
connections: _ConnectRepositoryDialog.CONNECTIONS
|
|
289
|
+
}), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
|
|
290
|
+
open: infoOpen,
|
|
291
|
+
onClose: function onClose() {
|
|
292
|
+
return setInfoOpen(false);
|
|
293
|
+
},
|
|
294
|
+
enableBackgroundClick: true
|
|
295
|
+
}, /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.Title, null, "Open Repository"), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.ContentDivider, null), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.Content, null, /*#__PURE__*/_react.default.createElement(_Typography.Body2, null, "In production, this click would close the menu and open the repository in a new browser tab.")), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.ContentDivider, null), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.Actions, null, /*#__PURE__*/_react.default.createElement(_Button.Button, {
|
|
296
|
+
variant: "primary",
|
|
297
|
+
onClick: function onClick() {
|
|
298
|
+
return setInfoOpen(false);
|
|
113
299
|
}
|
|
114
|
-
}
|
|
300
|
+
}, "Got it"))));
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
/* People popover (mirrors the project header People dropdown): a header row
|
|
304
|
+
("People" + add button), a "Members" section and a row per member. The
|
|
305
|
+
project leader shows a gold crown; other members reveal a "set as leader"
|
|
306
|
+
crown and a remove button on hover. Clicks are no-ops. */
|
|
307
|
+
|
|
308
|
+
var PROJECT_MEMBERS = [{
|
|
309
|
+
name: "Theo Brandt",
|
|
310
|
+
initials: "TB",
|
|
311
|
+
color: _tokens.AVATAR_COLORS.blue,
|
|
312
|
+
leader: true
|
|
313
|
+
}, {
|
|
314
|
+
name: "Iris Calloway",
|
|
315
|
+
initials: "IC",
|
|
316
|
+
color: _tokens.AVATAR_COLORS.purple
|
|
317
|
+
}, {
|
|
318
|
+
name: "Account Director",
|
|
319
|
+
initials: "AD",
|
|
320
|
+
color: "#8A8F98"
|
|
321
|
+
}, {
|
|
322
|
+
name: "Grace Bennett",
|
|
323
|
+
initials: "GB",
|
|
324
|
+
color: _tokens.AVATAR_COLORS.orange
|
|
325
|
+
}];
|
|
326
|
+
var StyledPeopleMenu = _styledComponents.default.div.withConfig({
|
|
327
|
+
displayName: "headers__StyledPeopleMenu",
|
|
328
|
+
componentId: "sc-yf6o6n-3"
|
|
329
|
+
})(["width:256px;.members-label{display:block;margin:8px 0;padding:0 16px;}.member-row{position:relative;display:flex;align-items:center;min-height:40px;margin:0 8px;padding:2px 8px;border-radius:4px;cursor:default;transition:background-color ", ";}.member-row:hover{background-color:var(--color-theme-200);}.member-row.leader::before{content:\"\";position:absolute;top:4px;bottom:4px;left:0;width:4px;border-radius:4px;background-color:", ";}.member-row.leader .member-avatar{outline:2px solid ", ";outline-offset:-2px;}.member-name{flex:1;margin-left:12px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.member-right{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:8px;}.leader-crown{flex-shrink:0;}.member-options{display:none;align-items:center;gap:2px;}.member-row:hover .member-options{display:flex;}"], _tokens.TRANSITION, LEADER_GOLD, LEADER_GOLD);
|
|
330
|
+
var PeoplePopover = function PeoplePopover() {
|
|
331
|
+
var _useState13 = (0, _react.useState)(false),
|
|
332
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
333
|
+
open = _useState14[0],
|
|
334
|
+
setOpen = _useState14[1];
|
|
335
|
+
return /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
336
|
+
open: open,
|
|
337
|
+
onOpen: function onOpen() {
|
|
338
|
+
return setOpen(true);
|
|
339
|
+
},
|
|
340
|
+
onClose: function onClose() {
|
|
341
|
+
return setOpen(false);
|
|
342
|
+
},
|
|
343
|
+
position: "bottom-end",
|
|
344
|
+
target: /*#__PURE__*/_react.default.createElement(_CounterButton.CounterButton, {
|
|
345
|
+
label: String(PROJECT_MEMBERS.length),
|
|
346
|
+
icon: /*#__PURE__*/_react.default.createElement(_Icons.PeopleIcon, null),
|
|
347
|
+
active: open,
|
|
348
|
+
onClearAll: function onClearAll() {
|
|
349
|
+
return undefined;
|
|
350
|
+
}
|
|
351
|
+
})
|
|
352
|
+
}, /*#__PURE__*/_react.default.createElement(StyledPeopleMenu, null, /*#__PURE__*/_react.default.createElement(_Menu.MenuHeader, {
|
|
353
|
+
title: "People",
|
|
354
|
+
rightElement: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
355
|
+
type: "button",
|
|
356
|
+
variant: "text gray",
|
|
357
|
+
size: "small",
|
|
358
|
+
"aria-label": "Add People"
|
|
359
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.AddCrossTinyIcon, null))
|
|
360
|
+
}), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
|
|
361
|
+
weight: "bold",
|
|
362
|
+
className: "members-label"
|
|
363
|
+
}, "Members"), PROJECT_MEMBERS.map(function (member) {
|
|
364
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
365
|
+
className: member.leader ? "member-row leader" : "member-row",
|
|
366
|
+
key: member.name
|
|
367
|
+
}, /*#__PURE__*/_react.default.createElement(_RoundAvatar.RoundAvatar, {
|
|
368
|
+
className: "member-avatar",
|
|
369
|
+
$bg: member.color,
|
|
370
|
+
$bordered: false
|
|
371
|
+
}, member.initials), /*#__PURE__*/_react.default.createElement(_Typography.Body2, {
|
|
372
|
+
className: "member-name"
|
|
373
|
+
}, member.name), /*#__PURE__*/_react.default.createElement("span", {
|
|
374
|
+
className: "member-right"
|
|
375
|
+
}, member.leader && /*#__PURE__*/_react.default.createElement(_Icons.CrownSelectedIcon, {
|
|
376
|
+
className: "leader-crown",
|
|
377
|
+
style: {
|
|
378
|
+
fill: LEADER_GOLD
|
|
379
|
+
}
|
|
380
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
381
|
+
className: "member-options"
|
|
382
|
+
}, !member.leader && /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
383
|
+
title: "Set as Project Leader"
|
|
384
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
385
|
+
type: "button",
|
|
386
|
+
variant: "text gray",
|
|
387
|
+
size: "small"
|
|
388
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.CrownBlankIcon, null))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
389
|
+
title: "Remove from Project"
|
|
390
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
391
|
+
type: "button",
|
|
392
|
+
variant: "text gray",
|
|
393
|
+
size: "small"
|
|
394
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.CloseSmallIcon, null))))));
|
|
395
|
+
})));
|
|
115
396
|
};
|
|
116
397
|
/** The project page header: back arrow, title, progress, info, people, options. */
|
|
117
|
-
var ProjectPageHeader = exports.ProjectPageHeader = function ProjectPageHeader(
|
|
118
|
-
var
|
|
119
|
-
title =
|
|
398
|
+
var ProjectPageHeader = exports.ProjectPageHeader = function ProjectPageHeader(_ref3) {
|
|
399
|
+
var _ref3$title = _ref3.title,
|
|
400
|
+
title = _ref3$title === void 0 ? "#131: Ime projekta" : _ref3$title,
|
|
401
|
+
_ref3$sourceModuleLoa = _ref3.sourceModuleLoaded,
|
|
402
|
+
sourceModuleLoaded = _ref3$sourceModuleLoa === void 0 ? false : _ref3$sourceModuleLoa;
|
|
120
403
|
return /*#__PURE__*/_react.default.createElement(StyledPageHeader, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
121
404
|
className: "page-header-left"
|
|
122
405
|
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
@@ -139,13 +422,9 @@ var ProjectPageHeader = exports.ProjectPageHeader = function ProjectPageHeader(_
|
|
|
139
422
|
title: "Project Info"
|
|
140
423
|
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
141
424
|
variant: "text gray"
|
|
142
|
-
}, /*#__PURE__*/_react.default.createElement(_Icons.InfoIcon, null))), /*#__PURE__*/_react.default.createElement(
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
onClearAll: function onClearAll() {
|
|
146
|
-
return undefined;
|
|
147
|
-
}
|
|
148
|
-
}), /*#__PURE__*/_react.default.createElement(ProjectOptionsMenu, null)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
425
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.InfoIcon, null))), /*#__PURE__*/_react.default.createElement(PeoplePopover, null), /*#__PURE__*/_react.default.createElement(ProjectOptionsMenu, {
|
|
426
|
+
sourceModuleLoaded: sourceModuleLoaded
|
|
427
|
+
})))), /*#__PURE__*/_react.default.createElement("div", {
|
|
149
428
|
className: "page-header-spacer"
|
|
150
429
|
}));
|
|
151
430
|
};
|
|
@@ -158,20 +437,20 @@ ProjectPageHeader.displayName = "ProjectPageHeader";
|
|
|
158
437
|
var NAV_TABS = ["Tasks", "Discussions", "Files", "Notes", "Activity"];
|
|
159
438
|
var StyledTabHeader = (0, _styledComponents.default)(_Header.Header).withConfig({
|
|
160
439
|
displayName: "headers__StyledTabHeader",
|
|
161
|
-
componentId: "sc-yf6o6n-
|
|
440
|
+
componentId: "sc-yf6o6n-4"
|
|
162
441
|
})(["justify-content:space-between;align-items:center;margin-bottom:16px;min-height:64px;flex-shrink:0;"]);
|
|
163
442
|
var StyledTabControls = _styledComponents.default.div.withConfig({
|
|
164
443
|
displayName: "headers__StyledTabControls",
|
|
165
|
-
componentId: "sc-yf6o6n-
|
|
444
|
+
componentId: "sc-yf6o6n-5"
|
|
166
445
|
})(["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;}"]);
|
|
167
446
|
/** The Tasks/Discussions/… tab bar plus the right-hand view toolbar. */
|
|
168
|
-
var TabHeader = exports.TabHeader = function TabHeader(
|
|
169
|
-
var
|
|
170
|
-
activeView =
|
|
171
|
-
var
|
|
172
|
-
|
|
173
|
-
active =
|
|
174
|
-
setActive =
|
|
447
|
+
var TabHeader = exports.TabHeader = function TabHeader(_ref4) {
|
|
448
|
+
var _ref4$activeView = _ref4.activeView,
|
|
449
|
+
activeView = _ref4$activeView === void 0 ? "list" : _ref4$activeView;
|
|
450
|
+
var _useState15 = (0, _react.useState)(0),
|
|
451
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
452
|
+
active = _useState16[0],
|
|
453
|
+
setActive = _useState16[1];
|
|
175
454
|
return /*#__PURE__*/_react.default.createElement(StyledTabHeader, null, /*#__PURE__*/_react.default.createElement(_Nav.Nav, {
|
|
176
455
|
onSelect: setActive
|
|
177
456
|
}, NAV_TABS.map(function (label, index) {
|