From 1e1872aada10fc39126e13675560e692e80258d0 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 21 Jan 2026 13:31:06 -0600 Subject: wip(app): line selection --- packages/ui/src/components/markdown.css | 14 ++++++- packages/ui/src/components/popover.tsx | 60 +++++++++++++++------------ packages/ui/src/components/session-review.css | 19 ++++++--- packages/ui/src/components/session-review.tsx | 2 + packages/ui/src/pierre/index.ts | 21 +++++++--- packages/ui/src/styles/base.css | 5 +++ 6 files changed, 81 insertions(+), 40 deletions(-) (limited to 'packages/ui/src') diff --git a/packages/ui/src/components/markdown.css b/packages/ui/src/components/markdown.css index a30510a8d..ef4318733 100644 --- a/packages/ui/src/components/markdown.css +++ b/packages/ui/src/components/markdown.css @@ -60,8 +60,8 @@ ol { margin-top: 0.5rem; margin-bottom: 1rem; - padding-left: 0; - list-style-position: inside; + padding-left: 1.5rem; + list-style-position: outside; } ul { @@ -76,6 +76,16 @@ margin-bottom: 0.5rem; } + li > p:first-child { + display: inline; + margin: 0; + } + + li > p + p { + display: block; + margin-top: 0.5rem; + } + li::marker { color: var(--text-weak); } diff --git a/packages/ui/src/components/popover.tsx b/packages/ui/src/components/popover.tsx index 6db44f5f9..8552f601a 100644 --- a/packages/ui/src/components/popover.tsx +++ b/packages/ui/src/components/popover.tsx @@ -13,6 +13,7 @@ export interface PopoverProps description?: JSXElement class?: ComponentProps<"div">["class"] classList?: ComponentProps<"div">["classList"] + portal?: boolean } export function Popover(props: PopoverProps) { @@ -26,40 +27,45 @@ export function Popover(props: PopoverProps "class", "classList", "children", + "portal", ]) + const content = () => ( + + {/* */} + +
+ {local.title} + +
+
+ + {local.description} + +
{local.children}
+
+ ) + return ( {local.trigger} - - - {/* */} - -
- {local.title} - -
-
- - {local.description} - -
{local.children}
-
-
+ + {content()} +
) } diff --git a/packages/ui/src/components/session-review.css b/packages/ui/src/components/session-review.css index 775d3d444..d271da5f9 100644 --- a/packages/ui/src/components/session-review.css +++ b/packages/ui/src/components/session-review.css @@ -198,6 +198,7 @@ [data-slot="session-review-diff-wrapper"] { position: relative; + overflow: hidden; } [data-slot="session-review-comment-anchor"] { @@ -213,15 +214,15 @@ display: flex; align-items: center; justify-content: center; - background: var(--surface-base); - border: 1px solid color-mix(in oklch, var(--icon-info-active) 60%, transparent); - color: var(--icon-info-active); - box-shadow: var(--shadow-xs-border); + background: var(--surface-warning-base); + border: 1px solid var(--border-warning-base); + color: var(--icon-warning-active); + box-shadow: var(--shadow-xs); cursor: pointer; &:hover { - background: var(--surface-raised-base-hover); - border-color: var(--icon-info-active); + background: var(--surface-warning-weak); + border-color: var(--border-warning-hover); } &:focus { @@ -240,6 +241,12 @@ max-width: 320px; } + [data-slot="session-review-comment-popover"] { + display: flex; + flex-direction: column; + gap: 6px; + } + [data-slot="session-review-comment-hover-label"], [data-slot="session-review-comment-popover-label"] { font-family: var(--font-family-sans); diff --git a/packages/ui/src/components/session-review.tsx b/packages/ui/src/components/session-review.tsx index 7afebdced..f3e7736f8 100644 --- a/packages/ui/src/components/session-review.tsx +++ b/packages/ui/src/components/session-review.tsx @@ -581,6 +581,7 @@ export const SessionReview = (props: SessionReviewProps) => { }} > { if (open) { @@ -632,6 +633,7 @@ export const SessionReview = (props: SessionReviewProps) => {
{ if (open) return diff --git a/packages/ui/src/pierre/index.ts b/packages/ui/src/pierre/index.ts index 16bc08f86..cef515613 100644 --- a/packages/ui/src/pierre/index.ts +++ b/packages/ui/src/pierre/index.ts @@ -32,11 +32,12 @@ const unsafeCSS = ` --diffs-bg-addition-number: var(--diffs-bg-addition-number-override, light-dark( color-mix(in lab, var(--diffs-bg) 91%, var(--diffs-addition-base)), color-mix(in lab, var(--diffs-bg) 85%, var(--diffs-addition-base)))); --diffs-bg-addition-hover: var(--diffs-bg-addition-hover-override, light-dark( color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-addition-base)), color-mix(in lab, var(--diffs-bg) 70%, var(--diffs-addition-base)))); --diffs-bg-addition-emphasis: var(--diffs-bg-addition-emphasis-override, light-dark(rgb(from var(--diffs-addition-base) r g b / 0.07), rgb(from var(--diffs-addition-base) r g b / 0.1))); - --diffs-selection-base: var(--text-interactive-base); - --diffs-selection-number-fg: light-dark( color-mix(in lab, var(--diffs-selection-base) 65%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-selection-base) 75%, var(--diffs-mixer))); - --diffs-bg-selection: var(--diffs-bg-selection-override, rgb(from var(--diffs-selection-base) r g b / 0.18)); - --diffs-bg-selection-number: var(--diffs-bg-selection-number-override, rgb(from var(--diffs-selection-base) r g b / 0.22)); - --diffs-bg-selection-text: rgb(from var(--diffs-selection-base) r g b / 0.12); + --diffs-selection-base: var(--surface-warning-strong); + --diffs-selection-border: var(--border-warning-base); + --diffs-selection-number-fg: var(--text-on-warning-strong); + --diffs-bg-selection: var(--diffs-bg-selection-override, color-mix(in oklch, var(--surface-warning-base) 65%, transparent)); + --diffs-bg-selection-number: var(--diffs-bg-selection-number-override, color-mix(in oklch, var(--surface-warning-base) 85%, transparent)); + --diffs-bg-selection-text: color-mix(in oklch, var(--surface-warning-strong) 20%, transparent); } [data-diffs] ::selection { @@ -52,6 +53,16 @@ const unsafeCSS = ` color: var(--diffs-selection-number-fg); } +[data-diffs] [data-selected-line] { + background-color: var(--diffs-bg-selection); + box-shadow: inset 2px 0 0 var(--diffs-selection-border); +} + +[data-diffs] [data-selected-line] [data-column-number] { + background-color: var(--diffs-bg-selection-number); + color: var(--diffs-selection-number-fg); +} + [data-diffs-header], [data-diffs] { [data-separator-wrapper] { diff --git a/packages/ui/src/styles/base.css b/packages/ui/src/styles/base.css index 729ff045a..33a245705 100644 --- a/packages/ui/src/styles/base.css +++ b/packages/ui/src/styles/base.css @@ -79,6 +79,11 @@ a { color: inherit; -webkit-text-decoration: inherit; text-decoration: inherit; + cursor: default; +} + +*[data-tauri-drag-region] { + app-region: drag; } /* -- cgit v1.2.3