@activecollab/components 2.0.389 → 2.0.391

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.
@@ -161,7 +161,7 @@ var CommandsTab = function CommandsTab() {
161
161
  className: "lc-tabbody"
162
162
  }, /*#__PURE__*/_react.default.createElement(_Typography.Body2, {
163
163
  color: "secondary"
164
- }, "The table below lists magic words and slash commands that you can use in a commit message or a pull request description to act on the linked task. Example:"), /*#__PURE__*/_react.default.createElement("pre", {
164
+ }, "The table below lists action words and slash commands that you can use in a commit message or a pull request description to act on the linked task. Example:"), /*#__PURE__*/_react.default.createElement("pre", {
165
165
  className: "lc-example"
166
166
  }, EXAMPLE_COMMIT), /*#__PURE__*/_react.default.createElement("table", null, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("th", null, "Command"), /*#__PURE__*/_react.default.createElement("th", null, "What it does"))), /*#__PURE__*/_react.default.createElement("tbody", null, COMMANDS.map(function (c) {
167
167
  return /*#__PURE__*/_react.default.createElement("tr", {
@@ -1 +1 @@
1
- {"version":3,"file":"LinkingCommandsButton.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_ChooseV","_Dialog","_IconButton","_Icons","_Loaders","_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","SANS","MONO","TASK_ID","SUGGESTED_BRANCH","shellQuote","concat","replace","StyledButton","styled","Trigger","withConfig","displayName","componentId","StyledTitleRow","div","StyledBody","TAB_OPTIONS","id","COMMANDS","cmd","does","EXAMPLE_COMMIT","LinkingTab","_ref","loading","branch","_useState","useState","_useState2","copied","setCopied","command","copy","_navigator$clipboard","navigator","clipboard","writeText","window","setTimeout","createElement","className","Body2","color","SkeletonLoader","Tooltip","title","type","onClick","CopyIcon","CommandsTab","map","c","key","LinkingCommandsButton","exports","_useState3","_useState4","open","setOpen","_useState5","_useState6","tab","setTab","_useState7","_useState8","branchLoading","setBranchLoading","_useState9","_useState0","suggestedBranch","setSuggestedBranch","useEffect","undefined","timer","clearTimeout","openDialog","Fragment","Dialog","onClose","enableBackgroundClick","Title","disableDefaultHeading","Header3","IconButton","variant","CancelCrossIcon","ContentDivider","Content","HashIcon","CommandLineIcon","ChooseV2","options","selected","onChange","ids"],"sources":["../../../../src/presentation/shared/LinkingCommandsButton.tsx"],"sourcesContent":["import React, { ReactElement, useEffect, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { ChooseV2, ChooseV2Option } from \"../../components/ChooseV2\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n CancelCrossIcon,\n CommandLineIcon,\n CopyIcon,\n HashIcon,\n} from \"../../components/Icons\";\nimport { SkeletonLoader } from \"../../components/Loaders\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Trigger } from \"../../components/Trigger\";\nimport { Body2, Header3 } from \"../../components/Typography\";\n\n/**\n * \"Linking and Commands\" button — same small outlined shape and placement as\n * the \"Suggest Subtasks\" button, but without an icon or the AI gradient (this\n * is not an AI feature). Clicking it opens a reference dialog: a short pitch\n * with a one-liner each for Linking and Commands, a centered ChooseV2 to switch\n * between the two conventions (Linking default), and the full instructions for\n * whichever is selected below it.\n */\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\nconst MONO = \"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace\";\n\n/** The example task these instructions are written against. */\nconst TASK_ID = 4231;\n/**\n * Suggested branch name for this task — in production it is resolved per repo\n * via GET .../tasks/{task_id}/source/suggest-branch-name. Mocked here.\n */\nconst SUGGESTED_BRANCH = \"ilija/4231-add-cacak-region-support\";\n\n/** POSIX-safe single-quote escaping for a value dropped into a shell command. */\nconst shellQuote = (value: string): string =>\n `'${value.replace(/'/g, \"'\\\\''\")}'`;\n\nconst StyledButton = styled(Trigger)`\n .lc-btn {\n display: inline-flex;\n align-items: center;\n color: var(--color-theme-700);\n border: 1px solid var(--color-theme-500);\n background-color: transparent;\n padding: 3px 8px;\n font-weight: 500;\n font-size: 12px;\n letter-spacing: 0.5px;\n line-height: 16px;\n border-radius: 6px;\n transition: border-color 0.2s ease, color 0.2s ease;\n }\n &:hover .lc-btn {\n border-color: var(--color-theme-700);\n color: var(--color-theme-900);\n }\n`;\n\nconst StyledTitleRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n`;\n\nconst StyledBody = styled.div`\n font-family: ${SANS};\n\n .lc-intro {\n margin-bottom: 18px;\n }\n .lc-lead {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n margin-top: 12px;\n }\n .lc-lead svg {\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n margin-top: 2px;\n }\n .lc-term {\n font-weight: 600;\n color: var(--color-theme-900);\n }\n\n /* ChooseV2 root is passed .lc-choosectl; its inner flex row is centered. */\n .lc-choosectl {\n margin-bottom: 18px;\n }\n .lc-choosectl > div {\n justify-content: center;\n }\n\n .lc-list {\n margin: 8px 0 0;\n padding-left: 18px;\n }\n .lc-list li {\n margin-bottom: 6px;\n }\n .lc-invite {\n margin-top: 14px;\n }\n .code {\n font-family: ${MONO};\n background: var(--color-theme-200);\n border-radius: 4px;\n padding: 1px 5px;\n font-size: 12px;\n color: var(--color-theme-900);\n }\n .lc-copy {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n margin-top: 10px;\n padding: 8px 10px;\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n }\n .lc-copy code {\n font-family: ${MONO};\n font-size: 12px;\n color: var(--color-theme-900);\n overflow-x: auto;\n white-space: nowrap;\n }\n .lc-copy-btn {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 2px;\n color: var(--color-theme-600);\n transition: color 0.15s ease;\n }\n .lc-copy-btn:hover {\n color: var(--color-theme-900);\n }\n .lc-copy-btn svg {\n width: 16px;\n height: 16px;\n }\n .lc-copy-skel {\n height: 37px;\n width: 100%;\n margin-top: 10px;\n border-radius: 6px;\n }\n .lc-example {\n font-family: ${MONO};\n font-size: 12px;\n line-height: 1.5;\n color: var(--color-theme-900);\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n padding: 10px 12px;\n margin-top: 12px;\n white-space: pre-wrap;\n overflow-x: auto;\n }\n table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 12px;\n }\n th,\n td {\n text-align: left;\n padding: 8px 10px;\n border-bottom: 1px solid var(--border-primary);\n vertical-align: top;\n }\n th {\n font-size: 12px;\n font-weight: 500;\n color: var(--color-theme-600);\n }\n`;\n\ntype LcTab = \"linking\" | \"commands\";\n\nconst TAB_OPTIONS: ChooseV2Option[] = [\n { id: \"linking\", name: \"Linking\" },\n { id: \"commands\", name: \"Commands\" },\n];\n\ninterface Command {\n cmd: string;\n does: string;\n}\n\nconst COMMANDS: Command[] = [\n { cmd: \"Closes #34\", does: \"Closes the task when the pull request merges\" },\n { cmd: \"Fixes #34\", does: \"Same as Closes: closes on merge\" },\n { cmd: \"Refs #34\", does: \"Links to the task without closing it\" },\n { cmd: \"/spend 1:30\", does: \"Logs time against the task\" },\n { cmd: \"/estimate 4:00\", does: \"Sets the task's time estimate\" },\n { cmd: \"/done\", does: \"Marks the task complete\" },\n { cmd: \"/reopen\", does: \"Reopens the task\" },\n { cmd: \"/assign @ilija\", does: \"Assigns the task to a user\" },\n { cmd: \"/label In Progress\", does: \"Adds a label to the task\" },\n { cmd: \"/comment Deployed to staging\", does: \"Posts a comment on the task\" },\n { cmd: \"/relate #35\", does: \"Relates this task to another task\" },\n];\n\n/** Illustrative commit message: closes the task, logs time, leaves a note. */\nconst EXAMPLE_COMMIT = `Fix ranks reset when a contract is archived\n\nCloses #${TASK_ID}\n/spend 1:30\n/comment Verified on staging, ranks hold after archive`;\n\ninterface LinkingTabProps {\n loading: boolean;\n branch: string | null;\n}\n\nconst LinkingTab = ({ loading, branch }: LinkingTabProps): ReactElement => {\n const [copied, setCopied] = useState(false);\n const command = branch ? `git checkout -b ${shellQuote(branch)}` : \"\";\n\n const copy = (): void => {\n if (!command) return;\n // eslint-disable-next-line compat/compat\n void navigator.clipboard?.writeText(command);\n setCopied(true);\n window.setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n Mention the task in your git activity and it links to this task on its\n own:\n </Body2>\n <ul className=\"lc-list\">\n <li>\n <Body2>\n <span className=\"lc-term\">In a branch name:</span> the raw task ID{\" \"}\n <span className=\"code\">{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">\n In a title, commit message, or description:\n </span>{\" \"}\n <span className=\"code\">#{TASK_ID}</span> or{\" \"}\n <span className=\"code\">AC-{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">Anywhere:</span> the task URL{\" \"}\n <span className=\"code\">\n https://app.activecollab.com/1/projects/2110/tasks/{TASK_ID}\n </span>\n </Body2>\n </li>\n </ul>\n\n <div className=\"lc-invite\">\n <Body2 color=\"secondary\">\n Give the branch a name with the task number in it and it links the\n moment you push. Create one from the suggested name:\n </Body2>\n {loading ? (\n <SkeletonLoader className=\"lc-copy-skel\" />\n ) : (\n <div className=\"lc-copy\">\n <code>{command}</code>\n <Tooltip title={copied ? \"Copied!\" : \"Copy\"}>\n <button\n type=\"button\"\n className=\"lc-copy-btn\"\n onClick={copy}\n aria-label=\"Copy command\"\n >\n <CopyIcon />\n </button>\n </Tooltip>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nconst CommandsTab = (): ReactElement => (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n The table below lists magic words and slash commands that you can use in a\n commit message or a pull request description to act on the linked task.\n Example:\n </Body2>\n <pre className=\"lc-example\">{EXAMPLE_COMMIT}</pre>\n <table>\n <thead>\n <tr>\n <th>Command</th>\n <th>What it does</th>\n </tr>\n </thead>\n <tbody>\n {COMMANDS.map((c) => (\n <tr key={c.cmd}>\n <td>\n <span className=\"code\">{c.cmd}</span>\n </td>\n <td>\n <Body2 color=\"secondary\">{c.does}</Body2>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n);\n\nexport const LinkingCommandsButton = (): ReactElement => {\n const [open, setOpen] = useState(false);\n const [tab, setTab] = useState<LcTab>(\"linking\");\n const [branchLoading, setBranchLoading] = useState(true);\n const [suggestedBranch, setSuggestedBranch] = useState<string | null>(null);\n\n // Mock the suggest-branch-name API load: ~1s skeleton whenever the dialog\n // opens, then reveal the copyable git command.\n useEffect(() => {\n if (!open) return undefined;\n setBranchLoading(true);\n setSuggestedBranch(null);\n const timer = window.setTimeout(() => {\n setSuggestedBranch(SUGGESTED_BRANCH);\n setBranchLoading(false);\n }, 1000);\n return () => window.clearTimeout(timer);\n }, [open]);\n\n const openDialog = (): void => {\n setTab(\"linking\");\n setOpen(true);\n };\n\n return (\n <>\n <StyledButton type=\"button\" onClick={openDialog}>\n <span className=\"lc-btn\">Linking and Commands</span>\n </StyledButton>\n\n <Dialog open={open} onClose={() => setOpen(false)} enableBackgroundClick>\n <Dialog.Title disableDefaultHeading>\n <StyledTitleRow>\n <Header3>Linking and Commands</Header3>\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n onClick={() => setOpen(false)}\n >\n <CancelCrossIcon />\n </IconButton>\n </StyledTitleRow>\n </Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <StyledBody>\n <div className=\"lc-intro\">\n <Body2>\n Keep a task in sync with your code without leaving your editor.\n </Body2>\n <div className=\"lc-lead\">\n <HashIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Linking:</span> Mention a task in a\n branch, pull request, or commit and they will be connected\n automatically.\n </Body2>\n </div>\n <div className=\"lc-lead\">\n <CommandLineIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Commands:</span> Add short\n instructions in a commit or pull request description to act on\n the task: log time, close it, or leave a comment.\n </Body2>\n </div>\n </div>\n\n <ChooseV2\n className=\"lc-choosectl\"\n options={TAB_OPTIONS}\n selected={[tab]}\n onChange={(ids) => setTab(ids[0] as LcTab)}\n />\n\n {tab === \"linking\" ? (\n <LinkingTab loading={branchLoading} branch={suggestedBranch} />\n ) : (\n <CommandsTab />\n )}\n </StyledBody>\n </Dialog.Content>\n </Dialog>\n </>\n );\n};\n\nLinkingCommandsButton.displayName = \"LinkingCommandsButton\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LinkingCommandsButton.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_ChooseV","_Dialog","_IconButton","_Icons","_Loaders","_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","SANS","MONO","TASK_ID","SUGGESTED_BRANCH","shellQuote","concat","replace","StyledButton","styled","Trigger","withConfig","displayName","componentId","StyledTitleRow","div","StyledBody","TAB_OPTIONS","id","COMMANDS","cmd","does","EXAMPLE_COMMIT","LinkingTab","_ref","loading","branch","_useState","useState","_useState2","copied","setCopied","command","copy","_navigator$clipboard","navigator","clipboard","writeText","window","setTimeout","createElement","className","Body2","color","SkeletonLoader","Tooltip","title","type","onClick","CopyIcon","CommandsTab","map","c","key","LinkingCommandsButton","exports","_useState3","_useState4","open","setOpen","_useState5","_useState6","tab","setTab","_useState7","_useState8","branchLoading","setBranchLoading","_useState9","_useState0","suggestedBranch","setSuggestedBranch","useEffect","undefined","timer","clearTimeout","openDialog","Fragment","Dialog","onClose","enableBackgroundClick","Title","disableDefaultHeading","Header3","IconButton","variant","CancelCrossIcon","ContentDivider","Content","HashIcon","CommandLineIcon","ChooseV2","options","selected","onChange","ids"],"sources":["../../../../src/presentation/shared/LinkingCommandsButton.tsx"],"sourcesContent":["import React, { ReactElement, useEffect, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { ChooseV2, ChooseV2Option } from \"../../components/ChooseV2\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n CancelCrossIcon,\n CommandLineIcon,\n CopyIcon,\n HashIcon,\n} from \"../../components/Icons\";\nimport { SkeletonLoader } from \"../../components/Loaders\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Trigger } from \"../../components/Trigger\";\nimport { Body2, Header3 } from \"../../components/Typography\";\n\n/**\n * \"Linking and Commands\" button — same small outlined shape and placement as\n * the \"Suggest Subtasks\" button, but without an icon or the AI gradient (this\n * is not an AI feature). Clicking it opens a reference dialog: a short pitch\n * with a one-liner each for Linking and Commands, a centered ChooseV2 to switch\n * between the two conventions (Linking default), and the full instructions for\n * whichever is selected below it.\n */\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\nconst MONO = \"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace\";\n\n/** The example task these instructions are written against. */\nconst TASK_ID = 4231;\n/**\n * Suggested branch name for this task — in production it is resolved per repo\n * via GET .../tasks/{task_id}/source/suggest-branch-name. Mocked here.\n */\nconst SUGGESTED_BRANCH = \"ilija/4231-add-cacak-region-support\";\n\n/** POSIX-safe single-quote escaping for a value dropped into a shell command. */\nconst shellQuote = (value: string): string =>\n `'${value.replace(/'/g, \"'\\\\''\")}'`;\n\nconst StyledButton = styled(Trigger)`\n .lc-btn {\n display: inline-flex;\n align-items: center;\n color: var(--color-theme-700);\n border: 1px solid var(--color-theme-500);\n background-color: transparent;\n padding: 3px 8px;\n font-weight: 500;\n font-size: 12px;\n letter-spacing: 0.5px;\n line-height: 16px;\n border-radius: 6px;\n transition: border-color 0.2s ease, color 0.2s ease;\n }\n &:hover .lc-btn {\n border-color: var(--color-theme-700);\n color: var(--color-theme-900);\n }\n`;\n\nconst StyledTitleRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n`;\n\nconst StyledBody = styled.div`\n font-family: ${SANS};\n\n .lc-intro {\n margin-bottom: 18px;\n }\n .lc-lead {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n margin-top: 12px;\n }\n .lc-lead svg {\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n margin-top: 2px;\n }\n .lc-term {\n font-weight: 600;\n color: var(--color-theme-900);\n }\n\n /* ChooseV2 root is passed .lc-choosectl; its inner flex row is centered. */\n .lc-choosectl {\n margin-bottom: 18px;\n }\n .lc-choosectl > div {\n justify-content: center;\n }\n\n .lc-list {\n margin: 8px 0 0;\n padding-left: 18px;\n }\n .lc-list li {\n margin-bottom: 6px;\n }\n .lc-invite {\n margin-top: 14px;\n }\n .code {\n font-family: ${MONO};\n background: var(--color-theme-200);\n border-radius: 4px;\n padding: 1px 5px;\n font-size: 12px;\n color: var(--color-theme-900);\n }\n .lc-copy {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n margin-top: 10px;\n padding: 8px 10px;\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n }\n .lc-copy code {\n font-family: ${MONO};\n font-size: 12px;\n color: var(--color-theme-900);\n overflow-x: auto;\n white-space: nowrap;\n }\n .lc-copy-btn {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 2px;\n color: var(--color-theme-600);\n transition: color 0.15s ease;\n }\n .lc-copy-btn:hover {\n color: var(--color-theme-900);\n }\n .lc-copy-btn svg {\n width: 16px;\n height: 16px;\n }\n .lc-copy-skel {\n height: 37px;\n width: 100%;\n margin-top: 10px;\n border-radius: 6px;\n }\n .lc-example {\n font-family: ${MONO};\n font-size: 12px;\n line-height: 1.5;\n color: var(--color-theme-900);\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n padding: 10px 12px;\n margin-top: 12px;\n white-space: pre-wrap;\n overflow-x: auto;\n }\n table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 12px;\n }\n th,\n td {\n text-align: left;\n padding: 8px 10px;\n border-bottom: 1px solid var(--border-primary);\n vertical-align: top;\n }\n th {\n font-size: 12px;\n font-weight: 500;\n color: var(--color-theme-600);\n }\n`;\n\ntype LcTab = \"linking\" | \"commands\";\n\nconst TAB_OPTIONS: ChooseV2Option[] = [\n { id: \"linking\", name: \"Linking\" },\n { id: \"commands\", name: \"Commands\" },\n];\n\ninterface Command {\n cmd: string;\n does: string;\n}\n\nconst COMMANDS: Command[] = [\n { cmd: \"Closes #34\", does: \"Closes the task when the pull request merges\" },\n { cmd: \"Fixes #34\", does: \"Same as Closes: closes on merge\" },\n { cmd: \"Refs #34\", does: \"Links to the task without closing it\" },\n { cmd: \"/spend 1:30\", does: \"Logs time against the task\" },\n { cmd: \"/estimate 4:00\", does: \"Sets the task's time estimate\" },\n { cmd: \"/done\", does: \"Marks the task complete\" },\n { cmd: \"/reopen\", does: \"Reopens the task\" },\n { cmd: \"/assign @ilija\", does: \"Assigns the task to a user\" },\n { cmd: \"/label In Progress\", does: \"Adds a label to the task\" },\n { cmd: \"/comment Deployed to staging\", does: \"Posts a comment on the task\" },\n { cmd: \"/relate #35\", does: \"Relates this task to another task\" },\n];\n\n/** Illustrative commit message: closes the task, logs time, leaves a note. */\nconst EXAMPLE_COMMIT = `Fix ranks reset when a contract is archived\n\nCloses #${TASK_ID}\n/spend 1:30\n/comment Verified on staging, ranks hold after archive`;\n\ninterface LinkingTabProps {\n loading: boolean;\n branch: string | null;\n}\n\nconst LinkingTab = ({ loading, branch }: LinkingTabProps): ReactElement => {\n const [copied, setCopied] = useState(false);\n const command = branch ? `git checkout -b ${shellQuote(branch)}` : \"\";\n\n const copy = (): void => {\n if (!command) return;\n // eslint-disable-next-line compat/compat\n void navigator.clipboard?.writeText(command);\n setCopied(true);\n window.setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n Mention the task in your git activity and it links to this task on its\n own:\n </Body2>\n <ul className=\"lc-list\">\n <li>\n <Body2>\n <span className=\"lc-term\">In a branch name:</span> the raw task ID{\" \"}\n <span className=\"code\">{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">\n In a title, commit message, or description:\n </span>{\" \"}\n <span className=\"code\">#{TASK_ID}</span> or{\" \"}\n <span className=\"code\">AC-{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">Anywhere:</span> the task URL{\" \"}\n <span className=\"code\">\n https://app.activecollab.com/1/projects/2110/tasks/{TASK_ID}\n </span>\n </Body2>\n </li>\n </ul>\n\n <div className=\"lc-invite\">\n <Body2 color=\"secondary\">\n Give the branch a name with the task number in it and it links the\n moment you push. Create one from the suggested name:\n </Body2>\n {loading ? (\n <SkeletonLoader className=\"lc-copy-skel\" />\n ) : (\n <div className=\"lc-copy\">\n <code>{command}</code>\n <Tooltip title={copied ? \"Copied!\" : \"Copy\"}>\n <button\n type=\"button\"\n className=\"lc-copy-btn\"\n onClick={copy}\n aria-label=\"Copy command\"\n >\n <CopyIcon />\n </button>\n </Tooltip>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nconst CommandsTab = (): ReactElement => (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n The table below lists action words and slash commands that you can use in\n a commit message or a pull request description to act on the linked task.\n Example:\n </Body2>\n <pre className=\"lc-example\">{EXAMPLE_COMMIT}</pre>\n <table>\n <thead>\n <tr>\n <th>Command</th>\n <th>What it does</th>\n </tr>\n </thead>\n <tbody>\n {COMMANDS.map((c) => (\n <tr key={c.cmd}>\n <td>\n <span className=\"code\">{c.cmd}</span>\n </td>\n <td>\n <Body2 color=\"secondary\">{c.does}</Body2>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n);\n\nexport const LinkingCommandsButton = (): ReactElement => {\n const [open, setOpen] = useState(false);\n const [tab, setTab] = useState<LcTab>(\"linking\");\n const [branchLoading, setBranchLoading] = useState(true);\n const [suggestedBranch, setSuggestedBranch] = useState<string | null>(null);\n\n // Mock the suggest-branch-name API load: ~1s skeleton whenever the dialog\n // opens, then reveal the copyable git command.\n useEffect(() => {\n if (!open) return undefined;\n setBranchLoading(true);\n setSuggestedBranch(null);\n const timer = window.setTimeout(() => {\n setSuggestedBranch(SUGGESTED_BRANCH);\n setBranchLoading(false);\n }, 1000);\n return () => window.clearTimeout(timer);\n }, [open]);\n\n const openDialog = (): void => {\n setTab(\"linking\");\n setOpen(true);\n };\n\n return (\n <>\n <StyledButton type=\"button\" onClick={openDialog}>\n <span className=\"lc-btn\">Linking and Commands</span>\n </StyledButton>\n\n <Dialog open={open} onClose={() => setOpen(false)} enableBackgroundClick>\n <Dialog.Title disableDefaultHeading>\n <StyledTitleRow>\n <Header3>Linking and Commands</Header3>\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n onClick={() => setOpen(false)}\n >\n <CancelCrossIcon />\n </IconButton>\n </StyledTitleRow>\n </Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <StyledBody>\n <div className=\"lc-intro\">\n <Body2>\n Keep a task in sync with your code without leaving your editor.\n </Body2>\n <div className=\"lc-lead\">\n <HashIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Linking:</span> Mention a task in a\n branch, pull request, or commit and they will be connected\n automatically.\n </Body2>\n </div>\n <div className=\"lc-lead\">\n <CommandLineIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Commands:</span> Add short\n instructions in a commit or pull request description to act on\n the task: log time, close it, or leave a comment.\n </Body2>\n </div>\n </div>\n\n <ChooseV2\n className=\"lc-choosectl\"\n options={TAB_OPTIONS}\n selected={[tab]}\n onChange={(ids) => setTab(ids[0] as LcTab)}\n />\n\n {tab === \"linking\" ? (\n <LinkingTab loading={branchLoading} branch={suggestedBranch} />\n ) : (\n <CommandsTab />\n )}\n </StyledBody>\n </Dialog.Content>\n </Dialog>\n </>\n );\n};\n\nLinkingCommandsButton.displayName = \"LinkingCommandsButton\";\n"],"mappings":"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","ignoreList":[]}
@@ -142,7 +142,7 @@ const CommandsTab = () => /*#__PURE__*/React.createElement("div", {
142
142
  className: "lc-tabbody"
143
143
  }, /*#__PURE__*/React.createElement(Body2, {
144
144
  color: "secondary"
145
- }, "The table below lists magic words and slash commands that you can use in a commit message or a pull request description to act on the linked task. Example:"), /*#__PURE__*/React.createElement("pre", {
145
+ }, "The table below lists action words and slash commands that you can use in a commit message or a pull request description to act on the linked task. Example:"), /*#__PURE__*/React.createElement("pre", {
146
146
  className: "lc-example"
147
147
  }, EXAMPLE_COMMIT), /*#__PURE__*/React.createElement("table", null, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null, "Command"), /*#__PURE__*/React.createElement("th", null, "What it does"))), /*#__PURE__*/React.createElement("tbody", null, COMMANDS.map(c => /*#__PURE__*/React.createElement("tr", {
148
148
  key: c.cmd
@@ -1 +1 @@
1
- {"version":3,"file":"LinkingCommandsButton.js","names":["React","useEffect","useState","styled","ChooseV2","Dialog","IconButton","CancelCrossIcon","CommandLineIcon","CopyIcon","HashIcon","SkeletonLoader","Tooltip","Trigger","Body2","Header3","SANS","MONO","TASK_ID","SUGGESTED_BRANCH","shellQuote","value","replace","StyledButton","withConfig","displayName","componentId","StyledTitleRow","div","StyledBody","TAB_OPTIONS","id","name","COMMANDS","cmd","does","EXAMPLE_COMMIT","LinkingTab","_ref","loading","branch","_useState","copied","setCopied","command","copy","_navigator$clipboard","navigator","clipboard","writeText","window","setTimeout","createElement","className","color","title","type","onClick","CommandsTab","map","c","key","LinkingCommandsButton","_useState2","open","setOpen","_useState3","tab","setTab","_useState4","branchLoading","setBranchLoading","_useState5","suggestedBranch","setSuggestedBranch","undefined","timer","clearTimeout","openDialog","Fragment","onClose","enableBackgroundClick","Title","disableDefaultHeading","variant","ContentDivider","Content","options","selected","onChange","ids"],"sources":["../../../../src/presentation/shared/LinkingCommandsButton.tsx"],"sourcesContent":["import React, { ReactElement, useEffect, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { ChooseV2, ChooseV2Option } from \"../../components/ChooseV2\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n CancelCrossIcon,\n CommandLineIcon,\n CopyIcon,\n HashIcon,\n} from \"../../components/Icons\";\nimport { SkeletonLoader } from \"../../components/Loaders\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Trigger } from \"../../components/Trigger\";\nimport { Body2, Header3 } from \"../../components/Typography\";\n\n/**\n * \"Linking and Commands\" button — same small outlined shape and placement as\n * the \"Suggest Subtasks\" button, but without an icon or the AI gradient (this\n * is not an AI feature). Clicking it opens a reference dialog: a short pitch\n * with a one-liner each for Linking and Commands, a centered ChooseV2 to switch\n * between the two conventions (Linking default), and the full instructions for\n * whichever is selected below it.\n */\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\nconst MONO = \"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace\";\n\n/** The example task these instructions are written against. */\nconst TASK_ID = 4231;\n/**\n * Suggested branch name for this task — in production it is resolved per repo\n * via GET .../tasks/{task_id}/source/suggest-branch-name. Mocked here.\n */\nconst SUGGESTED_BRANCH = \"ilija/4231-add-cacak-region-support\";\n\n/** POSIX-safe single-quote escaping for a value dropped into a shell command. */\nconst shellQuote = (value: string): string =>\n `'${value.replace(/'/g, \"'\\\\''\")}'`;\n\nconst StyledButton = styled(Trigger)`\n .lc-btn {\n display: inline-flex;\n align-items: center;\n color: var(--color-theme-700);\n border: 1px solid var(--color-theme-500);\n background-color: transparent;\n padding: 3px 8px;\n font-weight: 500;\n font-size: 12px;\n letter-spacing: 0.5px;\n line-height: 16px;\n border-radius: 6px;\n transition: border-color 0.2s ease, color 0.2s ease;\n }\n &:hover .lc-btn {\n border-color: var(--color-theme-700);\n color: var(--color-theme-900);\n }\n`;\n\nconst StyledTitleRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n`;\n\nconst StyledBody = styled.div`\n font-family: ${SANS};\n\n .lc-intro {\n margin-bottom: 18px;\n }\n .lc-lead {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n margin-top: 12px;\n }\n .lc-lead svg {\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n margin-top: 2px;\n }\n .lc-term {\n font-weight: 600;\n color: var(--color-theme-900);\n }\n\n /* ChooseV2 root is passed .lc-choosectl; its inner flex row is centered. */\n .lc-choosectl {\n margin-bottom: 18px;\n }\n .lc-choosectl > div {\n justify-content: center;\n }\n\n .lc-list {\n margin: 8px 0 0;\n padding-left: 18px;\n }\n .lc-list li {\n margin-bottom: 6px;\n }\n .lc-invite {\n margin-top: 14px;\n }\n .code {\n font-family: ${MONO};\n background: var(--color-theme-200);\n border-radius: 4px;\n padding: 1px 5px;\n font-size: 12px;\n color: var(--color-theme-900);\n }\n .lc-copy {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n margin-top: 10px;\n padding: 8px 10px;\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n }\n .lc-copy code {\n font-family: ${MONO};\n font-size: 12px;\n color: var(--color-theme-900);\n overflow-x: auto;\n white-space: nowrap;\n }\n .lc-copy-btn {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 2px;\n color: var(--color-theme-600);\n transition: color 0.15s ease;\n }\n .lc-copy-btn:hover {\n color: var(--color-theme-900);\n }\n .lc-copy-btn svg {\n width: 16px;\n height: 16px;\n }\n .lc-copy-skel {\n height: 37px;\n width: 100%;\n margin-top: 10px;\n border-radius: 6px;\n }\n .lc-example {\n font-family: ${MONO};\n font-size: 12px;\n line-height: 1.5;\n color: var(--color-theme-900);\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n padding: 10px 12px;\n margin-top: 12px;\n white-space: pre-wrap;\n overflow-x: auto;\n }\n table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 12px;\n }\n th,\n td {\n text-align: left;\n padding: 8px 10px;\n border-bottom: 1px solid var(--border-primary);\n vertical-align: top;\n }\n th {\n font-size: 12px;\n font-weight: 500;\n color: var(--color-theme-600);\n }\n`;\n\ntype LcTab = \"linking\" | \"commands\";\n\nconst TAB_OPTIONS: ChooseV2Option[] = [\n { id: \"linking\", name: \"Linking\" },\n { id: \"commands\", name: \"Commands\" },\n];\n\ninterface Command {\n cmd: string;\n does: string;\n}\n\nconst COMMANDS: Command[] = [\n { cmd: \"Closes #34\", does: \"Closes the task when the pull request merges\" },\n { cmd: \"Fixes #34\", does: \"Same as Closes: closes on merge\" },\n { cmd: \"Refs #34\", does: \"Links to the task without closing it\" },\n { cmd: \"/spend 1:30\", does: \"Logs time against the task\" },\n { cmd: \"/estimate 4:00\", does: \"Sets the task's time estimate\" },\n { cmd: \"/done\", does: \"Marks the task complete\" },\n { cmd: \"/reopen\", does: \"Reopens the task\" },\n { cmd: \"/assign @ilija\", does: \"Assigns the task to a user\" },\n { cmd: \"/label In Progress\", does: \"Adds a label to the task\" },\n { cmd: \"/comment Deployed to staging\", does: \"Posts a comment on the task\" },\n { cmd: \"/relate #35\", does: \"Relates this task to another task\" },\n];\n\n/** Illustrative commit message: closes the task, logs time, leaves a note. */\nconst EXAMPLE_COMMIT = `Fix ranks reset when a contract is archived\n\nCloses #${TASK_ID}\n/spend 1:30\n/comment Verified on staging, ranks hold after archive`;\n\ninterface LinkingTabProps {\n loading: boolean;\n branch: string | null;\n}\n\nconst LinkingTab = ({ loading, branch }: LinkingTabProps): ReactElement => {\n const [copied, setCopied] = useState(false);\n const command = branch ? `git checkout -b ${shellQuote(branch)}` : \"\";\n\n const copy = (): void => {\n if (!command) return;\n // eslint-disable-next-line compat/compat\n void navigator.clipboard?.writeText(command);\n setCopied(true);\n window.setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n Mention the task in your git activity and it links to this task on its\n own:\n </Body2>\n <ul className=\"lc-list\">\n <li>\n <Body2>\n <span className=\"lc-term\">In a branch name:</span> the raw task ID{\" \"}\n <span className=\"code\">{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">\n In a title, commit message, or description:\n </span>{\" \"}\n <span className=\"code\">#{TASK_ID}</span> or{\" \"}\n <span className=\"code\">AC-{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">Anywhere:</span> the task URL{\" \"}\n <span className=\"code\">\n https://app.activecollab.com/1/projects/2110/tasks/{TASK_ID}\n </span>\n </Body2>\n </li>\n </ul>\n\n <div className=\"lc-invite\">\n <Body2 color=\"secondary\">\n Give the branch a name with the task number in it and it links the\n moment you push. Create one from the suggested name:\n </Body2>\n {loading ? (\n <SkeletonLoader className=\"lc-copy-skel\" />\n ) : (\n <div className=\"lc-copy\">\n <code>{command}</code>\n <Tooltip title={copied ? \"Copied!\" : \"Copy\"}>\n <button\n type=\"button\"\n className=\"lc-copy-btn\"\n onClick={copy}\n aria-label=\"Copy command\"\n >\n <CopyIcon />\n </button>\n </Tooltip>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nconst CommandsTab = (): ReactElement => (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n The table below lists magic words and slash commands that you can use in a\n commit message or a pull request description to act on the linked task.\n Example:\n </Body2>\n <pre className=\"lc-example\">{EXAMPLE_COMMIT}</pre>\n <table>\n <thead>\n <tr>\n <th>Command</th>\n <th>What it does</th>\n </tr>\n </thead>\n <tbody>\n {COMMANDS.map((c) => (\n <tr key={c.cmd}>\n <td>\n <span className=\"code\">{c.cmd}</span>\n </td>\n <td>\n <Body2 color=\"secondary\">{c.does}</Body2>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n);\n\nexport const LinkingCommandsButton = (): ReactElement => {\n const [open, setOpen] = useState(false);\n const [tab, setTab] = useState<LcTab>(\"linking\");\n const [branchLoading, setBranchLoading] = useState(true);\n const [suggestedBranch, setSuggestedBranch] = useState<string | null>(null);\n\n // Mock the suggest-branch-name API load: ~1s skeleton whenever the dialog\n // opens, then reveal the copyable git command.\n useEffect(() => {\n if (!open) return undefined;\n setBranchLoading(true);\n setSuggestedBranch(null);\n const timer = window.setTimeout(() => {\n setSuggestedBranch(SUGGESTED_BRANCH);\n setBranchLoading(false);\n }, 1000);\n return () => window.clearTimeout(timer);\n }, [open]);\n\n const openDialog = (): void => {\n setTab(\"linking\");\n setOpen(true);\n };\n\n return (\n <>\n <StyledButton type=\"button\" onClick={openDialog}>\n <span className=\"lc-btn\">Linking and Commands</span>\n </StyledButton>\n\n <Dialog open={open} onClose={() => setOpen(false)} enableBackgroundClick>\n <Dialog.Title disableDefaultHeading>\n <StyledTitleRow>\n <Header3>Linking and Commands</Header3>\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n onClick={() => setOpen(false)}\n >\n <CancelCrossIcon />\n </IconButton>\n </StyledTitleRow>\n </Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <StyledBody>\n <div className=\"lc-intro\">\n <Body2>\n Keep a task in sync with your code without leaving your editor.\n </Body2>\n <div className=\"lc-lead\">\n <HashIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Linking:</span> Mention a task in a\n branch, pull request, or commit and they will be connected\n automatically.\n </Body2>\n </div>\n <div className=\"lc-lead\">\n <CommandLineIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Commands:</span> Add short\n instructions in a commit or pull request description to act on\n the task: log time, close it, or leave a comment.\n </Body2>\n </div>\n </div>\n\n <ChooseV2\n className=\"lc-choosectl\"\n options={TAB_OPTIONS}\n selected={[tab]}\n onChange={(ids) => setTab(ids[0] as LcTab)}\n />\n\n {tab === \"linking\" ? (\n <LinkingTab loading={branchLoading} branch={suggestedBranch} />\n ) : (\n <CommandsTab />\n )}\n </StyledBody>\n </Dialog.Content>\n </Dialog>\n </>\n );\n};\n\nLinkingCommandsButton.displayName = \"LinkingCommandsButton\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LinkingCommandsButton.js","names":["React","useEffect","useState","styled","ChooseV2","Dialog","IconButton","CancelCrossIcon","CommandLineIcon","CopyIcon","HashIcon","SkeletonLoader","Tooltip","Trigger","Body2","Header3","SANS","MONO","TASK_ID","SUGGESTED_BRANCH","shellQuote","value","replace","StyledButton","withConfig","displayName","componentId","StyledTitleRow","div","StyledBody","TAB_OPTIONS","id","name","COMMANDS","cmd","does","EXAMPLE_COMMIT","LinkingTab","_ref","loading","branch","_useState","copied","setCopied","command","copy","_navigator$clipboard","navigator","clipboard","writeText","window","setTimeout","createElement","className","color","title","type","onClick","CommandsTab","map","c","key","LinkingCommandsButton","_useState2","open","setOpen","_useState3","tab","setTab","_useState4","branchLoading","setBranchLoading","_useState5","suggestedBranch","setSuggestedBranch","undefined","timer","clearTimeout","openDialog","Fragment","onClose","enableBackgroundClick","Title","disableDefaultHeading","variant","ContentDivider","Content","options","selected","onChange","ids"],"sources":["../../../../src/presentation/shared/LinkingCommandsButton.tsx"],"sourcesContent":["import React, { ReactElement, useEffect, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { ChooseV2, ChooseV2Option } from \"../../components/ChooseV2\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n CancelCrossIcon,\n CommandLineIcon,\n CopyIcon,\n HashIcon,\n} from \"../../components/Icons\";\nimport { SkeletonLoader } from \"../../components/Loaders\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Trigger } from \"../../components/Trigger\";\nimport { Body2, Header3 } from \"../../components/Typography\";\n\n/**\n * \"Linking and Commands\" button — same small outlined shape and placement as\n * the \"Suggest Subtasks\" button, but without an icon or the AI gradient (this\n * is not an AI feature). Clicking it opens a reference dialog: a short pitch\n * with a one-liner each for Linking and Commands, a centered ChooseV2 to switch\n * between the two conventions (Linking default), and the full instructions for\n * whichever is selected below it.\n */\nconst SANS =\n '-apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\", Arial, sans-serif';\nconst MONO = \"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace\";\n\n/** The example task these instructions are written against. */\nconst TASK_ID = 4231;\n/**\n * Suggested branch name for this task — in production it is resolved per repo\n * via GET .../tasks/{task_id}/source/suggest-branch-name. Mocked here.\n */\nconst SUGGESTED_BRANCH = \"ilija/4231-add-cacak-region-support\";\n\n/** POSIX-safe single-quote escaping for a value dropped into a shell command. */\nconst shellQuote = (value: string): string =>\n `'${value.replace(/'/g, \"'\\\\''\")}'`;\n\nconst StyledButton = styled(Trigger)`\n .lc-btn {\n display: inline-flex;\n align-items: center;\n color: var(--color-theme-700);\n border: 1px solid var(--color-theme-500);\n background-color: transparent;\n padding: 3px 8px;\n font-weight: 500;\n font-size: 12px;\n letter-spacing: 0.5px;\n line-height: 16px;\n border-radius: 6px;\n transition: border-color 0.2s ease, color 0.2s ease;\n }\n &:hover .lc-btn {\n border-color: var(--color-theme-700);\n color: var(--color-theme-900);\n }\n`;\n\nconst StyledTitleRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n`;\n\nconst StyledBody = styled.div`\n font-family: ${SANS};\n\n .lc-intro {\n margin-bottom: 18px;\n }\n .lc-lead {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n margin-top: 12px;\n }\n .lc-lead svg {\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n margin-top: 2px;\n }\n .lc-term {\n font-weight: 600;\n color: var(--color-theme-900);\n }\n\n /* ChooseV2 root is passed .lc-choosectl; its inner flex row is centered. */\n .lc-choosectl {\n margin-bottom: 18px;\n }\n .lc-choosectl > div {\n justify-content: center;\n }\n\n .lc-list {\n margin: 8px 0 0;\n padding-left: 18px;\n }\n .lc-list li {\n margin-bottom: 6px;\n }\n .lc-invite {\n margin-top: 14px;\n }\n .code {\n font-family: ${MONO};\n background: var(--color-theme-200);\n border-radius: 4px;\n padding: 1px 5px;\n font-size: 12px;\n color: var(--color-theme-900);\n }\n .lc-copy {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n margin-top: 10px;\n padding: 8px 10px;\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n }\n .lc-copy code {\n font-family: ${MONO};\n font-size: 12px;\n color: var(--color-theme-900);\n overflow-x: auto;\n white-space: nowrap;\n }\n .lc-copy-btn {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 2px;\n color: var(--color-theme-600);\n transition: color 0.15s ease;\n }\n .lc-copy-btn:hover {\n color: var(--color-theme-900);\n }\n .lc-copy-btn svg {\n width: 16px;\n height: 16px;\n }\n .lc-copy-skel {\n height: 37px;\n width: 100%;\n margin-top: 10px;\n border-radius: 6px;\n }\n .lc-example {\n font-family: ${MONO};\n font-size: 12px;\n line-height: 1.5;\n color: var(--color-theme-900);\n background: var(--color-theme-200);\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n padding: 10px 12px;\n margin-top: 12px;\n white-space: pre-wrap;\n overflow-x: auto;\n }\n table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 12px;\n }\n th,\n td {\n text-align: left;\n padding: 8px 10px;\n border-bottom: 1px solid var(--border-primary);\n vertical-align: top;\n }\n th {\n font-size: 12px;\n font-weight: 500;\n color: var(--color-theme-600);\n }\n`;\n\ntype LcTab = \"linking\" | \"commands\";\n\nconst TAB_OPTIONS: ChooseV2Option[] = [\n { id: \"linking\", name: \"Linking\" },\n { id: \"commands\", name: \"Commands\" },\n];\n\ninterface Command {\n cmd: string;\n does: string;\n}\n\nconst COMMANDS: Command[] = [\n { cmd: \"Closes #34\", does: \"Closes the task when the pull request merges\" },\n { cmd: \"Fixes #34\", does: \"Same as Closes: closes on merge\" },\n { cmd: \"Refs #34\", does: \"Links to the task without closing it\" },\n { cmd: \"/spend 1:30\", does: \"Logs time against the task\" },\n { cmd: \"/estimate 4:00\", does: \"Sets the task's time estimate\" },\n { cmd: \"/done\", does: \"Marks the task complete\" },\n { cmd: \"/reopen\", does: \"Reopens the task\" },\n { cmd: \"/assign @ilija\", does: \"Assigns the task to a user\" },\n { cmd: \"/label In Progress\", does: \"Adds a label to the task\" },\n { cmd: \"/comment Deployed to staging\", does: \"Posts a comment on the task\" },\n { cmd: \"/relate #35\", does: \"Relates this task to another task\" },\n];\n\n/** Illustrative commit message: closes the task, logs time, leaves a note. */\nconst EXAMPLE_COMMIT = `Fix ranks reset when a contract is archived\n\nCloses #${TASK_ID}\n/spend 1:30\n/comment Verified on staging, ranks hold after archive`;\n\ninterface LinkingTabProps {\n loading: boolean;\n branch: string | null;\n}\n\nconst LinkingTab = ({ loading, branch }: LinkingTabProps): ReactElement => {\n const [copied, setCopied] = useState(false);\n const command = branch ? `git checkout -b ${shellQuote(branch)}` : \"\";\n\n const copy = (): void => {\n if (!command) return;\n // eslint-disable-next-line compat/compat\n void navigator.clipboard?.writeText(command);\n setCopied(true);\n window.setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n Mention the task in your git activity and it links to this task on its\n own:\n </Body2>\n <ul className=\"lc-list\">\n <li>\n <Body2>\n <span className=\"lc-term\">In a branch name:</span> the raw task ID{\" \"}\n <span className=\"code\">{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">\n In a title, commit message, or description:\n </span>{\" \"}\n <span className=\"code\">#{TASK_ID}</span> or{\" \"}\n <span className=\"code\">AC-{TASK_ID}</span>\n </Body2>\n </li>\n <li>\n <Body2>\n <span className=\"lc-term\">Anywhere:</span> the task URL{\" \"}\n <span className=\"code\">\n https://app.activecollab.com/1/projects/2110/tasks/{TASK_ID}\n </span>\n </Body2>\n </li>\n </ul>\n\n <div className=\"lc-invite\">\n <Body2 color=\"secondary\">\n Give the branch a name with the task number in it and it links the\n moment you push. Create one from the suggested name:\n </Body2>\n {loading ? (\n <SkeletonLoader className=\"lc-copy-skel\" />\n ) : (\n <div className=\"lc-copy\">\n <code>{command}</code>\n <Tooltip title={copied ? \"Copied!\" : \"Copy\"}>\n <button\n type=\"button\"\n className=\"lc-copy-btn\"\n onClick={copy}\n aria-label=\"Copy command\"\n >\n <CopyIcon />\n </button>\n </Tooltip>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nconst CommandsTab = (): ReactElement => (\n <div className=\"lc-tabbody\">\n <Body2 color=\"secondary\">\n The table below lists action words and slash commands that you can use in\n a commit message or a pull request description to act on the linked task.\n Example:\n </Body2>\n <pre className=\"lc-example\">{EXAMPLE_COMMIT}</pre>\n <table>\n <thead>\n <tr>\n <th>Command</th>\n <th>What it does</th>\n </tr>\n </thead>\n <tbody>\n {COMMANDS.map((c) => (\n <tr key={c.cmd}>\n <td>\n <span className=\"code\">{c.cmd}</span>\n </td>\n <td>\n <Body2 color=\"secondary\">{c.does}</Body2>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n);\n\nexport const LinkingCommandsButton = (): ReactElement => {\n const [open, setOpen] = useState(false);\n const [tab, setTab] = useState<LcTab>(\"linking\");\n const [branchLoading, setBranchLoading] = useState(true);\n const [suggestedBranch, setSuggestedBranch] = useState<string | null>(null);\n\n // Mock the suggest-branch-name API load: ~1s skeleton whenever the dialog\n // opens, then reveal the copyable git command.\n useEffect(() => {\n if (!open) return undefined;\n setBranchLoading(true);\n setSuggestedBranch(null);\n const timer = window.setTimeout(() => {\n setSuggestedBranch(SUGGESTED_BRANCH);\n setBranchLoading(false);\n }, 1000);\n return () => window.clearTimeout(timer);\n }, [open]);\n\n const openDialog = (): void => {\n setTab(\"linking\");\n setOpen(true);\n };\n\n return (\n <>\n <StyledButton type=\"button\" onClick={openDialog}>\n <span className=\"lc-btn\">Linking and Commands</span>\n </StyledButton>\n\n <Dialog open={open} onClose={() => setOpen(false)} enableBackgroundClick>\n <Dialog.Title disableDefaultHeading>\n <StyledTitleRow>\n <Header3>Linking and Commands</Header3>\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n onClick={() => setOpen(false)}\n >\n <CancelCrossIcon />\n </IconButton>\n </StyledTitleRow>\n </Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <StyledBody>\n <div className=\"lc-intro\">\n <Body2>\n Keep a task in sync with your code without leaving your editor.\n </Body2>\n <div className=\"lc-lead\">\n <HashIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Linking:</span> Mention a task in a\n branch, pull request, or commit and they will be connected\n automatically.\n </Body2>\n </div>\n <div className=\"lc-lead\">\n <CommandLineIcon />\n <Body2 color=\"secondary\">\n <span className=\"lc-term\">Commands:</span> Add short\n instructions in a commit or pull request description to act on\n the task: log time, close it, or leave a comment.\n </Body2>\n </div>\n </div>\n\n <ChooseV2\n className=\"lc-choosectl\"\n options={TAB_OPTIONS}\n selected={[tab]}\n onChange={(ids) => setTab(ids[0] as LcTab)}\n />\n\n {tab === \"linking\" ? (\n <LinkingTab loading={branchLoading} branch={suggestedBranch} />\n ) : (\n <CommandsTab />\n )}\n </StyledBody>\n </Dialog.Content>\n </Dialog>\n </>\n );\n};\n\nLinkingCommandsButton.displayName = \"LinkingCommandsButton\";\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@activecollab/components",
3
- "version": "2.0.389",
3
+ "version": "2.0.391",
4
4
  "description": "ActiveCollab Components",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",