@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.
Files changed (24) hide show
  1. package/dist/cjs/presentation/shared/ConnectRepositoryDialog.js +22 -4
  2. package/dist/cjs/presentation/shared/ConnectRepositoryDialog.js.map +1 -1
  3. package/dist/cjs/presentation/shared/LinkBranchOrPullRequestDialog.js +8 -5
  4. package/dist/cjs/presentation/shared/LinkBranchOrPullRequestDialog.js.map +1 -1
  5. package/dist/cjs/presentation/shared/SourceCodeSection.js +1001 -0
  6. package/dist/cjs/presentation/shared/SourceCodeSection.js.map +1 -0
  7. package/dist/cjs/presentation/shared/index.js +43 -0
  8. package/dist/cjs/presentation/shared/index.js.map +1 -1
  9. package/dist/esm/presentation/shared/ConnectRepositoryDialog.d.ts +10 -2
  10. package/dist/esm/presentation/shared/ConnectRepositoryDialog.d.ts.map +1 -1
  11. package/dist/esm/presentation/shared/ConnectRepositoryDialog.js +21 -3
  12. package/dist/esm/presentation/shared/ConnectRepositoryDialog.js.map +1 -1
  13. package/dist/esm/presentation/shared/LinkBranchOrPullRequestDialog.d.ts.map +1 -1
  14. package/dist/esm/presentation/shared/LinkBranchOrPullRequestDialog.js +9 -6
  15. package/dist/esm/presentation/shared/LinkBranchOrPullRequestDialog.js.map +1 -1
  16. package/dist/esm/presentation/shared/SourceCodeSection.d.ts +88 -0
  17. package/dist/esm/presentation/shared/SourceCodeSection.d.ts.map +1 -0
  18. package/dist/esm/presentation/shared/SourceCodeSection.js +936 -0
  19. package/dist/esm/presentation/shared/SourceCodeSection.js.map +1 -0
  20. package/dist/esm/presentation/shared/index.d.ts +2 -0
  21. package/dist/esm/presentation/shared/index.d.ts.map +1 -1
  22. package/dist/esm/presentation/shared/index.js +1 -0
  23. package/dist/esm/presentation/shared/index.js.map +1 -1
  24. 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;AAEA,IAAAgB,QAAA,GAAAhB,OAAA;AAMA,IAAAiB,iBAAA,GAAAjB,OAAA;AACA,IAAAkB,mBAAA,GAAAlB,OAAA;AAEA,IAAAmB,sBAAA,GAAAnB,OAAA;AACA,IAAAoB,8BAAA,GAAApB,OAAA;AAEA,IAAAqB,wBAAA,GAAArB,OAAA;AAeA,IAAAsB,kBAAA,GAAAtB,OAAA;AAWA,IAAAuB,sBAAA,GAAAvB,OAAA;AACA,IAAAwB,gBAAA,GAAAxB,OAAA","ignoreList":[]}
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
- /** Build grouped Select options — groups and options both sorted by name. */
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,OAAc,EACZ,YAAY,EAKb,MAAM,OAAO,CAAC;AA6Bf,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,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,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAC3B,cAAc,UAAU,EAAE,EAC1B,aAAa,UAAU,EAAE;;;;;;;GAYsB,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"}
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
- /** Build grouped Select options — groups and options both sorted by name. */
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 + " (" + serviceLabel(c.service) + ")",
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;AAmgBf,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
+ {"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, serviceLabel } from "./ConnectRepositoryDialog";
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, Type)" and sorted by name; inside a group, branches and PRs are
135
- * ordered by latest activity (freshest first). Standard option rendering shows
136
- * the name (truncated) with the detail right-aligned and a radio.
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 + ", " + serviceLabel(connection.service) + ")" : repo.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));