@activecollab/components 2.0.349 → 2.0.350
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/presentation/shared/WebhookLogsDialog.js +124 -14
- package/dist/cjs/presentation/shared/WebhookLogsDialog.js.map +1 -1
- package/dist/cjs/presentation/shared/headers.js +73 -37
- package/dist/cjs/presentation/shared/headers.js.map +1 -1
- package/dist/cjs/presentation/shared/index.js +7 -0
- package/dist/cjs/presentation/shared/index.js.map +1 -1
- package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts +22 -1
- package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts.map +1 -1
- package/dist/esm/presentation/shared/WebhookLogsDialog.js +133 -35
- package/dist/esm/presentation/shared/WebhookLogsDialog.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 +64 -35
- package/dist/esm/presentation/shared/headers.js.map +1 -1
- package/dist/esm/presentation/shared/index.d.ts +2 -2
- package/dist/esm/presentation/shared/index.d.ts.map +1 -1
- package/dist/esm/presentation/shared/index.js +1 -1
- package/dist/esm/presentation/shared/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
9
9
|
var _ConnectRepositoryDialog = require("./ConnectRepositoryDialog");
|
|
10
10
|
var _RoundAvatar = require("./RoundAvatar");
|
|
11
11
|
var _tokens = require("./tokens");
|
|
12
|
+
var _WebhookLogsDialog = require("./WebhookLogsDialog");
|
|
12
13
|
var _Badge = require("../../components/Badge");
|
|
13
14
|
var _Button = require("../../components/Button");
|
|
14
15
|
var _GlobalAddButton = require("../../components/Button/GlobalAddButton");
|
|
@@ -78,11 +79,24 @@ var StyledProjectMenu = _styledComponents.default.div.withConfig({
|
|
|
78
79
|
componentId: "sc-yf6o6n-2"
|
|
79
80
|
})([".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-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}.submenu-item .repo-right .c-badge{background-color:var(--color-theme-300);color:var(--color-theme-700);}.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;}"]);
|
|
80
81
|
|
|
82
|
+
/* The project "..." menu shares the Webhook Logs dialog's repository /
|
|
83
|
+
* connection universe, so a repository connected here is one that dialog can
|
|
84
|
+
* pre-filter by. `WebhookConnection` and `Connection` share a shape, and a
|
|
85
|
+
* `WebhookRepository`'s `path` maps onto a `Repository`'s `name`. */
|
|
86
|
+
var PROJECT_MENU_CONNECTIONS = _WebhookLogsDialog.WEBHOOK_CONNECTIONS;
|
|
87
|
+
var PROJECT_MENU_REPOSITORIES = _WebhookLogsDialog.WEBHOOK_REPOSITORIES.map(function (repo) {
|
|
88
|
+
return {
|
|
89
|
+
id: repo.id,
|
|
90
|
+
name: repo.path,
|
|
91
|
+
connectionId: repo.connectionId
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
|
|
81
95
|
/** Submenu row label for a connected repository: "path (Connection)". The
|
|
82
96
|
* service type is omitted because the leading provider icon already conveys
|
|
83
97
|
* it. */
|
|
84
98
|
var repositoryMenuLabel = function repositoryMenuLabel(repo) {
|
|
85
|
-
var connection =
|
|
99
|
+
var connection = PROJECT_MENU_CONNECTIONS.find(function (c) {
|
|
86
100
|
return c.id === repo.connectionId;
|
|
87
101
|
});
|
|
88
102
|
return connection ? "".concat(repo.name, " (").concat(connection.name, ")") : repo.name;
|
|
@@ -92,7 +106,7 @@ var repositoryMenuLabel = function repositoryMenuLabel(repo) {
|
|
|
92
106
|
* services, and the generic Git mark for anything else (e.g. an upcoming
|
|
93
107
|
* Bitbucket connection). */
|
|
94
108
|
var repositoryIcon = function repositoryIcon(repo) {
|
|
95
|
-
var connection =
|
|
109
|
+
var connection = PROJECT_MENU_CONNECTIONS.find(function (c) {
|
|
96
110
|
return c.id === repo.connectionId;
|
|
97
111
|
});
|
|
98
112
|
switch (connection === null || connection === void 0 ? void 0 : connection.service) {
|
|
@@ -132,7 +146,9 @@ var ProjectOptionsMenu = function ProjectOptionsMenu(_ref2) {
|
|
|
132
146
|
var _ref2$sourceModuleLoa = _ref2.sourceModuleLoaded,
|
|
133
147
|
sourceModuleLoaded = _ref2$sourceModuleLoa === void 0 ? false : _ref2$sourceModuleLoa,
|
|
134
148
|
_ref2$initialConnecte = _ref2.initialConnectedRepositories,
|
|
135
|
-
initialConnectedRepositories = _ref2$initialConnecte === void 0 ? [] : _ref2$initialConnecte
|
|
149
|
+
initialConnectedRepositories = _ref2$initialConnecte === void 0 ? [] : _ref2$initialConnecte,
|
|
150
|
+
_ref2$canManageProjec = _ref2.canManageProjectRepositories,
|
|
151
|
+
canManageProjectRepositories = _ref2$canManageProjec === void 0 ? true : _ref2$canManageProjec;
|
|
136
152
|
var _useState = (0, _react.useState)(false),
|
|
137
153
|
_useState2 = _slicedToArray(_useState, 2),
|
|
138
154
|
open = _useState2[0],
|
|
@@ -141,43 +157,47 @@ var ProjectOptionsMenu = function ProjectOptionsMenu(_ref2) {
|
|
|
141
157
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
142
158
|
view = _useState4[0],
|
|
143
159
|
setView = _useState4[1];
|
|
144
|
-
var _useState5 = (0, _react.useState)(
|
|
160
|
+
var _useState5 = (0, _react.useState)(false),
|
|
145
161
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
var _useState7 = (0, _react.useState)(
|
|
162
|
+
webhookLogsOpen = _useState6[0],
|
|
163
|
+
setWebhookLogsOpen = _useState6[1];
|
|
164
|
+
var _useState7 = (0, _react.useState)(true),
|
|
149
165
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
150
|
-
|
|
151
|
-
|
|
166
|
+
isLeft = _useState8[0],
|
|
167
|
+
setIsLeft = _useState8[1];
|
|
168
|
+
var _useState9 = (0, _react.useState)(0),
|
|
169
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
170
|
+
height = _useState0[0],
|
|
171
|
+
setHeight = _useState0[1];
|
|
152
172
|
// Connected repositories drive the count badge on the Repositories item. In
|
|
153
173
|
// production this count comes from the project's `count_repositories` counter,
|
|
154
174
|
// kept current via pusher/websocket events, so the badge reflects repositories
|
|
155
175
|
// connected or disconnected by anyone — not just the current user's actions.
|
|
156
|
-
var
|
|
157
|
-
_useState0 = _slicedToArray(_useState9, 2),
|
|
158
|
-
connectedRepos = _useState0[0],
|
|
159
|
-
setConnectedRepos = _useState0[1];
|
|
160
|
-
var _useState1 = (0, _react.useState)(false),
|
|
176
|
+
var _useState1 = (0, _react.useState)(initialConnectedRepositories),
|
|
161
177
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
162
|
-
|
|
163
|
-
|
|
178
|
+
connectedRepos = _useState10[0],
|
|
179
|
+
setConnectedRepos = _useState10[1];
|
|
164
180
|
var _useState11 = (0, _react.useState)(false),
|
|
165
181
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
166
|
-
|
|
167
|
-
|
|
182
|
+
connectOpen = _useState12[0],
|
|
183
|
+
setConnectOpen = _useState12[1];
|
|
168
184
|
var _useState13 = (0, _react.useState)(false),
|
|
169
185
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
170
|
-
|
|
171
|
-
|
|
186
|
+
infoOpen = _useState14[0],
|
|
187
|
+
setInfoOpen = _useState14[1];
|
|
188
|
+
var _useState15 = (0, _react.useState)(false),
|
|
189
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
190
|
+
toastOpen = _useState16[0],
|
|
191
|
+
setToastOpen = _useState16[1];
|
|
172
192
|
// Bumped on each connect so the toast remounts and its auto-hide timer
|
|
173
193
|
// restarts from the moment it is shown.
|
|
174
|
-
var
|
|
175
|
-
|
|
176
|
-
toastKey =
|
|
177
|
-
setToastKey =
|
|
194
|
+
var _useState17 = (0, _react.useState)(0),
|
|
195
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
196
|
+
toastKey = _useState18[0],
|
|
197
|
+
setToastKey = _useState18[1];
|
|
178
198
|
|
|
179
199
|
// Repositories still available to connect (not already on the project).
|
|
180
|
-
var connectableRepos =
|
|
200
|
+
var connectableRepos = PROJECT_MENU_REPOSITORIES.filter(function (r) {
|
|
181
201
|
return !connectedRepos.some(function (c) {
|
|
182
202
|
return c.id === r.id;
|
|
183
203
|
});
|
|
@@ -230,6 +250,10 @@ var ProjectOptionsMenu = function ProjectOptionsMenu(_ref2) {
|
|
|
230
250
|
handleClose();
|
|
231
251
|
setInfoOpen(true);
|
|
232
252
|
};
|
|
253
|
+
var handleOpenWebhookLogs = function handleOpenWebhookLogs() {
|
|
254
|
+
handleClose();
|
|
255
|
+
setWebhookLogsOpen(true);
|
|
256
|
+
};
|
|
233
257
|
var indexView = /*#__PURE__*/_react.default.createElement(StyledProjectMenu, null, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
234
258
|
style: {
|
|
235
259
|
padding: "8px 0"
|
|
@@ -330,7 +354,9 @@ var ProjectOptionsMenu = function ProjectOptionsMenu(_ref2) {
|
|
|
330
354
|
}, /*#__PURE__*/_react.default.createElement(RepoIcon, null), /*#__PURE__*/_react.default.createElement("span", {
|
|
331
355
|
className: "repo-name"
|
|
332
356
|
}, repositoryMenuLabel(repo)));
|
|
333
|
-
}), sortedRepos.length > 0 ? /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null) : null, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
357
|
+
}), sortedRepos.length > 0 ? /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null) : null, sortedRepos.length > 0 && canManageProjectRepositories ? /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
358
|
+
onClick: handleOpenWebhookLogs
|
|
359
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.AccessLogIcon, null), "Webhook Logs") : null, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
334
360
|
onClick: handleConnect
|
|
335
361
|
}, /*#__PURE__*/_react.default.createElement(_Icons.GitRepositoryConnectIcon, null), "Connect Repository"))))))) : indexView), /*#__PURE__*/_react.default.createElement(_ConnectRepositoryDialog.ConnectRepositoryDialog, {
|
|
336
362
|
open: connectOpen,
|
|
@@ -339,7 +365,15 @@ var ProjectOptionsMenu = function ProjectOptionsMenu(_ref2) {
|
|
|
339
365
|
},
|
|
340
366
|
onConnect: handleConnected,
|
|
341
367
|
repositories: connectableRepos,
|
|
342
|
-
connections:
|
|
368
|
+
connections: PROJECT_MENU_CONNECTIONS
|
|
369
|
+
}), /*#__PURE__*/_react.default.createElement(_WebhookLogsDialog.WebhookLogsDialog, {
|
|
370
|
+
open: webhookLogsOpen,
|
|
371
|
+
onClose: function onClose() {
|
|
372
|
+
return setWebhookLogsOpen(false);
|
|
373
|
+
},
|
|
374
|
+
repositoryIds: sortedRepos.map(function (repo) {
|
|
375
|
+
return repo.id;
|
|
376
|
+
})
|
|
343
377
|
}), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
|
|
344
378
|
open: infoOpen,
|
|
345
379
|
onClose: function onClose() {
|
|
@@ -395,10 +429,10 @@ var StyledPeopleMenu = _styledComponents.default.div.withConfig({
|
|
|
395
429
|
componentId: "sc-yf6o6n-4"
|
|
396
430
|
})(["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);
|
|
397
431
|
var PeoplePopover = function PeoplePopover() {
|
|
398
|
-
var
|
|
399
|
-
|
|
400
|
-
open =
|
|
401
|
-
setOpen =
|
|
432
|
+
var _useState19 = (0, _react.useState)(false),
|
|
433
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
434
|
+
open = _useState20[0],
|
|
435
|
+
setOpen = _useState20[1];
|
|
402
436
|
return /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
403
437
|
open: open,
|
|
404
438
|
onOpen: function onOpen() {
|
|
@@ -467,7 +501,8 @@ var ProjectPageHeader = exports.ProjectPageHeader = function ProjectPageHeader(_
|
|
|
467
501
|
title = _ref3$title === void 0 ? "#131: Ime projekta" : _ref3$title,
|
|
468
502
|
_ref3$sourceModuleLoa = _ref3.sourceModuleLoaded,
|
|
469
503
|
sourceModuleLoaded = _ref3$sourceModuleLoa === void 0 ? false : _ref3$sourceModuleLoa,
|
|
470
|
-
initialConnectedRepositories = _ref3.initialConnectedRepositories
|
|
504
|
+
initialConnectedRepositories = _ref3.initialConnectedRepositories,
|
|
505
|
+
canManageProjectRepositories = _ref3.canManageProjectRepositories;
|
|
471
506
|
return /*#__PURE__*/_react.default.createElement(StyledPageHeader, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
472
507
|
className: "page-header-left"
|
|
473
508
|
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
@@ -492,7 +527,8 @@ var ProjectPageHeader = exports.ProjectPageHeader = function ProjectPageHeader(_
|
|
|
492
527
|
variant: "text gray"
|
|
493
528
|
}, /*#__PURE__*/_react.default.createElement(_Icons.InfoIcon, null))), /*#__PURE__*/_react.default.createElement(PeoplePopover, null), /*#__PURE__*/_react.default.createElement(ProjectOptionsMenu, {
|
|
494
529
|
sourceModuleLoaded: sourceModuleLoaded,
|
|
495
|
-
initialConnectedRepositories: initialConnectedRepositories
|
|
530
|
+
initialConnectedRepositories: initialConnectedRepositories,
|
|
531
|
+
canManageProjectRepositories: canManageProjectRepositories
|
|
496
532
|
})))), /*#__PURE__*/_react.default.createElement("div", {
|
|
497
533
|
className: "page-header-spacer"
|
|
498
534
|
}));
|
|
@@ -516,10 +552,10 @@ var StyledTabControls = _styledComponents.default.div.withConfig({
|
|
|
516
552
|
var TabHeader = exports.TabHeader = function TabHeader(_ref4) {
|
|
517
553
|
var _ref4$activeView = _ref4.activeView,
|
|
518
554
|
activeView = _ref4$activeView === void 0 ? "list" : _ref4$activeView;
|
|
519
|
-
var
|
|
520
|
-
|
|
521
|
-
active =
|
|
522
|
-
setActive =
|
|
555
|
+
var _useState21 = (0, _react.useState)(0),
|
|
556
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
|
557
|
+
active = _useState22[0],
|
|
558
|
+
setActive = _useState22[1];
|
|
523
559
|
return /*#__PURE__*/_react.default.createElement(StyledTabHeader, null, /*#__PURE__*/_react.default.createElement(_Nav.Nav, {
|
|
524
560
|
onSelect: setActive
|
|
525
561
|
}, NAV_TABS.map(function (label, index) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_ConnectRepositoryDialog","_RoundAvatar","_tokens","_Badge","_Button","_GlobalAddButton","_CompleteCheckbox","_CounterButton","_Dialog","_Header","_IconButton","_Icons","_List","_Menu","_Nav","_ProgressPie","_ToastMessage","_Tooltip","_Transitions","_Typography","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","LEADER_GOLD","StyledPageHeader","styled","div","withConfig","displayName","componentId","SM","MD","PageHeader","exports","_ref","title","children","createElement","className","Title2","Header2","StyledProjectHeaderChildren","StyledProjectMenu","repositoryMenuLabel","repo","connection","CONNECTIONS","find","c","id","connectionId","concat","repositoryIcon","service","GitHubIcon","GitLabIcon","GitIcon","PROJECT_MENU_WIDTH","ProjectMenuSliderStyle","createGlobalStyle","StyledToastAnchor","ProjectOptionsMenu","_ref2","_ref2$sourceModuleLoa","sourceModuleLoaded","_ref2$initialConnecte","initialConnectedRepositories","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","view","setView","_useState5","_useState6","isLeft","setIsLeft","_useState7","_useState8","height","setHeight","_useState9","_useState0","connectedRepos","setConnectedRepos","_useState1","_useState10","connectOpen","setConnectOpen","_useState11","_useState12","infoOpen","setInfoOpen","_useState13","_useState14","toastOpen","setToastOpen","_useState15","_useState16","toastKey","setToastKey","connectableRepos","CONNECTABLE_REPOSITORIES","filter","some","sortedRepos","sort","b","localeCompare","measure","useCallback","node","offsetHeight","goToRepositories","backToIndex","handleClose","handleConnected","prev","k","handleConnect","handleOpenRepository","indexView","List","style","padding","tabIndex","ListItem","EditIcon","StarIcon","CompleteCheckbox","primary","completed","NotificationBellIcon","LabelsIcon","InsertLinkIcon","ListSeparator","CheckboxBlankTogglerIcon","DownloadIcon","Fragment","onClick","GitRepositoryIcon","Badge","isStandalone","dimension","CaretRightIcon","width","DuplicateIcon","ProjectTemplateIcon","ProjectTemplateConvertIcon","TrashIcon","Menu","onOpen","onClose","position","menuClassName","undefined","target","IconButton","type","variant","active","TreeDotsIcon","ResizeTransition","in","overflow","SlideLeftRightTransition","direction","ref","MenuHeader","leftElement","size","ArrowLeftIcon","map","RepoIcon","key","GitRepositoryConnectIcon","ConnectRepositoryDialog","onConnect","repositories","connections","Dialog","enableBackgroundClick","Title","ContentDivider","Content","Body2","Actions","Button","SlideFromTop","ToastMessage","text","dismissible","dropShadow","timeout","PROJECT_MEMBERS","initials","color","AVATAR_COLORS","blue","leader","purple","orange","StyledPeopleMenu","TRANSITION","PeoplePopover","_useState17","_useState18","CounterButton","label","String","icon","PeopleIcon","onClearAll","rightElement","AddCrossTinyIcon","Caption1","weight","member","RoundAvatar","$bg","$bordered","CrownSelectedIcon","fill","Tooltip","CrownBlankIcon","CloseSmallIcon","ProjectPageHeader","_ref3","_ref3$title","_ref3$sourceModuleLoa","ProgressPie","radius","progress","progressColor","backgroundColor","InfoIcon","NAV_TABS","StyledTabHeader","Header","StyledTabControls","TabHeader","_ref4","_ref4$activeView","activeView","_useState19","_useState20","setActive","Nav","onSelect","index","Item","EditMultipleIcon","FilterIcon","ViewListIcon","transform","ViewTimelineIcon","GlobalAddButton"],"sources":["../../../../src/presentation/shared/headers.tsx"],"sourcesContent":["import React, {\n ElementType,\n ReactElement,\n ReactNode,\n useCallback,\n useState,\n} from \"react\";\n\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport {\n CONNECTABLE_REPOSITORIES,\n CONNECTIONS,\n ConnectRepositoryDialog,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nimport { RoundAvatar } from \"./RoundAvatar\";\nimport { AVATAR_COLORS, MD, SM, TRANSITION } from \"./tokens\";\nimport { Badge } from \"../../components/Badge\";\nimport { Button } from \"../../components/Button\";\nimport { GlobalAddButton } from \"../../components/Button/GlobalAddButton\";\nimport { CompleteCheckbox } from \"../../components/CompleteCheckbox\";\nimport { CounterButton } from \"../../components/CounterButton\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { Header } from \"../../components/Header\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n AddCrossTinyIcon,\n ArrowLeftIcon,\n CaretRightIcon,\n CheckboxBlankTogglerIcon,\n CloseSmallIcon,\n CrownBlankIcon,\n CrownSelectedIcon,\n DownloadIcon,\n DuplicateIcon,\n EditIcon,\n EditMultipleIcon,\n FilterIcon,\n GitHubIcon,\n GitIcon,\n GitLabIcon,\n GitRepositoryConnectIcon,\n GitRepositoryIcon,\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, MenuHeader } from \"../../components/Menu\";\nimport { Item, Nav } from \"../../components/Nav\";\nimport { ProgressPie } from \"../../components/ProgressPie\";\nimport { ToastMessage } from \"../../components/ToastMessage\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport {\n ResizeTransition,\n SlideFromTop,\n SlideLeftRightTransition,\n} from \"../../components/Transitions\";\nimport { Body2, Caption1, Header2, Title2 } from \"../../components/Typography\";\n\n/** Gold used for the project-leader cues (a data colour, not a theme token). */\nconst LEADER_GOLD = \"#FFCC6B\";\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 /* the app renders the toggle as a small rounded (not circular) CompleteCheckbox */\n .toggle-item .c-complete-checkbox {\n width: 16px;\n height: 16px;\n border-radius: 3px;\n align-self: center;\n flex-shrink: 0;\n }\n\n /* \"Repositories\" item: caret pushed to the right edge */\n .submenu-item {\n justify-content: space-between;\n }\n\n /* right side of the \"Repositories\" item: connected-count badge + caret */\n .submenu-item .repo-right {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n }\n\n /* muted count badge — a quiet neutral pill rather than the bold primary\n default, so it informs without pulling focus */\n .submenu-item .repo-right .c-badge {\n background-color: var(--color-theme-300);\n color: var(--color-theme-700);\n }\n\n .submenu-item .repo-caret {\n flex-shrink: 0;\n fill: var(--color-theme-600);\n }\n\n /* a connected-repository row inside the submenu — long \"path (Connection,\n Type)\" labels truncate with an ellipsis rather than wrapping */\n .repo-row {\n min-width: 0;\n }\n\n .repo-row > svg {\n flex-shrink: 0;\n }\n\n .repo-name {\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`;\n\n/** Submenu row label for a connected repository: \"path (Connection)\". The\n * service type is omitted because the leading provider icon already conveys\n * it. */\nconst repositoryMenuLabel = (repo: Repository): string => {\n const connection = CONNECTIONS.find((c) => c.id === repo.connectionId);\n return connection ? `${repo.name} (${connection.name})` : repo.name;\n};\n\n/** Provider glyph for a connected repository: GitHub / GitLab for those\n * services, and the generic Git mark for anything else (e.g. an upcoming\n * Bitbucket connection). */\nconst repositoryIcon = (repo: Repository): ElementType => {\n const connection = CONNECTIONS.find((c) => c.id === repo.connectionId);\n switch (connection?.service) {\n case \"github\":\n return GitHubIcon;\n case \"gitlab\":\n return GitLabIcon;\n default:\n return GitIcon;\n }\n};\n\n/** Width of the project \"...\" menu (matches the DS \"normal\" menu mode). */\nconst PROJECT_MENU_WIDTH = 260;\n\n/* The menu drills in place (index → Repositories), so the paper must clip the\n sliding panels and give them a positioning context. */\nconst ProjectMenuSliderStyle = createGlobalStyle`\n .c-simple-menu__paper.project-options-menu {\n overflow: hidden;\n position: relative;\n }\n`;\n\n/* Toast anchor — fixed, upper-right corner (the toast slides down from the\n top). The wrapper ignores pointer events so it never blocks the page; only\n the toast itself is interactive. */\nconst StyledToastAnchor = styled.div`\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 10000;\n pointer-events: none;\n\n .c-toast-message {\n pointer-events: auto;\n }\n`;\n\nexport interface ProjectOptionsMenuProps {\n /** When the `source` module is loaded, show the Repositories section. */\n sourceModuleLoaded?: boolean;\n /** Repositories already connected to the project when the menu first mounts. */\n initialConnectedRepositories?: Repository[];\n}\n\n/**\n * The project \"...\" options menu. When the `source` module is loaded it gains\n * a **Repositories** item that, instead of flying out to the side, **drills in\n * within the same menu** (the pattern used across the app — see `Filter`): the\n * index slides out to the left and the Repositories view (a back-arrow header,\n * the connected repositories sorted by name, and a **Connect Repository**\n * action) slides in. Connecting adds a repository to the list; clicking one\n * would, in production, open it in a new tab (surfaced here via a dialog).\n */\nconst ProjectOptionsMenu = ({\n sourceModuleLoaded = false,\n initialConnectedRepositories = [],\n}: ProjectOptionsMenuProps): ReactElement => {\n const [open, setOpen] = useState(false);\n const [view, setView] = useState<\"index\" | \"repositories\">(\"index\");\n const [isLeft, setIsLeft] = useState(true);\n const [height, setHeight] = useState(0);\n // Connected repositories drive the count badge on the Repositories item. In\n // production this count comes from the project's `count_repositories` counter,\n // kept current via pusher/websocket events, so the badge reflects repositories\n // connected or disconnected by anyone — not just the current user's actions.\n const [connectedRepos, setConnectedRepos] = useState<Repository[]>(\n initialConnectedRepositories\n );\n const [connectOpen, setConnectOpen] = useState(false);\n const [infoOpen, setInfoOpen] = useState(false);\n const [toastOpen, setToastOpen] = useState(false);\n // Bumped on each connect so the toast remounts and its auto-hide timer\n // restarts from the moment it is shown.\n const [toastKey, setToastKey] = useState(0);\n\n // Repositories still available to connect (not already on the project).\n const connectableRepos = CONNECTABLE_REPOSITORIES.filter(\n (r) => !connectedRepos.some((c) => c.id === r.id)\n );\n\n // Connected repositories are listed in the submenu sorted by name.\n const sortedRepos = [...connectedRepos].sort((a, b) =>\n a.name.localeCompare(b.name)\n );\n\n // Each view measures itself as it mounts so the paper can animate its height.\n const measure = useCallback((node: HTMLDivElement | null) => {\n if (node) {\n setHeight(node.offsetHeight);\n }\n }, []);\n\n const goToRepositories = (): void => {\n setView(\"repositories\");\n setIsLeft(true);\n };\n\n const backToIndex = (): void => {\n setView(\"index\");\n setIsLeft(false);\n };\n\n const handleClose = (): void => {\n setOpen(false);\n // Reset to the index so the next open starts at the top level.\n setView(\"index\");\n setIsLeft(true);\n };\n\n const handleConnected = (repo: Repository): void => {\n setConnectedRepos((prev) =>\n prev.some((r) => r.id === repo.id) ? prev : [...prev, repo]\n );\n setToastOpen(true);\n setToastKey((k) => k + 1);\n };\n\n const handleConnect = (): void => {\n handleClose();\n setConnectOpen(true);\n };\n\n // In production this closes the menu and opens the repository in a new tab;\n // in the mock we surface that behaviour in a small dialog instead.\n const handleOpenRepository = (): void => {\n handleClose();\n setInfoOpen(true);\n };\n\n const indexView = (\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 <CompleteCheckbox primary completed />\n </ListItem>\n <ListItem className=\"toggle-item\">\n <span className=\"opt-left\">\n <NotificationBellIcon />\n Subscribe to Everything\n </span>\n <CompleteCheckbox primary completed={false} />\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 <ListItem>\n <DownloadIcon />\n Export\n </ListItem>\n {sourceModuleLoaded ? (\n <>\n <ListSeparator />\n <ListItem\n className=\"toggle-item submenu-item\"\n onClick={goToRepositories}\n >\n <span className=\"opt-left\">\n <GitRepositoryIcon />\n Repositories\n </span>\n <span className=\"repo-right\">\n {connectedRepos.length > 0 ? (\n <Badge\n isStandalone\n dimension={16}\n value={connectedRepos.length}\n />\n ) : null}\n <CaretRightIcon className=\"repo-caret\" width={16} height={16} />\n </span>\n </ListItem>\n </>\n ) : null}\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 );\n\n return (\n <>\n <ProjectMenuSliderStyle />\n <Menu\n open={open}\n onOpen={() => setOpen(true)}\n onClose={handleClose}\n position=\"bottom-end\"\n menuClassName={sourceModuleLoaded ? \"project-options-menu\" : undefined}\n target={\n <IconButton type=\"button\" variant=\"text gray\" active={open}>\n <TreeDotsIcon />\n </IconButton>\n }\n >\n {sourceModuleLoaded ? (\n <ResizeTransition in style={{ height, width: PROJECT_MENU_WIDTH }}>\n <div style={{ position: \"relative\", overflow: \"hidden\" }}>\n <SlideLeftRightTransition\n in={view === \"index\"}\n direction={isLeft ? \"left\" : \"right\"}\n >\n <div ref={measure} style={{ width: PROJECT_MENU_WIDTH }}>\n {indexView}\n </div>\n </SlideLeftRightTransition>\n <SlideLeftRightTransition\n in={view === \"repositories\"}\n direction={isLeft ? \"left\" : \"right\"}\n >\n <div ref={measure} style={{ width: PROJECT_MENU_WIDTH }}>\n <MenuHeader\n title=\"Repositories\"\n leftElement={\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n size=\"small\"\n onClick={backToIndex}\n aria-label=\"Back\"\n >\n <ArrowLeftIcon />\n </IconButton>\n }\n />\n <StyledProjectMenu>\n <List style={{ padding: \"8px 0\" }} tabIndex={-1}>\n {sortedRepos.map((repo) => {\n const RepoIcon = repositoryIcon(repo);\n return (\n <ListItem\n key={repo.id}\n className=\"repo-row\"\n onClick={() => handleOpenRepository()}\n >\n <RepoIcon />\n <span className=\"repo-name\">\n {repositoryMenuLabel(repo)}\n </span>\n </ListItem>\n );\n })}\n {sortedRepos.length > 0 ? <ListSeparator /> : null}\n <ListItem onClick={handleConnect}>\n <GitRepositoryConnectIcon />\n Connect Repository\n </ListItem>\n </List>\n </StyledProjectMenu>\n </div>\n </SlideLeftRightTransition>\n </div>\n </ResizeTransition>\n ) : (\n indexView\n )}\n </Menu>\n\n <ConnectRepositoryDialog\n open={connectOpen}\n onClose={() => setConnectOpen(false)}\n onConnect={handleConnected}\n repositories={connectableRepos}\n connections={CONNECTIONS}\n />\n\n <Dialog\n open={infoOpen}\n onClose={() => setInfoOpen(false)}\n enableBackgroundClick\n >\n <Dialog.Title>Open Repository</Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <Body2>\n In production, this click would close the menu and open the\n repository in a new browser tab.\n </Body2>\n </Dialog.Content>\n <Dialog.ContentDivider />\n <Dialog.Actions>\n <Button variant=\"primary\" onClick={() => setInfoOpen(false)}>\n Got it\n </Button>\n </Dialog.Actions>\n </Dialog>\n\n <StyledToastAnchor>\n <SlideFromTop in={toastOpen}>\n <ToastMessage\n key={toastKey}\n className=\"c-toast-message\"\n type=\"success\"\n text=\"Repository connected.\"\n dismissible\n dropShadow\n timeout={3000}\n onClose={() => setToastOpen(false)}\n />\n </SlideFromTop>\n </StyledToastAnchor>\n </>\n );\n};\n\n/* People popover (mirrors the project header People dropdown): a header row\n (\"People\" + add button), a \"Members\" section and a row per member. The\n project leader shows a gold crown; other members reveal a \"set as leader\"\n crown and a remove button on hover. Clicks are no-ops. */\ninterface ProjectMember {\n name: string;\n initials: string;\n color: string;\n leader?: boolean;\n}\n\nconst PROJECT_MEMBERS: ProjectMember[] = [\n {\n name: \"Theo Brandt\",\n initials: \"TB\",\n color: AVATAR_COLORS.blue,\n leader: true,\n },\n { name: \"Iris Calloway\", initials: \"IC\", color: AVATAR_COLORS.purple },\n { name: \"Account Director\", initials: \"AD\", color: \"#8A8F98\" },\n { name: \"Grace Bennett\", initials: \"GB\", color: AVATAR_COLORS.orange },\n];\n\nconst StyledPeopleMenu = styled.div`\n width: 256px;\n\n .members-label {\n display: block;\n margin: 8px 0;\n padding: 0 16px;\n }\n\n .member-row {\n position: relative;\n display: flex;\n align-items: center;\n min-height: 40px;\n margin: 0 8px;\n padding: 2px 8px;\n border-radius: 4px;\n cursor: default;\n transition: background-color ${TRANSITION};\n }\n\n .member-row:hover {\n background-color: var(--color-theme-200);\n }\n\n /* gold left bar on the project-leader row */\n .member-row.leader::before {\n content: \"\";\n position: absolute;\n top: 4px;\n bottom: 4px;\n left: 0;\n width: 4px;\n border-radius: 4px;\n background-color: ${LEADER_GOLD};\n }\n\n /* gold ring on the leader's avatar */\n .member-row.leader .member-avatar {\n outline: 2px solid ${LEADER_GOLD};\n outline-offset: -2px;\n }\n\n .member-name {\n flex: 1;\n margin-left: 12px;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .member-right {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n margin-left: 8px;\n }\n\n .leader-crown {\n flex-shrink: 0;\n }\n\n /* member actions (set-as-leader / remove) appear on hover, like the app */\n .member-options {\n display: none;\n align-items: center;\n gap: 2px;\n }\n\n .member-row:hover .member-options {\n display: flex;\n }\n`;\n\nconst PeoplePopover = (): 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 <CounterButton\n label={String(PROJECT_MEMBERS.length)}\n icon={<PeopleIcon />}\n active={open}\n onClearAll={() => undefined}\n />\n }\n >\n <StyledPeopleMenu>\n <MenuHeader\n title=\"People\"\n rightElement={\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n size=\"small\"\n aria-label=\"Add People\"\n >\n <AddCrossTinyIcon />\n </IconButton>\n }\n />\n <Caption1 weight=\"bold\" className=\"members-label\">\n Members\n </Caption1>\n {PROJECT_MEMBERS.map((member) => (\n <div\n className={member.leader ? \"member-row leader\" : \"member-row\"}\n key={member.name}\n >\n <RoundAvatar\n className=\"member-avatar\"\n $bg={member.color}\n $bordered={false}\n >\n {member.initials}\n </RoundAvatar>\n <Body2 className=\"member-name\">{member.name}</Body2>\n <span className=\"member-right\">\n {member.leader && (\n <CrownSelectedIcon\n className=\"leader-crown\"\n style={{ fill: LEADER_GOLD }}\n />\n )}\n <span className=\"member-options\">\n {!member.leader && (\n <Tooltip title=\"Set as Project Leader\">\n <IconButton type=\"button\" variant=\"text gray\" size=\"small\">\n <CrownBlankIcon />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip title=\"Remove from Project\">\n <IconButton type=\"button\" variant=\"text gray\" size=\"small\">\n <CloseSmallIcon />\n </IconButton>\n </Tooltip>\n </span>\n </span>\n </div>\n ))}\n </StyledPeopleMenu>\n </Menu>\n );\n};\n\nexport interface ProjectPageHeaderProps {\n title?: string;\n /** When the `source` module is loaded, the \"...\" menu shows a Repositories\n * section (connected repositories + Connect Repository). */\n sourceModuleLoaded?: boolean;\n /** Repositories already connected to the project (seeds the count + submenu). */\n initialConnectedRepositories?: Repository[];\n}\n\n/** The project page header: back arrow, title, progress, info, people, options. */\nexport const ProjectPageHeader = ({\n title = \"#131: Ime projekta\",\n sourceModuleLoaded = false,\n initialConnectedRepositories,\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 <PeoplePopover />\n <ProjectOptionsMenu\n sourceModuleLoaded={sourceModuleLoaded}\n initialConnectedRepositories={initialConnectedRepositories}\n />\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":[]}
|
|
1
|
+
{"version":3,"file":"headers.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_ConnectRepositoryDialog","_RoundAvatar","_tokens","_WebhookLogsDialog","_Badge","_Button","_GlobalAddButton","_CompleteCheckbox","_CounterButton","_Dialog","_Header","_IconButton","_Icons","_List","_Menu","_Nav","_ProgressPie","_ToastMessage","_Tooltip","_Transitions","_Typography","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","LEADER_GOLD","StyledPageHeader","styled","div","withConfig","displayName","componentId","SM","MD","PageHeader","exports","_ref","title","children","createElement","className","Title2","Header2","StyledProjectHeaderChildren","StyledProjectMenu","PROJECT_MENU_CONNECTIONS","WEBHOOK_CONNECTIONS","PROJECT_MENU_REPOSITORIES","WEBHOOK_REPOSITORIES","map","repo","id","path","connectionId","repositoryMenuLabel","connection","find","c","concat","repositoryIcon","service","GitHubIcon","GitLabIcon","GitIcon","PROJECT_MENU_WIDTH","ProjectMenuSliderStyle","createGlobalStyle","StyledToastAnchor","ProjectOptionsMenu","_ref2","_ref2$sourceModuleLoa","sourceModuleLoaded","_ref2$initialConnecte","initialConnectedRepositories","_ref2$canManageProjec","canManageProjectRepositories","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","view","setView","_useState5","_useState6","webhookLogsOpen","setWebhookLogsOpen","_useState7","_useState8","isLeft","setIsLeft","_useState9","_useState0","height","setHeight","_useState1","_useState10","connectedRepos","setConnectedRepos","_useState11","_useState12","connectOpen","setConnectOpen","_useState13","_useState14","infoOpen","setInfoOpen","_useState15","_useState16","toastOpen","setToastOpen","_useState17","_useState18","toastKey","setToastKey","connectableRepos","filter","some","sortedRepos","sort","b","localeCompare","measure","useCallback","node","offsetHeight","goToRepositories","backToIndex","handleClose","handleConnected","prev","k","handleConnect","handleOpenRepository","handleOpenWebhookLogs","indexView","List","style","padding","tabIndex","ListItem","EditIcon","StarIcon","CompleteCheckbox","primary","completed","NotificationBellIcon","LabelsIcon","InsertLinkIcon","ListSeparator","CheckboxBlankTogglerIcon","DownloadIcon","Fragment","onClick","GitRepositoryIcon","Badge","isStandalone","dimension","CaretRightIcon","width","DuplicateIcon","ProjectTemplateIcon","ProjectTemplateConvertIcon","TrashIcon","Menu","onOpen","onClose","position","menuClassName","undefined","target","IconButton","type","variant","active","TreeDotsIcon","ResizeTransition","in","overflow","SlideLeftRightTransition","direction","ref","MenuHeader","leftElement","size","ArrowLeftIcon","RepoIcon","key","AccessLogIcon","GitRepositoryConnectIcon","ConnectRepositoryDialog","onConnect","repositories","connections","WebhookLogsDialog","repositoryIds","Dialog","enableBackgroundClick","Title","ContentDivider","Content","Body2","Actions","Button","SlideFromTop","ToastMessage","text","dismissible","dropShadow","timeout","PROJECT_MEMBERS","initials","color","AVATAR_COLORS","blue","leader","purple","orange","StyledPeopleMenu","TRANSITION","PeoplePopover","_useState19","_useState20","CounterButton","label","String","icon","PeopleIcon","onClearAll","rightElement","AddCrossTinyIcon","Caption1","weight","member","RoundAvatar","$bg","$bordered","CrownSelectedIcon","fill","Tooltip","CrownBlankIcon","CloseSmallIcon","ProjectPageHeader","_ref3","_ref3$title","_ref3$sourceModuleLoa","ProgressPie","radius","progress","progressColor","backgroundColor","InfoIcon","NAV_TABS","StyledTabHeader","Header","StyledTabControls","TabHeader","_ref4","_ref4$activeView","activeView","_useState21","_useState22","setActive","Nav","onSelect","index","Item","EditMultipleIcon","FilterIcon","ViewListIcon","transform","ViewTimelineIcon","GlobalAddButton"],"sources":["../../../../src/presentation/shared/headers.tsx"],"sourcesContent":["import React, {\n ElementType,\n ReactElement,\n ReactNode,\n useCallback,\n useState,\n} from \"react\";\n\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport {\n Connection,\n ConnectRepositoryDialog,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nimport { RoundAvatar } from \"./RoundAvatar\";\nimport { AVATAR_COLORS, MD, SM, TRANSITION } from \"./tokens\";\nimport {\n WEBHOOK_CONNECTIONS,\n WEBHOOK_REPOSITORIES,\n WebhookLogsDialog,\n} from \"./WebhookLogsDialog\";\nimport { Badge } from \"../../components/Badge\";\nimport { Button } from \"../../components/Button\";\nimport { GlobalAddButton } from \"../../components/Button/GlobalAddButton\";\nimport { CompleteCheckbox } from \"../../components/CompleteCheckbox\";\nimport { CounterButton } from \"../../components/CounterButton\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { Header } from \"../../components/Header\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n AccessLogIcon,\n AddCrossTinyIcon,\n ArrowLeftIcon,\n CaretRightIcon,\n CheckboxBlankTogglerIcon,\n CloseSmallIcon,\n CrownBlankIcon,\n CrownSelectedIcon,\n DownloadIcon,\n DuplicateIcon,\n EditIcon,\n EditMultipleIcon,\n FilterIcon,\n GitHubIcon,\n GitIcon,\n GitLabIcon,\n GitRepositoryConnectIcon,\n GitRepositoryIcon,\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, MenuHeader } from \"../../components/Menu\";\nimport { Item, Nav } from \"../../components/Nav\";\nimport { ProgressPie } from \"../../components/ProgressPie\";\nimport { ToastMessage } from \"../../components/ToastMessage\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport {\n ResizeTransition,\n SlideFromTop,\n SlideLeftRightTransition,\n} from \"../../components/Transitions\";\nimport { Body2, Caption1, Header2, Title2 } from \"../../components/Typography\";\n\n/** Gold used for the project-leader cues (a data colour, not a theme token). */\nconst LEADER_GOLD = \"#FFCC6B\";\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 /* the app renders the toggle as a small rounded (not circular) CompleteCheckbox */\n .toggle-item .c-complete-checkbox {\n width: 16px;\n height: 16px;\n border-radius: 3px;\n align-self: center;\n flex-shrink: 0;\n }\n\n /* \"Repositories\" item: caret pushed to the right edge */\n .submenu-item {\n justify-content: space-between;\n }\n\n /* right side of the \"Repositories\" item: connected-count badge + caret */\n .submenu-item .repo-right {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n }\n\n /* muted count badge — a quiet neutral pill rather than the bold primary\n default, so it informs without pulling focus */\n .submenu-item .repo-right .c-badge {\n background-color: var(--color-theme-300);\n color: var(--color-theme-700);\n }\n\n .submenu-item .repo-caret {\n flex-shrink: 0;\n fill: var(--color-theme-600);\n }\n\n /* a connected-repository row inside the submenu — long \"path (Connection,\n Type)\" labels truncate with an ellipsis rather than wrapping */\n .repo-row {\n min-width: 0;\n }\n\n .repo-row > svg {\n flex-shrink: 0;\n }\n\n .repo-name {\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`;\n\n/* The project \"...\" menu shares the Webhook Logs dialog's repository /\n * connection universe, so a repository connected here is one that dialog can\n * pre-filter by. `WebhookConnection` and `Connection` share a shape, and a\n * `WebhookRepository`'s `path` maps onto a `Repository`'s `name`. */\nconst PROJECT_MENU_CONNECTIONS: Connection[] = WEBHOOK_CONNECTIONS;\nconst PROJECT_MENU_REPOSITORIES: Repository[] = WEBHOOK_REPOSITORIES.map(\n (repo) => ({ id: repo.id, name: repo.path, connectionId: repo.connectionId })\n);\n\n/** Submenu row label for a connected repository: \"path (Connection)\". The\n * service type is omitted because the leading provider icon already conveys\n * it. */\nconst repositoryMenuLabel = (repo: Repository): string => {\n const connection = PROJECT_MENU_CONNECTIONS.find(\n (c) => c.id === repo.connectionId\n );\n return connection ? `${repo.name} (${connection.name})` : repo.name;\n};\n\n/** Provider glyph for a connected repository: GitHub / GitLab for those\n * services, and the generic Git mark for anything else (e.g. an upcoming\n * Bitbucket connection). */\nconst repositoryIcon = (repo: Repository): ElementType => {\n const connection = PROJECT_MENU_CONNECTIONS.find(\n (c) => c.id === repo.connectionId\n );\n switch (connection?.service) {\n case \"github\":\n return GitHubIcon;\n case \"gitlab\":\n return GitLabIcon;\n default:\n return GitIcon;\n }\n};\n\n/** Width of the project \"...\" menu (matches the DS \"normal\" menu mode). */\nconst PROJECT_MENU_WIDTH = 260;\n\n/* The menu drills in place (index → Repositories), so the paper must clip the\n sliding panels and give them a positioning context. */\nconst ProjectMenuSliderStyle = createGlobalStyle`\n .c-simple-menu__paper.project-options-menu {\n overflow: hidden;\n position: relative;\n }\n`;\n\n/* Toast anchor — fixed, upper-right corner (the toast slides down from the\n top). The wrapper ignores pointer events so it never blocks the page; only\n the toast itself is interactive. */\nconst StyledToastAnchor = styled.div`\n position: fixed;\n top: 16px;\n right: 16px;\n z-index: 10000;\n pointer-events: none;\n\n .c-toast-message {\n pointer-events: auto;\n }\n`;\n\nexport interface ProjectOptionsMenuProps {\n /** When the `source` module is loaded, show the Repositories section. */\n sourceModuleLoaded?: boolean;\n /** Repositories already connected to the project when the menu first mounts. */\n initialConnectedRepositories?: Repository[];\n /**\n * Whether the current user can manage the project's repositories. Gates the\n * Webhook Logs entry (a manage-only action) — see note 09, Permissions.\n */\n canManageProjectRepositories?: boolean;\n}\n\n/**\n * The project \"...\" options menu. When the `source` module is loaded it gains\n * a **Repositories** item that, instead of flying out to the side, **drills in\n * within the same menu** (the pattern used across the app — see `Filter`): the\n * index slides out to the left and the Repositories view (a back-arrow header,\n * the connected repositories sorted by name, and a **Connect Repository**\n * action) slides in. Connecting adds a repository to the list; clicking one\n * would, in production, open it in a new tab (surfaced here via a dialog).\n */\nconst ProjectOptionsMenu = ({\n sourceModuleLoaded = false,\n initialConnectedRepositories = [],\n canManageProjectRepositories = true,\n}: ProjectOptionsMenuProps): ReactElement => {\n const [open, setOpen] = useState(false);\n const [view, setView] = useState<\"index\" | \"repositories\">(\"index\");\n const [webhookLogsOpen, setWebhookLogsOpen] = useState(false);\n const [isLeft, setIsLeft] = useState(true);\n const [height, setHeight] = useState(0);\n // Connected repositories drive the count badge on the Repositories item. In\n // production this count comes from the project's `count_repositories` counter,\n // kept current via pusher/websocket events, so the badge reflects repositories\n // connected or disconnected by anyone — not just the current user's actions.\n const [connectedRepos, setConnectedRepos] = useState<Repository[]>(\n initialConnectedRepositories\n );\n const [connectOpen, setConnectOpen] = useState(false);\n const [infoOpen, setInfoOpen] = useState(false);\n const [toastOpen, setToastOpen] = useState(false);\n // Bumped on each connect so the toast remounts and its auto-hide timer\n // restarts from the moment it is shown.\n const [toastKey, setToastKey] = useState(0);\n\n // Repositories still available to connect (not already on the project).\n const connectableRepos = PROJECT_MENU_REPOSITORIES.filter(\n (r) => !connectedRepos.some((c) => c.id === r.id)\n );\n\n // Connected repositories are listed in the submenu sorted by name.\n const sortedRepos = [...connectedRepos].sort((a, b) =>\n a.name.localeCompare(b.name)\n );\n\n // Each view measures itself as it mounts so the paper can animate its height.\n const measure = useCallback((node: HTMLDivElement | null) => {\n if (node) {\n setHeight(node.offsetHeight);\n }\n }, []);\n\n const goToRepositories = (): void => {\n setView(\"repositories\");\n setIsLeft(true);\n };\n\n const backToIndex = (): void => {\n setView(\"index\");\n setIsLeft(false);\n };\n\n const handleClose = (): void => {\n setOpen(false);\n // Reset to the index so the next open starts at the top level.\n setView(\"index\");\n setIsLeft(true);\n };\n\n const handleConnected = (repo: Repository): void => {\n setConnectedRepos((prev) =>\n prev.some((r) => r.id === repo.id) ? prev : [...prev, repo]\n );\n setToastOpen(true);\n setToastKey((k) => k + 1);\n };\n\n const handleConnect = (): void => {\n handleClose();\n setConnectOpen(true);\n };\n\n // In production this closes the menu and opens the repository in a new tab;\n // in the mock we surface that behaviour in a small dialog instead.\n const handleOpenRepository = (): void => {\n handleClose();\n setInfoOpen(true);\n };\n\n const handleOpenWebhookLogs = (): void => {\n handleClose();\n setWebhookLogsOpen(true);\n };\n\n const indexView = (\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 <CompleteCheckbox primary completed />\n </ListItem>\n <ListItem className=\"toggle-item\">\n <span className=\"opt-left\">\n <NotificationBellIcon />\n Subscribe to Everything\n </span>\n <CompleteCheckbox primary completed={false} />\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 <ListItem>\n <DownloadIcon />\n Export\n </ListItem>\n {sourceModuleLoaded ? (\n <>\n <ListSeparator />\n <ListItem\n className=\"toggle-item submenu-item\"\n onClick={goToRepositories}\n >\n <span className=\"opt-left\">\n <GitRepositoryIcon />\n Repositories\n </span>\n <span className=\"repo-right\">\n {connectedRepos.length > 0 ? (\n <Badge\n isStandalone\n dimension={16}\n value={connectedRepos.length}\n />\n ) : null}\n <CaretRightIcon className=\"repo-caret\" width={16} height={16} />\n </span>\n </ListItem>\n </>\n ) : null}\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 );\n\n return (\n <>\n <ProjectMenuSliderStyle />\n <Menu\n open={open}\n onOpen={() => setOpen(true)}\n onClose={handleClose}\n position=\"bottom-end\"\n menuClassName={sourceModuleLoaded ? \"project-options-menu\" : undefined}\n target={\n <IconButton type=\"button\" variant=\"text gray\" active={open}>\n <TreeDotsIcon />\n </IconButton>\n }\n >\n {sourceModuleLoaded ? (\n <ResizeTransition in style={{ height, width: PROJECT_MENU_WIDTH }}>\n <div style={{ position: \"relative\", overflow: \"hidden\" }}>\n <SlideLeftRightTransition\n in={view === \"index\"}\n direction={isLeft ? \"left\" : \"right\"}\n >\n <div ref={measure} style={{ width: PROJECT_MENU_WIDTH }}>\n {indexView}\n </div>\n </SlideLeftRightTransition>\n <SlideLeftRightTransition\n in={view === \"repositories\"}\n direction={isLeft ? \"left\" : \"right\"}\n >\n <div ref={measure} style={{ width: PROJECT_MENU_WIDTH }}>\n <MenuHeader\n title=\"Repositories\"\n leftElement={\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n size=\"small\"\n onClick={backToIndex}\n aria-label=\"Back\"\n >\n <ArrowLeftIcon />\n </IconButton>\n }\n />\n <StyledProjectMenu>\n <List style={{ padding: \"8px 0\" }} tabIndex={-1}>\n {sortedRepos.map((repo) => {\n const RepoIcon = repositoryIcon(repo);\n return (\n <ListItem\n key={repo.id}\n className=\"repo-row\"\n onClick={() => handleOpenRepository()}\n >\n <RepoIcon />\n <span className=\"repo-name\">\n {repositoryMenuLabel(repo)}\n </span>\n </ListItem>\n );\n })}\n {sortedRepos.length > 0 ? <ListSeparator /> : null}\n {sortedRepos.length > 0 &&\n canManageProjectRepositories ? (\n <ListItem onClick={handleOpenWebhookLogs}>\n <AccessLogIcon />\n Webhook Logs\n </ListItem>\n ) : null}\n <ListItem onClick={handleConnect}>\n <GitRepositoryConnectIcon />\n Connect Repository\n </ListItem>\n </List>\n </StyledProjectMenu>\n </div>\n </SlideLeftRightTransition>\n </div>\n </ResizeTransition>\n ) : (\n indexView\n )}\n </Menu>\n\n <ConnectRepositoryDialog\n open={connectOpen}\n onClose={() => setConnectOpen(false)}\n onConnect={handleConnected}\n repositories={connectableRepos}\n connections={PROJECT_MENU_CONNECTIONS}\n />\n\n <WebhookLogsDialog\n open={webhookLogsOpen}\n onClose={() => setWebhookLogsOpen(false)}\n repositoryIds={sortedRepos.map((repo) => repo.id)}\n />\n\n <Dialog\n open={infoOpen}\n onClose={() => setInfoOpen(false)}\n enableBackgroundClick\n >\n <Dialog.Title>Open Repository</Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <Body2>\n In production, this click would close the menu and open the\n repository in a new browser tab.\n </Body2>\n </Dialog.Content>\n <Dialog.ContentDivider />\n <Dialog.Actions>\n <Button variant=\"primary\" onClick={() => setInfoOpen(false)}>\n Got it\n </Button>\n </Dialog.Actions>\n </Dialog>\n\n <StyledToastAnchor>\n <SlideFromTop in={toastOpen}>\n <ToastMessage\n key={toastKey}\n className=\"c-toast-message\"\n type=\"success\"\n text=\"Repository connected.\"\n dismissible\n dropShadow\n timeout={3000}\n onClose={() => setToastOpen(false)}\n />\n </SlideFromTop>\n </StyledToastAnchor>\n </>\n );\n};\n\n/* People popover (mirrors the project header People dropdown): a header row\n (\"People\" + add button), a \"Members\" section and a row per member. The\n project leader shows a gold crown; other members reveal a \"set as leader\"\n crown and a remove button on hover. Clicks are no-ops. */\ninterface ProjectMember {\n name: string;\n initials: string;\n color: string;\n leader?: boolean;\n}\n\nconst PROJECT_MEMBERS: ProjectMember[] = [\n {\n name: \"Theo Brandt\",\n initials: \"TB\",\n color: AVATAR_COLORS.blue,\n leader: true,\n },\n { name: \"Iris Calloway\", initials: \"IC\", color: AVATAR_COLORS.purple },\n { name: \"Account Director\", initials: \"AD\", color: \"#8A8F98\" },\n { name: \"Grace Bennett\", initials: \"GB\", color: AVATAR_COLORS.orange },\n];\n\nconst StyledPeopleMenu = styled.div`\n width: 256px;\n\n .members-label {\n display: block;\n margin: 8px 0;\n padding: 0 16px;\n }\n\n .member-row {\n position: relative;\n display: flex;\n align-items: center;\n min-height: 40px;\n margin: 0 8px;\n padding: 2px 8px;\n border-radius: 4px;\n cursor: default;\n transition: background-color ${TRANSITION};\n }\n\n .member-row:hover {\n background-color: var(--color-theme-200);\n }\n\n /* gold left bar on the project-leader row */\n .member-row.leader::before {\n content: \"\";\n position: absolute;\n top: 4px;\n bottom: 4px;\n left: 0;\n width: 4px;\n border-radius: 4px;\n background-color: ${LEADER_GOLD};\n }\n\n /* gold ring on the leader's avatar */\n .member-row.leader .member-avatar {\n outline: 2px solid ${LEADER_GOLD};\n outline-offset: -2px;\n }\n\n .member-name {\n flex: 1;\n margin-left: 12px;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .member-right {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n margin-left: 8px;\n }\n\n .leader-crown {\n flex-shrink: 0;\n }\n\n /* member actions (set-as-leader / remove) appear on hover, like the app */\n .member-options {\n display: none;\n align-items: center;\n gap: 2px;\n }\n\n .member-row:hover .member-options {\n display: flex;\n }\n`;\n\nconst PeoplePopover = (): 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 <CounterButton\n label={String(PROJECT_MEMBERS.length)}\n icon={<PeopleIcon />}\n active={open}\n onClearAll={() => undefined}\n />\n }\n >\n <StyledPeopleMenu>\n <MenuHeader\n title=\"People\"\n rightElement={\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n size=\"small\"\n aria-label=\"Add People\"\n >\n <AddCrossTinyIcon />\n </IconButton>\n }\n />\n <Caption1 weight=\"bold\" className=\"members-label\">\n Members\n </Caption1>\n {PROJECT_MEMBERS.map((member) => (\n <div\n className={member.leader ? \"member-row leader\" : \"member-row\"}\n key={member.name}\n >\n <RoundAvatar\n className=\"member-avatar\"\n $bg={member.color}\n $bordered={false}\n >\n {member.initials}\n </RoundAvatar>\n <Body2 className=\"member-name\">{member.name}</Body2>\n <span className=\"member-right\">\n {member.leader && (\n <CrownSelectedIcon\n className=\"leader-crown\"\n style={{ fill: LEADER_GOLD }}\n />\n )}\n <span className=\"member-options\">\n {!member.leader && (\n <Tooltip title=\"Set as Project Leader\">\n <IconButton type=\"button\" variant=\"text gray\" size=\"small\">\n <CrownBlankIcon />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip title=\"Remove from Project\">\n <IconButton type=\"button\" variant=\"text gray\" size=\"small\">\n <CloseSmallIcon />\n </IconButton>\n </Tooltip>\n </span>\n </span>\n </div>\n ))}\n </StyledPeopleMenu>\n </Menu>\n );\n};\n\nexport interface ProjectPageHeaderProps {\n title?: string;\n /** When the `source` module is loaded, the \"...\" menu shows a Repositories\n * section (connected repositories + Connect Repository). */\n sourceModuleLoaded?: boolean;\n /** Repositories already connected to the project (seeds the count + submenu). */\n initialConnectedRepositories?: Repository[];\n /** Whether the current user can manage the project's repositories. */\n canManageProjectRepositories?: boolean;\n}\n\n/** The project page header: back arrow, title, progress, info, people, options. */\nexport const ProjectPageHeader = ({\n title = \"#131: Ime projekta\",\n sourceModuleLoaded = false,\n initialConnectedRepositories,\n canManageProjectRepositories,\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 <PeoplePopover />\n <ProjectOptionsMenu\n sourceModuleLoaded={sourceModuleLoaded}\n initialConnectedRepositories={initialConnectedRepositories}\n canManageProjectRepositories={canManageProjectRepositories}\n />\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":[]}
|
|
@@ -23,6 +23,7 @@ var _exportNames = {
|
|
|
23
23
|
CONNECTABLE_REPOSITORIES: true,
|
|
24
24
|
WebhookLogsDialog: true,
|
|
25
25
|
WEBHOOK_CONNECTIONS: true,
|
|
26
|
+
WEBHOOK_REPOSITORIES: true,
|
|
26
27
|
SuggestSubtasksButton: true,
|
|
27
28
|
TaskOptionsMenu: true,
|
|
28
29
|
TaskListOptionsMenu: true
|
|
@@ -147,6 +148,12 @@ Object.defineProperty(exports, "WEBHOOK_CONNECTIONS", {
|
|
|
147
148
|
return _WebhookLogsDialog.WEBHOOK_CONNECTIONS;
|
|
148
149
|
}
|
|
149
150
|
});
|
|
151
|
+
Object.defineProperty(exports, "WEBHOOK_REPOSITORIES", {
|
|
152
|
+
enumerable: true,
|
|
153
|
+
get: function get() {
|
|
154
|
+
return _WebhookLogsDialog.WEBHOOK_REPOSITORIES;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
150
157
|
Object.defineProperty(exports, "WebhookLogsDialog", {
|
|
151
158
|
enumerable: true,
|
|
152
159
|
get: function get() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_tokens","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_MainLogo","_RoundAvatar","_PresentationShell","_headers","_FloatingControls","_HelpAndSupportMenu","_LinkingCommandsButton","_LinkBranchOrPullRequestDialog","_ConnectRepositoryDialog","_WebhookLogsDialog","_SuggestSubtasksButton","_TaskOptionsMenu"],"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 { HelpAndSupportMenu } from \"./HelpAndSupportMenu\";\nexport type { HelpAndSupportMenuProps } from \"./HelpAndSupportMenu\";\nexport { LinkingCommandsButton } from \"./LinkingCommandsButton\";\nexport { LinkBranchOrPullRequestDialog } from \"./LinkBranchOrPullRequestDialog\";\nexport type { LinkBranchOrPullRequestDialogProps } from \"./LinkBranchOrPullRequestDialog\";\nexport {\n ConnectRepositoryDialog,\n RepositorySelect,\n buildRepoOptions,\n CONNECTIONS,\n PROJECT_REPOSITORIES,\n CONNECTABLE_REPOSITORIES,\n} from \"./ConnectRepositoryDialog\";\nexport type {\n ConnectRepositoryDialogProps,\n RepositorySelectProps,\n Connection,\n ConnectionService,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nexport {
|
|
1
|
+
{"version":3,"file":"index.js","names":["_tokens","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_MainLogo","_RoundAvatar","_PresentationShell","_headers","_FloatingControls","_HelpAndSupportMenu","_LinkingCommandsButton","_LinkBranchOrPullRequestDialog","_ConnectRepositoryDialog","_WebhookLogsDialog","_SuggestSubtasksButton","_TaskOptionsMenu"],"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 { HelpAndSupportMenu } from \"./HelpAndSupportMenu\";\nexport type { HelpAndSupportMenuProps } from \"./HelpAndSupportMenu\";\nexport { LinkingCommandsButton } from \"./LinkingCommandsButton\";\nexport { LinkBranchOrPullRequestDialog } from \"./LinkBranchOrPullRequestDialog\";\nexport type { LinkBranchOrPullRequestDialogProps } from \"./LinkBranchOrPullRequestDialog\";\nexport {\n ConnectRepositoryDialog,\n RepositorySelect,\n buildRepoOptions,\n CONNECTIONS,\n PROJECT_REPOSITORIES,\n CONNECTABLE_REPOSITORIES,\n} from \"./ConnectRepositoryDialog\";\nexport type {\n ConnectRepositoryDialogProps,\n RepositorySelectProps,\n Connection,\n ConnectionService,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nexport {\n WebhookLogsDialog,\n WEBHOOK_CONNECTIONS,\n WEBHOOK_REPOSITORIES,\n} from \"./WebhookLogsDialog\";\nexport type {\n WebhookLogsDialogProps,\n WebhookConnection,\n WebhookRepository,\n WebhookLog,\n} from \"./WebhookLogsDialog\";\nexport { SuggestSubtasksButton } from \"./SuggestSubtasksButton\";\nexport { TaskOptionsMenu, TaskListOptionsMenu } from \"./TaskOptionsMenu\";\nexport type {\n TaskOptionsMenuProps,\n TaskListOptionsMenuProps,\n} from \"./TaskOptionsMenu\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;AAEA,IAAAgB,QAAA,GAAAhB,OAAA;AAMA,IAAAiB,iBAAA,GAAAjB,OAAA;AACA,IAAAkB,mBAAA,GAAAlB,OAAA;AAEA,IAAAmB,sBAAA,GAAAnB,OAAA;AACA,IAAAoB,8BAAA,GAAApB,OAAA;AAEA,IAAAqB,wBAAA,GAAArB,OAAA;AAeA,IAAAsB,kBAAA,GAAAtB,OAAA;AAWA,IAAAuB,sBAAA,GAAAvB,OAAA;AACA,IAAAwB,gBAAA,GAAAxB,OAAA","ignoreList":[]}
|
|
@@ -22,6 +22,12 @@ export interface WebhookConnection {
|
|
|
22
22
|
name: string;
|
|
23
23
|
service: "github" | "gitlab";
|
|
24
24
|
}
|
|
25
|
+
export interface WebhookRepository {
|
|
26
|
+
id: string;
|
|
27
|
+
/** Full repository path, e.g. activecollab/feather. */
|
|
28
|
+
path: string;
|
|
29
|
+
connectionId: string;
|
|
30
|
+
}
|
|
25
31
|
/**
|
|
26
32
|
* Normalized event kind. The processor layer maps each provider's raw event
|
|
27
33
|
* header (GitHub `issues`, GitLab `Issue Hook`, …) onto one provider-agnostic
|
|
@@ -32,6 +38,8 @@ type WebhookEventKind = "issue" | "push" | "merge_request" | "repository" | "pin
|
|
|
32
38
|
export interface WebhookLog {
|
|
33
39
|
id: string;
|
|
34
40
|
connectionId: string;
|
|
41
|
+
/** Repository the delivery belongs to (always within `connectionId`). */
|
|
42
|
+
repositoryId: string;
|
|
35
43
|
eventKind: WebhookEventKind;
|
|
36
44
|
status: WebhookStatus;
|
|
37
45
|
/** X-GitHub-Delivery GUID / X-Gitlab-Event-UUID. */
|
|
@@ -46,6 +54,13 @@ export interface WebhookLog {
|
|
|
46
54
|
receivedAt: number;
|
|
47
55
|
}
|
|
48
56
|
export declare const WEBHOOK_CONNECTIONS: WebhookConnection[];
|
|
57
|
+
/**
|
|
58
|
+
* Repositories that belong to the connections above. A webhook delivery is
|
|
59
|
+
* always scoped to one repository, and a repository belongs to exactly one
|
|
60
|
+
* connection — so the Repository filter can be narrowed to the connection(s)
|
|
61
|
+
* currently selected in the Connection filter.
|
|
62
|
+
*/
|
|
63
|
+
export declare const WEBHOOK_REPOSITORIES: WebhookRepository[];
|
|
49
64
|
export interface WebhookLogsDialogProps {
|
|
50
65
|
open: boolean;
|
|
51
66
|
onClose: () => void;
|
|
@@ -56,7 +71,13 @@ export interface WebhookLogsDialogProps {
|
|
|
56
71
|
* repositories belong to). Takes precedence over `initialConnectionId`.
|
|
57
72
|
*/
|
|
58
73
|
connectionIds?: string[];
|
|
74
|
+
/**
|
|
75
|
+
* Pre-filter to a set of repositories (e.g. the repositories connected to a
|
|
76
|
+
* project, when opened from the project "..." menu). Seeds the Repository
|
|
77
|
+
* filter; IDs should exist in `WEBHOOK_REPOSITORIES` so their chips render.
|
|
78
|
+
*/
|
|
79
|
+
repositoryIds?: string[];
|
|
59
80
|
}
|
|
60
|
-
export declare const WebhookLogsDialog: ({ open, onClose, initialConnectionId, connectionIds, }: WebhookLogsDialogProps) => ReactElement;
|
|
81
|
+
export declare const WebhookLogsDialog: ({ open, onClose, initialConnectionId, connectionIds, repositoryIds, }: WebhookLogsDialogProps) => ReactElement;
|
|
61
82
|
export {};
|
|
62
83
|
//# sourceMappingURL=WebhookLogsDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookLogsDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/WebhookLogsDialog.tsx"],"names":[],"mappings":"AAAA,OAAc,
|
|
1
|
+
{"version":3,"file":"WebhookLogsDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/WebhookLogsDialog.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,YAAY,EAIb,MAAM,OAAO,CAAC;AAuBf;;;;;;;;;;;;;;;;GAgBG;AAEH,KAAK,aAAa,GACd,UAAU,GACV,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,KAAK,gBAAgB,GACjB,OAAO,GACP,MAAM,GACN,eAAe,GACf,YAAY,GACZ,MAAM,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAOlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAyBnD,CAAC;AAilBF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,GAAI,uEAM/B,sBAAsB,KAAG,YAkM3B,CAAC"}
|