diff --git a/package-lock.json b/package-lock.json index a2980e0fb..baf8e5690 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,8 +25,8 @@ "@sentry/nextjs": "7.99.0", "@tanstack/react-query": "4.29.5", "@tanstack/react-query-devtools": "4.29.6", - "@taskany/bricks": "5.52.0", - "@taskany/colors": "1.13.0", + "@taskany/bricks": "5.52.2", + "@taskany/colors": "1.13.1", "@taskany/icons": "2.0.7", "@tippyjs/react": "4.2.6", "@trpc/client": "10.35.0", @@ -8608,12 +8608,12 @@ } }, "node_modules/@taskany/bricks": { - "version": "5.52.0", - "resolved": "https://registry.npmjs.org/@taskany/bricks/-/bricks-5.52.0.tgz", - "integrity": "sha512-LD7wJFSkcmxs61DmGiI8GaWzDrGGzbPuitshKDs0ymJjNlFGYD2pq89RnIrH0Jb6czaHtciKG+SAZMa0YO4ywA==", + "version": "5.52.2", + "resolved": "https://registry.npmjs.org/@taskany/bricks/-/bricks-5.52.2.tgz", + "integrity": "sha512-QB2fkI7bLUQboJyz6lj2ZXcgde0LZRgsqA2Zy1lPwIj3zBpBDHM6fErVKbQShJMl/89UK9JdFhZEopfUIQfLLg==", "dependencies": { "@monaco-editor/react": "4.6.0", - "@taskany/colors": "1.13.0", + "@taskany/colors": "1.13.1", "@taskany/icons": "2.0.7", "@tippyjs/react": "4.2.6", "classnames": "2.5.1", @@ -8635,9 +8635,9 @@ "integrity": "sha512-/MESnqBD1xItZJn5oGQ4OsNORQgJfPP96XSGoyu4eLpwpL0ifO0SYR5OD76u0YMhMXsqkb0UqvI9+yXTh4xv8Q==" }, "node_modules/@taskany/colors": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@taskany/colors/-/colors-1.13.0.tgz", - "integrity": "sha512-uoJiowIW/qrt+fdpbEebK8Q0rfHEUxi+HMPfxKFL8DQIa5E5pMSP6Rm+kX2j0Dz6zt6ydIN5zJoQOQosN3Z1SQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@taskany/colors/-/colors-1.13.1.tgz", + "integrity": "sha512-zVkotr17YP+PUd1H79m9mUUdZQUH15rgzzOkx39dwb/L08UydVAyGc2hObg4Rgry2uDKNy3u0QJZcXqdTyhguQ==", "peerDependencies": { "styled-components": "^5.3.11" } @@ -27809,126 +27809,6 @@ "type": "github", "url": "https://github.com/sponsors/wooorm" } - }, - "node_modules/react-email/node_modules/@next/swc-darwin-x64": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.2.tgz", - "integrity": "sha512-iZuYr7ZvGLPjPmfhhMl0ISm+z8EiyLBC1bLyFwGBxkWmPXqdJ60mzuTaDSr5WezDwv0fz32HB7JHmRC6JVHSZg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/react-email/node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.2.tgz", - "integrity": "sha512-2xVabFtIge6BJTcJrW8YuUnYTuQjh4jEuRuS2mscyNVOj6zUZkom3CQg+egKOoS+zh2rrro66ffSKIS+ztFJTg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/react-email/node_modules/@next/swc-linux-arm64-musl": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.2.tgz", - "integrity": "sha512-wKRCQ27xCUJx5d6IivfjYGq8oVngqIhlhSAJntgXLt7Uo9sRT/3EppMHqUZRfyuNBTbykEre1s5166z+pvRB5A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/react-email/node_modules/@next/swc-linux-x64-gnu": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.2.tgz", - "integrity": "sha512-NpCa+UVhhuNeaFVUP1Bftm0uqtvLWq2JTm7+Ta48+2Uqj2mNXrDIvyn1DY/ZEfmW/1yvGBRaUAv9zkMkMRixQA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/react-email/node_modules/@next/swc-linux-x64-musl": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.2.tgz", - "integrity": "sha512-ZWVC72x0lW4aj44e3khvBrj2oSYj1bD0jESmyah3zG/3DplEy/FOtYkMzbMjHTdDSheso7zH8GIlW6CDQnKhmQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/react-email/node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.2.tgz", - "integrity": "sha512-pLT+OWYpzJig5K4VKhLttlIfBcVZfr2+Xbjra0Tjs83NQSkFS+y7xx+YhCwvpEmXYLIvaggj2ONPyjbiigOvHQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/react-email/node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.2.tgz", - "integrity": "sha512-dhpiksQCyGca4WY0fJyzK3FxMDFoqMb0Cn+uDB+9GYjpU2K5//UGPQlCwiK4JHxuhg8oLMag5Nf3/IPSJNG8jw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/react-email/node_modules/@next/swc-win32-x64-msvc": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.2.tgz", - "integrity": "sha512-O7bort1Vld00cu8g0jHZq3cbSTUNMohOEvYqsqE10+yfohhdPHzvzO+ziJRz4Dyyr/fYKREwS7gR4JC0soSOMw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } } } } diff --git a/package.json b/package.json index e518cd35a..0c4467e72 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,8 @@ "@sentry/nextjs": "7.99.0", "@tanstack/react-query": "4.29.5", "@tanstack/react-query-devtools": "4.29.6", - "@taskany/bricks": "5.52.0", - "@taskany/colors": "1.13.0", + "@taskany/bricks": "5.52.2", + "@taskany/colors": "1.13.1", "@taskany/icons": "2.0.7", "@tippyjs/react": "4.2.6", "@trpc/client": "10.35.0", diff --git a/src/components/CommentCreateForm/CommentCreateForm.tsx b/src/components/CommentCreateForm/CommentCreateForm.tsx index 7d4b00b1e..d47b4d130 100644 --- a/src/components/CommentCreateForm/CommentCreateForm.tsx +++ b/src/components/CommentCreateForm/CommentCreateForm.tsx @@ -90,12 +90,15 @@ const CommentCreateForm: React.FC = ({ const onCancelCreate = useCallback(() => { setBusy(false); - setFocused(false); setPushState(stateId ? statesMap[stateId] : undefined); setDescription(''); onCancel?.(); }, [onCancel, stateId, statesMap]); + const onBlur = useCallback(() => { + setFocused(false); + }, []); + const onStateSelect = useCallback( (state: StateDataType) => { setPushState((prev) => { @@ -138,6 +141,7 @@ const CommentCreateForm: React.FC = ({ onChange={onCommentChange} onSubmit={onCommentFormSubmit('pushState')} onCancel={onCancelCreate} + onBlur={onBlur} onFocus={onCommentFocus} passedError={error} actionButton={ diff --git a/src/components/CommentForm/CommentForm.module.css b/src/components/CommentForm/CommentForm.module.css index ee9403ebb..e1070b528 100644 --- a/src/components/CommentForm/CommentForm.module.css +++ b/src/components/CommentForm/CommentForm.module.css @@ -6,8 +6,7 @@ .CommentFormWrapper { position: relative; - transition: 200ms ease-in; - transition-property: background-color; + background-color: var(--input-fill); } .CommentFormWrapper::before { @@ -19,7 +18,7 @@ width: 14px; height: 14px; - background-color: var(--background); + background-color: var(--input-fill); border-left: 1px solid var(--input-border); border-top: 1px solid var(--input-border); @@ -34,5 +33,6 @@ } .CommentFormWrapper_focused::before { - background-color: var(--input-fill-focused-borderless); + background-color: var(--input-fill-focused); + border-color: var(--input-border-focused); } diff --git a/src/components/CommentForm/CommentForm.tsx b/src/components/CommentForm/CommentForm.tsx index 5405acd82..0b871fd98 100644 --- a/src/components/CommentForm/CommentForm.tsx +++ b/src/components/CommentForm/CommentForm.tsx @@ -23,6 +23,7 @@ interface CommentFormProps { onSubmit: (form: CommentSchema) => void | Promise; onChange?: (form: CommentSchema) => void; onFocus?: () => void; + onBlur?: () => void; onCancel?: () => void; } @@ -35,6 +36,7 @@ export const CommentForm: React.FC = ({ onChange, onSubmit, onFocus, + onBlur, onCancel, passedError, }) => { @@ -80,6 +82,7 @@ export const CommentForm: React.FC = ({ placeholder={tr('Leave a comment')} height={focused ? 120 : 80} onCancel={onCommentCancel} + onBlur={onBlur} onFocus={onFocus} onUploadFail={onUploadFail} autoFocus={autoFocus} diff --git a/src/components/CommentViewHeader/CommentViewHeader.tsx b/src/components/CommentViewHeader/CommentViewHeader.tsx index 313ddd5c4..636982350 100644 --- a/src/components/CommentViewHeader/CommentViewHeader.tsx +++ b/src/components/CommentViewHeader/CommentViewHeader.tsx @@ -16,7 +16,7 @@ interface CommentViewHeaderProps extends React.HTMLAttributes { export const CommentViewHeader: React.FC = ({ name, timeAgo, href, state, ...attrs }) => { return (
- + {name} diff --git a/src/components/CriteriaForm/CriteriaForm.tsx b/src/components/CriteriaForm/CriteriaForm.tsx index 978ce4b8b..c50a39313 100644 --- a/src/components/CriteriaForm/CriteriaForm.tsx +++ b/src/components/CriteriaForm/CriteriaForm.tsx @@ -192,9 +192,7 @@ const CriteriaWeightField = forwardRef( ({ error, maxValue, value, onChange, name }, ref) => { return ( - - {tr('Weight')} - + {tr('Weight')} ({ export const FiltersBarDropdownTitle: FC> = ({ children }) => { return ( - + {children} ); diff --git a/src/components/GoalParentDropdown/GoalParentDropdown.tsx b/src/components/GoalParentDropdown/GoalParentDropdown.tsx index 09125f4b1..bf53afa70 100644 --- a/src/components/GoalParentDropdown/GoalParentDropdown.tsx +++ b/src/components/GoalParentDropdown/GoalParentDropdown.tsx @@ -132,7 +132,7 @@ export const GoalParentDropdown = ({ onChange={onChange} renderItem={(props) => (
- + {props.item.title} diff --git a/src/components/HistoryRecord/HistoryRecord.tsx b/src/components/HistoryRecord/HistoryRecord.tsx index 350080a2a..035e88966 100644 --- a/src/components/HistoryRecord/HistoryRecord.tsx +++ b/src/components/HistoryRecord/HistoryRecord.tsx @@ -274,7 +274,7 @@ const HistoryRecordEstimate: React.FC> = ({ from, to ))} to={nullable(to ? decodeHistoryEstimate(to) : null, (te) => ( - + {formateEstimate(te.date, { locale, type: te.type })} ))} @@ -359,12 +359,12 @@ const HistoryRecordTextChange: React.FC> = ({ from, t const HistoryRecordPriority: React.FC> = ({ from, to }) => ( ( - + {getPriorityText(f.title)} ))} to={nullable(to, (t) => ( - + {getPriorityText(t.title)} ))} @@ -443,7 +443,7 @@ const HistoryRecordCriteriaItem: React.FC = ({ criteriaGoal, exter } return ( - + {title} ); diff --git a/src/components/IssueKey/IssueKey.tsx b/src/components/IssueKey/IssueKey.tsx index 8b334f74f..4d85d4d15 100644 --- a/src/components/IssueKey/IssueKey.tsx +++ b/src/components/IssueKey/IssueKey.tsx @@ -10,7 +10,7 @@ interface IssueKeyProps { export const IssueKey: React.FC = ({ id, size = 'm', children }) => { return ( - + #{id} {children} ); diff --git a/src/components/IssueMeta/IssueMeta.tsx b/src/components/IssueMeta/IssueMeta.tsx index 5949ff9ab..f5d0da52b 100644 --- a/src/components/IssueMeta/IssueMeta.tsx +++ b/src/components/IssueMeta/IssueMeta.tsx @@ -15,7 +15,7 @@ export const IssueMeta: React.FC = ({ title, children, className return (
{nullable(title, (t) => ( - + {t} ))} diff --git a/src/components/IssueParent/IssueParent.tsx b/src/components/IssueParent/IssueParent.tsx index 4b8c51742..25d568530 100644 --- a/src/components/IssueParent/IssueParent.tsx +++ b/src/components/IssueParent/IssueParent.tsx @@ -22,7 +22,7 @@ export const IssueParent = ({ parent, size = 'l', ...props }: IssueParentProps) const normalizedParent = ([] as Array).concat(parent).filter(Boolean) as Array; return ( - + {normalizedParent.map((p, i) => nullable(p.id, (id) => ( diff --git a/src/components/ProjectSettingsPage/ProjectSettingsPage.tsx b/src/components/ProjectSettingsPage/ProjectSettingsPage.tsx index a08c66f80..a1423f64c 100644 --- a/src/components/ProjectSettingsPage/ProjectSettingsPage.tsx +++ b/src/components/ProjectSettingsPage/ProjectSettingsPage.tsx @@ -172,9 +172,7 @@ export const ProjectSettingsPage = ({ user, ssrTime, params: { id } }: ExternalP
- - {tr('key')}: - + {tr('key')}: - - {tr('Title')}: - + {tr('Title')}: - + {tr('Description')}: - - {tr('Parent')}: - + {tr('Parent')}: }> - + {tr('What happens when you delete a project')}: diff --git a/src/components/TableRowItem/TableRowItem.tsx b/src/components/TableRowItem/TableRowItem.tsx index 513a7515b..f6a407f54 100644 --- a/src/components/TableRowItem/TableRowItem.tsx +++ b/src/components/TableRowItem/TableRowItem.tsx @@ -4,10 +4,10 @@ import { ComponentProps, MouseEventHandler, ReactNode } from 'react'; import s from './TableRowItem.module.css'; -export const TableRowItemTitle = (props: ComponentProps) => ; +export const TableRowItemTitle = (props: ComponentProps) => ; export const TableRowItemText = ({ className, ...props }: ComponentProps) => ( - + ); interface TableRowItemProps extends Omit, 'title'> { diff --git a/src/components/TagDropdown/TagDropdown.tsx b/src/components/TagDropdown/TagDropdown.tsx index 923f79699..f4fc00e40 100644 --- a/src/components/TagDropdown/TagDropdown.tsx +++ b/src/components/TagDropdown/TagDropdown.tsx @@ -95,7 +95,7 @@ export const TagDropdown = ({ setInputState={setInputState} onChange={onChange} renderItem={(props) => ( - + {props.item.title} )} diff --git a/src/components/UserSettingsPage/UserSettingsPage.tsx b/src/components/UserSettingsPage/UserSettingsPage.tsx index 60c0a46f6..554f69d09 100644 --- a/src/components/UserSettingsPage/UserSettingsPage.tsx +++ b/src/components/UserSettingsPage/UserSettingsPage.tsx @@ -231,9 +231,7 @@ export const UserSettingsPage = ({ user, ssrTime }: ExternalPageProps) => {
- - {tr('Email')}: - + {tr('Email')}: { - - {tr('Name')}: - + {tr('Name')}: { - - {tr('Nickname')}: - + {tr('Nickname')}: {
- + {tr('Allow notifications')}: @@ -329,9 +323,7 @@ export const UserSettingsPage = ({ user, ssrTime }: ExternalPageProps) => {
- - {tr('Beta features')}: - + {tr('Beta features')}: