Change Review
Review proposed edits hunk by hunk: accept or reject each change, then take the resulting text.
Attributes
| Name | Type | Default | Description |
|---|---|---|---|
original | string | — | The text before the edit. |
modified | string | — | The text after the edit. |
label | string | — | Names the review; shown in the header. |
file-name | string | — | The file the edit is for, shown in the header after the label. |
context | number | 3 | Unchanged lines shown on each side of a hunk. |
undecided | ChangeReviewUndecided | original | Which side an open hunk keeps in result: original (as if rejected, the default) or modified. |
Slots
| Name | Description |
|---|---|
actions | Shown in the summary once every hunk is decided, after Start over: the app's Apply button. |
Events
| Name | Type | Description |
|---|---|---|
review-change | CustomEvent | After a decision, an undo, Accept all, Reject all or Start over; detail is { decisions, result, index }. |
review-complete | CustomEvent | When the last open hunk is decided; detail is { decisions, result }. |
CSS parts
Shadow DOM styling hooks used with ::part(name). Prefer CSS custom properties when they cover the change.
| Name | Description |
|---|---|
header | The label, file name and line counts. |
bar | The review bar, or the summary once every hunk is decided. |
hunk | Each hunk. |
CSS custom properties
Grouped by semantic target and state from --c2-<component>__<target>__<state>--<property>. Click a group to collapse it; click a name to copy it.
| Name | Type | Default | Description |
|---|---|---|---|
--c2-change-review--background-color | background-color | #ffffff | |
--c2-change-review--color | color | #18181b | |
--c2-change-review--border | border | 1px solid #e4e4e7 | |
--c2-change-review--border-radius | border-radius | 8px | |
--c2-change-review--max-height | pixel | none | Past this height the hunks scroll under the sticky bar. |
--c2-change-review--font-family | font-family | inherit | |
--c2-change-review--font-size | font-size | 14px | Size of the header, bar and hunk titles. |
--c2-change-review__header--padding | padding | 10px 14px | |
--c2-change-review__header--border-bottom | border | 1px solid #e4e4e7 | |
--c2-change-review__header--font-weight | font-weight | 600 | Weight of the label. |
--c2-change-review__file--color | color | #71717a | The file name. |
--c2-change-review__stats__added--color | color | #15803d | |
--c2-change-review__stats__removed--color | color | #dc2626 | |
--c2-change-review__bar--background-color | background-color | #fafafa | |
--c2-change-review__bar--border-bottom | border | 1px solid #e4e4e7 | |
--c2-change-review__bar--padding | padding | 8px 12px | |
--c2-change-review__meter--color | color | rgb(2, 101, 220) | The filled share of the progress meter. |
--c2-change-review__meter--background-color | background-color | #e4e4e7 | |
--c2-change-review__done--background-color | background-color | rgba(22, 163, 74, 0.08) | The summary once every hunk is decided. |
--c2-change-review__done-icon--background-color | background-color | #16a34a | |
--c2-change-review__hunk--border | border | 1px solid #e4e4e7 | |
--c2-change-review__hunk--border-radius | border-radius | 6px | |
--c2-change-review__hunk--margin | margin | 8px 12px | |
--c2-change-review__hunk__current--border-color | color | rgb(2, 101, 220) | Outline of the current hunk. |
--c2-change-review__hunk-head--background-color | background-color | #fafafa | |
--c2-change-review__muted--color | color | #52525b | Hunk titles, gap rows and collapsed lines. |
--c2-change-review__code--font-family | font-family | ui-monospace, SFMono-Regular, Menlo, Consolas, monospace | |
--c2-change-review__code--font-size | font-size | 12px | |
--c2-change-review__code--line-height | line-height | 20px | |
--c2-change-review__line__added--background-color | background-color | rgba(22, 163, 74, 0.12) | |
--c2-change-review__line__removed--background-color | background-color | rgba(220, 38, 38, 0.12) | |
--c2-change-review__word__added--background-color | background-color | rgba(22, 163, 74, 0.3) | |
--c2-change-review__word__removed--background-color | background-color | rgba(220, 38, 38, 0.3) | |
--c2-change-review__marker__added--color | color | #15803d | |
--c2-change-review__marker__removed--color | color | #dc2626 | |
--c2-change-review__line-number--color | color | #52525b | |
--c2-change-review__status__accepted--background-color | background-color | rgba(22, 163, 74, 0.14) | |
--c2-change-review__status__accepted--color | color | #166534 | |
--c2-change-review__status__rejected--background-color | background-color | rgba(113, 113, 122, 0.14) | |
--c2-change-review__status__rejected--color | color | #52525b | |
--c2-change-review__button--height | pixel | 30px | |
--c2-change-review__button--border-radius | border-radius | 6px | |
--c2-change-review__button--border | border | 1px solid #bcbcc6 | Reject, Reject all, Start over. |
--c2-change-review__button--color | color | #18181b | |
--c2-change-review__button--background-color | background-color | transparent | |
--c2-change-review__button__hover--background-color | background-color | #f4f4f5 | |
--c2-change-review__button__primary--background-color | background-color | rgb(2, 101, 220) | Accept and Accept all. |
--c2-change-review__button__primary--color | color | #ffffff | |
--c2-change-review__button__primary__hover--background-color | background-color | rgb(1, 84, 184) | |
--c2-change-review__link--color | color | rgb(2, 101, 220) | Undo. |
--c2-change-review__focus--outline | outline | 2px solid rgba(2, 101, 220, 0.4) | |
Text and languages
The text the component shows, in English. It shows another language when the app adds one with addTranslations, under change-review, and the nearest lang asks for it; any message not translated stays in English. {0}, {1}… stand for the values a message carries. Languages guide.
| Key | English | Values |
|---|---|---|
review | Change review | — |
bar | Review | — |
progress | Hunk {0} of {1} | {0} current {1} total |
left | {0} left | {0} count |
previous | Previous change | — |
next | Next change | — |
acceptAll | Accept all | — |
rejectAll | Reject all | — |
accept | Accept | — |
reject | Reject | — |
undo | Undo | — |
acceptChange | Accept change {0} | {0} index |
rejectChange | Reject change {0} | {0} index |
undoChange | Undo change {0} | {0} index |
shortcut | {0} ({1}) | {0} label {1} keys |
changeTitle | Change {0} · {1} | {0} index {1} range |
line | line {0} | {0} line |
lineRange | lines {0}–{1} | {0} first {1} last |
changeLabel | Change {0} of {1}: {2} lines removed, {3} added | {0} index {1} total {2} removed {3} added |
added | Added: | — |
removed | Removed: | — |
accepted | Accepted | — |
rejected | Rejected | — |
removedLines | {0} lines removed | {0} count |
notAdded | {0} lines not added | {0} count |
unchanged | {0} unchanged lines | {0} count |
allReviewed | All {0} changes reviewed | {0} count |
summary | {0} accepted · {1} rejected | {0} accepted {1} rejected |
startOver | Start over | — |
noChanges | No changes | — |
stats | {0} added, {1} removed | {0} added {1} removed |
announceAccepted | Change {0} accepted. {1} left. | {0} index {1} left |
announceRejected | Change {0} rejected. {1} left. | {0} index {1} left |
announceUndone | Change {0} is open again. | {0} index |
announceDone | All changes reviewed: {0} accepted, {1} rejected. | {0} accepted {1} rejected |
announceReset | Every change is open again. | — |