feat: select text across bullets and delete it like a text editor; Ctrl+Z in tasks; notes and lists without emoji; custom done columns complete tasks
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m33s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m33s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e2b9daba75
commit
6fb98d4002
27 files changed
+535
-64
No files matched your search
@@ -125,6 +125,8 @@ export interface OutlinerBlockProps {
|
||||
onResolveConflict?: (blockId: string, accept: boolean) => void;
|
||||
onUndo?: () => void;
|
||||
onRedo?: () => void;
|
||||
/** Part of a selection over several bullets (browsers without the CSS Highlight API tint the row) */
|
||||
inRangeSelection?: boolean;
|
||||
}
|
||||
|
||||
// Rendered markdown only drops syntax characters (**, `, [..](url) …), so its text is a subsequence of the raw
|
||||
@@ -175,6 +177,7 @@ export const OutlinerBlock: React.FC<OutlinerBlockProps> = ({
|
||||
onResolveConflict,
|
||||
onUndo,
|
||||
onRedo,
|
||||
inRangeSelection,
|
||||
}) => {
|
||||
const [localContent, setLocalContent] = useState<string>(block.content || '');
|
||||
const [isLocallyFocused, setIsLocallyFocused] = useState<boolean>(false);
|
||||
@@ -1077,7 +1080,10 @@ export const OutlinerBlock: React.FC<OutlinerBlockProps> = ({
|
||||
|
||||
return (
|
||||
<div
|
||||
data-outline-block={block.id}
|
||||
className={`group relative flex items-start gap-1 py-1 px-0.5 sm:px-1.5 rounded-card transition-all duration-300 ${
|
||||
inRangeSelection ? 'bg-accent/15' : ''
|
||||
} ${
|
||||
block.type === 'h1'
|
||||
? 'mt-2.5 sm:mt-3'
|
||||
: block.type === 'h2'
|
||||
@@ -1387,7 +1393,7 @@ export const OutlinerBlock: React.FC<OutlinerBlockProps> = ({
|
||||
}`}
|
||||
>
|
||||
{/* When actively focused, ghost text is invisible so textarea renders text/caret directly */}
|
||||
<span ref={renderedTextRef} className={activeFocus ? 'invisible' : ''}>
|
||||
<span ref={renderedTextRef} data-outline-text className={activeFocus ? 'invisible' : ''}>
|
||||
{previewUrl && !activeFocus ? (
|
||||
// The card above shows the page; the address itself becomes a small link marker
|
||||
<a
|
||||
|
||||
Reference in new issue
Block a user