@activecollab/components 2.0.351 → 2.0.352
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/presentation/shared/ConnectRepositoryDialog.js +22 -4
- package/dist/cjs/presentation/shared/ConnectRepositoryDialog.js.map +1 -1
- package/dist/cjs/presentation/shared/LinkBranchOrPullRequestDialog.js +8 -5
- package/dist/cjs/presentation/shared/LinkBranchOrPullRequestDialog.js.map +1 -1
- package/dist/cjs/presentation/shared/SourceCodeSection.js +1001 -0
- package/dist/cjs/presentation/shared/SourceCodeSection.js.map +1 -0
- package/dist/cjs/presentation/shared/index.js +43 -0
- package/dist/cjs/presentation/shared/index.js.map +1 -1
- package/dist/esm/presentation/shared/ConnectRepositoryDialog.d.ts +10 -2
- package/dist/esm/presentation/shared/ConnectRepositoryDialog.d.ts.map +1 -1
- package/dist/esm/presentation/shared/ConnectRepositoryDialog.js +21 -3
- package/dist/esm/presentation/shared/ConnectRepositoryDialog.js.map +1 -1
- package/dist/esm/presentation/shared/LinkBranchOrPullRequestDialog.d.ts.map +1 -1
- package/dist/esm/presentation/shared/LinkBranchOrPullRequestDialog.js +9 -6
- package/dist/esm/presentation/shared/LinkBranchOrPullRequestDialog.js.map +1 -1
- package/dist/esm/presentation/shared/SourceCodeSection.d.ts +88 -0
- package/dist/esm/presentation/shared/SourceCodeSection.d.ts.map +1 -0
- package/dist/esm/presentation/shared/SourceCodeSection.js +936 -0
- package/dist/esm/presentation/shared/SourceCodeSection.js.map +1 -0
- package/dist/esm/presentation/shared/index.d.ts +2 -0
- package/dist/esm/presentation/shared/index.d.ts.map +1 -1
- package/dist/esm/presentation/shared/index.js +1 -0
- package/dist/esm/presentation/shared/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceCodeSection.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_LinkBranchOrPullRequestDialog","_LinkingCommandsButton","_RoundAvatar","_tokens","_Button","_AddToListButton","_Dialog","_IconButton","_Icons","_Tooltip","_Trigger","_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","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","SANS","IssueOpenIcon","_ref","_ref$width","width","_ref$height","height","createElement","viewBox","fill","cx","cy","stroke","strokeWidth","IssueClosedIcon","_ref2","_ref2$width","_ref2$height","d","strokeLinecap","strokeLinejoin","STAGE_NAMES","mkStages","defs","map","issueCompleted","state","codeCompleted","status","byRecency","b","updatedMinsAgo","issueUrl","concat","repoFull","ref","replace","codeUrl","kind","_e$title$match$","_e$title$match","number","title","match","ISSUES","repo","updatedLabel","CODE_ENTRIES","headSha","contributors","initials","bg","AVATAR_COLORS","purple","commits","tip","diff","add","del","noPrLabel","references","stages","details","pipelineSupported","history","icon","GitBranchIcon","detail","meta","GitCommitIcon","green","blue","comments","GitPullRequestIcon","tone","RocketIcon","WarningTriangleSmallIcon","CheckIcon","TrashIcon","CancelCrossIcon","StageTip","_ref3","style","display","textAlign","lineHeight","fontWeight","key","SpineTrigger","styled","Trigger","withConfig","displayName","componentId","StyledSpine","div","Spine","exports","_ref4","items","onClick","type","s","Fragment","Tooltip","className","CloseIcon","StyledHistory","HistoryDialog","_ref5","entry","onClose","Dialog","open","enableBackgroundClick","Title","disableDefaultHeading","alignItems","justifyContent","gap","Header3","IconButton","variant","ContentDivider","Content","Body2","weight","Caption1","color","ev","_ev$tone","StyledSourceCode","TitleLink","IssueRow","_ref6","issue","closed","undefined","Body1","href","target","rel","GitRepositoryIcon","CodeStatusChip","_ref7","CodeRow","_ref8","onOpenHistory","deleted","closedPr","c","RoundAvatar","$bg","$size","$overlap","MessageIcon","CompletedHeader","_ref9","expanded","count","onToggle","Button","marginLeft","SourceCodeSection","_ref0","_ref0$variant","_useState","useState","_useState2","openEntry","setOpenEntry","_useState3","_useState4","completedExpanded","setCompletedExpanded","_useState5","_useState6","linkOpen","setLinkOpen","openIssues","sort","openCode","completed","node","showOpen","showCompleted","completedVisible","LinkingCommandsButton","v","AddToListButton","text","LinkBranchOrPullRequestDialog"],"sources":["../../../../src/presentation/shared/SourceCodeSection.tsx"],"sourcesContent":["import React, { ElementType, ReactElement, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { LinkBranchOrPullRequestDialog } from \"./LinkBranchOrPullRequestDialog\";\nimport { LinkingCommandsButton } from \"./LinkingCommandsButton\";\nimport { RoundAvatar } from \"./RoundAvatar\";\nimport { AVATAR_COLORS } from \"./tokens\";\nimport { Button } from \"../../components/Button\";\nimport { AddToListButton } from \"../../components/Button/AddToListButton\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n CancelCrossIcon,\n CheckIcon,\n CloseIcon,\n GitBranchIcon,\n GitCommitIcon,\n GitPullRequestIcon,\n GitRepositoryIcon,\n MessageIcon,\n RocketIcon,\n TrashIcon,\n WarningTriangleSmallIcon,\n} from \"../../components/Icons\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Trigger } from \"../../components/Trigger\";\nimport { Body1, Body2, Caption1, Header3 } from \"../../components/Typography\";\n\n/**\n * Source Code section of a task — the shared subsystem behind the\n * `Presentation/Source/Task Source` stories (Mix / All Open / All Completed).\n * Holds the row types (issue / pull-or-merge request / branch), the pipeline\n * spine, the history dialog, and the section that lays them out. Extracted into\n * `shared/` so all three stories render the same components; editing a row type\n * here updates every story at once.\n */\n\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\n\n/* ================================================================== */\n/* Issue markers (open / closed) — small inline glyphs so the */\n/* open-vs-closed state reads crisply; they inherit `currentColor`. */\n/* ================================================================== */\n\nconst IssueOpenIcon = ({\n width = 16,\n height = 16,\n}: {\n width?: number;\n height?: number;\n}): ReactElement => (\n <svg width={width} height={height} viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"8\" cy=\"8\" r=\"6.4\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <circle cx=\"8\" cy=\"8\" r=\"2.2\" fill=\"currentColor\" />\n </svg>\n);\n\nconst IssueClosedIcon = ({\n width = 16,\n height = 16,\n}: {\n width?: number;\n height?: number;\n}): ReactElement => (\n <svg width={width} height={height} viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"8\" cy=\"8\" r=\"6.4\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path\n d=\"M5.2 8.1l1.9 1.9 3.7-3.9\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\n/* ================================================================== */\n/* Source Code section — data model */\n/* ================================================================== */\n\ntype StageState = \"done\" | \"progress\" | \"failed\" | \"todo\";\n\nconst STAGE_NAMES = [\n \"Branch\",\n \"Commits\",\n \"Pull request\",\n \"CI / Build\",\n \"Deploy\",\n];\n\ninterface Stage {\n name: string;\n state: StageState;\n details: string[];\n}\n\ninterface HistoryEvent {\n icon: ElementType;\n title: string;\n detail?: string;\n meta: string;\n tone?: \"success\" | \"danger\" | \"progress\" | \"neutral\";\n}\n\n/** A VCS issue. Weakly referenced by any number of branches / PRs. */\ninterface IssueEntry {\n ref: string;\n title: string;\n repo: string;\n repoFull: string;\n state: \"open\" | \"closed\";\n updatedLabel: string;\n /** Minutes since last update — used for chronological ordering. */\n updatedMinsAgo: number;\n}\n\ntype CodeStatus = \"open\" | \"merged\" | \"closed\" | \"deleted\";\n\n/** A branch or pull request read from the VCS. */\ninterface CodeEntry {\n kind: \"pr\" | \"branch\";\n title: string;\n repo: string;\n repoFull: string;\n status: CodeStatus;\n /** Head SHA of the source branch (full); first 8 chars are shown. */\n headSha: string;\n contributors: { initials: string; bg: string }[];\n commits: { value: number; tip: string };\n diff?: { add: number; del: number; tip: string };\n comments?: { value: number; tip: string };\n noPrLabel?: string;\n updatedLabel: string;\n updatedMinsAgo: number;\n /** Issues this branch / PR references — weak, and possibly many. */\n references: string[];\n stages: Stage[];\n pipelineSupported: boolean;\n history: HistoryEvent[];\n}\n\nconst mkStages = (defs: { state: StageState; details: string[] }[]): Stage[] =>\n defs.map((d, i) => ({ name: STAGE_NAMES[i], ...d }));\n\nconst issueCompleted = (i: IssueEntry): boolean => i.state === \"closed\";\nconst codeCompleted = (e: CodeEntry): boolean => e.status !== \"open\";\nconst byRecency = (\n a: { updatedMinsAgo: number },\n b: { updatedMinsAgo: number }\n) => a.updatedMinsAgo - b.updatedMinsAgo;\n\n/** External URL for an element — opens the object in the provider (new tab). */\nconst issueUrl = (i: IssueEntry): string =>\n `https://github.com/${i.repoFull}/issues/${i.ref.replace(\"#\", \"\")}`;\n\nconst codeUrl = (e: CodeEntry): string => {\n if (e.kind === \"pr\") {\n const number = e.title.match(/#(\\d+)/)?.[1] ?? \"\";\n return `https://github.com/${e.repoFull}/pull/${number}`;\n }\n return `https://github.com/${e.repoFull}/tree/${e.title}`;\n};\n\n/* ---- Issues -------------------------------------------------------- */\n\nconst ISSUES: IssueEntry[] = [\n {\n ref: \"#482\",\n title: \"#482 Ranks reset when a contract is archived\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n state: \"open\",\n updatedLabel: \"20m ago\",\n updatedMinsAgo: 20,\n },\n {\n ref: \"#455\",\n title: \"#455 Retainer totals off by a rounding cent\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n state: \"open\",\n updatedLabel: \"3h ago\",\n updatedMinsAgo: 180,\n },\n {\n ref: \"#470\",\n title: \"#470 Cannot set a rank above 100\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n state: \"closed\",\n updatedLabel: \"4d ago\",\n updatedMinsAgo: 5760,\n },\n];\n\n/* ---- Branches / pull requests -------------------------------------- */\n\nconst CODE_ENTRIES: CodeEntry[] = [\n {\n kind: \"branch\",\n title: \"spike/rank-cache\",\n headSha: \"9f3c1a2b7d4e5f60819a2b3c4d5e6f7081920304\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n status: \"open\",\n contributors: [{ initials: \"IS\", bg: AVATAR_COLORS.purple }],\n commits: { value: 1, tip: \"1 commit · 30m ago by Ilija S.\" },\n diff: { add: 38, del: 4, tip: \"38 additions, 4 deletions across 2 files\" },\n noPrLabel: \"no pull request yet\",\n updatedLabel: \"30m ago\",\n updatedMinsAgo: 30,\n references: [],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"spike/rank-cache\", \"on activecollab/backend\"],\n },\n { state: \"done\", details: [\"1 commit\", \"30m ago by Ilija S.\"] },\n { state: \"todo\", details: [\"No pull request opened yet\"] },\n ]),\n pipelineSupported: false,\n history: [\n {\n icon: GitBranchIcon,\n title: \"Branch created\",\n detail: \"spike/rank-cache\",\n meta: \"Ilija Studen · today, 12:40\",\n },\n {\n icon: GitCommitIcon,\n title: \"Pushed 1 commit\",\n detail: \"Prototype rank cache\",\n meta: \"Ilija Studen · 30m ago\",\n },\n ],\n },\n {\n kind: \"branch\",\n title: \"feature/retainers-ui-34\",\n headSha: \"4a7b9c2d1e3f5061728394a5b6c7d8e9f0a1b2c3\",\n repo: \"frontend\",\n repoFull: \"activecollab/frontend\",\n status: \"open\",\n contributors: [{ initials: \"DA\", bg: AVATAR_COLORS.green }],\n commits: { value: 6, tip: \"6 commits · last 1h ago by Dragana A.\" },\n diff: {\n add: 214,\n del: 52,\n tip: \"214 additions, 52 deletions across 9 files\",\n },\n noPrLabel: \"no pull request yet\",\n updatedLabel: \"1h ago\",\n updatedMinsAgo: 60,\n references: [\"#482\"],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"feature/retainers-ui-34\", \"on activecollab/frontend\"],\n },\n { state: \"done\", details: [\"6 commits\", \"last 1h ago by Dragana A.\"] },\n { state: \"todo\", details: [\"No pull request opened yet\"] },\n { state: \"todo\", details: [\"No build yet\"] },\n { state: \"todo\", details: [\"Not deployed\"] },\n ]),\n pipelineSupported: true,\n history: [\n {\n icon: GitBranchIcon,\n title: \"Branch created\",\n detail: \"feature/retainers-ui-34\",\n meta: \"Dragana A. · today, 08:02\",\n },\n {\n icon: GitCommitIcon,\n title: \"Pushed 6 commits\",\n detail: \"Retainer settings screen\",\n meta: \"Dragana A. · 1h ago\",\n },\n ],\n },\n {\n kind: \"pr\",\n title: \"#119915 Contract UI rank controls\",\n headSha: \"b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5\",\n repo: \"frontend\",\n repoFull: \"activecollab/frontend\",\n status: \"merged\",\n contributors: [{ initials: \"MK\", bg: AVATAR_COLORS.blue }],\n commits: { value: 11, tip: \"11 commits · last 5h ago by Marko K.\" },\n diff: {\n add: 168,\n del: 24,\n tip: \"168 additions, 24 deletions across 6 files\",\n },\n comments: { value: 5, tip: \"5 comments on the pull request\" },\n updatedLabel: \"5h ago\",\n updatedMinsAgo: 300,\n references: [\"#455\"],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"feature/contracts-ui-34\", \"on activecollab/frontend\"],\n },\n { state: \"done\", details: [\"11 commits\", \"last 5h ago by Marko K.\"] },\n { state: \"done\", details: [\"#119915 merged\", \"approved by 1 reviewer\"] },\n { state: \"failed\", details: [\"Build failing\", \"3 of 12 checks failed\"] },\n { state: \"todo\", details: [\"Not deployed\"] },\n ]),\n pipelineSupported: true,\n history: [\n {\n icon: GitBranchIcon,\n title: \"Branch created\",\n detail: \"feature/contracts-ui-34\",\n meta: \"Marko K. · today, 07:10\",\n },\n {\n icon: GitPullRequestIcon,\n title: \"Pull request merged\",\n detail: \"into main\",\n meta: \"Marko K. · today, 10:12\",\n tone: \"success\",\n },\n {\n icon: RocketIcon,\n title: \"Build started\",\n detail: \"CI pipeline #482\",\n meta: \"today, 10:13\",\n tone: \"progress\",\n },\n {\n icon: WarningTriangleSmallIcon,\n title: \"Build failed\",\n detail: \"3 of 12 checks failed\",\n meta: \"today, 10:18\",\n tone: \"danger\",\n },\n ],\n },\n {\n kind: \"branch\",\n title: \"feature/retainers-34\",\n headSha: \"1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n status: \"merged\",\n contributors: [{ initials: \"IS\", bg: AVATAR_COLORS.purple }],\n commits: { value: 14, tip: \"14 commits · merged 2d ago by Ilija S.\" },\n diff: {\n add: 405,\n del: 37,\n tip: \"405 additions, 37 deletions across 11 files\",\n },\n updatedLabel: \"2d ago\",\n updatedMinsAgo: 2880,\n references: [\"#482\", \"#470\"],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"feature/retainers-34\", \"on activecollab/backend\"],\n },\n { state: \"done\", details: [\"14 commits\", \"merged 2d ago by Ilija S.\"] },\n { state: \"done\", details: [\"Merged via #119909\", \"into main\"] },\n ]),\n pipelineSupported: false,\n history: [\n {\n icon: GitBranchIcon,\n title: \"Branch created\",\n detail: \"feature/retainers-34\",\n meta: \"Ilija Studen · 1 Mar, 09:12\",\n },\n {\n icon: GitCommitIcon,\n title: \"Pushed 14 commits\",\n detail: \"Rank model + datastore updates\",\n meta: \"Ilija Studen · 2 Mar, 16:05\",\n },\n {\n icon: GitBranchIcon,\n title: \"Branch merged\",\n detail: \"via #119909 into main\",\n meta: \"Ilija Studen · 2 Mar, 18:20\",\n tone: \"success\",\n },\n ],\n },\n {\n kind: \"pr\",\n title: \"#119909 Allow and update ranks across datastores\",\n headSha: \"c4d5e6f70819202a3b4c5d6e7f8091a2b3c4d5e6\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n status: \"merged\",\n contributors: [\n { initials: \"IS\", bg: AVATAR_COLORS.purple },\n { initials: \"MK\", bg: AVATAR_COLORS.blue },\n ],\n commits: { value: 14, tip: \"14 commits · merged 2d ago by Ilija S.\" },\n diff: {\n add: 405,\n del: 37,\n tip: \"405 additions, 37 deletions across 11 files\",\n },\n comments: { value: 12, tip: \"12 comments on the pull request\" },\n updatedLabel: \"2d ago\",\n updatedMinsAgo: 2900,\n references: [\"#482\", \"#470\"],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"feature/retainers-34\", \"on activecollab/backend\"],\n },\n { state: \"done\", details: [\"14 commits\", \"last 2d ago by Ilija S.\"] },\n { state: \"done\", details: [\"#119909 merged\", \"approved by 2 reviewers\"] },\n ]),\n pipelineSupported: false,\n history: [\n {\n icon: GitPullRequestIcon,\n title: \"Pull request opened\",\n detail: \"#119909 · base: main\",\n meta: \"Ilija Studen · 2 Mar, 16:30\",\n tone: \"progress\",\n },\n {\n icon: CheckIcon,\n title: \"Approved by 2 reviewers\",\n detail: \"Marko K., Janko S.\",\n meta: \"2 Mar, 18:02\",\n tone: \"success\",\n },\n {\n icon: GitPullRequestIcon,\n title: \"Pull request merged\",\n detail: \"into main\",\n meta: \"Ilija Studen · 2 Mar, 18:20\",\n tone: \"success\",\n },\n ],\n },\n {\n kind: \"branch\",\n title: \"hotfix/rank-typo\",\n headSha: \"7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9012\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n status: \"deleted\",\n contributors: [{ initials: \"MK\", bg: AVATAR_COLORS.blue }],\n commits: { value: 2, tip: \"2 commits · deleted 5d ago\" },\n diff: { add: 6, del: 3, tip: \"6 additions, 3 deletions across 1 file\" },\n updatedLabel: \"5d ago\",\n updatedMinsAgo: 7000,\n references: [\"#470\"],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"hotfix/rank-typo\", \"on activecollab/backend\"],\n },\n { state: \"done\", details: [\"2 commits\", \"by Marko K.\"] },\n { state: \"todo\", details: [\"No pull request opened\"] },\n ]),\n pipelineSupported: false,\n history: [\n {\n icon: GitBranchIcon,\n title: \"Branch created\",\n detail: \"hotfix/rank-typo\",\n meta: \"Marko K. · 6d ago\",\n },\n {\n icon: GitCommitIcon,\n title: \"Pushed 2 commits\",\n detail: \"Fix rank label typo\",\n meta: \"Marko K. · 6d ago\",\n },\n {\n icon: TrashIcon,\n title: \"Branch deleted\",\n detail: \"soft delete — history preserved\",\n meta: \"Marko K. · 5d ago\",\n tone: \"danger\",\n },\n ],\n },\n {\n kind: \"pr\",\n title: \"#119870 Clamp rank to valid range\",\n headSha: \"d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f701\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n status: \"merged\",\n contributors: [{ initials: \"MK\", bg: AVATAR_COLORS.blue }],\n commits: { value: 4, tip: \"4 commits · merged 5d ago by Marko K.\" },\n diff: { add: 52, del: 8, tip: \"52 additions, 8 deletions across 3 files\" },\n updatedLabel: \"5d ago\",\n updatedMinsAgo: 7200,\n references: [\"#470\"],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"fix/rank-clamp-33\", \"on activecollab/backend\"],\n },\n { state: \"done\", details: [\"4 commits\", \"merged 5d ago by Marko K.\"] },\n { state: \"done\", details: [\"#119870 merged\", \"approved by 1 reviewer\"] },\n ]),\n pipelineSupported: false,\n history: [\n {\n icon: GitBranchIcon,\n title: \"Branch created\",\n detail: \"fix/rank-clamp-33\",\n meta: \"Marko K. · 6d ago\",\n },\n {\n icon: GitPullRequestIcon,\n title: \"Pull request merged\",\n detail: \"into main\",\n meta: \"Marko K. · 5d ago\",\n tone: \"success\",\n },\n ],\n },\n {\n kind: \"pr\",\n title: \"#119888 Cache ranks per datastore\",\n headSha: \"a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4\",\n repo: \"backend\",\n repoFull: \"activecollab/backend\",\n status: \"closed\",\n contributors: [{ initials: \"IS\", bg: AVATAR_COLORS.purple }],\n commits: { value: 5, tip: \"5 commits · closed 3d ago by Ilija S.\" },\n diff: {\n add: 120,\n del: 15,\n tip: \"120 additions, 15 deletions across 4 files\",\n },\n comments: { value: 3, tip: \"3 comments on the pull request\" },\n updatedLabel: \"3d ago\",\n updatedMinsAgo: 4320,\n references: [\"#455\"],\n stages: mkStages([\n {\n state: \"done\",\n details: [\"feature/rank-datastore-cache\", \"on activecollab/backend\"],\n },\n { state: \"done\", details: [\"5 commits\", \"last 3d ago by Ilija S.\"] },\n { state: \"todo\", details: [\"#119888 closed without merging\"] },\n ]),\n pipelineSupported: false,\n history: [\n {\n icon: GitPullRequestIcon,\n title: \"Pull request opened\",\n detail: \"#119888 · base: main\",\n meta: \"Ilija Studen · 4d ago\",\n tone: \"progress\",\n },\n {\n icon: CancelCrossIcon,\n title: \"Pull request closed\",\n detail: \"closed without merging\",\n meta: \"Ilija Studen · 3d ago\",\n },\n ],\n },\n];\n\n/* ================================================================== */\n/* Spine + history dialog (for branches / pull requests) */\n/* ================================================================== */\n\nconst StageTip = ({ name, details }: Stage): ReactElement => (\n <span style={{ display: \"block\", textAlign: \"left\", lineHeight: 1.5 }}>\n <span style={{ display: \"block\", fontWeight: 700 }}>Stage: {name}</span>\n {details.map((d, i) => (\n <span key={`${name}-${i}`} style={{ display: \"block\" }}>\n {d}\n </span>\n ))}\n </span>\n);\n\nconst SpineTrigger = styled(Trigger)`\n display: inline-flex;\n align-items: center;\n align-self: center;\n flex-shrink: 0;\n padding: 6px 8px;\n border-radius: 8px;\n transition: background-color 200ms ease;\n\n &:hover {\n background-color: var(--color-theme-200);\n }\n &:focus-visible {\n outline: 2px solid var(--color-primary);\n outline-offset: 1px;\n }\n`;\n\nconst StyledSpine = styled.div`\n display: flex;\n align-items: flex-start;\n\n .circle {\n width: 22px;\n height: 22px;\n border-radius: 50%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .circle.done {\n background: var(--color-sucess-green);\n }\n .circle.progress {\n background: var(--color-primary);\n }\n .circle.failed {\n background: var(--red-alert);\n }\n .circle.todo {\n background: transparent;\n border: 2px solid var(--color-theme-400);\n }\n\n .dot {\n border-radius: 50%;\n }\n .dot-progress {\n width: 7px;\n height: 7px;\n background: #fff;\n }\n .dot-todo {\n width: 6px;\n height: 6px;\n background: var(--color-theme-500);\n }\n\n .connector {\n width: 13px;\n height: 2px;\n margin-top: 10px;\n background: var(--color-theme-400);\n }\n .connector.on {\n background: var(--color-sucess-green);\n }\n`;\n\nconst Spine = ({\n items,\n onClick,\n}: {\n items: Stage[];\n onClick: () => void;\n}): ReactElement => (\n <SpineTrigger\n type=\"button\"\n onClick={onClick}\n aria-label=\"Open source code history\"\n >\n <StyledSpine>\n {items.map((s, i) => (\n <React.Fragment key={s.name}>\n <Tooltip title={<StageTip {...s} />}>\n <div className={`circle ${s.state}`}>\n {s.state === \"done\" && (\n <CheckIcon fill=\"#fff\" width={14} height={14} />\n )}\n {s.state === \"failed\" && (\n <CloseIcon fill=\"#fff\" width={12} height={12} />\n )}\n {s.state === \"progress\" && <span className=\"dot dot-progress\" />}\n {s.state === \"todo\" && <span className=\"dot dot-todo\" />}\n </div>\n </Tooltip>\n {i < items.length - 1 && (\n <span\n className={\n items[i + 1].state !== \"todo\" ? \"connector on\" : \"connector\"\n }\n />\n )}\n </React.Fragment>\n ))}\n </StyledSpine>\n </SpineTrigger>\n);\n\nconst StyledHistory = styled.div`\n font-family: ${SANS};\n\n .hist-sub {\n margin-bottom: 18px;\n }\n\n .hist-event {\n position: relative;\n display: flex;\n gap: 12px;\n padding-bottom: 18px;\n }\n .hist-event:last-child {\n padding-bottom: 0;\n }\n\n .hist-event:not(:last-child)::before {\n content: \"\";\n position: absolute;\n left: 11px;\n top: 24px;\n bottom: 0;\n width: 2px;\n background: var(--border-primary);\n }\n\n .hist-icon {\n z-index: 1;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-theme-200);\n }\n .hist-icon.success {\n background: color-mix(in srgb, var(--color-sucess-green) 18%, transparent);\n }\n .hist-icon.danger {\n background: color-mix(in srgb, var(--red-alert) 18%, transparent);\n }\n .hist-icon.progress {\n background: color-mix(in srgb, var(--color-primary) 18%, transparent);\n }\n\n .hist-body {\n min-width: 0;\n padding-top: 1px;\n }\n\n .hist-note {\n margin-top: 4px;\n padding: 10px 12px;\n border-radius: 6px;\n background: var(--color-theme-200);\n }\n`;\n\nconst HistoryDialog = ({\n entry,\n onClose,\n}: {\n entry: CodeEntry | null;\n onClose: () => void;\n}): ReactElement => (\n <Dialog open={!!entry} onClose={onClose} enableBackgroundClick>\n <Dialog.Title disableDefaultHeading>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 12,\n }}\n >\n <Header3>Source Code History</Header3>\n <IconButton type=\"button\" variant=\"text gray\" onClick={onClose}>\n <CancelCrossIcon />\n </IconButton>\n </div>\n </Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n {entry && (\n <StyledHistory>\n <div className=\"hist-sub\">\n <Body2 weight=\"medium\">{entry.title}</Body2>\n <Caption1 color=\"secondary\">{entry.repoFull}</Caption1>\n </div>\n\n {entry.history.map((ev, i) => (\n <div className=\"hist-event\" key={`${ev.title}-${i}`}>\n <span className={`hist-icon ${ev.tone ?? \"neutral\"}`}>\n <ev.icon width={14} height={14} />\n </span>\n <div className=\"hist-body\">\n <Body2 weight=\"medium\">{ev.title}</Body2>\n {ev.detail && (\n <Caption1 color=\"secondary\">{ev.detail}</Caption1>\n )}\n <Caption1 color=\"tertiary\">{ev.meta}</Caption1>\n </div>\n </div>\n ))}\n\n {!entry.pipelineSupported && (\n <div className=\"hist-note\">\n <Caption1 color=\"secondary\">\n No CI or deployment pipeline is configured for this repository.\n </Caption1>\n </div>\n )}\n </StyledHistory>\n )}\n </Dialog.Content>\n </Dialog>\n);\n\n/* ================================================================== */\n/* Source Code section — flat list, split open / completed */\n/* ================================================================== */\n\nconst StyledSourceCode = styled.div`\n font-family: ${SANS};\n margin: 0 0 16px;\n padding-bottom: 16px;\n border-bottom: 1px solid var(--border-primary);\n\n .sc-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 4px;\n }\n\n /* \"Show N more completed elements\" toggle — a DS \"text colored\" button */\n .sc-completed-row {\n display: flex;\n align-items: center;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid var(--border-primary);\n }\n\n /* \"Link Branch or Pull Request\" action at the bottom of the section */\n .sc-add {\n margin-top: 8px;\n padding-top: 12px;\n border-top: 1px solid var(--border-primary);\n }\n .sc-add .c--add-to-list-btn svg {\n box-sizing: content-box;\n }\n\n .sc-item {\n padding: 12px 0;\n }\n .sc-item + .sc-item {\n border-top: 1px solid var(--border-primary);\n }\n\n .sc-row {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n }\n\n .sc-main {\n flex: 1 1 0%;\n min-width: 0;\n }\n\n .sc-name {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: nowrap;\n min-width: 0;\n }\n\n .sc-lead {\n flex-shrink: 0;\n display: inline-flex;\n color: var(--color-theme-600);\n }\n\n .sc-title {\n flex: 0 1 auto;\n min-width: 0;\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n /* Completed items keep the regular text color for readability; a deleted\n branch is still marked with a strikethrough (no muted color). */\n .sc-title.strike {\n text-decoration: line-through;\n }\n /* Closed PR — struck through by default, but the strike lifts on hover so it\n reads as a normal PR link (the inner link turns primary on hover). */\n .sc-title.strike-link {\n text-decoration: line-through;\n }\n .sc-title.strike-link:hover {\n text-decoration: none;\n }\n\n .sc-sigs {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n margin-top: 10px;\n font-size: 13px;\n color: var(--color-theme-600);\n }\n\n .sc-sig {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n\n /* Status label — sits beside the name (not in the signifier row), so the\n first signifier is always the repository. Kept from shrinking so it stays\n fully visible while a long name truncates. */\n .sc-chip {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n height: 20px;\n padding: 0 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n flex-shrink: 0;\n }\n .sc-chip.done {\n color: var(--color-primary);\n background: color-mix(in srgb, var(--color-primary) 15%, transparent);\n }\n .sc-chip.gone {\n color: var(--color-theme-900);\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n }\n\n .sc-avatars {\n display: flex;\n align-items: center;\n }\n\n .sc-sha {\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 12px;\n color: var(--color-theme-500);\n }\n\n .sc-diff .add {\n color: var(--color-sucess-green);\n }\n .sc-diff .del {\n color: var(--red-alert);\n }\n\n .sc-muted {\n color: var(--color-theme-500);\n }\n\n /* issue references on a branch / PR — weak, and possibly several */\n .sc-refs {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .sc-refs .ref-link {\n color: var(--color-primary);\n font-weight: 500;\n }\n`;\n\n/* Element name — a link that opens the object in a new tab. Keeps the row's\n typography (inherits color + weight), turns primary on hover, link cursor. */\nconst TitleLink = styled.a`\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n transition: color 200ms ease;\n\n &:hover {\n color: var(--color-primary);\n }\n`;\n\nconst IssueRow = ({ issue }: { issue: IssueEntry }): ReactElement => {\n const closed = issue.state === \"closed\";\n\n return (\n <div className=\"sc-row\">\n <div className=\"sc-main\">\n <div className=\"sc-name\">\n <span\n className=\"sc-lead\"\n style={{ color: closed ? \"var(--color-primary)\" : undefined }}\n >\n {closed ? <IssueClosedIcon /> : <IssueOpenIcon />}\n </span>\n <Body1 weight=\"medium\" className=\"sc-title\">\n <TitleLink\n href={issueUrl(issue)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {issue.title}\n </TitleLink>\n </Body1>\n {closed && (\n <span className=\"sc-chip done\">\n <IssueClosedIcon width={12} height={12} />\n Closed\n </span>\n )}\n </div>\n\n <div className=\"sc-sigs\">\n <Tooltip title={`Repository: ${issue.repoFull}`}>\n <span className=\"sc-sig\">\n <GitRepositoryIcon width={14} height={14} />\n {issue.repo}\n </span>\n </Tooltip>\n\n <span className=\"sc-muted\">{issue.updatedLabel}</span>\n </div>\n </div>\n </div>\n );\n};\n\nconst CodeStatusChip = ({\n entry,\n}: {\n entry: CodeEntry;\n}): ReactElement | null => {\n if (entry.status === \"merged\") {\n return (\n <span className=\"sc-chip done\">\n <GitPullRequestIcon\n width={12}\n height={12}\n fill=\"var(--color-primary)\"\n />\n Merged\n </span>\n );\n }\n if (entry.status === \"deleted\") {\n return (\n <span className=\"sc-chip gone\">\n <TrashIcon width={12} height={12} fill=\"var(--color-theme-900)\" />\n Deleted\n </span>\n );\n }\n if (entry.status === \"closed\") {\n return <span className=\"sc-chip gone\">Closed</span>;\n }\n // Open branches / PRs show no status label.\n return null;\n};\n\nconst CodeRow = ({\n entry,\n onOpenHistory,\n}: {\n entry: CodeEntry;\n onOpenHistory: () => void;\n}): ReactElement => {\n const deleted = entry.status === \"deleted\";\n // A closed-without-merge PR is still a live link, but its name is struck\n // through to signal the dead-end; the strike lifts on hover so it reads as a\n // normal PR link.\n const closedPr = entry.kind === \"pr\" && entry.status === \"closed\";\n\n return (\n <div className=\"sc-row\">\n <div className=\"sc-main\">\n <div className=\"sc-name\">\n <span className=\"sc-lead\">\n {entry.kind === \"pr\" ? (\n <GitPullRequestIcon width={16} height={16} />\n ) : (\n <GitBranchIcon width={16} height={16} />\n )}\n </span>\n {deleted ? (\n <Body1 weight=\"medium\" className=\"sc-title strike\">\n {entry.title}\n </Body1>\n ) : (\n <Body1\n weight=\"medium\"\n className={closedPr ? \"sc-title strike-link\" : \"sc-title\"}\n >\n <TitleLink\n href={codeUrl(entry)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {entry.title}\n </TitleLink>\n </Body1>\n )}\n <CodeStatusChip entry={entry} />\n </div>\n\n <div className=\"sc-sigs\">\n <Tooltip title={`Repository: ${entry.repoFull}`}>\n <span className=\"sc-sig\">\n <GitRepositoryIcon width={14} height={14} />\n {entry.repo}\n </span>\n </Tooltip>\n\n <span className=\"sc-avatars\">\n {entry.contributors.map((c) => (\n <RoundAvatar key={c.initials} $bg={c.bg} $size={20} $overlap>\n {c.initials}\n </RoundAvatar>\n ))}\n </span>\n\n <Tooltip title={entry.commits.tip}>\n <span className=\"sc-sig\">\n <GitCommitIcon width={14} height={14} />\n {entry.commits.value}\n </span>\n </Tooltip>\n\n <Tooltip title={`Head commit: ${entry.headSha}`}>\n <span className=\"sc-sig sc-sha\">{entry.headSha.slice(0, 8)}</span>\n </Tooltip>\n\n {entry.diff && (\n <Tooltip title={entry.diff.tip}>\n <span className=\"sc-sig sc-diff\">\n <span className=\"add\">+{entry.diff.add}</span>{\" \"}\n <span className=\"del\">−{entry.diff.del}</span>\n </span>\n </Tooltip>\n )}\n\n {entry.comments && (\n <Tooltip title={entry.comments.tip}>\n <span className=\"sc-sig\">\n <MessageIcon width={14} height={14} />\n {entry.comments.value}\n </span>\n </Tooltip>\n )}\n\n <span className=\"sc-muted\">{entry.updatedLabel}</span>\n </div>\n </div>\n\n <Spine items={entry.stages} onClick={onOpenHistory} />\n </div>\n );\n};\n\nconst CompletedHeader = ({\n expanded,\n count,\n onToggle,\n}: {\n expanded: boolean;\n count: number;\n onToggle: () => void;\n}): ReactElement => (\n <div className=\"sc-completed-row\">\n <Button\n type=\"button\"\n variant=\"text colored\"\n onClick={onToggle}\n aria-expanded={expanded}\n style={{ marginLeft: -8 }}\n >\n {expanded\n ? \"Hide completed elements\"\n : `Show ${count} more completed elements`}\n </Button>\n </div>\n);\n\ntype SectionVariant = \"mix\" | \"open\" | \"completed\";\n\nconst SourceCodeSection = ({\n variant = \"mix\",\n}: {\n variant?: SectionVariant;\n}): ReactElement => {\n const [openEntry, setOpenEntry] = useState<CodeEntry | null>(null);\n const [completedExpanded, setCompletedExpanded] = useState(false);\n const [linkOpen, setLinkOpen] = useState(false);\n\n const openIssues = ISSUES.filter((i) => !issueCompleted(i)).sort(byRecency);\n const openCode = CODE_ENTRIES.filter((e) => !codeCompleted(e)).sort(\n byRecency\n );\n\n const completed: {\n key: string;\n updatedMinsAgo: number;\n node: ReactElement;\n }[] = [\n ...ISSUES.filter(issueCompleted).map((issue) => ({\n key: issue.ref,\n updatedMinsAgo: issue.updatedMinsAgo,\n node: <IssueRow issue={issue} />,\n })),\n ...CODE_ENTRIES.filter(codeCompleted).map((entry) => ({\n key: `${entry.repo}-${entry.title}`,\n updatedMinsAgo: entry.updatedMinsAgo,\n node: <CodeRow entry={entry} onOpenHistory={() => setOpenEntry(entry)} />,\n })),\n ].sort(byRecency);\n\n const showOpen = variant === \"mix\" || variant === \"open\";\n const showCompleted = variant === \"mix\" || variant === \"completed\";\n // In the \"completed\" variant there is no collapsible header and everything is\n // shown; in \"mix\" the section is collapsed by default.\n const completedVisible = variant === \"completed\" ? true : completedExpanded;\n\n return (\n <StyledSourceCode>\n <div className=\"sc-header\">\n <Body1 weight=\"bold\">Source Code</Body1>\n <LinkingCommandsButton />\n </div>\n\n {showOpen &&\n openIssues.map((issue) => (\n <div className=\"sc-item\" key={issue.ref}>\n <IssueRow issue={issue} />\n </div>\n ))}\n {showOpen &&\n openCode.map((entry) => (\n <div className=\"sc-item\" key={`${entry.repo}-${entry.title}`}>\n <CodeRow entry={entry} onOpenHistory={() => setOpenEntry(entry)} />\n </div>\n ))}\n\n {/* When expanded, completed rows join the same list above the toggle;\n the toggle (\"Show N more…\" / \"Hide…\") always sits at the bottom. */}\n {showCompleted &&\n completedVisible &&\n completed.map((c) => (\n <div className=\"sc-item\" key={c.key}>\n {c.node}\n </div>\n ))}\n {showCompleted && completed.length > 0 && variant === \"mix\" && (\n <CompletedHeader\n expanded={completedExpanded}\n count={completed.length}\n onToggle={() => setCompletedExpanded((v) => !v)}\n />\n )}\n\n <div className=\"sc-add\">\n <AddToListButton\n text=\"Link Branch or Pull Request\"\n style={{ marginLeft: -4 }}\n onClick={() => setLinkOpen(true)}\n />\n </div>\n\n <HistoryDialog entry={openEntry} onClose={() => setOpenEntry(null)} />\n <LinkBranchOrPullRequestDialog\n open={linkOpen}\n onClose={() => setLinkOpen(false)}\n />\n </StyledSourceCode>\n );\n};\n\nexport type {\n StageState,\n Stage,\n HistoryEvent,\n IssueEntry,\n CodeStatus,\n CodeEntry,\n SectionVariant,\n};\n\nexport {\n Spine,\n HistoryDialog,\n IssueRow,\n CodeRow,\n CompletedHeader,\n SourceCodeSection,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,12 @@ var _exportNames = {
|
|
|
24
24
|
WebhookLogsDialog: true,
|
|
25
25
|
WEBHOOK_CONNECTIONS: true,
|
|
26
26
|
WEBHOOK_REPOSITORIES: true,
|
|
27
|
+
SourceCodeSection: true,
|
|
28
|
+
IssueRow: true,
|
|
29
|
+
CodeRow: true,
|
|
30
|
+
Spine: true,
|
|
31
|
+
HistoryDialog: true,
|
|
32
|
+
CompletedHeader: true,
|
|
27
33
|
SuggestSubtasksButton: true,
|
|
28
34
|
TaskOptionsMenu: true,
|
|
29
35
|
TaskListOptionsMenu: true
|
|
@@ -40,6 +46,18 @@ Object.defineProperty(exports, "CONNECTIONS", {
|
|
|
40
46
|
return _ConnectRepositoryDialog.CONNECTIONS;
|
|
41
47
|
}
|
|
42
48
|
});
|
|
49
|
+
Object.defineProperty(exports, "CodeRow", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function get() {
|
|
52
|
+
return _SourceCodeSection.CodeRow;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "CompletedHeader", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function get() {
|
|
58
|
+
return _SourceCodeSection.CompletedHeader;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
43
61
|
Object.defineProperty(exports, "ConnectRepositoryDialog", {
|
|
44
62
|
enumerable: true,
|
|
45
63
|
get: function get() {
|
|
@@ -58,6 +76,18 @@ Object.defineProperty(exports, "HelpAndSupportMenu", {
|
|
|
58
76
|
return _HelpAndSupportMenu.HelpAndSupportMenu;
|
|
59
77
|
}
|
|
60
78
|
});
|
|
79
|
+
Object.defineProperty(exports, "HistoryDialog", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
get: function get() {
|
|
82
|
+
return _SourceCodeSection.HistoryDialog;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
Object.defineProperty(exports, "IssueRow", {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function get() {
|
|
88
|
+
return _SourceCodeSection.IssueRow;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
61
91
|
Object.defineProperty(exports, "LinkBranchOrPullRequestDialog", {
|
|
62
92
|
enumerable: true,
|
|
63
93
|
get: function get() {
|
|
@@ -112,6 +142,18 @@ Object.defineProperty(exports, "RoundAvatar", {
|
|
|
112
142
|
return _RoundAvatar.RoundAvatar;
|
|
113
143
|
}
|
|
114
144
|
});
|
|
145
|
+
Object.defineProperty(exports, "SourceCodeSection", {
|
|
146
|
+
enumerable: true,
|
|
147
|
+
get: function get() {
|
|
148
|
+
return _SourceCodeSection.SourceCodeSection;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
Object.defineProperty(exports, "Spine", {
|
|
152
|
+
enumerable: true,
|
|
153
|
+
get: function get() {
|
|
154
|
+
return _SourceCodeSection.Spine;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
115
157
|
Object.defineProperty(exports, "StyledPagePaper", {
|
|
116
158
|
enumerable: true,
|
|
117
159
|
get: function get() {
|
|
@@ -188,6 +230,7 @@ var _LinkingCommandsButton = require("./LinkingCommandsButton");
|
|
|
188
230
|
var _LinkBranchOrPullRequestDialog = require("./LinkBranchOrPullRequestDialog");
|
|
189
231
|
var _ConnectRepositoryDialog = require("./ConnectRepositoryDialog");
|
|
190
232
|
var _WebhookLogsDialog = require("./WebhookLogsDialog");
|
|
233
|
+
var _SourceCodeSection = require("./SourceCodeSection");
|
|
191
234
|
var _SuggestSubtasksButton = require("./SuggestSubtasksButton");
|
|
192
235
|
var _TaskOptionsMenu = require("./TaskOptionsMenu");
|
|
193
236
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_tokens","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_MainLogo","_RoundAvatar","_PresentationShell","_headers","_FloatingControls","_HelpAndSupportMenu","_LinkingCommandsButton","_LinkBranchOrPullRequestDialog","_ConnectRepositoryDialog","_WebhookLogsDialog","_SuggestSubtasksButton","_TaskOptionsMenu"],"sources":["../../../../src/presentation/shared/index.ts"],"sourcesContent":["/**\n * Shared building blocks for the Presentation mock-ups (`Presentation/*`\n * stories). The application shell, page headers, tab bar and small widgets are\n * defined once here and reused by the List view, Column view, Task sheet and\n * empty-page stories so the chrome stays identical and in one place.\n */\nexport * from \"./tokens\";\nexport { MainLogo } from \"./MainLogo\";\nexport { RoundAvatar } from \"./RoundAvatar\";\nexport { PresentationShell, StyledPagePaper } from \"./PresentationShell\";\nexport type { PresentationShellProps } from \"./PresentationShell\";\nexport { PageHeader, ProjectPageHeader, TabHeader } from \"./headers\";\nexport type {\n PageHeaderProps,\n ProjectPageHeaderProps,\n TabHeaderProps,\n} from \"./headers\";\nexport { FloatingControls } from \"./FloatingControls\";\nexport { HelpAndSupportMenu } from \"./HelpAndSupportMenu\";\nexport type { HelpAndSupportMenuProps } from \"./HelpAndSupportMenu\";\nexport { LinkingCommandsButton } from \"./LinkingCommandsButton\";\nexport { LinkBranchOrPullRequestDialog } from \"./LinkBranchOrPullRequestDialog\";\nexport type { LinkBranchOrPullRequestDialogProps } from \"./LinkBranchOrPullRequestDialog\";\nexport {\n ConnectRepositoryDialog,\n RepositorySelect,\n buildRepoOptions,\n CONNECTIONS,\n PROJECT_REPOSITORIES,\n CONNECTABLE_REPOSITORIES,\n} from \"./ConnectRepositoryDialog\";\nexport type {\n ConnectRepositoryDialogProps,\n RepositorySelectProps,\n Connection,\n ConnectionService,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nexport {\n WebhookLogsDialog,\n WEBHOOK_CONNECTIONS,\n WEBHOOK_REPOSITORIES,\n} from \"./WebhookLogsDialog\";\nexport type {\n WebhookLogsDialogProps,\n WebhookConnection,\n WebhookRepository,\n WebhookLog,\n} from \"./WebhookLogsDialog\";\nexport { SuggestSubtasksButton } from \"./SuggestSubtasksButton\";\nexport { TaskOptionsMenu, TaskListOptionsMenu } from \"./TaskOptionsMenu\";\nexport type {\n TaskOptionsMenuProps,\n TaskListOptionsMenuProps,\n} from \"./TaskOptionsMenu\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_tokens","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_MainLogo","_RoundAvatar","_PresentationShell","_headers","_FloatingControls","_HelpAndSupportMenu","_LinkingCommandsButton","_LinkBranchOrPullRequestDialog","_ConnectRepositoryDialog","_WebhookLogsDialog","_SourceCodeSection","_SuggestSubtasksButton","_TaskOptionsMenu"],"sources":["../../../../src/presentation/shared/index.ts"],"sourcesContent":["/**\n * Shared building blocks for the Presentation mock-ups (`Presentation/*`\n * stories). The application shell, page headers, tab bar and small widgets are\n * defined once here and reused by the List view, Column view, Task sheet and\n * empty-page stories so the chrome stays identical and in one place.\n */\nexport * from \"./tokens\";\nexport { MainLogo } from \"./MainLogo\";\nexport { RoundAvatar } from \"./RoundAvatar\";\nexport { PresentationShell, StyledPagePaper } from \"./PresentationShell\";\nexport type { PresentationShellProps } from \"./PresentationShell\";\nexport { PageHeader, ProjectPageHeader, TabHeader } from \"./headers\";\nexport type {\n PageHeaderProps,\n ProjectPageHeaderProps,\n TabHeaderProps,\n} from \"./headers\";\nexport { FloatingControls } from \"./FloatingControls\";\nexport { HelpAndSupportMenu } from \"./HelpAndSupportMenu\";\nexport type { HelpAndSupportMenuProps } from \"./HelpAndSupportMenu\";\nexport { LinkingCommandsButton } from \"./LinkingCommandsButton\";\nexport { LinkBranchOrPullRequestDialog } from \"./LinkBranchOrPullRequestDialog\";\nexport type { LinkBranchOrPullRequestDialogProps } from \"./LinkBranchOrPullRequestDialog\";\nexport {\n ConnectRepositoryDialog,\n RepositorySelect,\n buildRepoOptions,\n CONNECTIONS,\n PROJECT_REPOSITORIES,\n CONNECTABLE_REPOSITORIES,\n} from \"./ConnectRepositoryDialog\";\nexport type {\n ConnectRepositoryDialogProps,\n RepositorySelectProps,\n Connection,\n ConnectionService,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nexport {\n WebhookLogsDialog,\n WEBHOOK_CONNECTIONS,\n WEBHOOK_REPOSITORIES,\n} from \"./WebhookLogsDialog\";\nexport type {\n WebhookLogsDialogProps,\n WebhookConnection,\n WebhookRepository,\n WebhookLog,\n} from \"./WebhookLogsDialog\";\nexport {\n SourceCodeSection,\n IssueRow,\n CodeRow,\n Spine,\n HistoryDialog,\n CompletedHeader,\n} from \"./SourceCodeSection\";\nexport type {\n IssueEntry,\n CodeEntry,\n Stage,\n HistoryEvent,\n StageState,\n CodeStatus,\n SectionVariant,\n} from \"./SourceCodeSection\";\nexport { SuggestSubtasksButton } from \"./SuggestSubtasksButton\";\nexport { TaskOptionsMenu, TaskListOptionsMenu } from \"./TaskOptionsMenu\";\nexport type {\n TaskOptionsMenuProps,\n TaskListOptionsMenuProps,\n} from \"./TaskOptionsMenu\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;AAEA,IAAAgB,QAAA,GAAAhB,OAAA;AAMA,IAAAiB,iBAAA,GAAAjB,OAAA;AACA,IAAAkB,mBAAA,GAAAlB,OAAA;AAEA,IAAAmB,sBAAA,GAAAnB,OAAA;AACA,IAAAoB,8BAAA,GAAApB,OAAA;AAEA,IAAAqB,wBAAA,GAAArB,OAAA;AAeA,IAAAsB,kBAAA,GAAAtB,OAAA;AAWA,IAAAuB,kBAAA,GAAAvB,OAAA;AAiBA,IAAAwB,sBAAA,GAAAxB,OAAA;AACA,IAAAyB,gBAAA,GAAAzB,OAAA","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactElement } from "react";
|
|
1
|
+
import React, { ReactElement } from "react";
|
|
2
2
|
export type ConnectionService = "github" | "gitlab";
|
|
3
3
|
export interface Connection {
|
|
4
4
|
id: string;
|
|
@@ -8,6 +8,8 @@ export interface Connection {
|
|
|
8
8
|
}
|
|
9
9
|
/** Human-readable provider label used in the group header "name (type)". */
|
|
10
10
|
export declare const serviceLabel: (service: ConnectionService) => string;
|
|
11
|
+
/** Provider glyph for a connection: GitHub / GitLab, Git for anything else. */
|
|
12
|
+
export declare const connectionIcon: (service?: ConnectionService) => ReactElement;
|
|
11
13
|
export interface Repository {
|
|
12
14
|
id: string;
|
|
13
15
|
/** Full repository path, e.g. activecollab/backend. */
|
|
@@ -19,13 +21,19 @@ export declare const CONNECTIONS: Connection[];
|
|
|
19
21
|
export declare const PROJECT_REPOSITORIES: Repository[];
|
|
20
22
|
/** Repositories available to connect (not yet linked to the project). */
|
|
21
23
|
export declare const CONNECTABLE_REPOSITORIES: Repository[];
|
|
22
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Build grouped Select options — groups and options both sorted by name. Each
|
|
26
|
+
* repository option carries a leading provider icon (GitHub / GitLab / Git) via
|
|
27
|
+
* the Select's `icon` slot; the group header is just the connection name, since
|
|
28
|
+
* the icon now conveys the service (no "(GitHub)" / "(GitLab)" suffix).
|
|
29
|
+
*/
|
|
23
30
|
export declare const buildRepoOptions: (repositories: Repository[], connections: Connection[]) => {
|
|
24
31
|
id: string;
|
|
25
32
|
name: string;
|
|
26
33
|
options: {
|
|
27
34
|
id: string;
|
|
28
35
|
name: string;
|
|
36
|
+
icon: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
29
37
|
}[];
|
|
30
38
|
}[];
|
|
31
39
|
export interface RepositorySelectProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectRepositoryDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/ConnectRepositoryDialog.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ConnectRepositoryDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/ConnectRepositoryDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,YAAY,EAKb,MAAM,OAAO,CAAC;AA8Bf,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,4EAA4E;AAC5E,eAAO,MAAM,YAAY,GAAI,SAAS,iBAAiB,KAAG,MACd,CAAC;AAE7C,+EAA+E;AAC/E,eAAO,MAAM,cAAc,GAAI,UAAU,iBAAiB,KAAG,YAQ5D,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,UAAU,EAGnC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,UAAU,EAQ5C,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,EAAE,UAAU,EAahD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,cAAc,UAAU,EAAE,EAC1B,aAAa,UAAU,EAAE;;;;;;;;GAgBsB,CAAC;AAwBlD,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,GAAI,qFAQ9B,qBAAqB,KAAG,YA8C1B,CAAC;AAwBF,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mEAAmE;IACnE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,iFAAiF;IACjF,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,uBAAuB,GAAI,0DAMrC,4BAA4B,KAAG,YA4EjC,CAAC"}
|
|
@@ -3,6 +3,7 @@ import styled, { createGlobalStyle } from "styled-components";
|
|
|
3
3
|
import { Button } from "../../components/Button";
|
|
4
4
|
import { Checkbox } from "../../components/Checkbox";
|
|
5
5
|
import { Dialog } from "../../components/Dialog";
|
|
6
|
+
import { GitHubIcon, GitIcon, GitLabIcon } from "../../components/Icons";
|
|
6
7
|
import { Label } from "../../components/Label";
|
|
7
8
|
import { Select } from "../../components/Select";
|
|
8
9
|
import { SelectTrigger } from "../../components/SelectTrigger";
|
|
@@ -26,6 +27,17 @@ const SANS = '-apple-system, BlinkMacSystemFont, "Roboto", "Helvetica Neue", Ari
|
|
|
26
27
|
|
|
27
28
|
/** Human-readable provider label used in the group header "name (type)". */
|
|
28
29
|
export const serviceLabel = service => service === "github" ? "GitHub" : "GitLab";
|
|
30
|
+
|
|
31
|
+
/** Provider glyph for a connection: GitHub / GitLab, Git for anything else. */
|
|
32
|
+
export const connectionIcon = service => {
|
|
33
|
+
if (service === "github") {
|
|
34
|
+
return /*#__PURE__*/React.createElement(GitHubIcon, null);
|
|
35
|
+
}
|
|
36
|
+
if (service === "gitlab") {
|
|
37
|
+
return /*#__PURE__*/React.createElement(GitLabIcon, null);
|
|
38
|
+
}
|
|
39
|
+
return /*#__PURE__*/React.createElement(GitIcon, null);
|
|
40
|
+
};
|
|
29
41
|
export const CONNECTIONS = [{
|
|
30
42
|
id: "gh-ac",
|
|
31
43
|
name: "ActiveCollab",
|
|
@@ -70,13 +82,19 @@ export const CONNECTABLE_REPOSITORIES = [{
|
|
|
70
82
|
connectionId: "gl-ops"
|
|
71
83
|
}];
|
|
72
84
|
|
|
73
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Build grouped Select options — groups and options both sorted by name. Each
|
|
87
|
+
* repository option carries a leading provider icon (GitHub / GitLab / Git) via
|
|
88
|
+
* the Select's `icon` slot; the group header is just the connection name, since
|
|
89
|
+
* the icon now conveys the service (no "(GitHub)" / "(GitLab)" suffix).
|
|
90
|
+
*/
|
|
74
91
|
export const buildRepoOptions = (repositories, connections) => [...connections].map(c => ({
|
|
75
92
|
id: c.id,
|
|
76
|
-
name: c.name
|
|
93
|
+
name: c.name,
|
|
77
94
|
options: repositories.filter(r => r.connectionId === c.id).sort((a, b) => a.name.localeCompare(b.name)).map(r => ({
|
|
78
95
|
id: r.id,
|
|
79
|
-
name: r.name
|
|
96
|
+
name: r.name,
|
|
97
|
+
icon: connectionIcon(c.service)
|
|
80
98
|
}))
|
|
81
99
|
})).filter(group => group.options.length > 0).sort((a, b) => a.name.localeCompare(b.name));
|
|
82
100
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectRepositoryDialog.js","names":["React","useCallback","useEffect","useRef","useState","styled","createGlobalStyle","Button","Checkbox","Dialog","Label","Select","SelectTrigger","Body2","SANS","serviceLabel","service","CONNECTIONS","id","name","PROJECT_REPOSITORIES","connectionId","CONNECTABLE_REPOSITORIES","buildRepoOptions","repositories","connections","map","c","options","filter","r","sort","a","b","localeCompare","group","length","RepoMenuGlobalStyle","p","$cls","$w","RepoSelectWrap","div","withConfig","displayName","componentId","RepositorySelect","_ref","_repositories$find$na","_repositories$find","selected","onChange","invalid","_ref$placeholder","placeholder","className","wrapRef","_useState","menuWidth","setMenuWidth","_useState2","Math","random","toString","slice","menuCls","measure","current","offsetWidth","selectedName","find","createElement","ref","undefined","v","String","selectClassName","onSelectOpen","forceCloseMenu","target","typographyProps","color","StyledConnectBody","ConnectRepositoryDialog","_ref2","open","onClose","onConnect","_ref2$repositories","_ref2$connections","_useState3","setSelected","_useState4","issueSync","setIssueSync","_useState5","attempted","setAttempted","handleConnect","repo","disableCloseOnEsc","Title","ContentDivider","Content","size","checked","e","htmlFor","weight","Actions","variant","style","marginRight","onClick"],"sources":["../../../../src/presentation/shared/ConnectRepositoryDialog.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport { Button } from \"../../components/Button\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { Label } from \"../../components/Label\";\nimport { Select } from \"../../components/Select\";\nimport { SelectTrigger } from \"../../components/SelectTrigger\";\nimport { Body2 } from \"../../components/Typography\";\n\n/**\n * \"Connect Repository\" — the project-side counterpart to the \"Connect Project\"\n * dialog on the Repositories page (Apps & Integrations). Same operation from\n * the other end: pick a repository, choose which features to enable, and make\n * the connection. Built as a shared component because more than one story links\n * a repository this way.\n *\n * Also exports `RepositorySelect`, the grouped repository picker (repositories\n * grouped under their connection name, everything sorted by name, filterable\n * via the built-in search) reused wherever a repository is chosen.\n */\n\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\n\n/* ---- Data model + mock data ----------------------------------------- */\n\nexport type ConnectionService = \"github\" | \"gitlab\";\n\nexport interface Connection {\n id: string;\n /** Org / group name, e.g. \"ActiveCollab\" or \"a51-ops\". */\n name: string;\n service: ConnectionService;\n}\n\n/** Human-readable provider label used in the group header \"name (type)\". */\nexport const serviceLabel = (service: ConnectionService): string =>\n service === \"github\" ? \"GitHub\" : \"GitLab\";\n\nexport interface Repository {\n id: string;\n /** Full repository path, e.g. activecollab/backend. */\n name: string;\n connectionId: string;\n}\n\nexport const CONNECTIONS: Connection[] = [\n { id: \"gh-ac\", name: \"ActiveCollab\", service: \"github\" },\n { id: \"gl-ops\", name: \"a51-ops\", service: \"gitlab\" },\n];\n\n/** Repositories already connected to the project (shown in link pickers). */\nexport const PROJECT_REPOSITORIES: Repository[] = [\n { id: \"backend\", name: \"activecollab/backend\", connectionId: \"gh-ac\" },\n { id: \"frontend\", name: \"activecollab/frontend\", connectionId: \"gh-ac\" },\n {\n id: \"infra\",\n name: \"activecollab/infrastructure\",\n connectionId: \"gl-ops\",\n },\n];\n\n/** Repositories available to connect (not yet linked to the project). */\nexport const CONNECTABLE_REPOSITORIES: Repository[] = [\n { id: \"mobile\", name: \"activecollab/mobile\", connectionId: \"gh-ac\" },\n {\n id: \"design-system\",\n name: \"activecollab/design-system\",\n connectionId: \"gh-ac\",\n },\n {\n id: \"deploy-scripts\",\n name: \"a51-ops/deploy-scripts\",\n connectionId: \"gl-ops\",\n },\n { id: \"runners\", name: \"a51-ops/ci-runners\", connectionId: \"gl-ops\" },\n];\n\n/** Build grouped Select options — groups and options both sorted by name. */\nexport const buildRepoOptions = (\n repositories: Repository[],\n connections: Connection[]\n) =>\n [...connections]\n .map((c) => ({\n id: c.id,\n name: `${c.name} (${serviceLabel(c.service)})`,\n options: repositories\n .filter((r) => r.connectionId === c.id)\n .sort((a, b) => a.name.localeCompare(b.name))\n .map((r) => ({ id: r.id, name: r.name })),\n }))\n .filter((group) => group.options.length > 0)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n/* ---- RepositorySelect ------------------------------------------------ */\n\n/**\n * The grouped repository menu renders through a portal, so the \"match the\n * trigger width\" override has to be global, scoped to this instance's class.\n */\nconst RepoMenuGlobalStyle = createGlobalStyle<{ $cls: string; $w?: number }>`\n .c-select.${(p) => p.$cls} {\n ${(p) =>\n p.$w ? `width: ${p.$w}px !important; max-width: none !important;` : \"\"}\n }\n`;\n\nconst RepoSelectWrap = styled.div`\n font-family: ${SANS};\n\n .repo-trigger {\n width: 100%;\n max-width: none;\n }\n`;\n\nexport interface RepositorySelectProps {\n repositories: Repository[];\n connections: Connection[];\n selected: string | null;\n onChange: (id: string) => void;\n invalid?: boolean;\n placeholder?: string;\n className?: string;\n}\n\nexport const RepositorySelect = ({\n repositories,\n connections,\n selected,\n onChange,\n invalid,\n placeholder = \"Choose repository\",\n className,\n}: RepositorySelectProps): ReactElement => {\n const wrapRef = useRef<HTMLDivElement>(null);\n const [menuWidth, setMenuWidth] = useState<number | undefined>();\n const [menuCls] = useState(\n () => `repo-select-menu-${Math.random().toString(36).slice(2)}`\n );\n\n const measure = useCallback(() => {\n if (wrapRef.current) {\n setMenuWidth(wrapRef.current.offsetWidth);\n }\n }, []);\n\n useEffect(() => {\n measure();\n }, [measure]);\n\n const options = buildRepoOptions(repositories, connections);\n const selectedName =\n repositories.find((r) => r.id === selected)?.name ?? placeholder;\n\n return (\n <RepoSelectWrap ref={wrapRef} className={className}>\n <RepoMenuGlobalStyle $cls={menuCls} $w={menuWidth} />\n <Select\n options={options}\n selected={selected === null ? undefined : selected}\n onChange={(v) => onChange(String(v))}\n placeholder=\"Search repositories\"\n selectClassName={menuCls}\n onSelectOpen={measure}\n forceCloseMenu\n target={\n <SelectTrigger\n className=\"repo-trigger\"\n invalid={invalid}\n typographyProps={\n selected === null ? { color: \"tertiary\" } : undefined\n }\n >\n {selectedName}\n </SelectTrigger>\n }\n />\n </RepoSelectWrap>\n );\n};\n\n/* ---- ConnectRepositoryDialog ---------------------------------------- */\n\nconst StyledConnectBody = styled.div`\n font-family: ${SANS};\n\n .cr-field {\n margin-bottom: 16px;\n }\n .cr-label {\n display: block;\n margin-bottom: 6px;\n }\n .cr-check {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .cr-check-hint {\n margin-top: 6px;\n }\n`;\n\nexport interface ConnectRepositoryDialogProps {\n open: boolean;\n onClose: () => void;\n /** Called with the connected repository when the user confirms. */\n onConnect: (repository: Repository) => void;\n /** Repositories that can be connected (defaults to the mock connectable set). */\n repositories?: Repository[];\n connections?: Connection[];\n}\n\nexport const ConnectRepositoryDialog = ({\n open,\n onClose,\n onConnect,\n repositories = CONNECTABLE_REPOSITORIES,\n connections = CONNECTIONS,\n}: ConnectRepositoryDialogProps): ReactElement => {\n const [selected, setSelected] = useState<string | null>(null);\n const [issueSync, setIssueSync] = useState(false);\n const [attempted, setAttempted] = useState(false);\n\n // Reset the form each time the dialog opens.\n useEffect(() => {\n if (open) {\n setSelected(null);\n setIssueSync(false);\n setAttempted(false);\n }\n }, [open]);\n\n const invalid = attempted && selected === null;\n\n const handleConnect = () => {\n const repo = repositories.find((r) => r.id === selected);\n if (!repo) {\n setAttempted(true);\n return;\n }\n onConnect(repo);\n onClose();\n };\n\n return (\n <Dialog open={open} onClose={onClose} disableCloseOnEsc>\n <Dialog.Title>Connect Repository</Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <StyledConnectBody>\n <div className=\"cr-field\">\n <Label size=\"small\" className=\"cr-label\" invalid={invalid}>\n Repository\n </Label>\n <RepositorySelect\n repositories={repositories}\n connections={connections}\n selected={selected}\n onChange={setSelected}\n invalid={invalid}\n />\n </div>\n\n <div className=\"cr-check\">\n <Checkbox\n id=\"cr-issue-sync\"\n checked={issueSync}\n onChange={(e) => setIssueSync(e.target.checked)}\n />\n <Label htmlFor=\"cr-issue-sync\" weight=\"regular\">\n Enable issue sync\n </Label>\n </div>\n <Body2 className=\"cr-check-hint\" color=\"tertiary\">\n Issues from this repository will create and update tasks in this\n project.\n </Body2>\n </StyledConnectBody>\n </Dialog.Content>\n <Dialog.ContentDivider />\n <Dialog.Actions>\n <Button\n variant=\"primary\"\n style={{ marginRight: 12 }}\n onClick={handleConnect}\n >\n Connect\n </Button>\n <Button variant=\"secondary\" onClick={onClose}>\n Cancel\n </Button>\n </Dialog.Actions>\n </Dialog>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ConnectRepositoryDialog.js","names":["React","useCallback","useEffect","useRef","useState","styled","createGlobalStyle","Button","Checkbox","Dialog","GitHubIcon","GitIcon","GitLabIcon","Label","Select","SelectTrigger","Body2","SANS","serviceLabel","service","connectionIcon","createElement","CONNECTIONS","id","name","PROJECT_REPOSITORIES","connectionId","CONNECTABLE_REPOSITORIES","buildRepoOptions","repositories","connections","map","c","options","filter","r","sort","a","b","localeCompare","icon","group","length","RepoMenuGlobalStyle","p","$cls","$w","RepoSelectWrap","div","withConfig","displayName","componentId","RepositorySelect","_ref","_repositories$find$na","_repositories$find","selected","onChange","invalid","_ref$placeholder","placeholder","className","wrapRef","_useState","menuWidth","setMenuWidth","_useState2","Math","random","toString","slice","menuCls","measure","current","offsetWidth","selectedName","find","ref","undefined","v","String","selectClassName","onSelectOpen","forceCloseMenu","target","typographyProps","color","StyledConnectBody","ConnectRepositoryDialog","_ref2","open","onClose","onConnect","_ref2$repositories","_ref2$connections","_useState3","setSelected","_useState4","issueSync","setIssueSync","_useState5","attempted","setAttempted","handleConnect","repo","disableCloseOnEsc","Title","ContentDivider","Content","size","checked","e","htmlFor","weight","Actions","variant","style","marginRight","onClick"],"sources":["../../../../src/presentation/shared/ConnectRepositoryDialog.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport { Button } from \"../../components/Button\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { GitHubIcon, GitIcon, GitLabIcon } from \"../../components/Icons\";\nimport { Label } from \"../../components/Label\";\nimport { Select } from \"../../components/Select\";\nimport { SelectTrigger } from \"../../components/SelectTrigger\";\nimport { Body2 } from \"../../components/Typography\";\n\n/**\n * \"Connect Repository\" — the project-side counterpart to the \"Connect Project\"\n * dialog on the Repositories page (Apps & Integrations). Same operation from\n * the other end: pick a repository, choose which features to enable, and make\n * the connection. Built as a shared component because more than one story links\n * a repository this way.\n *\n * Also exports `RepositorySelect`, the grouped repository picker (repositories\n * grouped under their connection name, everything sorted by name, filterable\n * via the built-in search) reused wherever a repository is chosen.\n */\n\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\n\n/* ---- Data model + mock data ----------------------------------------- */\n\nexport type ConnectionService = \"github\" | \"gitlab\";\n\nexport interface Connection {\n id: string;\n /** Org / group name, e.g. \"ActiveCollab\" or \"a51-ops\". */\n name: string;\n service: ConnectionService;\n}\n\n/** Human-readable provider label used in the group header \"name (type)\". */\nexport const serviceLabel = (service: ConnectionService): string =>\n service === \"github\" ? \"GitHub\" : \"GitLab\";\n\n/** Provider glyph for a connection: GitHub / GitLab, Git for anything else. */\nexport const connectionIcon = (service?: ConnectionService): ReactElement => {\n if (service === \"github\") {\n return <GitHubIcon />;\n }\n if (service === \"gitlab\") {\n return <GitLabIcon />;\n }\n return <GitIcon />;\n};\n\nexport interface Repository {\n id: string;\n /** Full repository path, e.g. activecollab/backend. */\n name: string;\n connectionId: string;\n}\n\nexport const CONNECTIONS: Connection[] = [\n { id: \"gh-ac\", name: \"ActiveCollab\", service: \"github\" },\n { id: \"gl-ops\", name: \"a51-ops\", service: \"gitlab\" },\n];\n\n/** Repositories already connected to the project (shown in link pickers). */\nexport const PROJECT_REPOSITORIES: Repository[] = [\n { id: \"backend\", name: \"activecollab/backend\", connectionId: \"gh-ac\" },\n { id: \"frontend\", name: \"activecollab/frontend\", connectionId: \"gh-ac\" },\n {\n id: \"infra\",\n name: \"activecollab/infrastructure\",\n connectionId: \"gl-ops\",\n },\n];\n\n/** Repositories available to connect (not yet linked to the project). */\nexport const CONNECTABLE_REPOSITORIES: Repository[] = [\n { id: \"mobile\", name: \"activecollab/mobile\", connectionId: \"gh-ac\" },\n {\n id: \"design-system\",\n name: \"activecollab/design-system\",\n connectionId: \"gh-ac\",\n },\n {\n id: \"deploy-scripts\",\n name: \"a51-ops/deploy-scripts\",\n connectionId: \"gl-ops\",\n },\n { id: \"runners\", name: \"a51-ops/ci-runners\", connectionId: \"gl-ops\" },\n];\n\n/**\n * Build grouped Select options — groups and options both sorted by name. Each\n * repository option carries a leading provider icon (GitHub / GitLab / Git) via\n * the Select's `icon` slot; the group header is just the connection name, since\n * the icon now conveys the service (no \"(GitHub)\" / \"(GitLab)\" suffix).\n */\nexport const buildRepoOptions = (\n repositories: Repository[],\n connections: Connection[]\n) =>\n [...connections]\n .map((c) => ({\n id: c.id,\n name: c.name,\n options: repositories\n .filter((r) => r.connectionId === c.id)\n .sort((a, b) => a.name.localeCompare(b.name))\n .map((r) => ({\n id: r.id,\n name: r.name,\n icon: connectionIcon(c.service),\n })),\n }))\n .filter((group) => group.options.length > 0)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n/* ---- RepositorySelect ------------------------------------------------ */\n\n/**\n * The grouped repository menu renders through a portal, so the \"match the\n * trigger width\" override has to be global, scoped to this instance's class.\n */\nconst RepoMenuGlobalStyle = createGlobalStyle<{ $cls: string; $w?: number }>`\n .c-select.${(p) => p.$cls} {\n ${(p) =>\n p.$w ? `width: ${p.$w}px !important; max-width: none !important;` : \"\"}\n }\n`;\n\nconst RepoSelectWrap = styled.div`\n font-family: ${SANS};\n\n .repo-trigger {\n width: 100%;\n max-width: none;\n }\n`;\n\nexport interface RepositorySelectProps {\n repositories: Repository[];\n connections: Connection[];\n selected: string | null;\n onChange: (id: string) => void;\n invalid?: boolean;\n placeholder?: string;\n className?: string;\n}\n\nexport const RepositorySelect = ({\n repositories,\n connections,\n selected,\n onChange,\n invalid,\n placeholder = \"Choose repository\",\n className,\n}: RepositorySelectProps): ReactElement => {\n const wrapRef = useRef<HTMLDivElement>(null);\n const [menuWidth, setMenuWidth] = useState<number | undefined>();\n const [menuCls] = useState(\n () => `repo-select-menu-${Math.random().toString(36).slice(2)}`\n );\n\n const measure = useCallback(() => {\n if (wrapRef.current) {\n setMenuWidth(wrapRef.current.offsetWidth);\n }\n }, []);\n\n useEffect(() => {\n measure();\n }, [measure]);\n\n const options = buildRepoOptions(repositories, connections);\n const selectedName =\n repositories.find((r) => r.id === selected)?.name ?? placeholder;\n\n return (\n <RepoSelectWrap ref={wrapRef} className={className}>\n <RepoMenuGlobalStyle $cls={menuCls} $w={menuWidth} />\n <Select\n options={options}\n selected={selected === null ? undefined : selected}\n onChange={(v) => onChange(String(v))}\n placeholder=\"Search repositories\"\n selectClassName={menuCls}\n onSelectOpen={measure}\n forceCloseMenu\n target={\n <SelectTrigger\n className=\"repo-trigger\"\n invalid={invalid}\n typographyProps={\n selected === null ? { color: \"tertiary\" } : undefined\n }\n >\n {selectedName}\n </SelectTrigger>\n }\n />\n </RepoSelectWrap>\n );\n};\n\n/* ---- ConnectRepositoryDialog ---------------------------------------- */\n\nconst StyledConnectBody = styled.div`\n font-family: ${SANS};\n\n .cr-field {\n margin-bottom: 16px;\n }\n .cr-label {\n display: block;\n margin-bottom: 6px;\n }\n .cr-check {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .cr-check-hint {\n margin-top: 6px;\n }\n`;\n\nexport interface ConnectRepositoryDialogProps {\n open: boolean;\n onClose: () => void;\n /** Called with the connected repository when the user confirms. */\n onConnect: (repository: Repository) => void;\n /** Repositories that can be connected (defaults to the mock connectable set). */\n repositories?: Repository[];\n connections?: Connection[];\n}\n\nexport const ConnectRepositoryDialog = ({\n open,\n onClose,\n onConnect,\n repositories = CONNECTABLE_REPOSITORIES,\n connections = CONNECTIONS,\n}: ConnectRepositoryDialogProps): ReactElement => {\n const [selected, setSelected] = useState<string | null>(null);\n const [issueSync, setIssueSync] = useState(false);\n const [attempted, setAttempted] = useState(false);\n\n // Reset the form each time the dialog opens.\n useEffect(() => {\n if (open) {\n setSelected(null);\n setIssueSync(false);\n setAttempted(false);\n }\n }, [open]);\n\n const invalid = attempted && selected === null;\n\n const handleConnect = () => {\n const repo = repositories.find((r) => r.id === selected);\n if (!repo) {\n setAttempted(true);\n return;\n }\n onConnect(repo);\n onClose();\n };\n\n return (\n <Dialog open={open} onClose={onClose} disableCloseOnEsc>\n <Dialog.Title>Connect Repository</Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <StyledConnectBody>\n <div className=\"cr-field\">\n <Label size=\"small\" className=\"cr-label\" invalid={invalid}>\n Repository\n </Label>\n <RepositorySelect\n repositories={repositories}\n connections={connections}\n selected={selected}\n onChange={setSelected}\n invalid={invalid}\n />\n </div>\n\n <div className=\"cr-check\">\n <Checkbox\n id=\"cr-issue-sync\"\n checked={issueSync}\n onChange={(e) => setIssueSync(e.target.checked)}\n />\n <Label htmlFor=\"cr-issue-sync\" weight=\"regular\">\n Enable issue sync\n </Label>\n </div>\n <Body2 className=\"cr-check-hint\" color=\"tertiary\">\n Issues from this repository will create and update tasks in this\n project.\n </Body2>\n </StyledConnectBody>\n </Dialog.Content>\n <Dialog.ContentDivider />\n <Dialog.Actions>\n <Button\n variant=\"primary\"\n style={{ marginRight: 12 }}\n onClick={handleConnect}\n >\n Connect\n </Button>\n <Button variant=\"secondary\" onClick={onClose}>\n Cancel\n </Button>\n </Dialog.Actions>\n </Dialog>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkBranchOrPullRequestDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/LinkBranchOrPullRequestDialog.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,YAAY,EAKb,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LinkBranchOrPullRequestDialog.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/LinkBranchOrPullRequestDialog.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,YAAY,EAKb,MAAM,OAAO,CAAC;AAogBf,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,6BAA6B,GAAI,oBAG3C,kCAAkC,KAAG,YAgTvC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
2
2
|
import styled, { createGlobalStyle } from "styled-components";
|
|
3
|
-
import { CONNECTABLE_REPOSITORIES, CONNECTIONS, ConnectRepositoryDialog, PROJECT_REPOSITORIES, RepositorySelect
|
|
3
|
+
import { CONNECTABLE_REPOSITORIES, CONNECTIONS, connectionIcon, ConnectRepositoryDialog, PROJECT_REPOSITORIES, RepositorySelect } from "./ConnectRepositoryDialog";
|
|
4
4
|
import { Button } from "../../components/Button";
|
|
5
5
|
import { ChooseV2 } from "../../components/ChooseV2";
|
|
6
6
|
import { Dialog } from "../../components/Dialog";
|
|
@@ -131,20 +131,23 @@ const linkableDetail = item => item.kind === "pr" && item.author ? formatAgo(ite
|
|
|
131
131
|
|
|
132
132
|
/**
|
|
133
133
|
* Grouped options for the Select. One group per repository, labelled
|
|
134
|
-
* "repo (Org
|
|
135
|
-
* ordered by latest activity (freshest first).
|
|
136
|
-
*
|
|
134
|
+
* "repo (Org)" and sorted by name; inside a group, branches and PRs are
|
|
135
|
+
* ordered by latest activity (freshest first). Each option carries a leading
|
|
136
|
+
* provider icon (GitHub / GitLab / Git) via the Select's `icon` slot; the
|
|
137
|
+
* service type is dropped from the group header since the icon now conveys it.
|
|
137
138
|
*/
|
|
138
139
|
const GROUPED_OPTIONS = PROJECT_REPOSITORIES.map(repo => {
|
|
139
140
|
const connection = CONNECTIONS.find(c => c.id === repo.connectionId);
|
|
141
|
+
const icon = connectionIcon(connection == null ? void 0 : connection.service);
|
|
140
142
|
const items = LINKABLES.filter(l => l.repoId === repo.id).sort((a, b) => a.updatedMinutesAgo - b.updatedMinutesAgo).map(l => ({
|
|
141
143
|
id: l.id,
|
|
142
144
|
name: l.name,
|
|
143
|
-
additionalInfo: linkableDetail(l)
|
|
145
|
+
additionalInfo: linkableDetail(l),
|
|
146
|
+
icon
|
|
144
147
|
}));
|
|
145
148
|
return {
|
|
146
149
|
id: repo.id,
|
|
147
|
-
name: connection ? repo.name + " (" + connection.name + "
|
|
150
|
+
name: connection ? repo.name + " (" + connection.name + ")" : repo.name,
|
|
148
151
|
options: items
|
|
149
152
|
};
|
|
150
153
|
}).filter(group => group.options.length > 0).sort((a, b) => a.name.localeCompare(b.name));
|