@activecollab/components 2.0.305 → 2.0.308
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/SelectDate/SelectDate.js +5 -1
- package/dist/cjs/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/cjs/presentation/shared/FloatingControls.js +32 -0
- package/dist/cjs/presentation/shared/FloatingControls.js.map +1 -0
- package/dist/cjs/presentation/shared/MainLogo.js +50 -0
- package/dist/cjs/presentation/shared/MainLogo.js.map +1 -0
- package/dist/cjs/presentation/shared/PresentationShell.js +299 -0
- package/dist/cjs/presentation/shared/PresentationShell.js.map +1 -0
- package/dist/cjs/presentation/shared/RoundAvatar.js +38 -0
- package/dist/cjs/presentation/shared/RoundAvatar.js.map +1 -0
- package/dist/cjs/presentation/shared/TaskOptionsMenu.js +148 -0
- package/dist/cjs/presentation/shared/TaskOptionsMenu.js.map +1 -0
- package/dist/cjs/presentation/shared/headers.js +221 -0
- package/dist/cjs/presentation/shared/headers.js.map +1 -0
- package/dist/cjs/presentation/shared/index.js +96 -0
- package/dist/cjs/presentation/shared/index.js.map +1 -0
- package/dist/cjs/presentation/shared/tokens.js +28 -0
- package/dist/cjs/presentation/shared/tokens.js.map +1 -0
- package/dist/esm/components/SelectDate/SelectDate.d.ts +2 -2
- package/dist/esm/components/SelectDate/SelectDate.d.ts.map +1 -1
- package/dist/esm/components/SelectDate/SelectDate.js +5 -1
- package/dist/esm/components/SelectDate/SelectDate.js.map +1 -1
- package/dist/esm/presentation/shared/FloatingControls.d.ts +7 -0
- package/dist/esm/presentation/shared/FloatingControls.d.ts.map +1 -0
- package/dist/esm/presentation/shared/FloatingControls.js +23 -0
- package/dist/esm/presentation/shared/FloatingControls.js.map +1 -0
- package/dist/esm/presentation/shared/MainLogo.d.ts +10 -0
- package/dist/esm/presentation/shared/MainLogo.d.ts.map +1 -0
- package/dist/esm/presentation/shared/MainLogo.js +42 -0
- package/dist/esm/presentation/shared/MainLogo.js.map +1 -0
- package/dist/esm/presentation/shared/PresentationShell.d.ts +22 -0
- package/dist/esm/presentation/shared/PresentationShell.d.ts.map +1 -0
- package/dist/esm/presentation/shared/PresentationShell.js +272 -0
- package/dist/esm/presentation/shared/PresentationShell.js.map +1 -0
- package/dist/esm/presentation/shared/RoundAvatar.d.ts +13 -0
- package/dist/esm/presentation/shared/RoundAvatar.d.ts.map +1 -0
- package/dist/esm/presentation/shared/RoundAvatar.js +26 -0
- package/dist/esm/presentation/shared/RoundAvatar.js.map +1 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.d.ts +22 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.d.ts.map +1 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.js +119 -0
- package/dist/esm/presentation/shared/TaskOptionsMenu.js.map +1 -0
- package/dist/esm/presentation/shared/headers.d.ts +28 -0
- package/dist/esm/presentation/shared/headers.d.ts.map +1 -0
- package/dist/esm/presentation/shared/headers.js +194 -0
- package/dist/esm/presentation/shared/headers.js.map +1 -0
- package/dist/esm/presentation/shared/index.d.ts +17 -0
- package/dist/esm/presentation/shared/index.d.ts.map +1 -0
- package/dist/esm/presentation/shared/index.js +14 -0
- package/dist/esm/presentation/shared/index.js.map +1 -0
- package/dist/esm/presentation/shared/tokens.d.ts +21 -0
- package/dist/esm/presentation/shared/tokens.d.ts.map +1 -0
- package/dist/esm/presentation/shared/tokens.js +22 -0
- package/dist/esm/presentation/shared/tokens.js.map +1 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresentationShell.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_MainLogo","_tokens","_IconButton","_Icons","_Modal","_Paper","_Tooltip","_Typography","_utils","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","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","MENU_ITEMS","icon","RocketIcon","text","ProjectsIcon","active","MyWorkIcon","ActivityIcon","CalendarIcon","PeopleIcon","ReportTimeIcon","ReportsIcon","InvoicesIcon","EstimatesIcon","StyledLayout","styled","div","withConfig","displayName","componentId","StyledContentRow","StyledRightWindow","SM","StyledMainMenu","TRANSITION","StyledMenuHeader","XL","StyledMenuScroll","StyledMenuSection","StyledMenuItem","StyledMobileMenuClose","IconButton","StyledMobileMenuHeader","StyledIconRow","StyledTopRightControls","StyledHeaderAvatar","StyledPage","StyledPageBody","StyledPagePaper","exports","Paper","MenuItemsMock","_ref","_ref$mobile","mobile","createElement","className","Caption1","weight","color","map","_ref2","Icon","Tooltip","key","title","placement","disable","undefined","Body2","whitespace","MainMenuMock","_ref3","collapsed","onToggleCollapsed","MainLogo","variant","size","onClick","CollapsIcon","MainMenuMobileMock","_ref4","open","close","Modal","onClose","CloseIcon","MobileMenuHeaderMock","_ref5","onOpenMobileMenu","MobileMenuIcon","SearchIcon","NotificationBellIcon","TopRightControlsMock","ClockStopwatchIndicatorIcon","PresentationShell","_ref6","header","children","floating","_useState","useState","_useState2","mobileMenuOpen","setMobileMenuOpen","_useState3","_useState4","setCollapsed","_useState5","_useState6","isMobileView","setIsMobileView","ref","useRef","dimensions","useResizeObserver","width","useEffect","BREAKPOINT","handleOpenMobileMenu","useCallback","handleCloseMobileMenu","handleToggleCollapsed","prev","id"],"sources":["../../../../src/presentation/shared/PresentationShell.tsx"],"sourcesContent":["import React, {\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { MainLogo } from \"./MainLogo\";\nimport { BREAKPOINT, SM, TRANSITION, XL } from \"./tokens\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n ActivityIcon,\n CalendarIcon,\n ClockStopwatchIndicatorIcon,\n CloseIcon,\n CollapsIcon,\n EstimatesIcon,\n InvoicesIcon,\n MobileMenuIcon,\n MyWorkIcon,\n NotificationBellIcon,\n PeopleIcon,\n ProjectsIcon,\n ReportTimeIcon,\n ReportsIcon,\n RocketIcon,\n SearchIcon,\n} from \"../../components/Icons\";\nimport { Modal } from \"../../components/Modal\";\nimport { Paper } from \"../../components/Paper\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Body2, Caption1 } from \"../../components/Typography\";\nimport { useResizeObserver } from \"../../utils\";\n\nconst MENU_ITEMS: {\n icon: React.FC<React.SVGProps<SVGSVGElement>>;\n text: string;\n active?: boolean;\n}[] = [\n { icon: RocketIcon, text: \"Getting Started\" },\n { icon: ProjectsIcon, text: \"Projects\", active: true },\n { icon: MyWorkIcon, text: \"My Work\" },\n { icon: ActivityIcon, text: \"Activity\" },\n { icon: CalendarIcon, text: \"Calendar\" },\n { icon: PeopleIcon, text: \"People\" },\n { icon: ReportTimeIcon, text: \"Time\" },\n { icon: ReportsIcon, text: \"Reports\" },\n { icon: InvoicesIcon, text: \"Invoices\" },\n { icon: EstimatesIcon, text: \"Estimates\" },\n];\n\n/* ------------------------------------------------------------------ */\n/* Layout shell (mirrors Layout.js) */\n/* ------------------------------------------------------------------ */\n\nconst StyledLayout = styled.div`\n height: 100vh;\n display: flex;\n flex-direction: column;\n background-color: var(--body-bg-main);\n`;\n\nconst StyledContentRow = styled.div`\n position: relative;\n display: flex;\n flex-direction: row-reverse;\n flex: 1 1 0%;\n flex-grow: 1;\n overflow-y: auto;\n`;\n\nconst StyledRightWindow = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1 1 0%;\n flex-grow: 1;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n padding: 0 16px;\n\n @media (min-width: ${SM}) {\n padding-right: 32px;\n }\n`;\n\n/* ------------------------------------------------------------------ */\n/* Main menu (mirrors MainMenu.js + MainMenu.less) */\n/* ------------------------------------------------------------------ */\n\nconst StyledMainMenu = styled.div`\n position: relative;\n z-index: 1;\n display: none;\n flex-direction: column;\n height: 100%;\n margin-right: 4px;\n flex-shrink: 0;\n width: 240px;\n transition: width ${TRANSITION};\n\n @media (min-width: ${SM}) {\n display: flex;\n }\n\n &.collapsed {\n width: 72px;\n }\n\n .menu-item-text,\n .menu-section,\n #logotype {\n transition: all ${TRANSITION};\n }\n\n &.collapsed .menu-item-text {\n opacity: 0;\n visibility: hidden;\n width: 0;\n margin-left: 0;\n }\n\n &.collapsed .menu-section {\n transform: scaleY(0);\n opacity: 0;\n max-height: 0;\n margin-bottom: 0;\n }\n\n &.collapsed #logotype {\n transform: translateX(-5%);\n opacity: 0;\n }\n\n &.collapsed .collapse-expand-menu svg {\n transform: rotate(180deg);\n }\n\n &:not(.mobile) {\n @media (max-width: 1279.98px) {\n width: 72px;\n\n .menu-item-text {\n opacity: 0;\n visibility: hidden;\n width: 0;\n margin-left: 0;\n }\n\n .menu-section {\n transform: scaleY(0);\n opacity: 0;\n max-height: 0;\n margin-bottom: 0;\n }\n\n #logotype {\n transform: translateX(-5%);\n opacity: 0;\n }\n }\n }\n\n &.mobile {\n display: flex;\n position: absolute;\n left: 0;\n top: 0;\n width: 240px;\n background-color: var(--page-paper-main);\n }\n`;\n\nconst StyledMenuHeader = styled.div`\n position: relative;\n height: 68px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n overflow: hidden;\n\n .main-logo {\n position: absolute;\n left: 20px;\n color: var(--color-secondary);\n\n path {\n fill: var(--color-secondary);\n }\n }\n\n .collapse-expand-menu {\n position: absolute;\n right: 4px;\n display: none;\n\n @media (min-width: ${XL}) {\n display: flex;\n }\n }\n`;\n\nconst StyledMenuScroll = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n min-height: 0;\n margin: 12px 0;\n overflow-y: auto;\n overflow-x: hidden;\n`;\n\nconst StyledMenuSection = styled.div`\n display: flex;\n align-items: center;\n margin: 0 12px 8px;\n padding: 0 4px 0 12px;\n`;\n\nconst StyledMenuItem = styled.a`\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 4px 0 12px;\n margin: 0 12px 2px;\n border-radius: 8px;\n cursor: pointer;\n text-decoration: none;\n\n svg {\n flex-shrink: 0;\n fill: var(--color-theme-700);\n opacity: 0.7;\n }\n\n .menu-item-text {\n margin-left: 12px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &:hover {\n transition: all ${TRANSITION};\n background-color: var(--color-theme-300);\n\n svg {\n fill: var(--color-theme-900);\n opacity: 1;\n }\n\n .menu-item-text {\n color: var(--color-theme-900);\n }\n }\n\n &.active {\n background-color: var(--color-secondary-200);\n\n svg {\n fill: var(--color-secondary);\n opacity: 1;\n }\n\n .menu-item-text {\n color: var(--color-secondary);\n }\n }\n`;\n\nconst StyledMobileMenuClose = styled(IconButton)`\n position: absolute;\n right: 16px;\n`;\n\n/* ------------------------------------------------------------------ */\n/* Top bars */\n/* ------------------------------------------------------------------ */\n\nconst StyledMobileMenuHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 16px;\n background-color: var(--color-primary);\n z-index: 50;\n\n @media (min-width: ${SM}) {\n display: none;\n }\n\n .mobile-menu-icon {\n fill: var(--color-theme-300);\n }\n`;\n\nconst StyledIconRow = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst StyledTopRightControls = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n display: none;\n align-items: center;\n justify-content: flex-end;\n padding: 12px 32px 12px 0;\n\n @media (min-width: ${SM}) {\n display: flex;\n }\n`;\n\nconst StyledHeaderAvatar = styled.div`\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background-color: var(--color-secondary);\n color: var(--only-white);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n font-weight: 600;\n margin: 0 8px;\n flex-shrink: 0;\n cursor: pointer;\n\n /* neon theme: use paper colour for the initials */\n .neon & {\n color: var(--page-paper-main);\n }\n`;\n\n/* ------------------------------------------------------------------ */\n/* Page region (mirrors Page.jsx / PageBody.jsx) */\n/* ------------------------------------------------------------------ */\n\nconst StyledPage = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`;\n\nconst StyledPageBody = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin-bottom: 32px;\n min-height: 0;\n`;\n\n/** The paper card that holds page content (used by list view & empty pages). */\nexport const StyledPagePaper = styled(Paper)`\n flex-grow: 1;\n width: 100%;\n`;\n\n/* ------------------------------------------------------------------ */\n/* Mocked layout building blocks */\n/* ------------------------------------------------------------------ */\n\ninterface MenuItemsProps {\n mobile?: boolean;\n}\n\nconst MenuItemsMock = ({ mobile = false }: MenuItemsProps): ReactElement => (\n <StyledMenuScroll>\n <StyledMenuSection className=\"menu-section\">\n <Caption1 weight=\"bold\" color=\"tertiary\">\n MENU\n </Caption1>\n </StyledMenuSection>\n {MENU_ITEMS.map(({ icon: Icon, text, active }) => (\n <Tooltip key={text} title={text} placement=\"right\" disable={mobile}>\n <StyledMenuItem className={active ? \"active\" : undefined}>\n <Icon />\n <Body2\n weight=\"medium\"\n color=\"secondary\"\n whitespace=\"no-wrap\"\n className=\"menu-item-text\"\n >\n {text}\n </Body2>\n </StyledMenuItem>\n </Tooltip>\n ))}\n </StyledMenuScroll>\n);\n\ninterface MainMenuMockProps {\n collapsed: boolean;\n onToggleCollapsed: () => void;\n}\n\nconst MainMenuMock = ({\n collapsed,\n onToggleCollapsed,\n}: MainMenuMockProps): ReactElement => (\n <StyledMainMenu\n className={collapsed ? \"collapsed\" : undefined}\n data-testid=\"main-menu\"\n >\n <StyledMenuHeader>\n <a className=\"main-logo\">\n <MainLogo />\n </a>\n <div className=\"collapse-expand-menu\">\n <IconButton\n variant=\"text gray\"\n size=\"small\"\n onClick={onToggleCollapsed}\n >\n <CollapsIcon />\n </IconButton>\n </div>\n </StyledMenuHeader>\n <MenuItemsMock />\n </StyledMainMenu>\n);\n\ninterface MainMenuMobileMockProps {\n open: boolean;\n close: () => void;\n}\n\nconst MainMenuMobileMock = ({\n open,\n close,\n}: MainMenuMobileMockProps): ReactElement | null =>\n open ? (\n <Modal open={open} onClose={close}>\n <StyledMainMenu className=\"mobile\" data-testid=\"main-menu-mobile\">\n <StyledMenuHeader>\n <a className=\"main-logo\">\n <MainLogo />\n </a>\n <StyledMobileMenuClose onClick={close} variant=\"text gray\">\n <CloseIcon />\n </StyledMobileMenuClose>\n </StyledMenuHeader>\n <MenuItemsMock mobile />\n </StyledMainMenu>\n </Modal>\n ) : null;\n\ninterface MobileMenuHeaderMockProps {\n onOpenMobileMenu: () => void;\n}\n\nconst MobileMenuHeaderMock = ({\n onOpenMobileMenu,\n}: MobileMenuHeaderMockProps): ReactElement => (\n <StyledMobileMenuHeader>\n <IconButton size=\"big\" variant=\"circle raised\" onClick={onOpenMobileMenu}>\n <MobileMenuIcon className=\"mobile-menu-icon\" />\n </IconButton>\n <StyledIconRow>\n <IconButton variant=\"text gray\">\n <SearchIcon />\n </IconButton>\n <StyledHeaderAvatar>JS</StyledHeaderAvatar>\n <IconButton variant=\"text gray\">\n <NotificationBellIcon />\n </IconButton>\n </StyledIconRow>\n </StyledMobileMenuHeader>\n);\n\nconst TopRightControlsMock = (): ReactElement => (\n <StyledTopRightControls>\n <IconButton variant=\"text gray\">\n <ClockStopwatchIndicatorIcon />\n </IconButton>\n <IconButton variant=\"text gray\">\n <SearchIcon />\n </IconButton>\n <StyledHeaderAvatar>JS</StyledHeaderAvatar>\n <IconButton variant=\"text gray\">\n <NotificationBellIcon />\n </IconButton>\n </StyledTopRightControls>\n);\n\n/* ------------------------------------------------------------------ */\n/* PresentationShell */\n/* ------------------------------------------------------------------ */\n\nexport interface PresentationShellProps {\n /** Page header row (e.g. <ProjectPageHeader /> or <PageHeader title=\"…\" />). */\n header: ReactNode;\n /** Page body content rendered inside the scrollable page area. */\n children: ReactNode;\n /** Optional fixed controls (e.g. <FloatingControls />). */\n floating?: ReactNode;\n}\n\n/**\n * The full application shell shared by every presentation mock-up: the main\n * menu on the left (auto-collapsing below 1280px, modal below 640px), the\n * top-right controls and the scrollable page area. Pass the page header via\n * `header` and the body via `children`.\n */\nexport const PresentationShell = ({\n header,\n children,\n floating,\n}: PresentationShellProps): ReactElement => {\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [collapsed, setCollapsed] = useState(false);\n const [isMobileView, setIsMobileView] = useState<boolean>();\n\n const ref = useRef<HTMLDivElement>(null);\n const dimensions = useResizeObserver(ref);\n const width = dimensions?.width;\n\n useEffect(() => {\n if (width) {\n if (width < BREAKPOINT) {\n setIsMobileView(true);\n } else {\n setIsMobileView(false);\n setMobileMenuOpen(false);\n }\n }\n }, [width]);\n\n const handleOpenMobileMenu = useCallback(() => setMobileMenuOpen(true), []);\n const handleCloseMobileMenu = useCallback(() => setMobileMenuOpen(false), []);\n const handleToggleCollapsed = useCallback(\n () => setCollapsed((prev) => !prev),\n []\n );\n\n return (\n <StyledLayout ref={ref}>\n {isMobileView ? (\n <MobileMenuHeaderMock onOpenMobileMenu={handleOpenMobileMenu} />\n ) : null}\n <StyledContentRow>\n <StyledRightWindow id=\"right-window\">\n <StyledPage>\n {header}\n <StyledPageBody>{children}</StyledPageBody>\n </StyledPage>\n {isMobileView === false ? <TopRightControlsMock /> : null}\n </StyledRightWindow>\n {isMobileView ? (\n <MainMenuMobileMock\n open={mobileMenuOpen}\n close={handleCloseMobileMenu}\n />\n ) : (\n <MainMenuMock\n collapsed={collapsed}\n onToggleCollapsed={handleToggleCollapsed}\n />\n )}\n </StyledContentRow>\n {floating}\n </StyledLayout>\n );\n};\n\nPresentationShell.displayName = \"PresentationShell\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RoundAvatar = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
/**
|
|
10
|
+
* A simple round initials avatar used across the presentation mock-ups in
|
|
11
|
+
* place of real user images. `$overlap` makes stacked avatars overlap (task
|
|
12
|
+
* rows / cards), `$bordered` draws the paper-coloured ring that separates
|
|
13
|
+
* overlapping avatars.
|
|
14
|
+
*/
|
|
15
|
+
var RoundAvatar = exports.RoundAvatar = _styledComponents.default.div.withConfig({
|
|
16
|
+
displayName: "RoundAvatar",
|
|
17
|
+
componentId: "sc-1s5jx6y-0"
|
|
18
|
+
})(["width:", "px;height:", "px;border-radius:50%;background-color:", ";color:#fff;display:flex;align-items:center;justify-content:center;font-size:", "px;font-weight:700;flex-shrink:0;", " &:not(:first-child){margin-left:", ";}"], function (props) {
|
|
19
|
+
var _props$$size;
|
|
20
|
+
return (_props$$size = props.$size) !== null && _props$$size !== void 0 ? _props$$size : 28;
|
|
21
|
+
}, function (props) {
|
|
22
|
+
var _props$$size2;
|
|
23
|
+
return (_props$$size2 = props.$size) !== null && _props$$size2 !== void 0 ? _props$$size2 : 28;
|
|
24
|
+
}, function (props) {
|
|
25
|
+
return props.$bg;
|
|
26
|
+
}, function (props) {
|
|
27
|
+
var _props$$size3;
|
|
28
|
+
var size = (_props$$size3 = props.$size) !== null && _props$$size3 !== void 0 ? _props$$size3 : 28;
|
|
29
|
+
if (size <= 22) return 9;
|
|
30
|
+
if (size <= 26) return 10;
|
|
31
|
+
return 11;
|
|
32
|
+
}, function (props) {
|
|
33
|
+
return props.$bordered === false ? "" : "border: 2px solid var(--page-paper-main);";
|
|
34
|
+
}, function (props) {
|
|
35
|
+
return props.$overlap ? "-8px" : "0";
|
|
36
|
+
});
|
|
37
|
+
RoundAvatar.displayName = "RoundAvatar";
|
|
38
|
+
//# sourceMappingURL=RoundAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoundAvatar.js","names":["_styledComponents","_interopRequireDefault","require","e","__esModule","default","RoundAvatar","exports","styled","div","withConfig","displayName","componentId","props","_props$$size","$size","_props$$size2","$bg","_props$$size3","size","$bordered","$overlap"],"sources":["../../../../src/presentation/shared/RoundAvatar.tsx"],"sourcesContent":["import styled from \"styled-components\";\n\n/**\n * A simple round initials avatar used across the presentation mock-ups in\n * place of real user images. `$overlap` makes stacked avatars overlap (task\n * rows / cards), `$bordered` draws the paper-coloured ring that separates\n * overlapping avatars.\n */\nexport const RoundAvatar = styled.div<{\n $bg: string;\n $size?: number;\n $overlap?: boolean;\n $bordered?: boolean;\n}>`\n width: ${(props) => props.$size ?? 28}px;\n height: ${(props) => props.$size ?? 28}px;\n border-radius: 50%;\n background-color: ${(props) => props.$bg};\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: ${(props) => {\n const size = props.$size ?? 28;\n if (size <= 22) return 9;\n if (size <= 26) return 10;\n return 11;\n }}px;\n font-weight: 700;\n flex-shrink: 0;\n ${(props) =>\n props.$bordered === false\n ? \"\"\n : \"border: 2px solid var(--page-paper-main);\"}\n\n &:not(:first-child) {\n margin-left: ${(props) => (props.$overlap ? \"-8px\" : \"0\")};\n }\n`;\n\nRoundAvatar.displayName = \"RoundAvatar\";\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvC;AACA;AACA;AACA;AACA;AACA;AACO,IAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGE,yBAAM,CAACC,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wOAM1B,UAACC,KAAK;EAAA,IAAAC,YAAA;EAAA,QAAAA,YAAA,GAAKD,KAAK,CAACE,KAAK,cAAAD,YAAA,cAAAA,YAAA,GAAI,EAAE;AAAA,GAC3B,UAACD,KAAK;EAAA,IAAAG,aAAA;EAAA,QAAAA,aAAA,GAAKH,KAAK,CAACE,KAAK,cAAAC,aAAA,cAAAA,aAAA,GAAI,EAAE;AAAA,GAElB,UAACH,KAAK;EAAA,OAAKA,KAAK,CAACI,GAAG;AAAA,GAK3B,UAACJ,KAAK,EAAK;EAAA,IAAAK,aAAA;EACtB,IAAMC,IAAI,IAAAD,aAAA,GAAGL,KAAK,CAACE,KAAK,cAAAG,aAAA,cAAAA,aAAA,GAAI,EAAE;EAC9B,IAAIC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC;EACxB,IAAIA,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE;EACzB,OAAO,EAAE;AACX,CAAC,EAGC,UAACN,KAAK;EAAA,OACNA,KAAK,CAACO,SAAS,KAAK,KAAK,GACrB,EAAE,GACF,2CAA2C;AAAA,GAGhC,UAACP,KAAK;EAAA,OAAMA,KAAK,CAACQ,QAAQ,GAAG,MAAM,GAAG,GAAG;AAAA,CAAC,CAE5D;AAEDf,WAAW,CAACK,WAAW,GAAG,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TaskOptionsMenu = exports.TaskListOptionsMenu = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
var _Checkbox = require("../../components/Checkbox");
|
|
10
|
+
var _IconButton = require("../../components/IconButton");
|
|
11
|
+
var _Icons = require("../../components/Icons");
|
|
12
|
+
var _List = require("../../components/List");
|
|
13
|
+
var _Menu = require("../../components/Menu");
|
|
14
|
+
var _Tooltip = require("../../components/Tooltip");
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
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); }
|
|
17
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
18
|
+
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."); }
|
|
19
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
20
|
+
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; }
|
|
21
|
+
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; } }
|
|
22
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
23
|
+
/* Task three-dot options menu — same component as the real TaskItem
|
|
24
|
+
(Menu in "normal" mode = 260px, List/ListItem + TreeDots target), shared by
|
|
25
|
+
the List view and Column view presentations. Spacing is styled-components
|
|
26
|
+
(this Storybook has no runtime Tailwind). Clicks are intentionally no-ops. */
|
|
27
|
+
var StyledTaskMenu = _styledComponents.default.div.withConfig({
|
|
28
|
+
displayName: "TaskOptionsMenu__StyledTaskMenu",
|
|
29
|
+
componentId: "sc-1hrykzg-0"
|
|
30
|
+
})([".menu-list{padding:8px 0;}.menu-item{justify-content:space-between;}.menu-item .label{min-width:0;padding-right:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.menu-bottom{display:flex;justify-content:space-between;padding:0 16px;margin:16px 0 12px;}"]);
|
|
31
|
+
var MENU_PICKER_ITEMS = ["Task List", "Assignees", "Due Date", "Label", "Estimate"];
|
|
32
|
+
var TaskOptionsMenu = exports.TaskOptionsMenu = function TaskOptionsMenu(_ref) {
|
|
33
|
+
var targetClassName = _ref.targetClassName,
|
|
34
|
+
size = _ref.size;
|
|
35
|
+
var _useState = (0, _react.useState)(false),
|
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
+
open = _useState2[0],
|
|
38
|
+
setOpen = _useState2[1];
|
|
39
|
+
var handleOpen = (0, _react.useCallback)(function () {
|
|
40
|
+
return setOpen(true);
|
|
41
|
+
}, []);
|
|
42
|
+
var handleClose = (0, _react.useCallback)(function () {
|
|
43
|
+
return setOpen(false);
|
|
44
|
+
}, []);
|
|
45
|
+
var triggerClassName = [targetClassName, open ? "open" : ""].filter(Boolean).join(" ") || undefined;
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
47
|
+
open: open,
|
|
48
|
+
onOpen: handleOpen,
|
|
49
|
+
onClose: handleClose,
|
|
50
|
+
position: "bottom-end",
|
|
51
|
+
target: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
52
|
+
type: "button",
|
|
53
|
+
variant: "text gray",
|
|
54
|
+
size: size,
|
|
55
|
+
className: triggerClassName,
|
|
56
|
+
active: open
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.TreeDotsIcon, null))
|
|
58
|
+
}, /*#__PURE__*/_react.default.createElement(StyledTaskMenu, null, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
59
|
+
className: "menu-list",
|
|
60
|
+
tabIndex: 0
|
|
61
|
+
}, MENU_PICKER_ITEMS.map(function (name) {
|
|
62
|
+
return /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
63
|
+
key: name,
|
|
64
|
+
className: "menu-item"
|
|
65
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
66
|
+
className: "label"
|
|
67
|
+
}, name), /*#__PURE__*/_react.default.createElement(_Icons.ArrowRightIcon, null));
|
|
68
|
+
}), /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null), /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
69
|
+
className: "menu-item"
|
|
70
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
71
|
+
className: "label"
|
|
72
|
+
}, "Hidden from clients"), /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
|
|
73
|
+
id: "task-menu-hidden-from-clients",
|
|
74
|
+
onChange: function onChange() {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
})), /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
78
|
+
className: "menu-item"
|
|
79
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
80
|
+
className: "label"
|
|
81
|
+
}, "High priority"), /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
|
|
82
|
+
id: "task-menu-high-priority",
|
|
83
|
+
onChange: function onChange() {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
})), /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
87
|
+
className: "menu-bottom"
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
89
|
+
title: "Edit"
|
|
90
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
91
|
+
type: "button",
|
|
92
|
+
variant: "text gray"
|
|
93
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.EditIcon, null))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
94
|
+
title: "Duplicate"
|
|
95
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
96
|
+
type: "button",
|
|
97
|
+
variant: "text gray"
|
|
98
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.DuplicateIcon, null))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
99
|
+
title: "Create Recurring Task"
|
|
100
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
101
|
+
type: "button",
|
|
102
|
+
variant: "text gray"
|
|
103
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.RecurringCheckmarkIcon, null))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
104
|
+
title: "Delete"
|
|
105
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
106
|
+
type: "button",
|
|
107
|
+
variant: "text gray"
|
|
108
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.TrashIcon, null)))))));
|
|
109
|
+
};
|
|
110
|
+
TaskOptionsMenu.displayName = "TaskOptionsMenu";
|
|
111
|
+
/* Task-LIST three-dot menu (Menu + List with leading-icon items) — same
|
|
112
|
+
options as the real TaskListOptions. Shared by List & Column views.
|
|
113
|
+
Clicks are intentionally no-ops. */
|
|
114
|
+
var TaskListOptionsMenu = exports.TaskListOptionsMenu = function TaskListOptionsMenu(_ref2) {
|
|
115
|
+
var targetClassName = _ref2.targetClassName,
|
|
116
|
+
size = _ref2.size;
|
|
117
|
+
var _useState3 = (0, _react.useState)(false),
|
|
118
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
119
|
+
open = _useState4[0],
|
|
120
|
+
setOpen = _useState4[1];
|
|
121
|
+
var handleOpen = (0, _react.useCallback)(function () {
|
|
122
|
+
return setOpen(true);
|
|
123
|
+
}, []);
|
|
124
|
+
var handleClose = (0, _react.useCallback)(function () {
|
|
125
|
+
return setOpen(false);
|
|
126
|
+
}, []);
|
|
127
|
+
var triggerClassName = [targetClassName, open ? "open" : ""].filter(Boolean).join(" ") || undefined;
|
|
128
|
+
return /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
129
|
+
open: open,
|
|
130
|
+
onOpen: handleOpen,
|
|
131
|
+
onClose: handleClose,
|
|
132
|
+
position: "bottom-end",
|
|
133
|
+
target: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
134
|
+
type: "button",
|
|
135
|
+
variant: "text gray",
|
|
136
|
+
size: size,
|
|
137
|
+
className: triggerClassName,
|
|
138
|
+
active: open
|
|
139
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.TreeDotsIcon, null))
|
|
140
|
+
}, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
141
|
+
style: {
|
|
142
|
+
padding: "8px 0"
|
|
143
|
+
},
|
|
144
|
+
tabIndex: -1
|
|
145
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.EditIcon, null), "Rename"), /*#__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.CopyIcon, null), "Move/Copy to Project"), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.TaskListCompleteIcon, null), "Complete"), /*#__PURE__*/_react.default.createElement(_List.ListSeparator, null), /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.TrashIcon, null), "Delete")));
|
|
146
|
+
};
|
|
147
|
+
TaskListOptionsMenu.displayName = "TaskListOptionsMenu";
|
|
148
|
+
//# sourceMappingURL=TaskOptionsMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskOptionsMenu.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_Checkbox","_IconButton","_Icons","_List","_Menu","_Tooltip","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","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","StyledTaskMenu","styled","div","withConfig","displayName","componentId","MENU_PICKER_ITEMS","TaskOptionsMenu","exports","_ref","targetClassName","size","_useState","useState","_useState2","open","setOpen","handleOpen","useCallback","handleClose","triggerClassName","filter","Boolean","join","undefined","createElement","Menu","onOpen","onClose","position","target","IconButton","type","variant","className","active","TreeDotsIcon","List","tabIndex","map","ListItem","key","ArrowRightIcon","ListSeparator","Checkbox","id","onChange","Tooltip","title","EditIcon","DuplicateIcon","RecurringCheckmarkIcon","TrashIcon","TaskListOptionsMenu","_ref2","_useState3","_useState4","style","padding","CopyIcon","TaskListCompleteIcon"],"sources":["../../../../src/presentation/shared/TaskOptionsMenu.tsx"],"sourcesContent":["import React, { ReactElement, useCallback, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n ArrowRightIcon,\n CopyIcon,\n DuplicateIcon,\n EditIcon,\n RecurringCheckmarkIcon,\n TaskListCompleteIcon,\n TrashIcon,\n TreeDotsIcon,\n} from \"../../components/Icons\";\nimport { List, ListItem, ListSeparator } from \"../../components/List\";\nimport { Menu } from \"../../components/Menu\";\nimport { Tooltip } from \"../../components/Tooltip\";\n\n/* Task three-dot options menu — same component as the real TaskItem\n (Menu in \"normal\" mode = 260px, List/ListItem + TreeDots target), shared by\n the List view and Column view presentations. Spacing is styled-components\n (this Storybook has no runtime Tailwind). Clicks are intentionally no-ops. */\nconst StyledTaskMenu = styled.div`\n /* no width — fills the 260px Menu bubble */\n\n .menu-list {\n padding: 8px 0;\n }\n\n /* text on the left, control (arrow / checkbox) on the right */\n .menu-item {\n justify-content: space-between;\n }\n\n .menu-item .label {\n min-width: 0;\n padding-right: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n /* bottom action icons: same horizontal padding as a list item (0 1rem),\n spread evenly */\n .menu-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0 16px;\n margin: 16px 0 12px;\n }\n`;\n\nconst MENU_PICKER_ITEMS = [\n \"Task List\",\n \"Assignees\",\n \"Due Date\",\n \"Label\",\n \"Estimate\",\n];\n\nexport interface TaskOptionsMenuProps {\n /** Class on the TreeDots trigger (parent controls its hover visibility). */\n targetClassName?: string;\n /** IconButton size of the trigger (omit for the default/regular size). */\n size?: \"small\" | \"big\";\n}\n\nexport const TaskOptionsMenu = ({\n targetClassName,\n size,\n}: TaskOptionsMenuProps): ReactElement => {\n const [open, setOpen] = useState(false);\n const handleOpen = useCallback(() => setOpen(true), []);\n const handleClose = useCallback(() => setOpen(false), []);\n\n const triggerClassName =\n [targetClassName, open ? \"open\" : \"\"].filter(Boolean).join(\" \") ||\n undefined;\n\n return (\n <Menu\n open={open}\n onOpen={handleOpen}\n onClose={handleClose}\n position=\"bottom-end\"\n target={\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n size={size}\n className={triggerClassName}\n active={open}\n >\n <TreeDotsIcon />\n </IconButton>\n }\n >\n <StyledTaskMenu>\n <List className=\"menu-list\" tabIndex={0}>\n {MENU_PICKER_ITEMS.map((name) => (\n <ListItem key={name} className=\"menu-item\">\n <div className=\"label\">{name}</div>\n <ArrowRightIcon />\n </ListItem>\n ))}\n <ListSeparator />\n <ListItem className=\"menu-item\">\n <div className=\"label\">Hidden from clients</div>\n <Checkbox\n id=\"task-menu-hidden-from-clients\"\n onChange={() => undefined}\n />\n </ListItem>\n <ListItem className=\"menu-item\">\n <div className=\"label\">High priority</div>\n <Checkbox id=\"task-menu-high-priority\" onChange={() => undefined} />\n </ListItem>\n <ListSeparator />\n <div className=\"menu-bottom\">\n <Tooltip title=\"Edit\">\n <IconButton type=\"button\" variant=\"text gray\">\n <EditIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Duplicate\">\n <IconButton type=\"button\" variant=\"text gray\">\n <DuplicateIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Create Recurring Task\">\n <IconButton type=\"button\" variant=\"text gray\">\n <RecurringCheckmarkIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Delete\">\n <IconButton type=\"button\" variant=\"text gray\">\n <TrashIcon />\n </IconButton>\n </Tooltip>\n </div>\n </List>\n </StyledTaskMenu>\n </Menu>\n );\n};\n\nTaskOptionsMenu.displayName = \"TaskOptionsMenu\";\n\nexport interface TaskListOptionsMenuProps {\n /** Class on the TreeDots trigger (parent controls its hover visibility). */\n targetClassName?: string;\n /** IconButton size of the trigger (omit for the default/regular size). */\n size?: \"small\" | \"big\";\n}\n\n/* Task-LIST three-dot menu (Menu + List with leading-icon items) — same\n options as the real TaskListOptions. Shared by List & Column views.\n Clicks are intentionally no-ops. */\nexport const TaskListOptionsMenu = ({\n targetClassName,\n size,\n}: TaskListOptionsMenuProps): ReactElement => {\n const [open, setOpen] = useState(false);\n const handleOpen = useCallback(() => setOpen(true), []);\n const handleClose = useCallback(() => setOpen(false), []);\n\n const triggerClassName =\n [targetClassName, open ? \"open\" : \"\"].filter(Boolean).join(\" \") ||\n undefined;\n\n return (\n <Menu\n open={open}\n onOpen={handleOpen}\n onClose={handleClose}\n position=\"bottom-end\"\n target={\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n size={size}\n className={triggerClassName}\n active={open}\n >\n <TreeDotsIcon />\n </IconButton>\n }\n >\n <List style={{ padding: \"8px 0\" }} tabIndex={-1}>\n <ListItem>\n <EditIcon />\n Rename\n </ListItem>\n <ListItem>\n <DuplicateIcon />\n Duplicate\n </ListItem>\n <ListItem>\n <CopyIcon />\n Move/Copy to Project\n </ListItem>\n <ListItem>\n <TaskListCompleteIcon />\n Complete\n </ListItem>\n <ListSeparator />\n <ListItem>\n <TrashIcon />\n Delete\n </ListItem>\n </List>\n </Menu>\n );\n};\n\nTaskListOptionsMenu.displayName = \"TaskListOptionsMenu\";\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAUA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AAAmD,SAAAE,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,wBAAAU,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,cAAAK,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAN,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAN,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAK,EAAA,EAAAN,CAAA,IAAAC,CAAA,CAAAK,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAL,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAAA,SAAAiB,eAAAf,CAAA,EAAAL,CAAA,WAAAqB,eAAA,CAAAhB,CAAA,KAAAiB,qBAAA,CAAAjB,CAAA,EAAAL,CAAA,KAAAuB,2BAAA,CAAAlB,CAAA,EAAAL,CAAA,KAAAwB,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAlB,CAAA,EAAAqB,CAAA,QAAArB,CAAA,2BAAAA,CAAA,SAAAsB,iBAAA,CAAAtB,CAAA,EAAAqB,CAAA,OAAAvB,CAAA,MAAAyB,QAAA,CAAAZ,IAAA,CAAAX,CAAA,EAAAwB,KAAA,6BAAA1B,CAAA,IAAAE,CAAA,CAAAyB,WAAA,KAAA3B,CAAA,GAAAE,CAAA,CAAAyB,WAAA,CAAAC,IAAA,aAAA5B,CAAA,cAAAA,CAAA,GAAA6B,KAAA,CAAAC,IAAA,CAAA5B,CAAA,oBAAAF,CAAA,+CAAA+B,IAAA,CAAA/B,CAAA,IAAAwB,iBAAA,CAAAtB,CAAA,EAAAqB,CAAA;AAAA,SAAAC,kBAAAtB,CAAA,EAAAqB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAArB,CAAA,CAAA8B,MAAA,MAAAT,CAAA,GAAArB,CAAA,CAAA8B,MAAA,YAAAnC,CAAA,MAAAM,CAAA,GAAA0B,KAAA,CAAAN,CAAA,GAAA1B,CAAA,GAAA0B,CAAA,EAAA1B,CAAA,IAAAM,CAAA,CAAAN,CAAA,IAAAK,CAAA,CAAAL,CAAA,UAAAM,CAAA;AAAA,SAAAgB,sBAAAjB,CAAA,EAAA+B,CAAA,QAAAjC,CAAA,WAAAE,CAAA,gCAAAgC,MAAA,IAAAhC,CAAA,CAAAgC,MAAA,CAAAC,QAAA,KAAAjC,CAAA,4BAAAF,CAAA,QAAAH,CAAA,EAAAM,CAAA,EAAAE,CAAA,EAAA+B,CAAA,EAAAb,CAAA,OAAAjB,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAL,CAAA,GAAAA,CAAA,CAAAa,IAAA,CAAAX,CAAA,GAAAmC,IAAA,QAAAJ,CAAA,QAAAnB,MAAA,CAAAd,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAT,CAAA,GAAAQ,CAAA,CAAAQ,IAAA,CAAAb,CAAA,GAAAsC,IAAA,MAAAf,CAAA,CAAAgB,IAAA,CAAA1C,CAAA,CAAA2C,KAAA,GAAAjB,CAAA,CAAAS,MAAA,KAAAC,CAAA,GAAA3B,CAAA,iBAAAJ,CAAA,IAAAE,CAAA,OAAAD,CAAA,GAAAD,CAAA,yBAAAI,CAAA,YAAAN,CAAA,CAAAyC,MAAA,KAAAL,CAAA,GAAApC,CAAA,CAAAyC,MAAA,IAAA3B,MAAA,CAAAsB,CAAA,MAAAA,CAAA,2BAAAhC,CAAA,QAAAD,CAAA,aAAAoB,CAAA;AAAA,SAAAL,gBAAAhB,CAAA,QAAA2B,KAAA,CAAAa,OAAA,CAAAxC,CAAA,UAAAA,CAAA;AAEnD;AACA;AACA;AACA;AACA,IAAMyC,cAAc,GAAGC,yBAAM,CAACC,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kRA4BhC;AAED,IAAMC,iBAAiB,GAAG,CACxB,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,UAAU,CACX;AASM,IAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,SAAlBA,eAAeA,CAAAE,IAAA,EAGc;EAAA,IAFxCC,eAAe,GAAAD,IAAA,CAAfC,eAAe;IACfC,IAAI,GAAAF,IAAA,CAAJE,IAAI;EAEJ,IAAAC,SAAA,GAAwB,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,GAAAxC,cAAA,CAAAsC,SAAA;IAAhCG,IAAI,GAAAD,UAAA;IAAEE,OAAO,GAAAF,UAAA;EACpB,IAAMG,UAAU,GAAG,IAAAC,kBAAW,EAAC;IAAA,OAAMF,OAAO,CAAC,IAAI,CAAC;EAAA,GAAE,EAAE,CAAC;EACvD,IAAMG,WAAW,GAAG,IAAAD,kBAAW,EAAC;IAAA,OAAMF,OAAO,CAAC,KAAK,CAAC;EAAA,GAAE,EAAE,CAAC;EAEzD,IAAMI,gBAAgB,GACpB,CAACV,eAAe,EAAEK,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,CAACM,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,IAC/DC,SAAS;EAEX,oBACEjF,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAACzE,KAAA,CAAA0E,IAAI;IACHX,IAAI,EAAEA,IAAK;IACXY,MAAM,EAAEV,UAAW;IACnBW,OAAO,EAAET,WAAY;IACrBU,QAAQ,EAAC,YAAY;IACrBC,MAAM,eACJvF,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC5E,WAAA,CAAAkF,UAAU;MACTC,IAAI,EAAC,QAAQ;MACbC,OAAO,EAAC,WAAW;MACnBtB,IAAI,EAAEA,IAAK;MACXuB,SAAS,EAAEd,gBAAiB;MAC5Be,MAAM,EAAEpB;IAAK,gBAEbxE,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAsF,YAAY,MAAE,CACL;EACb,gBAED7F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAACzB,cAAc,qBACbzD,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAsF,IAAI;IAACH,SAAS,EAAC,WAAW;IAACI,QAAQ,EAAE;EAAE,GACrChC,iBAAiB,CAACiC,GAAG,CAAC,UAACtD,IAAI;IAAA,oBAC1B1C,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ;MAACC,GAAG,EAAExD,IAAK;MAACiD,SAAS,EAAC;IAAW,gBACxC3F,MAAA,CAAAa,OAAA,CAAAqE,aAAA;MAAKS,SAAS,EAAC;IAAO,GAAEjD,IAAU,CAAC,eACnC1C,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAA4F,cAAc,MAAE,CACT,CAAC;EAAA,CACZ,CAAC,eACFnG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAA4F,aAAa,MAAE,CAAC,eACjBpG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ;IAACN,SAAS,EAAC;EAAW,gBAC7B3F,MAAA,CAAAa,OAAA,CAAAqE,aAAA;IAAKS,SAAS,EAAC;EAAO,GAAC,qBAAwB,CAAC,eAChD3F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,SAAA,CAAAgG,QAAQ;IACPC,EAAE,EAAC,+BAA+B;IAClCC,QAAQ,EAAE,SAAVA,QAAQA,CAAA;MAAA,OAAQtB,SAAS;IAAA;EAAC,CAC3B,CACO,CAAC,eACXjF,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ;IAACN,SAAS,EAAC;EAAW,gBAC7B3F,MAAA,CAAAa,OAAA,CAAAqE,aAAA;IAAKS,SAAS,EAAC;EAAO,GAAC,eAAkB,CAAC,eAC1C3F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC7E,SAAA,CAAAgG,QAAQ;IAACC,EAAE,EAAC,yBAAyB;IAACC,QAAQ,EAAE,SAAVA,QAAQA,CAAA;MAAA,OAAQtB,SAAS;IAAA;EAAC,CAAE,CAC3D,CAAC,eACXjF,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAA4F,aAAa,MAAE,CAAC,eACjBpG,MAAA,CAAAa,OAAA,CAAAqE,aAAA;IAAKS,SAAS,EAAC;EAAa,gBAC1B3F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAACxE,QAAA,CAAA8F,OAAO;IAACC,KAAK,EAAC;EAAM,gBACnBzG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC5E,WAAA,CAAAkF,UAAU;IAACC,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAC;EAAW,gBAC3C1F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAmG,QAAQ,MAAE,CACD,CACL,CAAC,eACV1G,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAACxE,QAAA,CAAA8F,OAAO;IAACC,KAAK,EAAC;EAAW,gBACxBzG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC5E,WAAA,CAAAkF,UAAU;IAACC,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAC;EAAW,gBAC3C1F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAoG,aAAa,MAAE,CACN,CACL,CAAC,eACV3G,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAACxE,QAAA,CAAA8F,OAAO;IAACC,KAAK,EAAC;EAAuB,gBACpCzG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC5E,WAAA,CAAAkF,UAAU;IAACC,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAC;EAAW,gBAC3C1F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAqG,sBAAsB,MAAE,CACf,CACL,CAAC,eACV5G,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAACxE,QAAA,CAAA8F,OAAO;IAACC,KAAK,EAAC;EAAQ,gBACrBzG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC5E,WAAA,CAAAkF,UAAU;IAACC,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAC;EAAW,gBAC3C1F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAsG,SAAS,MAAE,CACF,CACL,CACN,CACD,CACQ,CACZ,CAAC;AAEX,CAAC;AAED7C,eAAe,CAACH,WAAW,GAAG,iBAAiB;AAS/C;AACA;AACA;AACO,IAAMiD,mBAAmB,GAAA7C,OAAA,CAAA6C,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAGc;EAAA,IAF5C5C,eAAe,GAAA4C,KAAA,CAAf5C,eAAe;IACfC,IAAI,GAAA2C,KAAA,CAAJ3C,IAAI;EAEJ,IAAA4C,UAAA,GAAwB,IAAA1C,eAAQ,EAAC,KAAK,CAAC;IAAA2C,UAAA,GAAAlF,cAAA,CAAAiF,UAAA;IAAhCxC,IAAI,GAAAyC,UAAA;IAAExC,OAAO,GAAAwC,UAAA;EACpB,IAAMvC,UAAU,GAAG,IAAAC,kBAAW,EAAC;IAAA,OAAMF,OAAO,CAAC,IAAI,CAAC;EAAA,GAAE,EAAE,CAAC;EACvD,IAAMG,WAAW,GAAG,IAAAD,kBAAW,EAAC;IAAA,OAAMF,OAAO,CAAC,KAAK,CAAC;EAAA,GAAE,EAAE,CAAC;EAEzD,IAAMI,gBAAgB,GACpB,CAACV,eAAe,EAAEK,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,CAACM,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,IAC/DC,SAAS;EAEX,oBACEjF,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAACzE,KAAA,CAAA0E,IAAI;IACHX,IAAI,EAAEA,IAAK;IACXY,MAAM,EAAEV,UAAW;IACnBW,OAAO,EAAET,WAAY;IACrBU,QAAQ,EAAC,YAAY;IACrBC,MAAM,eACJvF,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC5E,WAAA,CAAAkF,UAAU;MACTC,IAAI,EAAC,QAAQ;MACbC,OAAO,EAAC,WAAW;MACnBtB,IAAI,EAAEA,IAAK;MACXuB,SAAS,EAAEd,gBAAiB;MAC5Be,MAAM,EAAEpB;IAAK,gBAEbxE,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAsF,YAAY,MAAE,CACL;EACb,gBAED7F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAsF,IAAI;IAACoB,KAAK,EAAE;MAAEC,OAAO,EAAE;IAAQ,CAAE;IAACpB,QAAQ,EAAE,CAAC;EAAE,gBAC9C/F,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ,qBACPjG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAmG,QAAQ,MAAE,CAAC,UAEJ,CAAC,eACX1G,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ,qBACPjG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAoG,aAAa,MAAE,CAAC,aAET,CAAC,eACX3G,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ,qBACPjG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAA6G,QAAQ,MAAE,CAAC,wBAEJ,CAAC,eACXpH,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ,qBACPjG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAA8G,oBAAoB,MAAE,CAAC,YAEhB,CAAC,eACXrH,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAA4F,aAAa,MAAE,CAAC,eACjBpG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC1E,KAAA,CAAAyF,QAAQ,qBACPjG,MAAA,CAAAa,OAAA,CAAAqE,aAAA,CAAC3E,MAAA,CAAAsG,SAAS,MAAE,CAAC,UAEL,CACN,CACF,CAAC;AAEX,CAAC;AAEDC,mBAAmB,CAACjD,WAAW,GAAG,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TabHeader = exports.ProjectPageHeader = exports.PageHeader = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
var _tokens = require("./tokens");
|
|
10
|
+
var _Button = require("../../components/Button");
|
|
11
|
+
var _GlobalAddButton = require("../../components/Button/GlobalAddButton");
|
|
12
|
+
var _Checkbox = require("../../components/Checkbox");
|
|
13
|
+
var _CounterButton = require("../../components/CounterButton");
|
|
14
|
+
var _Header = require("../../components/Header");
|
|
15
|
+
var _IconButton = require("../../components/IconButton");
|
|
16
|
+
var _Icons = require("../../components/Icons");
|
|
17
|
+
var _List = require("../../components/List");
|
|
18
|
+
var _Menu = require("../../components/Menu");
|
|
19
|
+
var _Nav = require("../../components/Nav");
|
|
20
|
+
var _ProgressPie = require("../../components/ProgressPie");
|
|
21
|
+
var _Tooltip = require("../../components/Tooltip");
|
|
22
|
+
var _Typography = require("../../components/Typography");
|
|
23
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
|
+
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
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
26
|
+
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."); }
|
|
27
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
28
|
+
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
|
+
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
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
31
|
+
/* ------------------------------------------------------------------ */
|
|
32
|
+
/* Page header row (mirrors PageHeader.jsx) */
|
|
33
|
+
/* ------------------------------------------------------------------ */
|
|
34
|
+
|
|
35
|
+
var StyledPageHeader = _styledComponents.default.div.withConfig({
|
|
36
|
+
displayName: "headers__StyledPageHeader",
|
|
37
|
+
componentId: "sc-yf6o6n-0"
|
|
38
|
+
})(["display:flex;align-items:center;justify-content:space-between;margin:12px 0;width:100%;height:40px;flex-shrink:0;.page-header-left{display:flex;align-items:center;width:100%;max-width:100%;@media (min-width:", "){min-width:0;}}.back-button{flex-shrink:0;margin-right:4px;@media (min-width:", "){margin-right:8px;}}.page-title-desktop{display:none;margin-right:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;@media (min-width:", "){display:block;}}.page-title-mobile{display:block;margin-right:8px;font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;@media (min-width:", "){display:none;}}.page-header-children{flex-shrink:0;display:flex;align-items:center;}.page-header-spacer{display:none;height:100%;width:208px;flex-shrink:0;@media (min-width:", "){display:flex;}}"], _tokens.SM, _tokens.MD, _tokens.MD, _tokens.MD, _tokens.SM);
|
|
39
|
+
/** Generic page header (title + optional controls), mirrors PageHeader.jsx. */
|
|
40
|
+
var PageHeader = exports.PageHeader = function PageHeader(_ref) {
|
|
41
|
+
var title = _ref.title,
|
|
42
|
+
children = _ref.children;
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(StyledPageHeader, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
44
|
+
className: "page-header-left"
|
|
45
|
+
}, /*#__PURE__*/_react.default.createElement(_Typography.Title2, {
|
|
46
|
+
className: "page-title-desktop"
|
|
47
|
+
}, title), /*#__PURE__*/_react.default.createElement(_Typography.Header2, {
|
|
48
|
+
className: "page-title-mobile"
|
|
49
|
+
}, title), /*#__PURE__*/_react.default.createElement("div", {
|
|
50
|
+
className: "page-header-children"
|
|
51
|
+
}, children)), /*#__PURE__*/_react.default.createElement("div", {
|
|
52
|
+
className: "page-header-spacer"
|
|
53
|
+
}));
|
|
54
|
+
};
|
|
55
|
+
PageHeader.displayName = "PageHeader";
|
|
56
|
+
|
|
57
|
+
/* ------------------------------------------------------------------ */
|
|
58
|
+
/* Project page header (mirrors ProjectPage.js Page.Header children) */
|
|
59
|
+
/* ------------------------------------------------------------------ */
|
|
60
|
+
|
|
61
|
+
var StyledProjectHeaderChildren = _styledComponents.default.div.withConfig({
|
|
62
|
+
displayName: "headers__StyledProjectHeaderChildren",
|
|
63
|
+
componentId: "sc-yf6o6n-1"
|
|
64
|
+
})(["display:flex;align-items:center;gap:8px;.project-progress{display:flex;align-items:center;margin-left:4px;}"]);
|
|
65
|
+
|
|
66
|
+
/* Project "..." options menu (Menu + List with leading-icon items). Two items
|
|
67
|
+
(Favorite, Subscribe) have a checkbox on the right. Clicks are no-ops. */
|
|
68
|
+
var StyledProjectMenu = _styledComponents.default.div.withConfig({
|
|
69
|
+
displayName: "headers__StyledProjectMenu",
|
|
70
|
+
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
|
+
var ProjectOptionsMenu = function ProjectOptionsMenu() {
|
|
73
|
+
var _useState = (0, _react.useState)(false),
|
|
74
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
75
|
+
open = _useState2[0],
|
|
76
|
+
setOpen = _useState2[1];
|
|
77
|
+
return /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
78
|
+
open: open,
|
|
79
|
+
onOpen: function onOpen() {
|
|
80
|
+
return setOpen(true);
|
|
81
|
+
},
|
|
82
|
+
onClose: function onClose() {
|
|
83
|
+
return setOpen(false);
|
|
84
|
+
},
|
|
85
|
+
position: "bottom-end",
|
|
86
|
+
target: /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
87
|
+
type: "button",
|
|
88
|
+
variant: "text gray",
|
|
89
|
+
active: open
|
|
90
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.TreeDotsIcon, null))
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement(StyledProjectMenu, null, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
92
|
+
style: {
|
|
93
|
+
padding: "8px 0"
|
|
94
|
+
},
|
|
95
|
+
tabIndex: -1
|
|
96
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_Icons.EditIcon, null), "Edit"), /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
97
|
+
className: "toggle-item"
|
|
98
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
99
|
+
className: "opt-left"
|
|
100
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.StarIcon, null), "Mark as Favorite"), /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
|
|
101
|
+
id: "proj-favorite",
|
|
102
|
+
onChange: function onChange() {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
})), /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
106
|
+
className: "toggle-item"
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
108
|
+
className: "opt-left"
|
|
109
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.NotificationBellIcon, null), "Subscribe to Everything"), /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
|
|
110
|
+
id: "proj-subscribe",
|
|
111
|
+
onChange: function onChange() {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
})), /*#__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.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"))));
|
|
115
|
+
};
|
|
116
|
+
/** The project page header: back arrow, title, progress, info, people, options. */
|
|
117
|
+
var ProjectPageHeader = exports.ProjectPageHeader = function ProjectPageHeader(_ref2) {
|
|
118
|
+
var _ref2$title = _ref2.title,
|
|
119
|
+
title = _ref2$title === void 0 ? "#131: Ime projekta" : _ref2$title;
|
|
120
|
+
return /*#__PURE__*/_react.default.createElement(StyledPageHeader, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
121
|
+
className: "page-header-left"
|
|
122
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
123
|
+
variant: "text gray",
|
|
124
|
+
className: "back-button"
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.ArrowLeftIcon, null)), /*#__PURE__*/_react.default.createElement(_Typography.Title2, {
|
|
126
|
+
className: "page-title-desktop"
|
|
127
|
+
}, title), /*#__PURE__*/_react.default.createElement(_Typography.Header2, {
|
|
128
|
+
className: "page-title-mobile"
|
|
129
|
+
}, title), /*#__PURE__*/_react.default.createElement("div", {
|
|
130
|
+
className: "page-header-children"
|
|
131
|
+
}, /*#__PURE__*/_react.default.createElement(StyledProjectHeaderChildren, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
132
|
+
className: "project-progress"
|
|
133
|
+
}, /*#__PURE__*/_react.default.createElement(_ProgressPie.ProgressPie, {
|
|
134
|
+
radius: 11,
|
|
135
|
+
progress: 64,
|
|
136
|
+
progressColor: "var(--color-secondary)",
|
|
137
|
+
backgroundColor: "var(--color-theme-300)"
|
|
138
|
+
})), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
139
|
+
title: "Project Info"
|
|
140
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
141
|
+
variant: "text gray"
|
|
142
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.InfoIcon, null))), /*#__PURE__*/_react.default.createElement(_CounterButton.CounterButton, {
|
|
143
|
+
label: "5",
|
|
144
|
+
icon: /*#__PURE__*/_react.default.createElement(_Icons.PeopleIcon, null),
|
|
145
|
+
onClearAll: function onClearAll() {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
}), /*#__PURE__*/_react.default.createElement(ProjectOptionsMenu, null)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
149
|
+
className: "page-header-spacer"
|
|
150
|
+
}));
|
|
151
|
+
};
|
|
152
|
+
ProjectPageHeader.displayName = "ProjectPageHeader";
|
|
153
|
+
|
|
154
|
+
/* ------------------------------------------------------------------ */
|
|
155
|
+
/* Tab bar (mirrors the <Header> with <Nav> on ProjectPage.js) */
|
|
156
|
+
/* ------------------------------------------------------------------ */
|
|
157
|
+
|
|
158
|
+
var NAV_TABS = ["Tasks", "Discussions", "Files", "Notes", "Activity"];
|
|
159
|
+
var StyledTabHeader = (0, _styledComponents.default)(_Header.Header).withConfig({
|
|
160
|
+
displayName: "headers__StyledTabHeader",
|
|
161
|
+
componentId: "sc-yf6o6n-3"
|
|
162
|
+
})(["justify-content:space-between;align-items:center;margin-bottom:16px;min-height:64px;flex-shrink:0;"]);
|
|
163
|
+
var StyledTabControls = _styledComponents.default.div.withConfig({
|
|
164
|
+
displayName: "headers__StyledTabControls",
|
|
165
|
+
componentId: "sc-yf6o6n-4"
|
|
166
|
+
})(["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
|
+
/** The Tasks/Discussions/… tab bar plus the right-hand view toolbar. */
|
|
168
|
+
var TabHeader = exports.TabHeader = function TabHeader(_ref3) {
|
|
169
|
+
var _ref3$activeView = _ref3.activeView,
|
|
170
|
+
activeView = _ref3$activeView === void 0 ? "list" : _ref3$activeView;
|
|
171
|
+
var _useState3 = (0, _react.useState)(0),
|
|
172
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
173
|
+
active = _useState4[0],
|
|
174
|
+
setActive = _useState4[1];
|
|
175
|
+
return /*#__PURE__*/_react.default.createElement(StyledTabHeader, null, /*#__PURE__*/_react.default.createElement(_Nav.Nav, {
|
|
176
|
+
onSelect: setActive
|
|
177
|
+
}, NAV_TABS.map(function (label, index) {
|
|
178
|
+
return /*#__PURE__*/_react.default.createElement(_Nav.Item, {
|
|
179
|
+
active: index === active,
|
|
180
|
+
key: label,
|
|
181
|
+
name: label
|
|
182
|
+
}, /*#__PURE__*/_react.default.createElement(_Typography.Body2, {
|
|
183
|
+
color: "secondary",
|
|
184
|
+
weight: "medium"
|
|
185
|
+
}, label));
|
|
186
|
+
})), /*#__PURE__*/_react.default.createElement(StyledTabControls, null, /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
187
|
+
title: "Batch Edit"
|
|
188
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
189
|
+
variant: "text gray"
|
|
190
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.EditMultipleIcon, null))), /*#__PURE__*/_react.default.createElement("span", {
|
|
191
|
+
className: "vertical-separator"
|
|
192
|
+
}), /*#__PURE__*/_react.default.createElement(_Button.Button, {
|
|
193
|
+
variant: "text gray",
|
|
194
|
+
className: "filter-button"
|
|
195
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.FilterIcon, null), "Filter"), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
196
|
+
title: "List view"
|
|
197
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
198
|
+
variant: "text gray",
|
|
199
|
+
active: activeView === "list"
|
|
200
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.ViewListIcon, null))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
201
|
+
title: "Column view"
|
|
202
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
203
|
+
variant: "text gray",
|
|
204
|
+
active: activeView === "column"
|
|
205
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.ViewListIcon, {
|
|
206
|
+
style: {
|
|
207
|
+
transform: "rotate(90deg)"
|
|
208
|
+
}
|
|
209
|
+
}))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
210
|
+
title: "Timeline view"
|
|
211
|
+
}, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
|
|
212
|
+
variant: "text gray",
|
|
213
|
+
active: activeView === "timeline"
|
|
214
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.ViewTimelineIcon, null))), /*#__PURE__*/_react.default.createElement("span", {
|
|
215
|
+
className: "vertical-separator"
|
|
216
|
+
}), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
217
|
+
title: "Add New"
|
|
218
|
+
}, /*#__PURE__*/_react.default.createElement(_GlobalAddButton.GlobalAddButton, null))));
|
|
219
|
+
};
|
|
220
|
+
TabHeader.displayName = "TabHeader";
|
|
221
|
+
//# sourceMappingURL=headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_tokens","_Button","_GlobalAddButton","_Checkbox","_CounterButton","_Header","_IconButton","_Icons","_List","_Menu","_Nav","_ProgressPie","_Tooltip","_Typography","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","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","StyledPageHeader","styled","div","withConfig","displayName","componentId","SM","MD","PageHeader","exports","_ref","title","children","createElement","className","Title2","Header2","StyledProjectHeaderChildren","StyledProjectMenu","ProjectOptionsMenu","_useState","useState","_useState2","open","setOpen","Menu","onOpen","onClose","position","target","IconButton","type","variant","active","TreeDotsIcon","List","style","padding","tabIndex","ListItem","EditIcon","StarIcon","Checkbox","id","onChange","undefined","NotificationBellIcon","LabelsIcon","InsertLinkIcon","ListSeparator","CheckboxBlankTogglerIcon","DuplicateIcon","ProjectTemplateIcon","ProjectTemplateConvertIcon","TrashIcon","ProjectPageHeader","_ref2","_ref2$title","ArrowLeftIcon","ProgressPie","radius","progress","progressColor","backgroundColor","Tooltip","InfoIcon","CounterButton","label","icon","PeopleIcon","onClearAll","NAV_TABS","StyledTabHeader","Header","StyledTabControls","TabHeader","_ref3","_ref3$activeView","activeView","_useState3","_useState4","setActive","Nav","onSelect","map","index","Item","key","Body2","color","weight","EditMultipleIcon","Button","FilterIcon","ViewListIcon","transform","ViewTimelineIcon","GlobalAddButton"],"sources":["../../../../src/presentation/shared/headers.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { MD, SM } from \"./tokens\";\nimport { Button } from \"../../components/Button\";\nimport { GlobalAddButton } from \"../../components/Button/GlobalAddButton\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { CounterButton } from \"../../components/CounterButton\";\nimport { Header } from \"../../components/Header\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n ArrowLeftIcon,\n CheckboxBlankTogglerIcon,\n DuplicateIcon,\n EditIcon,\n EditMultipleIcon,\n FilterIcon,\n InfoIcon,\n InsertLinkIcon,\n LabelsIcon,\n NotificationBellIcon,\n PeopleIcon,\n ProjectTemplateConvertIcon,\n ProjectTemplateIcon,\n StarIcon,\n TrashIcon,\n TreeDotsIcon,\n ViewListIcon,\n ViewTimelineIcon,\n} from \"../../components/Icons\";\nimport { List, ListItem, ListSeparator } from \"../../components/List\";\nimport { Menu } from \"../../components/Menu\";\nimport { Item, Nav } from \"../../components/Nav\";\nimport { ProgressPie } from \"../../components/ProgressPie\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Body2, Header2, Title2 } from \"../../components/Typography\";\n\n/* ------------------------------------------------------------------ */\n/* Page header row (mirrors PageHeader.jsx) */\n/* ------------------------------------------------------------------ */\n\nconst StyledPageHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 12px 0;\n width: 100%;\n height: 40px;\n flex-shrink: 0;\n\n .page-header-left {\n display: flex;\n align-items: center;\n width: 100%;\n max-width: 100%;\n\n @media (min-width: ${SM}) {\n min-width: 0;\n }\n }\n\n /* back button spacing (tw-shrink-0 tw-mr-1 md:tw-mr-2) */\n .back-button {\n flex-shrink: 0;\n margin-right: 4px;\n\n @media (min-width: ${MD}) {\n margin-right: 8px;\n }\n }\n\n .page-title-desktop {\n display: none;\n margin-right: 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n @media (min-width: ${MD}) {\n display: block;\n }\n }\n\n .page-title-mobile {\n display: block;\n margin-right: 8px;\n font-weight: 300;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n @media (min-width: ${MD}) {\n display: none;\n }\n }\n\n .page-header-children {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n }\n\n /* spacer that keeps the header clear of the absolutely positioned\n top-right controls, same as in the app (tw-w-52) */\n .page-header-spacer {\n display: none;\n height: 100%;\n width: 208px;\n flex-shrink: 0;\n\n @media (min-width: ${SM}) {\n display: flex;\n }\n }\n`;\n\nexport interface PageHeaderProps {\n title: string;\n children?: ReactNode;\n}\n\n/** Generic page header (title + optional controls), mirrors PageHeader.jsx. */\nexport const PageHeader = ({\n title,\n children,\n}: PageHeaderProps): ReactElement => (\n <StyledPageHeader>\n <div className=\"page-header-left\">\n <Title2 className=\"page-title-desktop\">{title}</Title2>\n <Header2 className=\"page-title-mobile\">{title}</Header2>\n <div className=\"page-header-children\">{children}</div>\n </div>\n <div className=\"page-header-spacer\" />\n </StyledPageHeader>\n);\n\nPageHeader.displayName = \"PageHeader\";\n\n/* ------------------------------------------------------------------ */\n/* Project page header (mirrors ProjectPage.js Page.Header children) */\n/* ------------------------------------------------------------------ */\n\nconst StyledProjectHeaderChildren = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n\n .project-progress {\n display: flex;\n align-items: center;\n margin-left: 4px;\n }\n`;\n\n/* Project \"...\" options menu (Menu + List with leading-icon items). Two items\n (Favorite, Subscribe) have a checkbox on the right. Clicks are no-ops. */\nconst StyledProjectMenu = styled.div`\n .toggle-item {\n justify-content: space-between;\n }\n\n .toggle-item .opt-left {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n .toggle-item .opt-left svg {\n margin-right: 8px;\n flex-shrink: 0;\n }\n`;\n\nconst ProjectOptionsMenu = (): ReactElement => {\n const [open, setOpen] = useState(false);\n return (\n <Menu\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n position=\"bottom-end\"\n target={\n <IconButton type=\"button\" variant=\"text gray\" active={open}>\n <TreeDotsIcon />\n </IconButton>\n }\n >\n <StyledProjectMenu>\n <List style={{ padding: \"8px 0\" }} tabIndex={-1}>\n <ListItem>\n <EditIcon />\n Edit\n </ListItem>\n <ListItem className=\"toggle-item\">\n <span className=\"opt-left\">\n <StarIcon />\n Mark as Favorite\n </span>\n <Checkbox id=\"proj-favorite\" onChange={() => undefined} />\n </ListItem>\n <ListItem className=\"toggle-item\">\n <span className=\"opt-left\">\n <NotificationBellIcon />\n Subscribe to Everything\n </span>\n <Checkbox id=\"proj-subscribe\" onChange={() => undefined} />\n </ListItem>\n <ListItem>\n <LabelsIcon />\n Manage Task Labels\n </ListItem>\n <ListItem>\n <InsertLinkIcon />\n Copy Link\n </ListItem>\n <ListSeparator />\n <ListItem>\n <CheckboxBlankTogglerIcon />\n Complete\n </ListItem>\n <ListSeparator />\n <ListItem>\n <DuplicateIcon />\n Duplicate\n </ListItem>\n <ListItem>\n <ProjectTemplateIcon />\n Apply Template\n </ListItem>\n <ListItem>\n <ProjectTemplateConvertIcon />\n Convert to Template\n </ListItem>\n <ListSeparator />\n <ListItem>\n <TrashIcon />\n Delete\n </ListItem>\n </List>\n </StyledProjectMenu>\n </Menu>\n );\n};\n\nexport interface ProjectPageHeaderProps {\n title?: string;\n}\n\n/** The project page header: back arrow, title, progress, info, people, options. */\nexport const ProjectPageHeader = ({\n title = \"#131: Ime projekta\",\n}: ProjectPageHeaderProps): ReactElement => (\n <StyledPageHeader>\n <div className=\"page-header-left\">\n <IconButton variant=\"text gray\" className=\"back-button\">\n <ArrowLeftIcon />\n </IconButton>\n <Title2 className=\"page-title-desktop\">{title}</Title2>\n <Header2 className=\"page-title-mobile\">{title}</Header2>\n <div className=\"page-header-children\">\n <StyledProjectHeaderChildren>\n <span className=\"project-progress\">\n <ProgressPie\n radius={11}\n progress={64}\n progressColor=\"var(--color-secondary)\"\n backgroundColor=\"var(--color-theme-300)\"\n />\n </span>\n <Tooltip title=\"Project Info\">\n <IconButton variant=\"text gray\">\n <InfoIcon />\n </IconButton>\n </Tooltip>\n <CounterButton\n label=\"5\"\n icon={<PeopleIcon />}\n onClearAll={() => undefined}\n />\n <ProjectOptionsMenu />\n </StyledProjectHeaderChildren>\n </div>\n </div>\n <div className=\"page-header-spacer\" />\n </StyledPageHeader>\n);\n\nProjectPageHeader.displayName = \"ProjectPageHeader\";\n\n/* ------------------------------------------------------------------ */\n/* Tab bar (mirrors the <Header> with <Nav> on ProjectPage.js) */\n/* ------------------------------------------------------------------ */\n\nconst NAV_TABS = [\"Tasks\", \"Discussions\", \"Files\", \"Notes\", \"Activity\"];\n\nconst StyledTabHeader = styled(Header)`\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n min-height: 64px;\n flex-shrink: 0;\n`;\n\nconst StyledTabControls = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n gap: 4px;\n\n .vertical-separator {\n width: 1px;\n height: 24px;\n background-color: var(--color-theme-400);\n margin: 0 8px;\n }\n\n .filter-button {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n`;\n\nexport interface TabHeaderProps {\n /** Which view-mode toggle is highlighted as active. */\n activeView?: \"list\" | \"column\" | \"timeline\";\n}\n\n/** The Tasks/Discussions/… tab bar plus the right-hand view toolbar. */\nexport const TabHeader = ({\n activeView = \"list\",\n}: TabHeaderProps): ReactElement => {\n const [active, setActive] = useState(0);\n return (\n <StyledTabHeader>\n <Nav onSelect={setActive}>\n {NAV_TABS.map((label, index) => (\n <Item active={index === active} key={label} name={label}>\n <Body2 color=\"secondary\" weight=\"medium\">\n {label}\n </Body2>\n </Item>\n ))}\n </Nav>\n <StyledTabControls>\n <Tooltip title=\"Batch Edit\">\n <IconButton variant=\"text gray\">\n <EditMultipleIcon />\n </IconButton>\n </Tooltip>\n <span className=\"vertical-separator\" />\n <Button variant=\"text gray\" className=\"filter-button\">\n <FilterIcon />\n Filter\n </Button>\n <Tooltip title=\"List view\">\n <IconButton variant=\"text gray\" active={activeView === \"list\"}>\n <ViewListIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Column view\">\n <IconButton variant=\"text gray\" active={activeView === \"column\"}>\n <ViewListIcon style={{ transform: \"rotate(90deg)\" }} />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"Timeline view\">\n <IconButton variant=\"text gray\" active={activeView === \"timeline\"}>\n <ViewTimelineIcon />\n </IconButton>\n </Tooltip>\n <span className=\"vertical-separator\" />\n <Tooltip title=\"Add New\">\n <GlobalAddButton />\n </Tooltip>\n </StyledTabControls>\n </StyledTabHeader>\n );\n};\n\nTabHeader.displayName = \"TabHeader\";\n"],"mappings":"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","ignoreList":[]}
|