@activecollab/components 2.0.366 → 2.0.367

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.
@@ -1 +1 @@
1
- {"version":3,"file":"columns.js","names":["_react","_interopRequireWildcard","require","_momentTimezone","_interopRequireDefault","_styledComponents","_Button","_Checkbox","_Chip","_DatePicker","_Dot","_Icons","_Input","_Label","_Modal","_ProgressPie","_Select","_SelectTrigger","_Textarea","_Transitions","_Typography","_utils","_excluded","_excluded2","_excluded3","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","next","done","return","isArray","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","SANS","CooltipStyle","css","ListButtonBase","forwardRef","_ref","ref","open","className","children","rest","createElement","Button","type","variant","active","concat","displayName","StyledListButton","styled","withConfig","componentId","INITIAL_LABELS","id","color","textColor","NEW_LABEL_COLORS","LabelsContext","createContext","labels","labelsById","addLabel","LabelsProvider","exports","_ref2","_useState","useState","_useState2","setLabels","useCallback","trimmed","trim","toUpperCase","toLowerCase","replace","prev","some","label","palette","useMemo","reduce","acc","Provider","useTaskLabels","useContext","StyledLabelPlaceholder","span","StyledLabelItems","MAX_SHOWN_LABELS","LabelItems","_ref3","showAsDot","shown","restCount","Math","min","map","Dot","key","size","Chip","backgroundColor","style","maxWidth","typographyProps","weight","Body2","LabelTrigger","_ref4","Caption2","LabelCell","_ref5","labelIds","_ref5$completed","completed","_useTaskLabels","catalog","_useState3","_useState4","selected","setSelected","selectedLabels","Boolean","sort","b","localeCompare","options","handleChange","handleAddNew","includes","StyledReadOnlyCell","Select","onChange","emptyValue","emptyAction","autoHeightMax","position","target","DATE_FORMAT","todayUnix","moment","utc","startOf","unix","dayOffset","offset","add","formatDateRange","to","undefined","start","due","withoutYear","withoutYearAndMonth","format","year","month","formatDateLong","isOverdue","dueOn","StyledDateValue","div","StyledPickerCell","DateTrigger","_ref6","tooltip","overdue","Caption1","CalendarIcon","DateCell","_ref7","_dates$from","_dates$to2","startOn","_ref7$completed","_useState5","_useState6","dates","setDates","_useState7","_useState8","pickerMounted","setPickerMounted","_useMemo","_dates$to","formatted","hint","handleSave","range","handleClear","handleCalendarToggle","onClick","DatePicker","mode","instant","maxRange","firstDayOfWeek","onSave","onClear","onCalendarToggle","timeToEstimatePercentage","tracked","estimated","round","formatTrackedAndEstimated","formatHours","progressColor","percent","StyledTimeValue","TimeValue","_ref8","ProgressPie","radius","progress","TimeTrigger","_ref9","hasTime","ClockAddIcon","TimeCell","_ref0","taskName","_ref0$tracked","_ref0$estimated","users","currentUserId","_ref0$completed","_useState9","_useState0","setOpen","_useState1","_users$find$name","_users$find","date","userId","userName","find","user","jobType","hours","billable","_useState10","records","setRecords","total","sum","record","handleAdd","TimeRecordDialog","onSubmit","onClose","JOB_TYPES","StyledTimeRecordPaper","_ref1","_useState11","_useState12","setValue","_useState13","_useState14","setDate","_useState15","_useState16","setUserId","_useState17","_useState18","jobTypeId","setJobTypeId","_useState19","_useState20","setBillable","_useState21","_useState22","showDescription","setShowDescription","_useState23","_useState24","description","setDescription","_useState25","_useState26","showRecords","setShowRecords","item","_trimmed$split","split","_trimmed$split2","h","m","handleSubmit","_user$name","_jobType$name","Modal","SlideFromTop","in","role","required","SelectTrigger","InputHours","autoFocus","allowEmptyValue","placeholder","Label","forceCloseMenu","Checkbox","checked","htmlFor","CollapseExpandSingleIcon","Textarea","event","disabled","Header3","tabularNums"],"sources":["../../../../src/presentation/listView/columns.tsx"],"sourcesContent":["import React, {\n createContext,\n forwardRef,\n ReactElement,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\nimport moment from \"moment-timezone\";\nimport styled, { css } from \"styled-components\";\n\nimport { Button } from \"../../components/Button\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { Chip } from \"../../components/Chip\";\nimport { DatePicker, TimestampDateRange } from \"../../components/DatePicker\";\nimport { Dot } from \"../../components/Dot\";\nimport {\n CalendarIcon,\n ClockAddIcon,\n CollapseExpandSingleIcon,\n} from \"../../components/Icons\";\nimport { InputHours } from \"../../components/Input\";\nimport { Label } from \"../../components/Label\";\nimport { Modal } from \"../../components/Modal\";\nimport { ProgressPie } from \"../../components/ProgressPie\";\nimport { Select } from \"../../components/Select\";\nimport { SelectTrigger } from \"../../components/SelectTrigger\";\nimport { Textarea } from \"../../components/Textarea\";\nimport { SlideFromTop } from \"../../components/Transitions\";\nimport {\n Body2,\n Caption1,\n Caption2,\n Header3,\n} from \"../../components/Typography\";\nimport { formatHours } from \"../../utils\";\n\n/**\n * Interactive list-view column cells for the `Presentation/List view` story —\n * the Label, Date and Time cells with their editors, mirroring\n * `new-activecollab-front/src/components/ListView/columns/*`:\n *\n * - **Label** (`columns/Label.js` + `LabelTrigger`/`LabelItems`): chips for 1–2\n * labels, dots from 3 up, `+N` past 8, and a DS `Select` picker (search,\n * colored dot + label name in the label's own colour, checkbox, \"+ Add new\").\n * - **Date** (`columns/Date.js`): a range trigger that formats like the app\n * (`formatDateRange`), turns red when overdue, and opens the DS `DatePicker`\n * in atomic mode so it gets the Save / ✕ / Clear footer.\n * - **Time** (`columns/Time.js`): `ProgressPie` + `tracked/estimated`, coloured\n * by how much of the estimate is used, opening the \"Add Time Record\" dialog.\n *\n * Everything is local state — there is no store, so edits live as long as the\n * story is mounted.\n */\n\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Inter\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\n\n/**\n * CSS-only tooltip, mirroring the app's `.c-cooltip.c-cooltip--top` (see\n * `styles/c_cooltip.less`). The list renders hundreds of these, and the DS\n * `Tooltip` mounts a Portal + Popper per instance — far too heavy per cell — so\n * the cells use `data-tooltip` exactly like the real list view does.\n */\nconst CooltipStyle = css`\n &[data-tooltip],\n [data-tooltip] {\n position: relative;\n }\n\n &[data-tooltip]::after,\n [data-tooltip]::after {\n pointer-events: none;\n content: attr(data-tooltip);\n position: absolute;\n bottom: calc(100% + 0.5rem);\n left: 50%;\n transform: scale(0.85) translateX(-50%);\n transform-origin: 0;\n opacity: 0;\n max-width: 12.5rem;\n padding: 0.25rem 0.625rem;\n border-radius: 0.5rem;\n background-color: rgba(0, 0, 0, 0.9);\n color: #fff;\n font-family: ${SANS};\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1.3;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @media (hover: hover) {\n &[data-tooltip]:not(:focus):hover::after,\n [data-tooltip]:not(:focus):hover::after {\n transition: opacity 0.15s ease, transform 0.15s ease;\n transition-delay: 0.6s;\n transform: scale(1) translateX(-50%);\n opacity: 1;\n }\n }\n`;\n\n/* ================================================================== */\n/* Shared trigger button (mirrors ListView/ListButton.js) */\n/* ================================================================== */\n\ninterface ListButtonProps {\n /** injected by DS `Menu` when it clones the target */\n open?: boolean;\n className?: string;\n children?: ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n disabled?: boolean;\n \"aria-label\"?: string;\n}\n\n/**\n * `Menu` clones its `target` and injects `open`, so — like the app's\n * `ListButton` — the trigger has to swallow that prop and turn it into the DS\n * `active` state plus an `.open` class the row CSS uses to keep the trigger\n * visible while its menu is open.\n */\nconst ListButtonBase = forwardRef<HTMLButtonElement, ListButtonProps>(\n ({ open, className, children, ...rest }, ref) => (\n <Button\n {...rest}\n ref={ref}\n type=\"button\"\n variant=\"text gray\"\n active={open}\n className={`list-button${className ? ` ${className}` : \"\"}${\n open ? \" open\" : \"\"\n }`}\n >\n {children}\n </Button>\n )\n);\n\nListButtonBase.displayName = \"ListButtonBase\";\n\n/*\n * The DS Button treats a single element child as \"icon only\" — inline-flex,\n * centered, a fixed 32px wide and `overflow: hidden`, which squashes a date or\n * a chip. `&&` doubles the specificity so these rules win over that block; the\n * button then hugs its content and the column's `justify-content: flex-end`\n * parks it against the right edge.\n */\nconst StyledListButton = styled(ListButtonBase)`\n && {\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n width: auto;\n min-width: 0;\n max-width: 100%;\n padding: 4px 8px;\n overflow: visible;\n text-align: right;\n }\n\n ${CooltipStyle}\n`;\n\n/* ================================================================== */\n/* Labels */\n/* ================================================================== */\n\nexport interface TaskLabel {\n id: string;\n name: string;\n /** chip background + dot colour (label colours are data, not theme) */\n color: string;\n /** the label's own text colour, used in the picker list */\n textColor: string;\n}\n\n/* The project's label catalogue. Names are uppercase, like in the app. */\nconst INITIAL_LABELS: TaskLabel[] = [\n {\n id: \"in-progress\",\n name: \"IN PROGRESS\",\n color: \"#CDE8F5\",\n textColor: \"#3D7F9E\",\n },\n {\n id: \"needs-review\",\n name: \"NEEDS REVIEW\",\n color: \"#F9E79F\",\n textColor: \"#A98A17\",\n },\n { id: \"approved\", name: \"APPROVED\", color: \"#A9DFBF\", textColor: \"#3D9A6A\" },\n { id: \"blocked\", name: \"BLOCKED\", color: \"#F1948A\", textColor: \"#B5544C\" },\n { id: \"on-hold\", name: \"ON HOLD\", color: \"#F5CBA7\", textColor: \"#B4713A\" },\n { id: \"idea\", name: \"IDEA\", color: \"#FAD7A0\", textColor: \"#B98A2B\" },\n { id: \"todo\", name: \"TODO\", color: \"#D6EAF8\", textColor: \"#4A87B5\" },\n { id: \"research\", name: \"RESEARCH\", color: \"#D7BDE2\", textColor: \"#8155A0\" },\n {\n id: \"accessibility\",\n name: \"ACCESSIBILITY\",\n color: \"#AED6F1\",\n textColor: \"#3E7CA6\",\n },\n { id: \"copy\", name: \"COPY\", color: \"#F5B7B1\", textColor: \"#B5544C\" },\n {\n id: \"design-debt\",\n name: \"DESIGN DEBT\",\n color: \"#E8DAEF\",\n textColor: \"#7D5A99\",\n },\n { id: \"qa\", name: \"QA\", color: \"#A3E4D7\", textColor: \"#34907C\" },\n {\n id: \"client-input\",\n name: \"CLIENT INPUT\",\n color: \"#FDEBD0\",\n textColor: \"#B08640\",\n },\n { id: \"mobile\", name: \"MOBILE\", color: \"#D1F2EB\", textColor: \"#2E8B7A\" },\n {\n id: \"performance\",\n name: \"PERFORMANCE\",\n color: \"#FCF3CF\",\n textColor: \"#A38B1E\",\n },\n { id: \"asset\", name: \"ASSET\", color: \"#D5D8DC\", textColor: \"#6B7378\" },\n];\n\n/* Colours handed out to labels created from the picker's \"+ Add new\" row. */\nconst NEW_LABEL_COLORS = [\n { color: \"#F9E0F2\", textColor: \"#A4569B\" },\n { color: \"#DDEBFB\", textColor: \"#4E7BA8\" },\n { color: \"#E4F6D8\", textColor: \"#5F9440\" },\n { color: \"#FDE2D5\", textColor: \"#B36A45\" },\n];\n\ninterface LabelsContextValue {\n labels: TaskLabel[];\n labelsById: Record<string, TaskLabel>;\n addLabel: (name: string) => string;\n}\n\nconst LabelsContext = createContext<LabelsContextValue>({\n labels: INITIAL_LABELS,\n labelsById: {},\n addLabel: () => \"\",\n});\n\n/**\n * Holds the label catalogue for the whole list, so a label created in one\n * task's picker shows up in every other picker too.\n */\nexport const LabelsProvider = ({\n children,\n}: {\n children: ReactNode;\n}): ReactElement => {\n const [labels, setLabels] = useState<TaskLabel[]>(INITIAL_LABELS);\n\n const addLabel = useCallback((name: string): string => {\n const trimmed = name.trim().toUpperCase();\n const id = `label-${trimmed.toLowerCase().replace(/[^a-z0-9]+/g, \"-\")}`;\n setLabels((prev) => {\n if (prev.some((label) => label.id === id)) {\n return prev;\n }\n const palette = NEW_LABEL_COLORS[prev.length % NEW_LABEL_COLORS.length];\n return [...prev, { id, name: trimmed, ...palette }];\n });\n return id;\n }, []);\n\n const value = useMemo(\n () => ({\n labels,\n labelsById: labels.reduce<Record<string, TaskLabel>>(\n (acc, label) => ({ ...acc, [label.id]: label }),\n {}\n ),\n addLabel,\n }),\n [addLabel, labels]\n );\n\n return (\n <LabelsContext.Provider value={value}>{children}</LabelsContext.Provider>\n );\n};\n\nconst useTaskLabels = (): LabelsContextValue => useContext(LabelsContext);\n\n/* Empty state pill (mirrors EntityLabel + .entity-label in list-view.less) */\nconst StyledLabelPlaceholder = styled.span`\n display: inline-flex;\n align-items: center;\n padding: 1px 6px;\n border: 1px solid var(--color-theme-700);\n border-radius: 4px;\n\n .list-button.open &,\n .list-button:hover & {\n border-color: var(--color-primary-700, var(--color-primary));\n }\n`;\n\nconst StyledLabelItems = styled.span`\n display: inline-flex;\n align-items: center;\n min-width: 0;\n\n /* 2px gap between chips/dots (mirrors tw-mr-0.5 last:tw-mr-0) */\n > *:not(:last-child) {\n margin-right: 2px;\n }\n\n .rest-count {\n margin-left: 2px;\n }\n\n ${CooltipStyle}\n`;\n\nconst MAX_SHOWN_LABELS = 8;\n\nconst LabelItems = ({ labels }: { labels: TaskLabel[] }): ReactElement => {\n const showAsDot = labels.length > 2;\n let shown = labels;\n let restCount = 0;\n\n if (labels.length > MAX_SHOWN_LABELS) {\n restCount = Math.min(labels.length - MAX_SHOWN_LABELS, 99);\n shown = labels.slice(0, MAX_SHOWN_LABELS - 1);\n }\n\n return (\n <StyledLabelItems>\n {shown.map((label) =>\n showAsDot ? (\n <Dot\n key={label.id}\n color={label.color}\n size={20}\n data-tooltip={label.name}\n />\n ) : (\n <Chip\n key={label.id}\n label={label.name}\n backgroundColor={label.color}\n color=\"#303037\"\n style={{ maxWidth: \"90px\" }}\n typographyProps={{ variant: \"Caption 2\", weight: \"bold\" }}\n data-tooltip={label.name}\n />\n )\n )}\n {restCount > 0 ? (\n <Body2 weight=\"bold\" className=\"rest-count\">\n +{restCount}\n </Body2>\n ) : null}\n </StyledLabelItems>\n );\n};\n\nconst LabelTrigger = forwardRef<\n HTMLButtonElement,\n ListButtonProps & { labels: TaskLabel[] }\n>(({ labels, ...rest }, ref) => {\n if (labels.length === 0) {\n return (\n <StyledListButton\n {...rest}\n ref={ref}\n className=\"show-on-hover\"\n aria-label=\"Add labels\"\n data-tooltip=\"Add Labels\"\n >\n <StyledLabelPlaceholder>\n <Caption2 weight=\"bold\" color=\"tertiary\">\n LABEL\n </Caption2>\n </StyledLabelPlaceholder>\n </StyledListButton>\n );\n }\n\n return (\n <StyledListButton {...rest} ref={ref} aria-label=\"Change labels\">\n <LabelItems labels={labels} />\n </StyledListButton>\n );\n});\n\nLabelTrigger.displayName = \"LabelTrigger\";\n\nexport const LabelCell = ({\n labelIds,\n completed = false,\n}: {\n labelIds?: string[];\n completed?: boolean;\n}): ReactElement => {\n const { labels: catalog, labelsById, addLabel } = useTaskLabels();\n const [selected, setSelected] = useState<string[]>(labelIds ?? []);\n\n /* alphabetical, like LabelTrigger sorts before rendering */\n const selectedLabels = useMemo(\n () =>\n selected\n .map((id) => labelsById[id])\n .filter((label): label is TaskLabel => Boolean(label))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [labelsById, selected]\n );\n\n const options = useMemo(\n () =>\n catalog.map((label) => ({\n id: label.id,\n name: label.name,\n color: label.color,\n textColor: label.textColor,\n })),\n [catalog]\n );\n\n const handleChange = useCallback(\n (value: (string | number)[] | string | number) => {\n setSelected(\n Array.isArray(value)\n ? value.map(String)\n : [String(value)].filter(Boolean)\n );\n },\n []\n );\n\n const handleAddNew = useCallback(\n (name?: string) => {\n if (!name || !name.trim()) {\n return;\n }\n const id = addLabel(name);\n setSelected((prev) => (prev.includes(id) ? prev : [...prev, id]));\n },\n [addLabel]\n );\n\n /* Completed tasks show their labels read-only (mirrors Label.js) */\n if (completed) {\n return (\n <StyledReadOnlyCell className=\"col col-label\">\n {selectedLabels.length > 0 ? (\n <LabelItems labels={selectedLabels} />\n ) : null}\n </StyledReadOnlyCell>\n );\n }\n\n return (\n <div className=\"col col-label\">\n <Select\n type=\"multiple\"\n options={options}\n selected={selected}\n onChange={handleChange}\n emptyValue=\"Add new\"\n emptyAction={handleAddNew}\n autoHeightMax={278}\n position=\"bottom-end\"\n target={<LabelTrigger labels={selectedLabels} />}\n />\n </div>\n );\n};\n\n/* ================================================================== */\n/* Date */\n/* ================================================================== */\n\n/** The personalized date format the app defaults to (`MMM D. YYYY`). */\nconst DATE_FORMAT = \"MMM D. YYYY\";\n\n/** Midnight UTC today — the reference point for the mock data and overdue. */\nconst todayUnix = (): number => moment.utc().startOf(\"day\").unix();\n\n/** Build a mock timestamp N days from today (negative = in the past). */\nexport const dayOffset = (offset: number): number =>\n moment.utc().startOf(\"day\").add(offset, \"days\").unix();\n\n/** mirrors utils/date.js → formatDateRange (month-first format) */\nexport const formatDateRange = (\n from?: number,\n to?: number\n): string | undefined => {\n if (from === undefined || from === null) {\n return undefined;\n }\n const start = moment.unix(from).utc();\n const due = moment.unix(to ?? from).utc();\n const withoutYear = DATE_FORMAT.replace(/YYYY|,$/gi, \"\").trim();\n const withoutYearAndMonth = withoutYear.replace(/MMM|,$/gi, \"\").trim();\n\n if (from === to || to === undefined) {\n return start.format(withoutYear);\n }\n if (start.year() === due.year() && start.month() === due.month()) {\n return `${start.format(withoutYear)} - ${due.format(withoutYearAndMonth)}`;\n }\n return `${start.format(withoutYear)} - ${due.format(withoutYear)}`;\n};\n\n/** mirrors utils/date.js → formatDateSmart(…, long) */\nconst formatDateLong = (value?: number): string =>\n value ? moment.unix(value).utc().format(DATE_FORMAT) : \"\";\n\nexport const isOverdue = (dueOn?: number, completed?: boolean): boolean =>\n Boolean(dueOn && !completed && dueOn < todayUnix());\n\nconst StyledDateValue = styled.span`\n font-family: ${SANS};\n white-space: nowrap;\n`;\n\n/* completed rows render values without a trigger, so the cell itself hosts the\n CSS tooltip */\nconst StyledReadOnlyCell = styled.div`\n padding-right: 8px;\n\n ${CooltipStyle}\n`;\n\n/**\n * `DatePicker` wraps itself in a `width: 100%` inline-block, which would stretch\n * across the column and left-align the trigger the moment the picker mounts —\n * the value would visibly jump and the popper would anchor to the wrong spot.\n * Keeping that wrapper right-aligned makes the open state geometrically\n * identical to the closed one.\n */\nconst StyledPickerCell = styled.div`\n /* StyledDatePickerWrapper — DatePicker's unclassed outer div */\n > div {\n text-align: right;\n }\n`;\n\ninterface DateTriggerProps extends ListButtonProps {\n value?: string;\n tooltip: string;\n overdue?: boolean;\n}\n\nconst DateTrigger = forwardRef<HTMLButtonElement, DateTriggerProps>(\n ({ value, tooltip, overdue, ...rest }, ref) => (\n <StyledListButton\n {...rest}\n ref={ref}\n className={value ? \"show-on-hover has-value\" : \"show-on-hover\"}\n aria-label={value ? \"Change dates\" : \"Add date\"}\n data-tooltip={tooltip}\n >\n {value ? (\n <StyledDateValue>\n <Caption1 weight=\"bold\" color={overdue ? \"alert\" : \"secondary\"}>\n {value}\n </Caption1>\n </StyledDateValue>\n ) : (\n <CalendarIcon />\n )}\n </StyledListButton>\n )\n);\n\nDateTrigger.displayName = \"DateTrigger\";\n\nexport const DateCell = ({\n startOn,\n dueOn,\n completed = false,\n}: {\n startOn?: number;\n dueOn?: number;\n completed?: boolean;\n}): ReactElement => {\n const [dates, setDates] = useState<{ from?: number; to?: number }>({\n from: startOn,\n to: dueOn,\n });\n /**\n * The DS `DatePicker` does real work on mount (timezone guess, month grids,\n * key handlers) — with one per row that is the single most expensive thing on\n * this page. So the closed state is just the trigger; the picker is mounted\n * on first click, already open, and unmounted again when it closes.\n */\n const [pickerMounted, setPickerMounted] = useState(false);\n\n /* moment isn't cheap either; only reformat when the dates actually change */\n const { value, overdue, tooltip } = useMemo(() => {\n const formatted = formatDateRange(dates.from, dates.to);\n let hint = \"Add Date\";\n if (dates.from) {\n hint =\n !dates.to || dates.to === dates.from\n ? formatDateLong(dates.from)\n : `${formatDateLong(dates.from)} - ${formatDateLong(dates.to)}`;\n }\n return {\n value: formatted,\n overdue: isOverdue(dates.to ?? dates.from, completed),\n tooltip: hint,\n };\n }, [completed, dates.from, dates.to]);\n\n const handleSave = useCallback((range?: TimestampDateRange) => {\n if (!range || range.from === null || range.from === undefined) {\n setDates({});\n return;\n }\n setDates({\n from: Number(range.from),\n to: range.to ? Number(range.to) : Number(range.from),\n });\n }, []);\n\n const handleClear = useCallback(() => setDates({}), []);\n\n const handleCalendarToggle = useCallback((next: boolean) => {\n if (!next) {\n setPickerMounted(false);\n }\n }, []);\n\n /* Completed tasks show the date read-only (mirrors Date.js) */\n if (completed) {\n return (\n <StyledReadOnlyCell className=\"col col-date\">\n {value ? (\n <StyledDateValue data-tooltip={tooltip}>\n <Caption1 weight=\"bold\" color={overdue ? \"alert\" : \"secondary\"}>\n {value}\n </Caption1>\n </StyledDateValue>\n ) : null}\n </StyledReadOnlyCell>\n );\n }\n\n if (!pickerMounted) {\n return (\n <div className=\"col col-date\">\n <DateTrigger\n value={value}\n tooltip={tooltip}\n overdue={overdue}\n onClick={() => setPickerMounted(true)}\n />\n </div>\n );\n }\n\n return (\n <StyledPickerCell className=\"col col-date\">\n <DatePicker\n open\n mode=\"custom\"\n instant={false}\n maxRange={366}\n firstDayOfWeek={1}\n position=\"bottom-end\"\n selected={{ from: dates.from ?? null, to: dates.to ?? null }}\n onSave={handleSave}\n onClear={handleClear}\n onCalendarToggle={handleCalendarToggle}\n target={\n <DateTrigger value={value} tooltip={tooltip} overdue={overdue} />\n }\n />\n </StyledPickerCell>\n );\n};\n\n/* ================================================================== */\n/* Time */\n/* ================================================================== */\n\n/** mirrors utils/utils.jsx → calculateTimeToEstimatePercentage */\nconst timeToEstimatePercentage = (\n tracked: number,\n estimated: number\n): number | null => {\n if (estimated > 0) {\n return tracked > 0 ? Math.round((tracked / estimated) * 100) : 0;\n }\n return null;\n};\n\n/** mirrors utils/utils.jsx → formatTrackedAndEstimatedTime */\nconst formatTrackedAndEstimated = (\n tracked: number,\n estimated: number\n): string =>\n estimated > 0\n ? `${formatHours(tracked, false, false, \"short\")}/${formatHours(\n estimated,\n false,\n false,\n \"short\"\n )}`\n : formatHours(tracked, false, false, \"short\");\n\n/* mirrors Time.js → progressColor() */\nconst progressColor = (percent: number): string => {\n if (percent >= 100) {\n return \"var(--red-alert)\";\n }\n if (percent >= 75) {\n return \"var(--warning)\";\n }\n return \"var(--color-sucess-green)\";\n};\n\nconst StyledTimeValue = styled.span`\n display: inline-flex;\n align-items: center;\n font-family: ${SANS};\n white-space: nowrap;\n\n .c-progress-pie,\n svg {\n flex-shrink: 0;\n }\n\n .time-pie {\n margin-right: 8px;\n }\n`;\n\nconst TimeValue = ({\n tracked,\n estimated,\n}: {\n tracked: number;\n estimated: number;\n}): ReactElement => {\n const percent = timeToEstimatePercentage(tracked, estimated);\n\n return (\n <StyledTimeValue>\n {estimated > 0 ? (\n <ProgressPie\n className=\"time-pie\"\n radius={10}\n progress={percent ?? 0}\n progressColor={progressColor(percent ?? 0)}\n backgroundColor=\"var(--color-theme-300)\"\n />\n ) : null}\n <Caption1 weight=\"bold\">\n {formatTrackedAndEstimated(tracked, estimated)}\n </Caption1>\n </StyledTimeValue>\n );\n};\n\nconst TimeTrigger = ({\n tracked,\n estimated,\n onClick,\n}: {\n tracked: number;\n estimated: number;\n onClick: () => void;\n}): ReactElement => {\n const hasTime = tracked > 0 || estimated > 0;\n\n return (\n <StyledListButton\n onClick={onClick}\n className={hasTime ? \"show-on-hover open\" : \"show-on-hover\"}\n aria-label={hasTime ? \"Edit time\" : \"Add time\"}\n data-tooltip={hasTime ? \"Edit Time\" : \"Add Time\"}\n >\n {hasTime ? (\n <TimeValue tracked={tracked} estimated={estimated} />\n ) : (\n <ClockAddIcon />\n )}\n </StyledListButton>\n );\n};\n\nexport interface TimeRecord {\n id: number;\n date: number;\n userId: string;\n userName: string;\n jobType: string;\n hours: number;\n billable: boolean;\n description?: string;\n}\n\nexport interface TimeCellUser {\n id: string;\n name: string;\n}\n\nexport const TimeCell = ({\n taskName,\n tracked = 0,\n estimated = 0,\n users,\n currentUserId,\n completed = false,\n}: {\n taskName: string;\n tracked?: number;\n estimated?: number;\n users: TimeCellUser[];\n currentUserId: string;\n completed?: boolean;\n}): ReactElement => {\n const [open, setOpen] = useState(false);\n const [records, setRecords] = useState<TimeRecord[]>(() =>\n tracked > 0\n ? [\n {\n id: 1,\n date: dayOffset(-3),\n userId: currentUserId,\n userName:\n users.find((user) => user.id === currentUserId)?.name ?? \"You\",\n jobType: \"Design\",\n hours: tracked,\n billable: true,\n },\n ]\n : []\n );\n\n const total = useMemo(\n () => records.reduce((sum, record) => sum + record.hours, 0),\n [records]\n );\n\n const handleAdd = useCallback((record: Omit<TimeRecord, \"id\">) => {\n setRecords((prev) => [{ ...record, id: prev.length + 1 }, ...prev]);\n setOpen(false);\n }, []);\n\n /* Completed tasks show the value without the \"add\" affordance (mirrors\n Time.js passing hideIcon for completed tasks) */\n if (completed) {\n return (\n <StyledReadOnlyCell className=\"col col-time\">\n {total > 0 || estimated > 0 ? (\n <TimeValue tracked={total} estimated={estimated} />\n ) : null}\n </StyledReadOnlyCell>\n );\n }\n\n return (\n <div className=\"col col-time\">\n <TimeTrigger\n tracked={total}\n estimated={estimated}\n onClick={() => setOpen(true)}\n />\n {open ? (\n <TimeRecordDialog\n open={open}\n taskName={taskName}\n users={users}\n currentUserId={currentUserId}\n records={records}\n total={total}\n onSubmit={handleAdd}\n onClose={() => setOpen(false)}\n />\n ) : null}\n </div>\n );\n};\n\n/* ------------------------------------------------------------------ */\n/* Add Time Record dialog (mirrors TimeRecordForm/*) */\n/* ------------------------------------------------------------------ */\n\nconst JOB_TYPES = [\n { id: \"design\", name: \"Design\" },\n { id: \"development\", name: \"Development\" },\n { id: \"devops\", name: \"Devops\" },\n { id: \"consulting\", name: \"Consulting\" },\n { id: \"qa\", name: \"QA\" },\n];\n\n/* The dialog paper — the app builds this one by hand rather than with DS\n `Dialog` because it is 770px wide (`.time_record_form_modal_wrapper`). */\nconst StyledTimeRecordPaper = styled.div`\n position: relative;\n width: 770px;\n max-width: 95vw;\n max-height: calc(100vh - 156px);\n margin: 126px auto 30px auto;\n padding: 20px 30px;\n overflow: auto;\n border-radius: 8px;\n background-color: var(--page-paper-main);\n color: var(--color-theme-900);\n box-shadow: var(--shadow-primary);\n box-sizing: border-box;\n font-family: ${SANS};\n\n * {\n box-sizing: border-box;\n }\n\n @media (max-width: 830px) {\n width: calc(100vw - 60px);\n }\n\n .trd-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .trd-title {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin-right: 16px;\n font-size: 1rem;\n font-weight: 700;\n }\n\n /* SelectTrigger is a fixed 300px control — let the date hug its label. The\n DatePicker's own full-width wrapper is right-aligned for the same reason\n as in the list cells. */\n .trd-date button {\n width: auto;\n }\n\n .trd-date > div {\n text-align: right;\n }\n\n .trd-divider {\n margin: 20px 0 32px 0;\n border-bottom: 1px solid var(--border-primary);\n height: 1px;\n }\n\n .trd-body {\n display: flex;\n justify-content: space-between;\n position: relative;\n }\n\n .trd-form {\n width: 100%;\n }\n\n .trd-fields {\n display: flex;\n align-items: flex-end;\n }\n\n .trd-hours {\n width: 144px;\n margin-right: 16px;\n flex-shrink: 0;\n }\n\n .trd-hours .c-input-wrapper,\n .trd-hours input {\n width: 100%;\n }\n\n .trd-field {\n margin-right: 16px;\n }\n\n .trd-field:last-of-type {\n margin-right: 20px;\n }\n\n .trd-field .c-label {\n display: block;\n margin-bottom: 2px;\n }\n\n /* SelectTrigger defaults to 300px; the app's fields are 144px */\n .trd-field button {\n width: 144px;\n }\n\n .trd-billable {\n display: flex;\n align-items: center;\n margin-top: 24px;\n }\n\n .trd-billable .c-label {\n margin-left: 8px;\n cursor: pointer;\n }\n\n .trd-description-trigger {\n display: inline-flex;\n align-items: center;\n margin-top: 16px;\n color: var(--color-secondary);\n font-size: 14px;\n font-weight: 500;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: ${SANS};\n }\n\n .trd-description-trigger svg {\n margin-right: 4px;\n fill: var(--color-primary);\n transition: transform 200ms ease;\n }\n\n .trd-description-trigger.collapsed svg {\n transform: rotate(180deg);\n }\n\n .trd-textarea {\n width: 360px;\n max-width: 100%;\n margin-top: 8px;\n font-size: 12px;\n resize: none;\n }\n\n .trd-actions {\n display: flex;\n margin-top: 24px;\n }\n\n .trd-actions .c-button:first-child {\n margin-right: 12px;\n }\n\n /* the total sits bottom-right of the form column, like the app */\n .trd-total {\n position: absolute;\n right: 0;\n bottom: 0;\n display: inline-flex;\n align-items: center;\n align-self: flex-end;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n }\n\n .trd-total svg {\n margin-right: 4px;\n fill: var(--color-primary);\n transition: transform 200ms ease;\n }\n\n .trd-total.collapsed svg {\n transform: rotate(180deg);\n }\n\n .trd-records {\n margin-top: 32px;\n border-top: 1px solid var(--border-primary);\n }\n\n .trd-record {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 36px;\n border-bottom: 1px solid var(--color-theme-300);\n }\n\n .trd-record-left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n }\n`;\n\nconst TimeRecordDialog = ({\n open,\n taskName,\n users,\n currentUserId,\n records,\n total,\n onSubmit,\n onClose,\n}: {\n open: boolean;\n taskName: string;\n users: TimeCellUser[];\n currentUserId: string;\n records: TimeRecord[];\n total: number;\n onSubmit: (record: Omit<TimeRecord, \"id\">) => void;\n onClose: () => void;\n}): ReactElement => {\n const [value, setValue] = useState(\"\");\n const [date, setDate] = useState<number>(todayUnix());\n const [userId, setUserId] = useState<string>(currentUserId);\n const [jobTypeId, setJobTypeId] = useState<string>(\"devops\");\n const [billable, setBillable] = useState(false);\n const [showDescription, setShowDescription] = useState(true);\n const [description, setDescription] = useState(\"\");\n const [showRecords, setShowRecords] = useState(false);\n\n const user = users.find((item) => item.id === userId);\n const jobType = JOB_TYPES.find((item) => item.id === jobTypeId);\n\n /** \"1:30\" / \"1.5\" → decimal hours */\n const hours = useMemo(() => {\n const trimmed = value.trim();\n if (!trimmed) {\n return 0;\n }\n if (trimmed.includes(\":\")) {\n const [h, m] = trimmed.split(\":\");\n return Number(h || 0) + Number(m || 0) / 60;\n }\n return Number(trimmed) || 0;\n }, [value]);\n\n const handleSubmit = useCallback(() => {\n onSubmit({\n date,\n userId,\n userName: user?.name ?? \"\",\n jobType: jobType?.name ?? \"\",\n hours,\n billable,\n description,\n });\n }, [billable, date, description, hours, jobType, onSubmit, user, userId]);\n\n return (\n <Modal open={open} onClose={onClose}>\n <SlideFromTop in={open}>\n <StyledTimeRecordPaper role=\"dialog\" aria-label=\"Add time record\">\n <div className=\"trd-header\">\n <span className=\"trd-title\">{taskName}</span>\n <span className=\"trd-date\">\n <DatePicker\n mode=\"daily\"\n required\n firstDayOfWeek={1}\n position=\"bottom-end\"\n selected={{ from: date, to: date }}\n onSave={(range) =>\n range?.from ? setDate(Number(range.from)) : undefined\n }\n target={\n <SelectTrigger>{formatDateRange(date, date)}</SelectTrigger>\n }\n />\n </span>\n </div>\n\n <div className=\"trd-divider\" />\n\n <div className=\"trd-body\">\n <div className=\"trd-form\">\n <div className=\"trd-fields\">\n <span className=\"trd-hours\">\n <InputHours\n autoFocus\n allowEmptyValue\n size=\"biggest\"\n placeholder=\"00:00\"\n value={value}\n onChange={setValue}\n />\n </span>\n\n <span className=\"trd-field\">\n <Label size=\"small\">User</Label>\n <Select\n options={users}\n selected={userId}\n forceCloseMenu\n onChange={(next) => setUserId(String(next))}\n target={\n <SelectTrigger id=\"trd-user\">{user?.name}</SelectTrigger>\n }\n />\n </span>\n\n <span className=\"trd-field\">\n <Label size=\"small\">Job Type</Label>\n <Select\n options={JOB_TYPES}\n selected={jobTypeId}\n forceCloseMenu\n onChange={(next) => setJobTypeId(String(next))}\n target={\n <SelectTrigger id=\"trd-job-type\">\n {jobType?.name}\n </SelectTrigger>\n }\n />\n </span>\n\n <span className=\"trd-billable\">\n <Checkbox\n id=\"trd-billable\"\n checked={billable}\n onChange={() => setBillable((prev) => !prev)}\n />\n <Label htmlFor=\"trd-billable\" weight=\"regular\">\n Billable\n </Label>\n </span>\n </div>\n\n <button\n type=\"button\"\n className={\n showDescription\n ? \"trd-description-trigger\"\n : \"trd-description-trigger collapsed\"\n }\n onClick={() => setShowDescription((prev) => !prev)}\n >\n <CollapseExpandSingleIcon />\n <span>Description</span>\n </button>\n\n {showDescription ? (\n <div>\n <Textarea\n className=\"trd-textarea\"\n value={description}\n onChange={(event) => setDescription(event.target.value)}\n />\n </div>\n ) : null}\n\n <div className=\"trd-actions\">\n <Button\n variant=\"primary\"\n disabled={hours <= 0}\n onClick={handleSubmit}\n >\n Add Time Record\n </Button>\n <Button variant=\"secondary\" onClick={onClose}>\n Cancel\n </Button>\n </div>\n </div>\n\n {total > 0 ? (\n <button\n type=\"button\"\n className={showRecords ? \"trd-total\" : \"trd-total collapsed\"}\n onClick={() => setShowRecords((prev) => !prev)}\n >\n <CollapseExpandSingleIcon />\n <Header3 color=\"theme-secondary\" tabularNums>\n Total: {formatHours(total, false, true)}h\n </Header3>\n </button>\n ) : null}\n </div>\n\n {showRecords && records.length > 0 ? (\n <div className=\"trd-records\">\n {records.map((record) => (\n <div key={record.id} className=\"trd-record\">\n <span className=\"trd-record-left\">\n <Caption1 weight=\"bold\" color=\"secondary\">\n {formatDateRange(record.date, record.date)}\n </Caption1>\n <Body2>{record.userName}</Body2>\n <Caption1 color=\"secondary\">{record.jobType}</Caption1>\n </span>\n <Body2 weight=\"bold\" tabularNums>\n {formatHours(record.hours)}h\n </Body2>\n </div>\n ))}\n </div>\n ) : null}\n </StyledTimeRecordPaper>\n </SlideFromTop>\n </Modal>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"columns.js","names":["_react","_interopRequireWildcard","require","_momentTimezone","_interopRequireDefault","_styledComponents","_Button","_Checkbox","_Chip","_DatePicker","_Dot","_Icons","_Input","_Label","_Modal","_ProgressPie","_Select","_SelectTrigger","_Textarea","_Transitions","_Typography","_utils","_excluded","_excluded2","_excluded3","_excluded4","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","next","done","return","isArray","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","SANS","CooltipStyle","css","ListButtonBase","forwardRef","_ref","ref","open","className","children","rest","createElement","Button","type","variant","active","concat","displayName","StyledListButton","styled","withConfig","componentId","StyledIdValue","span","IdTrigger","_ref2","tooltip","Caption1","weight","color","IdentifierCell","exports","_ref3","identifier","link","onCopy","handleClick","useCallback","event","_navigator$clipboard","preventDefault","stopPropagation","navigator","clipboard","writeText","then","catch","onClick","INITIAL_LABELS","id","textColor","NEW_LABEL_COLORS","LabelsContext","createContext","labels","labelsById","addLabel","LabelsProvider","_ref4","_useState","useState","_useState2","setLabels","trimmed","trim","toUpperCase","toLowerCase","replace","prev","some","label","palette","useMemo","reduce","acc","Provider","useTaskLabels","useContext","StyledLabelPlaceholder","StyledLabelItems","MAX_SHOWN_LABELS","LabelItems","_ref5","showAsDot","shown","restCount","Math","min","map","Dot","key","size","Chip","backgroundColor","style","maxWidth","typographyProps","Body2","LabelTrigger","_ref6","Caption2","LabelCell","_ref7","labelIds","_ref7$completed","completed","_useTaskLabels","catalog","_useState3","_useState4","selected","setSelected","selectedLabels","Boolean","sort","b","localeCompare","options","handleChange","handleAddNew","includes","StyledReadOnlyCell","Select","onChange","emptyValue","emptyAction","autoHeightMax","position","target","DATE_FORMAT","todayUnix","moment","utc","startOf","unix","dayOffset","offset","add","formatDateRange","to","undefined","start","due","withoutYear","withoutYearAndMonth","format","year","month","formatDateLong","isOverdue","dueOn","StyledDateValue","div","StyledPickerCell","DateTrigger","_ref8","overdue","CalendarIcon","DateCell","_ref9","_dates$from","_dates$to2","startOn","_ref9$completed","_useState5","_useState6","dates","setDates","_useState7","_useState8","pickerMounted","setPickerMounted","_useMemo","_dates$to","formatted","hint","handleSave","range","handleClear","handleCalendarToggle","DatePicker","mode","instant","maxRange","firstDayOfWeek","onSave","onClear","onCalendarToggle","timeToEstimatePercentage","tracked","estimated","round","formatTrackedAndEstimated","formatHours","progressColor","percent","StyledTimeValue","TimeValue","_ref0","ProgressPie","radius","progress","TimeTrigger","_ref1","hasTime","ClockAddIcon","TimeCell","_ref10","taskName","_ref10$tracked","_ref10$estimated","users","currentUserId","_ref10$completed","_useState9","_useState0","setOpen","_useState1","_users$find$name","_users$find","date","userId","userName","find","user","jobType","hours","billable","_useState10","records","setRecords","total","sum","record","handleAdd","TimeRecordDialog","onSubmit","onClose","JOB_TYPES","StyledTimeRecordPaper","_ref11","_useState11","_useState12","setValue","_useState13","_useState14","setDate","_useState15","_useState16","setUserId","_useState17","_useState18","jobTypeId","setJobTypeId","_useState19","_useState20","setBillable","_useState21","_useState22","showDescription","setShowDescription","_useState23","_useState24","description","setDescription","_useState25","_useState26","showRecords","setShowRecords","item","_trimmed$split","split","_trimmed$split2","h","m","handleSubmit","_user$name","_jobType$name","Modal","SlideFromTop","in","role","required","SelectTrigger","InputHours","autoFocus","allowEmptyValue","placeholder","Label","forceCloseMenu","Checkbox","checked","htmlFor","CollapseExpandSingleIcon","Textarea","disabled","Header3","tabularNums"],"sources":["../../../../src/presentation/listView/columns.tsx"],"sourcesContent":["import React, {\n createContext,\n forwardRef,\n ReactElement,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\nimport moment from \"moment-timezone\";\nimport styled, { css } from \"styled-components\";\n\nimport { Button } from \"../../components/Button\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { Chip } from \"../../components/Chip\";\nimport { DatePicker, TimestampDateRange } from \"../../components/DatePicker\";\nimport { Dot } from \"../../components/Dot\";\nimport {\n CalendarIcon,\n ClockAddIcon,\n CollapseExpandSingleIcon,\n} from \"../../components/Icons\";\nimport { InputHours } from \"../../components/Input\";\nimport { Label } from \"../../components/Label\";\nimport { Modal } from \"../../components/Modal\";\nimport { ProgressPie } from \"../../components/ProgressPie\";\nimport { Select } from \"../../components/Select\";\nimport { SelectTrigger } from \"../../components/SelectTrigger\";\nimport { Textarea } from \"../../components/Textarea\";\nimport { SlideFromTop } from \"../../components/Transitions\";\nimport {\n Body2,\n Caption1,\n Caption2,\n Header3,\n} from \"../../components/Typography\";\nimport { formatHours } from \"../../utils\";\n\n/**\n * Interactive list-view column cells for the `Presentation/List view` and\n * `Presentation/List View ID Column` stories — the Label, Date and Time cells\n * with their editors, mirroring\n * `new-activecollab-front/src/components/ListView/columns/*`, plus an\n * Identifier cell that only the ID-column story uses (it has no counterpart in\n * the app yet):\n *\n * - **Identifier** (no app equivalent): `#<id>` as a Copy Link trigger, styled\n * like the Date trigger. One typography at every length — the column's width\n * is what adapts to how large the identifiers get.\n * - **Label** (`columns/Label.js` + `LabelTrigger`/`LabelItems`): chips for 1–2\n * labels, dots from 3 up, `+N` past 8, and a DS `Select` picker (search,\n * colored dot + label name in the label's own colour, checkbox, \"+ Add new\").\n * - **Date** (`columns/Date.js`): a range trigger that formats like the app\n * (`formatDateRange`), turns red when overdue, and opens the DS `DatePicker`\n * in atomic mode so it gets the Save / ✕ / Clear footer.\n * - **Time** (`columns/Time.js`): `ProgressPie` + `tracked/estimated`, coloured\n * by how much of the estimate is used, opening the \"Add Time Record\" dialog.\n *\n * Everything is local state — there is no store, so edits live as long as the\n * story is mounted.\n */\n\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Inter\", \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\n\n/**\n * CSS-only tooltip, mirroring the app's `.c-cooltip.c-cooltip--top` (see\n * `styles/c_cooltip.less`). The list renders hundreds of these, and the DS\n * `Tooltip` mounts a Portal + Popper per instance — far too heavy per cell — so\n * the cells use `data-tooltip` exactly like the real list view does.\n */\nconst CooltipStyle = css`\n &[data-tooltip],\n [data-tooltip] {\n position: relative;\n }\n\n &[data-tooltip]::after,\n [data-tooltip]::after {\n pointer-events: none;\n content: attr(data-tooltip);\n position: absolute;\n bottom: calc(100% + 0.5rem);\n left: 50%;\n transform: scale(0.85) translateX(-50%);\n transform-origin: 0;\n opacity: 0;\n max-width: 12.5rem;\n padding: 0.25rem 0.625rem;\n border-radius: 0.5rem;\n background-color: rgba(0, 0, 0, 0.9);\n color: #fff;\n font-family: ${SANS};\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1.3;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @media (hover: hover) {\n &[data-tooltip]:not(:focus):hover::after,\n [data-tooltip]:not(:focus):hover::after {\n transition: opacity 0.15s ease, transform 0.15s ease;\n transition-delay: 0.6s;\n transform: scale(1) translateX(-50%);\n opacity: 1;\n }\n }\n`;\n\n/* ================================================================== */\n/* Shared trigger button (mirrors ListView/ListButton.js) */\n/* ================================================================== */\n\ninterface ListButtonProps {\n /** injected by DS `Menu` when it clones the target */\n open?: boolean;\n className?: string;\n children?: ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n disabled?: boolean;\n \"aria-label\"?: string;\n}\n\n/**\n * `Menu` clones its `target` and injects `open`, so — like the app's\n * `ListButton` — the trigger has to swallow that prop and turn it into the DS\n * `active` state plus an `.open` class the row CSS uses to keep the trigger\n * visible while its menu is open.\n */\nconst ListButtonBase = forwardRef<HTMLButtonElement, ListButtonProps>(\n ({ open, className, children, ...rest }, ref) => (\n <Button\n {...rest}\n ref={ref}\n type=\"button\"\n variant=\"text gray\"\n active={open}\n className={`list-button${className ? ` ${className}` : \"\"}${\n open ? \" open\" : \"\"\n }`}\n >\n {children}\n </Button>\n )\n);\n\nListButtonBase.displayName = \"ListButtonBase\";\n\n/*\n * The DS Button treats a single element child as \"icon only\" — inline-flex,\n * centered, a fixed 32px wide and `overflow: hidden`, which squashes a date or\n * a chip. `&&` doubles the specificity so these rules win over that block; the\n * button then hugs its content and the column's `justify-content: flex-end`\n * parks it against the right edge.\n */\nconst StyledListButton = styled(ListButtonBase)`\n && {\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n width: auto;\n min-width: 0;\n max-width: 100%;\n padding: 4px 8px;\n overflow: visible;\n text-align: right;\n }\n\n ${CooltipStyle}\n`;\n\n/* ================================================================== */\n/* Identifier (task ID) */\n/* ================================================================== */\n\nconst StyledIdValue = styled.span`\n font-family: ${SANS};\n white-space: nowrap;\n /* equal-width digits so a column of ids reads as a column, not a ragged list */\n font-variant-numeric: tabular-nums;\n`;\n\ninterface IdTriggerProps extends ListButtonProps {\n value: string;\n tooltip: string;\n}\n\n/**\n * Same trigger the Date cell uses, so the id gets the identical hover outline\n * and 8px inset — it is a link, not an editor, so it is always visible\n * (`has-value`) rather than appearing on row hover.\n *\n * The typography is Caption 1 bold at every identifier length, like the Date\n * value next to it; long identifiers are handled by the column's width tier,\n * not by shrinking the text.\n */\nconst IdTrigger = forwardRef<HTMLButtonElement, IdTriggerProps>(\n ({ value, tooltip, ...rest }, ref) => (\n <StyledListButton\n {...rest}\n ref={ref}\n className=\"show-on-hover has-value\"\n aria-label={`Copy link to task ${value}`}\n data-tooltip={tooltip}\n >\n <StyledIdValue>\n <Caption1 weight=\"bold\" color=\"secondary\">\n {value}\n </Caption1>\n </StyledIdValue>\n </StyledListButton>\n )\n);\n\nIdTrigger.displayName = \"IdTrigger\";\n\n/**\n * Task identifier cell — the `#<id>` value as a copy-link control, mirroring\n * how `tasks/Metadata.js` turns `Task #248` into the task's Copy Link action:\n * the click writes the task URL to the clipboard and reports back so the page\n * can raise the app's \"Link copied to clipboard.\" toast (utils/copyLinkToClipboard).\n * It never navigates — the row itself is the navigation target.\n */\nexport const IdentifierCell = ({\n identifier,\n link,\n onCopy,\n}: {\n identifier: number;\n /** absolute task URL — what lands on the clipboard */\n link: string;\n /** raised after the copy attempt so the page can show a toast */\n onCopy?: (copied: boolean) => void;\n}): ReactElement => {\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n /* the whole row navigates to the task, so copying must not also open it */\n event.preventDefault();\n event.stopPropagation();\n\n if (navigator.clipboard?.writeText) {\n navigator.clipboard\n .writeText(link)\n .then(() => onCopy?.(true))\n .catch(() => onCopy?.(false));\n return;\n }\n onCopy?.(false);\n },\n [link, onCopy]\n );\n\n return (\n <div className=\"col col-identifier\">\n <IdTrigger\n value={`#${identifier}`}\n tooltip=\"Copy Link\"\n onClick={handleClick}\n />\n </div>\n );\n};\n\n/* ================================================================== */\n/* Labels */\n/* ================================================================== */\n\nexport interface TaskLabel {\n id: string;\n name: string;\n /** chip background + dot colour (label colours are data, not theme) */\n color: string;\n /** the label's own text colour, used in the picker list */\n textColor: string;\n}\n\n/* The project's label catalogue. Names are uppercase, like in the app. */\nconst INITIAL_LABELS: TaskLabel[] = [\n {\n id: \"in-progress\",\n name: \"IN PROGRESS\",\n color: \"#CDE8F5\",\n textColor: \"#3D7F9E\",\n },\n {\n id: \"needs-review\",\n name: \"NEEDS REVIEW\",\n color: \"#F9E79F\",\n textColor: \"#A98A17\",\n },\n { id: \"approved\", name: \"APPROVED\", color: \"#A9DFBF\", textColor: \"#3D9A6A\" },\n { id: \"blocked\", name: \"BLOCKED\", color: \"#F1948A\", textColor: \"#B5544C\" },\n { id: \"on-hold\", name: \"ON HOLD\", color: \"#F5CBA7\", textColor: \"#B4713A\" },\n { id: \"idea\", name: \"IDEA\", color: \"#FAD7A0\", textColor: \"#B98A2B\" },\n { id: \"todo\", name: \"TODO\", color: \"#D6EAF8\", textColor: \"#4A87B5\" },\n { id: \"research\", name: \"RESEARCH\", color: \"#D7BDE2\", textColor: \"#8155A0\" },\n {\n id: \"accessibility\",\n name: \"ACCESSIBILITY\",\n color: \"#AED6F1\",\n textColor: \"#3E7CA6\",\n },\n { id: \"copy\", name: \"COPY\", color: \"#F5B7B1\", textColor: \"#B5544C\" },\n {\n id: \"design-debt\",\n name: \"DESIGN DEBT\",\n color: \"#E8DAEF\",\n textColor: \"#7D5A99\",\n },\n { id: \"qa\", name: \"QA\", color: \"#A3E4D7\", textColor: \"#34907C\" },\n {\n id: \"client-input\",\n name: \"CLIENT INPUT\",\n color: \"#FDEBD0\",\n textColor: \"#B08640\",\n },\n { id: \"mobile\", name: \"MOBILE\", color: \"#D1F2EB\", textColor: \"#2E8B7A\" },\n {\n id: \"performance\",\n name: \"PERFORMANCE\",\n color: \"#FCF3CF\",\n textColor: \"#A38B1E\",\n },\n { id: \"asset\", name: \"ASSET\", color: \"#D5D8DC\", textColor: \"#6B7378\" },\n];\n\n/* Colours handed out to labels created from the picker's \"+ Add new\" row. */\nconst NEW_LABEL_COLORS = [\n { color: \"#F9E0F2\", textColor: \"#A4569B\" },\n { color: \"#DDEBFB\", textColor: \"#4E7BA8\" },\n { color: \"#E4F6D8\", textColor: \"#5F9440\" },\n { color: \"#FDE2D5\", textColor: \"#B36A45\" },\n];\n\ninterface LabelsContextValue {\n labels: TaskLabel[];\n labelsById: Record<string, TaskLabel>;\n addLabel: (name: string) => string;\n}\n\nconst LabelsContext = createContext<LabelsContextValue>({\n labels: INITIAL_LABELS,\n labelsById: {},\n addLabel: () => \"\",\n});\n\n/**\n * Holds the label catalogue for the whole list, so a label created in one\n * task's picker shows up in every other picker too.\n */\nexport const LabelsProvider = ({\n children,\n}: {\n children: ReactNode;\n}): ReactElement => {\n const [labels, setLabels] = useState<TaskLabel[]>(INITIAL_LABELS);\n\n const addLabel = useCallback((name: string): string => {\n const trimmed = name.trim().toUpperCase();\n const id = `label-${trimmed.toLowerCase().replace(/[^a-z0-9]+/g, \"-\")}`;\n setLabels((prev) => {\n if (prev.some((label) => label.id === id)) {\n return prev;\n }\n const palette = NEW_LABEL_COLORS[prev.length % NEW_LABEL_COLORS.length];\n return [...prev, { id, name: trimmed, ...palette }];\n });\n return id;\n }, []);\n\n const value = useMemo(\n () => ({\n labels,\n labelsById: labels.reduce<Record<string, TaskLabel>>(\n (acc, label) => ({ ...acc, [label.id]: label }),\n {}\n ),\n addLabel,\n }),\n [addLabel, labels]\n );\n\n return (\n <LabelsContext.Provider value={value}>{children}</LabelsContext.Provider>\n );\n};\n\nconst useTaskLabels = (): LabelsContextValue => useContext(LabelsContext);\n\n/* Empty state pill (mirrors EntityLabel + .entity-label in list-view.less) */\nconst StyledLabelPlaceholder = styled.span`\n display: inline-flex;\n align-items: center;\n padding: 1px 6px;\n border: 1px solid var(--color-theme-700);\n border-radius: 4px;\n\n .list-button.open &,\n .list-button:hover & {\n border-color: var(--color-primary-700, var(--color-primary));\n }\n`;\n\nconst StyledLabelItems = styled.span`\n display: inline-flex;\n align-items: center;\n min-width: 0;\n\n /* 2px gap between chips/dots (mirrors tw-mr-0.5 last:tw-mr-0) */\n > *:not(:last-child) {\n margin-right: 2px;\n }\n\n .rest-count {\n margin-left: 2px;\n }\n\n ${CooltipStyle}\n`;\n\nconst MAX_SHOWN_LABELS = 8;\n\nconst LabelItems = ({ labels }: { labels: TaskLabel[] }): ReactElement => {\n const showAsDot = labels.length > 2;\n let shown = labels;\n let restCount = 0;\n\n if (labels.length > MAX_SHOWN_LABELS) {\n restCount = Math.min(labels.length - MAX_SHOWN_LABELS, 99);\n shown = labels.slice(0, MAX_SHOWN_LABELS - 1);\n }\n\n return (\n <StyledLabelItems>\n {shown.map((label) =>\n showAsDot ? (\n <Dot\n key={label.id}\n color={label.color}\n size={20}\n data-tooltip={label.name}\n />\n ) : (\n <Chip\n key={label.id}\n label={label.name}\n backgroundColor={label.color}\n color=\"#303037\"\n style={{ maxWidth: \"90px\" }}\n typographyProps={{ variant: \"Caption 2\", weight: \"bold\" }}\n data-tooltip={label.name}\n />\n )\n )}\n {restCount > 0 ? (\n <Body2 weight=\"bold\" className=\"rest-count\">\n +{restCount}\n </Body2>\n ) : null}\n </StyledLabelItems>\n );\n};\n\nconst LabelTrigger = forwardRef<\n HTMLButtonElement,\n ListButtonProps & { labels: TaskLabel[] }\n>(({ labels, ...rest }, ref) => {\n if (labels.length === 0) {\n return (\n <StyledListButton\n {...rest}\n ref={ref}\n className=\"show-on-hover\"\n aria-label=\"Add labels\"\n data-tooltip=\"Add Labels\"\n >\n <StyledLabelPlaceholder>\n <Caption2 weight=\"bold\" color=\"tertiary\">\n LABEL\n </Caption2>\n </StyledLabelPlaceholder>\n </StyledListButton>\n );\n }\n\n return (\n <StyledListButton {...rest} ref={ref} aria-label=\"Change labels\">\n <LabelItems labels={labels} />\n </StyledListButton>\n );\n});\n\nLabelTrigger.displayName = \"LabelTrigger\";\n\nexport const LabelCell = ({\n labelIds,\n completed = false,\n}: {\n labelIds?: string[];\n completed?: boolean;\n}): ReactElement => {\n const { labels: catalog, labelsById, addLabel } = useTaskLabels();\n const [selected, setSelected] = useState<string[]>(labelIds ?? []);\n\n /* alphabetical, like LabelTrigger sorts before rendering */\n const selectedLabels = useMemo(\n () =>\n selected\n .map((id) => labelsById[id])\n .filter((label): label is TaskLabel => Boolean(label))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [labelsById, selected]\n );\n\n const options = useMemo(\n () =>\n catalog.map((label) => ({\n id: label.id,\n name: label.name,\n color: label.color,\n textColor: label.textColor,\n })),\n [catalog]\n );\n\n const handleChange = useCallback(\n (value: (string | number)[] | string | number) => {\n setSelected(\n Array.isArray(value)\n ? value.map(String)\n : [String(value)].filter(Boolean)\n );\n },\n []\n );\n\n const handleAddNew = useCallback(\n (name?: string) => {\n if (!name || !name.trim()) {\n return;\n }\n const id = addLabel(name);\n setSelected((prev) => (prev.includes(id) ? prev : [...prev, id]));\n },\n [addLabel]\n );\n\n /* Completed tasks show their labels read-only (mirrors Label.js) */\n if (completed) {\n return (\n <StyledReadOnlyCell className=\"col col-label\">\n {selectedLabels.length > 0 ? (\n <LabelItems labels={selectedLabels} />\n ) : null}\n </StyledReadOnlyCell>\n );\n }\n\n return (\n <div className=\"col col-label\">\n <Select\n type=\"multiple\"\n options={options}\n selected={selected}\n onChange={handleChange}\n emptyValue=\"Add new\"\n emptyAction={handleAddNew}\n autoHeightMax={278}\n position=\"bottom-end\"\n target={<LabelTrigger labels={selectedLabels} />}\n />\n </div>\n );\n};\n\n/* ================================================================== */\n/* Date */\n/* ================================================================== */\n\n/** The personalized date format the app defaults to (`MMM D. YYYY`). */\nconst DATE_FORMAT = \"MMM D. YYYY\";\n\n/** Midnight UTC today — the reference point for the mock data and overdue. */\nconst todayUnix = (): number => moment.utc().startOf(\"day\").unix();\n\n/** Build a mock timestamp N days from today (negative = in the past). */\nexport const dayOffset = (offset: number): number =>\n moment.utc().startOf(\"day\").add(offset, \"days\").unix();\n\n/** mirrors utils/date.js → formatDateRange (month-first format) */\nexport const formatDateRange = (\n from?: number,\n to?: number\n): string | undefined => {\n if (from === undefined || from === null) {\n return undefined;\n }\n const start = moment.unix(from).utc();\n const due = moment.unix(to ?? from).utc();\n const withoutYear = DATE_FORMAT.replace(/YYYY|,$/gi, \"\").trim();\n const withoutYearAndMonth = withoutYear.replace(/MMM|,$/gi, \"\").trim();\n\n if (from === to || to === undefined) {\n return start.format(withoutYear);\n }\n if (start.year() === due.year() && start.month() === due.month()) {\n return `${start.format(withoutYear)} - ${due.format(withoutYearAndMonth)}`;\n }\n return `${start.format(withoutYear)} - ${due.format(withoutYear)}`;\n};\n\n/** mirrors utils/date.js → formatDateSmart(…, long) */\nconst formatDateLong = (value?: number): string =>\n value ? moment.unix(value).utc().format(DATE_FORMAT) : \"\";\n\nexport const isOverdue = (dueOn?: number, completed?: boolean): boolean =>\n Boolean(dueOn && !completed && dueOn < todayUnix());\n\nconst StyledDateValue = styled.span`\n font-family: ${SANS};\n white-space: nowrap;\n`;\n\n/* completed rows render values without a trigger, so the cell itself hosts the\n CSS tooltip */\nconst StyledReadOnlyCell = styled.div`\n padding-right: 8px;\n\n ${CooltipStyle}\n`;\n\n/**\n * `DatePicker` wraps itself in a `width: 100%` inline-block, which would stretch\n * across the column and left-align the trigger the moment the picker mounts —\n * the value would visibly jump and the popper would anchor to the wrong spot.\n * Keeping that wrapper right-aligned makes the open state geometrically\n * identical to the closed one.\n */\nconst StyledPickerCell = styled.div`\n /* StyledDatePickerWrapper — DatePicker's unclassed outer div */\n > div {\n text-align: right;\n }\n`;\n\ninterface DateTriggerProps extends ListButtonProps {\n value?: string;\n tooltip: string;\n overdue?: boolean;\n}\n\nconst DateTrigger = forwardRef<HTMLButtonElement, DateTriggerProps>(\n ({ value, tooltip, overdue, ...rest }, ref) => (\n <StyledListButton\n {...rest}\n ref={ref}\n className={value ? \"show-on-hover has-value\" : \"show-on-hover\"}\n aria-label={value ? \"Change dates\" : \"Add date\"}\n data-tooltip={tooltip}\n >\n {value ? (\n <StyledDateValue>\n <Caption1 weight=\"bold\" color={overdue ? \"alert\" : \"secondary\"}>\n {value}\n </Caption1>\n </StyledDateValue>\n ) : (\n <CalendarIcon />\n )}\n </StyledListButton>\n )\n);\n\nDateTrigger.displayName = \"DateTrigger\";\n\nexport const DateCell = ({\n startOn,\n dueOn,\n completed = false,\n}: {\n startOn?: number;\n dueOn?: number;\n completed?: boolean;\n}): ReactElement => {\n const [dates, setDates] = useState<{ from?: number; to?: number }>({\n from: startOn,\n to: dueOn,\n });\n /**\n * The DS `DatePicker` does real work on mount (timezone guess, month grids,\n * key handlers) — with one per row that is the single most expensive thing on\n * this page. So the closed state is just the trigger; the picker is mounted\n * on first click, already open, and unmounted again when it closes.\n */\n const [pickerMounted, setPickerMounted] = useState(false);\n\n /* moment isn't cheap either; only reformat when the dates actually change */\n const { value, overdue, tooltip } = useMemo(() => {\n const formatted = formatDateRange(dates.from, dates.to);\n let hint = \"Add Date\";\n if (dates.from) {\n hint =\n !dates.to || dates.to === dates.from\n ? formatDateLong(dates.from)\n : `${formatDateLong(dates.from)} - ${formatDateLong(dates.to)}`;\n }\n return {\n value: formatted,\n overdue: isOverdue(dates.to ?? dates.from, completed),\n tooltip: hint,\n };\n }, [completed, dates.from, dates.to]);\n\n const handleSave = useCallback((range?: TimestampDateRange) => {\n if (!range || range.from === null || range.from === undefined) {\n setDates({});\n return;\n }\n setDates({\n from: Number(range.from),\n to: range.to ? Number(range.to) : Number(range.from),\n });\n }, []);\n\n const handleClear = useCallback(() => setDates({}), []);\n\n const handleCalendarToggle = useCallback((next: boolean) => {\n if (!next) {\n setPickerMounted(false);\n }\n }, []);\n\n /* Completed tasks show the date read-only (mirrors Date.js) */\n if (completed) {\n return (\n <StyledReadOnlyCell className=\"col col-date\">\n {value ? (\n <StyledDateValue data-tooltip={tooltip}>\n <Caption1 weight=\"bold\" color={overdue ? \"alert\" : \"secondary\"}>\n {value}\n </Caption1>\n </StyledDateValue>\n ) : null}\n </StyledReadOnlyCell>\n );\n }\n\n if (!pickerMounted) {\n return (\n <div className=\"col col-date\">\n <DateTrigger\n value={value}\n tooltip={tooltip}\n overdue={overdue}\n onClick={() => setPickerMounted(true)}\n />\n </div>\n );\n }\n\n return (\n <StyledPickerCell className=\"col col-date\">\n <DatePicker\n open\n mode=\"custom\"\n instant={false}\n maxRange={366}\n firstDayOfWeek={1}\n position=\"bottom-end\"\n selected={{ from: dates.from ?? null, to: dates.to ?? null }}\n onSave={handleSave}\n onClear={handleClear}\n onCalendarToggle={handleCalendarToggle}\n target={\n <DateTrigger value={value} tooltip={tooltip} overdue={overdue} />\n }\n />\n </StyledPickerCell>\n );\n};\n\n/* ================================================================== */\n/* Time */\n/* ================================================================== */\n\n/** mirrors utils/utils.jsx → calculateTimeToEstimatePercentage */\nconst timeToEstimatePercentage = (\n tracked: number,\n estimated: number\n): number | null => {\n if (estimated > 0) {\n return tracked > 0 ? Math.round((tracked / estimated) * 100) : 0;\n }\n return null;\n};\n\n/** mirrors utils/utils.jsx → formatTrackedAndEstimatedTime */\nconst formatTrackedAndEstimated = (\n tracked: number,\n estimated: number\n): string =>\n estimated > 0\n ? `${formatHours(tracked, false, false, \"short\")}/${formatHours(\n estimated,\n false,\n false,\n \"short\"\n )}`\n : formatHours(tracked, false, false, \"short\");\n\n/* mirrors Time.js → progressColor() */\nconst progressColor = (percent: number): string => {\n if (percent >= 100) {\n return \"var(--red-alert)\";\n }\n if (percent >= 75) {\n return \"var(--warning)\";\n }\n return \"var(--color-sucess-green)\";\n};\n\nconst StyledTimeValue = styled.span`\n display: inline-flex;\n align-items: center;\n font-family: ${SANS};\n white-space: nowrap;\n\n .c-progress-pie,\n svg {\n flex-shrink: 0;\n }\n\n .time-pie {\n margin-right: 8px;\n }\n`;\n\nconst TimeValue = ({\n tracked,\n estimated,\n}: {\n tracked: number;\n estimated: number;\n}): ReactElement => {\n const percent = timeToEstimatePercentage(tracked, estimated);\n\n return (\n <StyledTimeValue>\n {estimated > 0 ? (\n <ProgressPie\n className=\"time-pie\"\n radius={10}\n progress={percent ?? 0}\n progressColor={progressColor(percent ?? 0)}\n backgroundColor=\"var(--color-theme-300)\"\n />\n ) : null}\n <Caption1 weight=\"bold\">\n {formatTrackedAndEstimated(tracked, estimated)}\n </Caption1>\n </StyledTimeValue>\n );\n};\n\nconst TimeTrigger = ({\n tracked,\n estimated,\n onClick,\n}: {\n tracked: number;\n estimated: number;\n onClick: () => void;\n}): ReactElement => {\n const hasTime = tracked > 0 || estimated > 0;\n\n return (\n <StyledListButton\n onClick={onClick}\n className={hasTime ? \"show-on-hover open\" : \"show-on-hover\"}\n aria-label={hasTime ? \"Edit time\" : \"Add time\"}\n data-tooltip={hasTime ? \"Edit Time\" : \"Add Time\"}\n >\n {hasTime ? (\n <TimeValue tracked={tracked} estimated={estimated} />\n ) : (\n <ClockAddIcon />\n )}\n </StyledListButton>\n );\n};\n\nexport interface TimeRecord {\n id: number;\n date: number;\n userId: string;\n userName: string;\n jobType: string;\n hours: number;\n billable: boolean;\n description?: string;\n}\n\nexport interface TimeCellUser {\n id: string;\n name: string;\n}\n\nexport const TimeCell = ({\n taskName,\n tracked = 0,\n estimated = 0,\n users,\n currentUserId,\n completed = false,\n}: {\n taskName: string;\n tracked?: number;\n estimated?: number;\n users: TimeCellUser[];\n currentUserId: string;\n completed?: boolean;\n}): ReactElement => {\n const [open, setOpen] = useState(false);\n const [records, setRecords] = useState<TimeRecord[]>(() =>\n tracked > 0\n ? [\n {\n id: 1,\n date: dayOffset(-3),\n userId: currentUserId,\n userName:\n users.find((user) => user.id === currentUserId)?.name ?? \"You\",\n jobType: \"Design\",\n hours: tracked,\n billable: true,\n },\n ]\n : []\n );\n\n const total = useMemo(\n () => records.reduce((sum, record) => sum + record.hours, 0),\n [records]\n );\n\n const handleAdd = useCallback((record: Omit<TimeRecord, \"id\">) => {\n setRecords((prev) => [{ ...record, id: prev.length + 1 }, ...prev]);\n setOpen(false);\n }, []);\n\n /* Completed tasks show the value without the \"add\" affordance (mirrors\n Time.js passing hideIcon for completed tasks) */\n if (completed) {\n return (\n <StyledReadOnlyCell className=\"col col-time\">\n {total > 0 || estimated > 0 ? (\n <TimeValue tracked={total} estimated={estimated} />\n ) : null}\n </StyledReadOnlyCell>\n );\n }\n\n return (\n <div className=\"col col-time\">\n <TimeTrigger\n tracked={total}\n estimated={estimated}\n onClick={() => setOpen(true)}\n />\n {open ? (\n <TimeRecordDialog\n open={open}\n taskName={taskName}\n users={users}\n currentUserId={currentUserId}\n records={records}\n total={total}\n onSubmit={handleAdd}\n onClose={() => setOpen(false)}\n />\n ) : null}\n </div>\n );\n};\n\n/* ------------------------------------------------------------------ */\n/* Add Time Record dialog (mirrors TimeRecordForm/*) */\n/* ------------------------------------------------------------------ */\n\nconst JOB_TYPES = [\n { id: \"design\", name: \"Design\" },\n { id: \"development\", name: \"Development\" },\n { id: \"devops\", name: \"Devops\" },\n { id: \"consulting\", name: \"Consulting\" },\n { id: \"qa\", name: \"QA\" },\n];\n\n/* The dialog paper — the app builds this one by hand rather than with DS\n `Dialog` because it is 770px wide (`.time_record_form_modal_wrapper`). */\nconst StyledTimeRecordPaper = styled.div`\n position: relative;\n width: 770px;\n max-width: 95vw;\n max-height: calc(100vh - 156px);\n margin: 126px auto 30px auto;\n padding: 20px 30px;\n overflow: auto;\n border-radius: 8px;\n background-color: var(--page-paper-main);\n color: var(--color-theme-900);\n box-shadow: var(--shadow-primary);\n box-sizing: border-box;\n font-family: ${SANS};\n\n * {\n box-sizing: border-box;\n }\n\n @media (max-width: 830px) {\n width: calc(100vw - 60px);\n }\n\n .trd-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .trd-title {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin-right: 16px;\n font-size: 1rem;\n font-weight: 700;\n }\n\n /* SelectTrigger is a fixed 300px control — let the date hug its label. The\n DatePicker's own full-width wrapper is right-aligned for the same reason\n as in the list cells. */\n .trd-date button {\n width: auto;\n }\n\n .trd-date > div {\n text-align: right;\n }\n\n .trd-divider {\n margin: 20px 0 32px 0;\n border-bottom: 1px solid var(--border-primary);\n height: 1px;\n }\n\n .trd-body {\n display: flex;\n justify-content: space-between;\n position: relative;\n }\n\n .trd-form {\n width: 100%;\n }\n\n .trd-fields {\n display: flex;\n align-items: flex-end;\n }\n\n .trd-hours {\n width: 144px;\n margin-right: 16px;\n flex-shrink: 0;\n }\n\n .trd-hours .c-input-wrapper,\n .trd-hours input {\n width: 100%;\n }\n\n .trd-field {\n margin-right: 16px;\n }\n\n .trd-field:last-of-type {\n margin-right: 20px;\n }\n\n .trd-field .c-label {\n display: block;\n margin-bottom: 2px;\n }\n\n /* SelectTrigger defaults to 300px; the app's fields are 144px */\n .trd-field button {\n width: 144px;\n }\n\n .trd-billable {\n display: flex;\n align-items: center;\n margin-top: 24px;\n }\n\n .trd-billable .c-label {\n margin-left: 8px;\n cursor: pointer;\n }\n\n .trd-description-trigger {\n display: inline-flex;\n align-items: center;\n margin-top: 16px;\n color: var(--color-secondary);\n font-size: 14px;\n font-weight: 500;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: ${SANS};\n }\n\n .trd-description-trigger svg {\n margin-right: 4px;\n fill: var(--color-primary);\n transition: transform 200ms ease;\n }\n\n .trd-description-trigger.collapsed svg {\n transform: rotate(180deg);\n }\n\n .trd-textarea {\n width: 360px;\n max-width: 100%;\n margin-top: 8px;\n font-size: 12px;\n resize: none;\n }\n\n .trd-actions {\n display: flex;\n margin-top: 24px;\n }\n\n .trd-actions .c-button:first-child {\n margin-right: 12px;\n }\n\n /* the total sits bottom-right of the form column, like the app */\n .trd-total {\n position: absolute;\n right: 0;\n bottom: 0;\n display: inline-flex;\n align-items: center;\n align-self: flex-end;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n }\n\n .trd-total svg {\n margin-right: 4px;\n fill: var(--color-primary);\n transition: transform 200ms ease;\n }\n\n .trd-total.collapsed svg {\n transform: rotate(180deg);\n }\n\n .trd-records {\n margin-top: 32px;\n border-top: 1px solid var(--border-primary);\n }\n\n .trd-record {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 36px;\n border-bottom: 1px solid var(--color-theme-300);\n }\n\n .trd-record-left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n }\n`;\n\nconst TimeRecordDialog = ({\n open,\n taskName,\n users,\n currentUserId,\n records,\n total,\n onSubmit,\n onClose,\n}: {\n open: boolean;\n taskName: string;\n users: TimeCellUser[];\n currentUserId: string;\n records: TimeRecord[];\n total: number;\n onSubmit: (record: Omit<TimeRecord, \"id\">) => void;\n onClose: () => void;\n}): ReactElement => {\n const [value, setValue] = useState(\"\");\n const [date, setDate] = useState<number>(todayUnix());\n const [userId, setUserId] = useState<string>(currentUserId);\n const [jobTypeId, setJobTypeId] = useState<string>(\"devops\");\n const [billable, setBillable] = useState(false);\n const [showDescription, setShowDescription] = useState(true);\n const [description, setDescription] = useState(\"\");\n const [showRecords, setShowRecords] = useState(false);\n\n const user = users.find((item) => item.id === userId);\n const jobType = JOB_TYPES.find((item) => item.id === jobTypeId);\n\n /** \"1:30\" / \"1.5\" → decimal hours */\n const hours = useMemo(() => {\n const trimmed = value.trim();\n if (!trimmed) {\n return 0;\n }\n if (trimmed.includes(\":\")) {\n const [h, m] = trimmed.split(\":\");\n return Number(h || 0) + Number(m || 0) / 60;\n }\n return Number(trimmed) || 0;\n }, [value]);\n\n const handleSubmit = useCallback(() => {\n onSubmit({\n date,\n userId,\n userName: user?.name ?? \"\",\n jobType: jobType?.name ?? \"\",\n hours,\n billable,\n description,\n });\n }, [billable, date, description, hours, jobType, onSubmit, user, userId]);\n\n return (\n <Modal open={open} onClose={onClose}>\n <SlideFromTop in={open}>\n <StyledTimeRecordPaper role=\"dialog\" aria-label=\"Add time record\">\n <div className=\"trd-header\">\n <span className=\"trd-title\">{taskName}</span>\n <span className=\"trd-date\">\n <DatePicker\n mode=\"daily\"\n required\n firstDayOfWeek={1}\n position=\"bottom-end\"\n selected={{ from: date, to: date }}\n onSave={(range) =>\n range?.from ? setDate(Number(range.from)) : undefined\n }\n target={\n <SelectTrigger>{formatDateRange(date, date)}</SelectTrigger>\n }\n />\n </span>\n </div>\n\n <div className=\"trd-divider\" />\n\n <div className=\"trd-body\">\n <div className=\"trd-form\">\n <div className=\"trd-fields\">\n <span className=\"trd-hours\">\n <InputHours\n autoFocus\n allowEmptyValue\n size=\"biggest\"\n placeholder=\"00:00\"\n value={value}\n onChange={setValue}\n />\n </span>\n\n <span className=\"trd-field\">\n <Label size=\"small\">User</Label>\n <Select\n options={users}\n selected={userId}\n forceCloseMenu\n onChange={(next) => setUserId(String(next))}\n target={\n <SelectTrigger id=\"trd-user\">{user?.name}</SelectTrigger>\n }\n />\n </span>\n\n <span className=\"trd-field\">\n <Label size=\"small\">Job Type</Label>\n <Select\n options={JOB_TYPES}\n selected={jobTypeId}\n forceCloseMenu\n onChange={(next) => setJobTypeId(String(next))}\n target={\n <SelectTrigger id=\"trd-job-type\">\n {jobType?.name}\n </SelectTrigger>\n }\n />\n </span>\n\n <span className=\"trd-billable\">\n <Checkbox\n id=\"trd-billable\"\n checked={billable}\n onChange={() => setBillable((prev) => !prev)}\n />\n <Label htmlFor=\"trd-billable\" weight=\"regular\">\n Billable\n </Label>\n </span>\n </div>\n\n <button\n type=\"button\"\n className={\n showDescription\n ? \"trd-description-trigger\"\n : \"trd-description-trigger collapsed\"\n }\n onClick={() => setShowDescription((prev) => !prev)}\n >\n <CollapseExpandSingleIcon />\n <span>Description</span>\n </button>\n\n {showDescription ? (\n <div>\n <Textarea\n className=\"trd-textarea\"\n value={description}\n onChange={(event) => setDescription(event.target.value)}\n />\n </div>\n ) : null}\n\n <div className=\"trd-actions\">\n <Button\n variant=\"primary\"\n disabled={hours <= 0}\n onClick={handleSubmit}\n >\n Add Time Record\n </Button>\n <Button variant=\"secondary\" onClick={onClose}>\n Cancel\n </Button>\n </div>\n </div>\n\n {total > 0 ? (\n <button\n type=\"button\"\n className={showRecords ? \"trd-total\" : \"trd-total collapsed\"}\n onClick={() => setShowRecords((prev) => !prev)}\n >\n <CollapseExpandSingleIcon />\n <Header3 color=\"theme-secondary\" tabularNums>\n Total: {formatHours(total, false, true)}h\n </Header3>\n </button>\n ) : null}\n </div>\n\n {showRecords && records.length > 0 ? (\n <div className=\"trd-records\">\n {records.map((record) => (\n <div key={record.id} className=\"trd-record\">\n <span className=\"trd-record-left\">\n <Caption1 weight=\"bold\" color=\"secondary\">\n {formatDateRange(record.date, record.date)}\n </Caption1>\n <Body2>{record.userName}</Body2>\n <Caption1 color=\"secondary\">{record.jobType}</Caption1>\n </span>\n <Body2 weight=\"bold\" tabularNums>\n {formatHours(record.hours)}h\n </Body2>\n </div>\n ))}\n </div>\n ) : null}\n </StyledTimeRecordPaper>\n </SlideFromTop>\n </Modal>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,18 @@
1
1
  import { ReactElement, ReactNode } from "react";
2
+ /**
3
+ * Task identifier cell — the `#<id>` value as a copy-link control, mirroring
4
+ * how `tasks/Metadata.js` turns `Task #248` into the task's Copy Link action:
5
+ * the click writes the task URL to the clipboard and reports back so the page
6
+ * can raise the app's "Link copied to clipboard." toast (utils/copyLinkToClipboard).
7
+ * It never navigates — the row itself is the navigation target.
8
+ */
9
+ export declare const IdentifierCell: ({ identifier, link, onCopy, }: {
10
+ identifier: number;
11
+ /** absolute task URL — what lands on the clipboard */
12
+ link: string;
13
+ /** raised after the copy attempt so the page can show a toast */
14
+ onCopy?: (copied: boolean) => void;
15
+ }) => ReactElement;
2
16
  export interface TaskLabel {
3
17
  id: string;
4
18
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../../src/presentation/listView/columns.tsx"],"names":[],"mappings":"AAAA,OAAc,EAGZ,YAAY,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAsKf,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAwED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,eAE5B;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,KAAG,YA+BH,CAAC;AA6GF,eAAO,MAAM,SAAS,GAAI,0BAGvB;IACD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,YAyEH,CAAC;AAYF,yEAAyE;AACzE,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MACa,CAAC;AAEzD,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,KAAK,MAAM,KACV,MAAM,GAAG,SAgBX,CAAC;AAMF,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,YAAY,OAAO,KAAG,OACX,CAAC;AA2DtD,eAAO,MAAM,QAAQ,GAAI,gCAItB;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,YAgGH,CAAC;AAgHF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,GAAI,oEAOtB;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,YA8DH,CAAC"}
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../../src/presentation/listView/columns.tsx"],"names":[],"mappings":"AAAA,OAAc,EAGZ,YAAY,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAqNf;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,+BAI5B;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,KAAG,YA4BH,CAAC;AAMF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAwED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,eAE5B;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,KAAG,YA+BH,CAAC;AA6GF,eAAO,MAAM,SAAS,GAAI,0BAGvB;IACD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,YAyEH,CAAC;AAYF,yEAAyE;AACzE,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MACa,CAAC;AAEzD,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,KAAK,MAAM,KACV,MAAM,GAAG,SAgBX,CAAC;AAMF,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,YAAY,OAAO,KAAG,OACX,CAAC;AA2DtD,eAAO,MAAM,QAAQ,GAAI,gCAItB;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,YAgGH,CAAC;AAgHF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,GAAI,oEAOtB;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,YA8DH,CAAC"}