@parhelia/core 0.4.12818 → 0.4.12825
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.
- package/dist/config/config.js +3 -0
- package/dist/config/config.js.map +1 -1
- package/dist/editor/ai/AgentStatusBadge.js +11 -9
- package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
- package/dist/editor/ai/Agents.js +2 -2
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/agentDiagnostics.d.ts +1 -1
- package/dist/editor/ai/agentDiagnostics.js +8 -0
- package/dist/editor/ai/agentDiagnostics.js.map +1 -1
- package/dist/editor/ai/terminal/agentSessionSnapshot.d.ts +15 -0
- package/dist/editor/ai/terminal/agentSessionSnapshot.js +103 -3
- package/dist/editor/ai/terminal/agentSessionSnapshot.js.map +1 -1
- package/dist/editor/ai/terminal/agentSessionState.js +5 -1
- package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +5 -5
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js +2 -2
- package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js.map +1 -1
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +8 -7
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentEditorContext.js +13 -3
- package/dist/editor/ai/terminal/useAgentEditorContext.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentOperationHistoryLoader.js +5 -1
- package/dist/editor/ai/terminal/useAgentOperationHistoryLoader.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentOperationSocketHandler.js +33 -1
- package/dist/editor/ai/terminal/useAgentOperationSocketHandler.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentServerReconciler.js +11 -0
- package/dist/editor/ai/terminal/useAgentServerReconciler.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +1 -0
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +6 -2
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js +4 -0
- package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
- package/dist/editor/bridge/protocol.d.ts +5 -0
- package/dist/editor/bridge/protocol.js.map +1 -1
- package/dist/editor/client/EditorShell.js +4 -3
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js +3 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/operations.js +34 -2
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/commands/commands.d.ts +6 -0
- package/dist/editor/commands/commands.js.map +1 -1
- package/dist/editor/field-types/RichTextEditorComponent.js +10 -1
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +8 -2
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/field-types/useFormFieldCaretPresence.js +1 -0
- package/dist/editor/field-types/useFormFieldCaretPresence.js.map +1 -1
- package/dist/editor/find-replace/FindReplacePanel.d.ts +11 -0
- package/dist/editor/find-replace/FindReplacePanel.js +311 -0
- package/dist/editor/find-replace/FindReplacePanel.js.map +1 -0
- package/dist/editor/find-replace/findReplaceCommand.d.ts +8 -0
- package/dist/editor/find-replace/findReplaceCommand.js +25 -0
- package/dist/editor/find-replace/findReplaceCommand.js.map +1 -0
- package/dist/editor/find-replace/findReplaceMatches.d.ts +42 -0
- package/dist/editor/find-replace/findReplaceMatches.js +66 -0
- package/dist/editor/find-replace/findReplaceMatches.js.map +1 -0
- package/dist/editor/find-replace/findReplaceStore.d.ts +30 -0
- package/dist/editor/find-replace/findReplaceStore.js +61 -0
- package/dist/editor/find-replace/findReplaceStore.js.map +1 -0
- package/dist/editor/find-replace/findReplaceTargets.d.ts +49 -0
- package/dist/editor/find-replace/findReplaceTargets.js +110 -0
- package/dist/editor/find-replace/findReplaceTargets.js.map +1 -0
- package/dist/editor/find-replace/findReplaceText.d.ts +50 -0
- package/dist/editor/find-replace/findReplaceText.js +189 -0
- package/dist/editor/find-replace/findReplaceText.js.map +1 -0
- package/dist/editor/menubar/ActiveUsers.js +1 -1
- package/dist/editor/menubar/ActiveUsers.js.map +1 -1
- package/dist/editor/menubar/ToolbarFactory.js +9 -1
- package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
- package/dist/editor/menubar/VersionSelector.js +2 -2
- package/dist/editor/menubar/VersionSelector.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/FindReplaceControls.d.ts +6 -0
- package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js +31 -0
- package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/index.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/index.js +1 -0
- package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +8 -4
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.d.ts +11 -0
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js +117 -0
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js.map +1 -0
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +2 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +8 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.d.ts +6 -2
- package/dist/editor/page-viewer/MiniMap.js +139 -21
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +21 -5
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/bridgeKeyboardShortcuts.d.ts +6 -0
- package/dist/editor/page-viewer/bridgeKeyboardShortcuts.js +19 -1
- package/dist/editor/page-viewer/bridgeKeyboardShortcuts.js.map +1 -1
- package/dist/editor/page-viewer/minimapViewport.d.ts +2 -0
- package/dist/editor/page-viewer/minimapViewport.js +31 -0
- package/dist/editor/page-viewer/minimapViewport.js.map +1 -0
- package/dist/editor/reviews/CommentEditor.js +34 -29
- package/dist/editor/reviews/CommentEditor.js.map +1 -1
- package/dist/editor/reviews/CommentImageAttachments.d.ts +12 -0
- package/dist/editor/reviews/CommentImageAttachments.js +19 -0
- package/dist/editor/reviews/CommentImageAttachments.js.map +1 -0
- package/dist/editor/reviews/SuggestionDisplayPopover.d.ts +3 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +7 -2
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/commentAgentAttachments.d.ts +5 -0
- package/dist/editor/reviews/commentAgentAttachments.js +51 -0
- package/dist/editor/reviews/commentAgentAttachments.js.map +1 -0
- package/dist/editor/reviews/commentAi.d.ts +4 -2
- package/dist/editor/reviews/commentAi.js +19 -12
- package/dist/editor/reviews/commentAi.js.map +1 -1
- package/dist/editor/reviews/useCommentImagePaste.d.ts +41 -14
- package/dist/editor/reviews/useCommentImagePaste.js +102 -63
- package/dist/editor/reviews/useCommentImagePaste.js.map +1 -1
- package/dist/editor/services/agentStatus.d.ts +1 -0
- package/dist/editor/services/agentStatus.js +14 -0
- package/dist/editor/services/agentStatus.js.map +1 -1
- package/dist/editor/settings/index/RecentBatchesList.js +2 -1
- package/dist/editor/settings/index/RecentBatchesList.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +6 -3
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/OperationItem.js +2 -1
- package/dist/editor/sidebar/OperationItem.js.map +1 -1
- package/dist/editor/sidebar/liveComponentThumbnails.d.ts +6 -2
- package/dist/editor/sidebar/liveComponentThumbnails.js +7 -2
- package/dist/editor/sidebar/liveComponentThumbnails.js.map +1 -1
- package/dist/editor/ui/ParheliaMark.d.ts +15 -0
- package/dist/editor/ui/ParheliaMark.js +12 -0
- package/dist/editor/ui/ParheliaMark.js.map +1 -0
- package/dist/editor/undoEligibility.d.ts +2 -0
- package/dist/editor/undoEligibility.js +8 -0
- package/dist/editor/undoEligibility.js.map +1 -0
- package/dist/editor/utils/keyboardNavigation.js +16 -0
- package/dist/editor/utils/keyboardNavigation.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +7 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/ModernSplashScreen.js +4 -3
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/splash-screen/RecentPages.js +3 -3
- package/dist/splash-screen/RecentPages.js.map +1 -1
- package/dist/task-board/TaskBoardWorkspace.js +179 -33
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/AttentionPromptDialog.d.ts +13 -0
- package/dist/task-board/components/AttentionPromptDialog.js +45 -0
- package/dist/task-board/components/AttentionPromptDialog.js.map +1 -0
- package/dist/task-board/components/GoalDataView.d.ts +22 -1
- package/dist/task-board/components/GoalDataView.js +63 -17
- package/dist/task-board/components/GoalDataView.js.map +1 -1
- package/dist/task-board/components/GoalFindingsTable.d.ts +43 -0
- package/dist/task-board/components/GoalFindingsTable.js +160 -0
- package/dist/task-board/components/GoalFindingsTable.js.map +1 -0
- package/dist/task-board/components/GoalsMatrix.js +33 -6
- package/dist/task-board/components/GoalsMatrix.js.map +1 -1
- package/dist/task-board/components/IssuePanel.d.ts +31 -0
- package/dist/task-board/components/IssuePanel.js +268 -0
- package/dist/task-board/components/IssuePanel.js.map +1 -0
- package/dist/task-board/components/ProjectGoalsPanel.js +66 -13
- package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
- package/dist/task-board/components/SubgoalFindings.d.ts +40 -0
- package/dist/task-board/components/SubgoalFindings.js +88 -0
- package/dist/task-board/components/SubgoalFindings.js.map +1 -0
- package/dist/task-board/components/TaskAgentPanel.d.ts +2 -0
- package/dist/task-board/components/TaskAgentPanel.js +5 -4
- package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
- package/dist/task-board/components/TaskDetailPanel.js +8 -12
- package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationCenter.d.ts +2 -0
- package/dist/task-board/components/WizardCommunicationCenter.js +5 -3
- package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationShared.js +2 -1
- package/dist/task-board/components/WizardCommunicationShared.js.map +1 -1
- package/dist/task-board/components/WizardTask.d.ts +2 -0
- package/dist/task-board/components/WizardTask.js +2 -2
- package/dist/task-board/components/WizardTask.js.map +1 -1
- package/dist/task-board/components/WizardTaskDetailsPanel.d.ts +4 -0
- package/dist/task-board/components/WizardTaskDetailsPanel.js +16 -3
- package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
- package/dist/task-board/services/issueService.d.ts +193 -0
- package/dist/task-board/services/issueService.js +97 -0
- package/dist/task-board/services/issueService.js.map +1 -0
- package/dist/task-board/types.d.ts +24 -0
- package/dist/task-board/utils/projectDashboardModel.js +8 -0
- package/dist/task-board/utils/projectDashboardModel.js.map +1 -1
- package/package.json +1 -1
- package/styles.css +57 -3
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Field, FullItem, ItemDescriptor, Page } from "../pageModel";
|
|
2
|
+
export type FindReplaceScope = "page" | "item";
|
|
3
|
+
/** An item whose text fields the dialog searches, with where it came from. */
|
|
4
|
+
export type FindReplaceItemSource = {
|
|
5
|
+
descriptor: ItemDescriptor;
|
|
6
|
+
/** True for the item that is being edited (the page itself in page mode). */
|
|
7
|
+
isMainItem: boolean;
|
|
8
|
+
/** Name of the canvas component the item belongs to, when it is a component's content. */
|
|
9
|
+
componentName?: string;
|
|
10
|
+
/** Id of that canvas component (scroll fallback when a text range cannot be measured). */
|
|
11
|
+
componentId?: string;
|
|
12
|
+
/** Content of a shared component: replacing it changes every page that renders it. */
|
|
13
|
+
isShared?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type FindReplaceFieldTarget = {
|
|
16
|
+
item: FullItem;
|
|
17
|
+
field: Field;
|
|
18
|
+
source: FindReplaceItemSource;
|
|
19
|
+
/** The current text (HTML for rich text) the replacement runs on. */
|
|
20
|
+
value: string;
|
|
21
|
+
count: number;
|
|
22
|
+
snippet: string;
|
|
23
|
+
};
|
|
24
|
+
export type FindReplacePlan = {
|
|
25
|
+
targets: FindReplaceFieldTarget[];
|
|
26
|
+
totalMatches: number;
|
|
27
|
+
/** Fields with a match whose value is inherited (fallback / standard value); never rewritten. */
|
|
28
|
+
skippedInherited: number;
|
|
29
|
+
/** Fields with a match the current user may not write. */
|
|
30
|
+
skippedReadOnly: number;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Lists the items the dialog searches. In page scope that is the page item
|
|
34
|
+
* plus every item rendered by a component on it (datasources and embedded
|
|
35
|
+
* content parts); in item scope only the item being edited. The main item
|
|
36
|
+
* always comes first and every item appears once.
|
|
37
|
+
*/
|
|
38
|
+
export declare function collectFindReplaceItemSources(args: {
|
|
39
|
+
page?: Page;
|
|
40
|
+
item?: FullItem;
|
|
41
|
+
currentItemDescriptor?: ItemDescriptor;
|
|
42
|
+
scope: FindReplaceScope;
|
|
43
|
+
}): FindReplaceItemSource[];
|
|
44
|
+
/**
|
|
45
|
+
* Computes which fields the replacement would touch. Inherited values
|
|
46
|
+
* (language fallback, standard values) and read-only fields are counted but
|
|
47
|
+
* excluded, so "Replace all" only rewrites values the item actually owns.
|
|
48
|
+
*/
|
|
49
|
+
export declare function planFindReplace(items: FullItem[], sources: FindReplaceItemSource[], find: RegExp | undefined): FindReplacePlan;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { buildMatchSnippet, countMatchesInFieldValue, isFindReplaceTextFieldType, } from "./findReplaceText";
|
|
2
|
+
function descriptorKey(descriptor) {
|
|
3
|
+
return `${descriptor.id.replace(/[{}]/g, "").toLowerCase()}|${(descriptor.language ?? "").toLowerCase()}|${descriptor.version ?? 0}`;
|
|
4
|
+
}
|
|
5
|
+
function collectComponentSources(component, add, inheritedShared) {
|
|
6
|
+
const isShared = inheritedShared || !!component.isShared;
|
|
7
|
+
if (component.datasourceItem) {
|
|
8
|
+
add({
|
|
9
|
+
descriptor: component.datasourceItem,
|
|
10
|
+
isMainItem: false,
|
|
11
|
+
componentName: component.name,
|
|
12
|
+
componentId: component.id,
|
|
13
|
+
isShared,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
component.items?.forEach((item) => add({
|
|
17
|
+
descriptor: item,
|
|
18
|
+
isMainItem: false,
|
|
19
|
+
componentName: component.name,
|
|
20
|
+
componentId: component.id,
|
|
21
|
+
isShared,
|
|
22
|
+
}));
|
|
23
|
+
component.placeholders?.forEach((placeholder) => placeholder.components?.forEach((child) => collectComponentSources(child, add, isShared)));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Lists the items the dialog searches. In page scope that is the page item
|
|
27
|
+
* plus every item rendered by a component on it (datasources and embedded
|
|
28
|
+
* content parts); in item scope only the item being edited. The main item
|
|
29
|
+
* always comes first and every item appears once.
|
|
30
|
+
*/
|
|
31
|
+
export function collectFindReplaceItemSources(args) {
|
|
32
|
+
const { page, item, currentItemDescriptor, scope } = args;
|
|
33
|
+
const mainDescriptor = page?.item?.descriptor ?? item?.descriptor ?? currentItemDescriptor;
|
|
34
|
+
const sources = [];
|
|
35
|
+
const seen = new Set();
|
|
36
|
+
const add = (source) => {
|
|
37
|
+
if (!source.descriptor?.id)
|
|
38
|
+
return;
|
|
39
|
+
const key = descriptorKey(source.descriptor);
|
|
40
|
+
if (seen.has(key))
|
|
41
|
+
return;
|
|
42
|
+
seen.add(key);
|
|
43
|
+
sources.push(source);
|
|
44
|
+
};
|
|
45
|
+
if (mainDescriptor)
|
|
46
|
+
add({ descriptor: mainDescriptor, isMainItem: true });
|
|
47
|
+
if (scope === "page" && page?.rootComponent) {
|
|
48
|
+
collectComponentSources(page.rootComponent, add, false);
|
|
49
|
+
}
|
|
50
|
+
return sources;
|
|
51
|
+
}
|
|
52
|
+
function getSearchableValue(field) {
|
|
53
|
+
if (typeof field.value === "string")
|
|
54
|
+
return field.value;
|
|
55
|
+
if (typeof field.rawValue === "string")
|
|
56
|
+
return field.rawValue;
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Computes which fields the replacement would touch. Inherited values
|
|
61
|
+
* (language fallback, standard values) and read-only fields are counted but
|
|
62
|
+
* excluded, so "Replace all" only rewrites values the item actually owns.
|
|
63
|
+
*/
|
|
64
|
+
export function planFindReplace(items, sources, find) {
|
|
65
|
+
const plan = {
|
|
66
|
+
targets: [],
|
|
67
|
+
totalMatches: 0,
|
|
68
|
+
skippedInherited: 0,
|
|
69
|
+
skippedReadOnly: 0,
|
|
70
|
+
};
|
|
71
|
+
if (!find)
|
|
72
|
+
return plan;
|
|
73
|
+
const itemsByKey = new Map(items.map((item) => [descriptorKey(item.descriptor ?? item), item]));
|
|
74
|
+
sources.forEach((source) => {
|
|
75
|
+
const item = itemsByKey.get(descriptorKey(source.descriptor));
|
|
76
|
+
if (!item)
|
|
77
|
+
return;
|
|
78
|
+
const fields = [...item.fields].sort((a, b) => (a.sectionSortOrder ?? 0) - (b.sectionSortOrder ?? 0) ||
|
|
79
|
+
(a.sortOrder ?? 0) - (b.sortOrder ?? 0));
|
|
80
|
+
fields.forEach((field) => {
|
|
81
|
+
if (!isFindReplaceTextFieldType(field.type))
|
|
82
|
+
return;
|
|
83
|
+
const value = getSearchableValue(field);
|
|
84
|
+
if (!value)
|
|
85
|
+
return;
|
|
86
|
+
const count = countMatchesInFieldValue(value, field.type, find);
|
|
87
|
+
if (count === 0)
|
|
88
|
+
return;
|
|
89
|
+
if (field.isFallback || field.isStandardValue) {
|
|
90
|
+
plan.skippedInherited += count;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (field.canWrite === false || item.canWriteItem === false) {
|
|
94
|
+
plan.skippedReadOnly += count;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
plan.targets.push({
|
|
98
|
+
item,
|
|
99
|
+
field,
|
|
100
|
+
source,
|
|
101
|
+
value,
|
|
102
|
+
count,
|
|
103
|
+
snippet: buildMatchSnippet(value, field.type, find),
|
|
104
|
+
});
|
|
105
|
+
plan.totalMatches += count;
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
return plan;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=findReplaceTargets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findReplaceTargets.js","sourceRoot":"","sources":["../../../src/editor/find-replace/findReplaceTargets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure text helpers for the "Find and replace" dialog. Everything in here is
|
|
3
|
+
* free of React and of the edit context so it can be unit tested directly.
|
|
4
|
+
*/
|
|
5
|
+
export type FindReplaceOptions = {
|
|
6
|
+
matchCase: boolean;
|
|
7
|
+
wholeWord: boolean;
|
|
8
|
+
};
|
|
9
|
+
/** Field types whose value is a text string the dialog may search and rewrite. */
|
|
10
|
+
export declare function isFindReplaceTextFieldType(type: string | undefined): boolean;
|
|
11
|
+
/** True for rich text: the value is HTML, so only text between tags is searched. */
|
|
12
|
+
export declare function isHtmlFieldType(type: string | undefined): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Builds the global search expression for a literal search string. Returns
|
|
15
|
+
* undefined for an empty search string so callers never match "everything".
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildFindRegExp(find: string, options: FindReplaceOptions): RegExp | undefined;
|
|
18
|
+
export declare function countMatches(text: string, find: RegExp): number;
|
|
19
|
+
/**
|
|
20
|
+
* Replaces every match in plain text, or only the match with the given
|
|
21
|
+
* 0-based occurrence index. The replacement is literal: `$` in the
|
|
22
|
+
* replacement string is not interpreted as a back-reference.
|
|
23
|
+
*/
|
|
24
|
+
export declare function replaceInText(text: string, find: RegExp, replacement: string, onlyOccurrence?: number): {
|
|
25
|
+
value: string;
|
|
26
|
+
count: number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Strips tags and decodes entities so an HTML value can be searched (for
|
|
30
|
+
* counting) and shown as a plain snippet.
|
|
31
|
+
*/
|
|
32
|
+
export declare function htmlToSearchableText(html: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Replaces matches in the text nodes of an HTML string. Tags and attributes
|
|
35
|
+
* are left alone. Text segments that contain no match keep their original
|
|
36
|
+
* entity spelling; changed segments are re-encoded so `&`, `<` and `>` in the
|
|
37
|
+
* replacement never break the markup. Matches that span a tag boundary (for
|
|
38
|
+
* example "Hello <b>world</b>") are not found.
|
|
39
|
+
*/
|
|
40
|
+
export declare function replaceInHtml(html: string, find: RegExp, replacement: string, onlyOccurrence?: number): {
|
|
41
|
+
value: string;
|
|
42
|
+
count: number;
|
|
43
|
+
};
|
|
44
|
+
export declare function countMatchesInFieldValue(value: string, fieldType: string | undefined, find: RegExp): number;
|
|
45
|
+
export declare function replaceInFieldValue(value: string, fieldType: string | undefined, find: RegExp, replacement: string, onlyOccurrence?: number): {
|
|
46
|
+
value: string;
|
|
47
|
+
count: number;
|
|
48
|
+
};
|
|
49
|
+
/** Short, single-line excerpt around the first match for the preview list. */
|
|
50
|
+
export declare function buildMatchSnippet(value: string, fieldType: string | undefined, find: RegExp, contextLength?: number): string;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure text helpers for the "Find and replace" dialog. Everything in here is
|
|
3
|
+
* free of React and of the edit context so it can be unit tested directly.
|
|
4
|
+
*/
|
|
5
|
+
const FIND_REPLACE_TEXT_FIELD_TYPES = new Set([
|
|
6
|
+
"single-line text",
|
|
7
|
+
"multi-line text",
|
|
8
|
+
"memo",
|
|
9
|
+
"rich text",
|
|
10
|
+
]);
|
|
11
|
+
/** Field types whose value is a text string the dialog may search and rewrite. */
|
|
12
|
+
export function isFindReplaceTextFieldType(type) {
|
|
13
|
+
return FIND_REPLACE_TEXT_FIELD_TYPES.has((type ?? "").trim().toLowerCase());
|
|
14
|
+
}
|
|
15
|
+
/** True for rich text: the value is HTML, so only text between tags is searched. */
|
|
16
|
+
export function isHtmlFieldType(type) {
|
|
17
|
+
return (type ?? "").trim().toLowerCase() === "rich text";
|
|
18
|
+
}
|
|
19
|
+
function escapeRegExp(text) {
|
|
20
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Builds the global search expression for a literal search string. Returns
|
|
24
|
+
* undefined for an empty search string so callers never match "everything".
|
|
25
|
+
*/
|
|
26
|
+
export function buildFindRegExp(find, options) {
|
|
27
|
+
if (!find)
|
|
28
|
+
return undefined;
|
|
29
|
+
const escaped = escapeRegExp(find);
|
|
30
|
+
const source = options.wholeWord
|
|
31
|
+
? `(?<![\\p{L}\\p{N}_])${escaped}(?![\\p{L}\\p{N}_])`
|
|
32
|
+
: escaped;
|
|
33
|
+
return new RegExp(source, options.matchCase ? "gu" : "giu");
|
|
34
|
+
}
|
|
35
|
+
export function countMatches(text, find) {
|
|
36
|
+
if (!text)
|
|
37
|
+
return 0;
|
|
38
|
+
find.lastIndex = 0;
|
|
39
|
+
const matches = text.match(find);
|
|
40
|
+
find.lastIndex = 0;
|
|
41
|
+
return matches ? matches.length : 0;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Replaces every match in plain text, or only the match with the given
|
|
45
|
+
* 0-based occurrence index. The replacement is literal: `$` in the
|
|
46
|
+
* replacement string is not interpreted as a back-reference.
|
|
47
|
+
*/
|
|
48
|
+
export function replaceInText(text, find, replacement, onlyOccurrence) {
|
|
49
|
+
if (!text)
|
|
50
|
+
return { value: text, count: 0 };
|
|
51
|
+
let count = 0;
|
|
52
|
+
let seen = 0;
|
|
53
|
+
find.lastIndex = 0;
|
|
54
|
+
const value = text.replace(find, (matched) => {
|
|
55
|
+
const index = seen;
|
|
56
|
+
seen += 1;
|
|
57
|
+
if (onlyOccurrence !== undefined && index !== onlyOccurrence) {
|
|
58
|
+
return matched;
|
|
59
|
+
}
|
|
60
|
+
count += 1;
|
|
61
|
+
return replacement;
|
|
62
|
+
});
|
|
63
|
+
find.lastIndex = 0;
|
|
64
|
+
return { value, count };
|
|
65
|
+
}
|
|
66
|
+
const NBSP = String.fromCharCode(0xa0);
|
|
67
|
+
const NAMED_ENTITIES = {
|
|
68
|
+
amp: "&",
|
|
69
|
+
lt: "<",
|
|
70
|
+
gt: ">",
|
|
71
|
+
quot: '"',
|
|
72
|
+
apos: "'",
|
|
73
|
+
nbsp: NBSP,
|
|
74
|
+
};
|
|
75
|
+
function decodeEntities(text) {
|
|
76
|
+
return text.replace(/&(#x[0-9a-f]+|#[0-9]+|[a-z]+);/gi, (entity, body) => {
|
|
77
|
+
const lower = body.toLowerCase();
|
|
78
|
+
if (lower.startsWith("#x")) {
|
|
79
|
+
const code = parseInt(lower.slice(2), 16);
|
|
80
|
+
return Number.isFinite(code) ? String.fromCodePoint(code) : entity;
|
|
81
|
+
}
|
|
82
|
+
if (lower.startsWith("#")) {
|
|
83
|
+
const code = parseInt(lower.slice(1), 10);
|
|
84
|
+
return Number.isFinite(code) ? String.fromCodePoint(code) : entity;
|
|
85
|
+
}
|
|
86
|
+
return NAMED_ENTITIES[lower] ?? entity;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function encodeEntities(text) {
|
|
90
|
+
return text
|
|
91
|
+
.replace(/&/g, "&")
|
|
92
|
+
.replace(/</g, "<")
|
|
93
|
+
.replace(/>/g, ">")
|
|
94
|
+
.replace(new RegExp(NBSP, "g"), " ");
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Splits HTML into alternating tag and text segments. Tags (including
|
|
98
|
+
* comments, doctype and processing instructions) are returned untouched so
|
|
99
|
+
* attributes, URLs and class names are never searched.
|
|
100
|
+
*/
|
|
101
|
+
function splitHtml(html) {
|
|
102
|
+
const segments = [];
|
|
103
|
+
const tagPattern = /<!--[\s\S]*?-->|<[^>]*>/g;
|
|
104
|
+
let last = 0;
|
|
105
|
+
for (const match of html.matchAll(tagPattern)) {
|
|
106
|
+
const start = match.index ?? 0;
|
|
107
|
+
if (start > last)
|
|
108
|
+
segments.push({ tag: false, text: html.slice(last, start) });
|
|
109
|
+
segments.push({ tag: true, text: match[0] });
|
|
110
|
+
last = start + match[0].length;
|
|
111
|
+
}
|
|
112
|
+
if (last < html.length)
|
|
113
|
+
segments.push({ tag: false, text: html.slice(last) });
|
|
114
|
+
return segments;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Strips tags and decodes entities so an HTML value can be searched (for
|
|
118
|
+
* counting) and shown as a plain snippet.
|
|
119
|
+
*/
|
|
120
|
+
export function htmlToSearchableText(html) {
|
|
121
|
+
return splitHtml(html)
|
|
122
|
+
.filter((segment) => !segment.tag)
|
|
123
|
+
.map((segment) => decodeEntities(segment.text))
|
|
124
|
+
.join("");
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Replaces matches in the text nodes of an HTML string. Tags and attributes
|
|
128
|
+
* are left alone. Text segments that contain no match keep their original
|
|
129
|
+
* entity spelling; changed segments are re-encoded so `&`, `<` and `>` in the
|
|
130
|
+
* replacement never break the markup. Matches that span a tag boundary (for
|
|
131
|
+
* example "Hello <b>world</b>") are not found.
|
|
132
|
+
*/
|
|
133
|
+
export function replaceInHtml(html, find, replacement, onlyOccurrence) {
|
|
134
|
+
if (!html)
|
|
135
|
+
return { value: html, count: 0 };
|
|
136
|
+
let count = 0;
|
|
137
|
+
// Occurrences are numbered across the whole value, so a single-match
|
|
138
|
+
// replacement addresses the same match the overlay highlights.
|
|
139
|
+
let seenBefore = 0;
|
|
140
|
+
const value = splitHtml(html)
|
|
141
|
+
.map((segment) => {
|
|
142
|
+
if (segment.tag)
|
|
143
|
+
return segment.text;
|
|
144
|
+
const decoded = decodeEntities(segment.text);
|
|
145
|
+
const inSegment = countMatches(decoded, find);
|
|
146
|
+
if (inSegment === 0)
|
|
147
|
+
return segment.text;
|
|
148
|
+
const localOccurrence = onlyOccurrence === undefined ? undefined : onlyOccurrence - seenBefore;
|
|
149
|
+
seenBefore += inSegment;
|
|
150
|
+
if (localOccurrence !== undefined &&
|
|
151
|
+
(localOccurrence < 0 || localOccurrence >= inSegment)) {
|
|
152
|
+
return segment.text;
|
|
153
|
+
}
|
|
154
|
+
const result = replaceInText(decoded, find, replacement, localOccurrence);
|
|
155
|
+
if (result.count === 0)
|
|
156
|
+
return segment.text;
|
|
157
|
+
count += result.count;
|
|
158
|
+
return encodeEntities(result.value);
|
|
159
|
+
})
|
|
160
|
+
.join("");
|
|
161
|
+
return { value, count };
|
|
162
|
+
}
|
|
163
|
+
export function countMatchesInFieldValue(value, fieldType, find) {
|
|
164
|
+
if (!isHtmlFieldType(fieldType))
|
|
165
|
+
return countMatches(value, find);
|
|
166
|
+
return replaceInHtml(value, find, "").count;
|
|
167
|
+
}
|
|
168
|
+
export function replaceInFieldValue(value, fieldType, find, replacement, onlyOccurrence) {
|
|
169
|
+
return isHtmlFieldType(fieldType)
|
|
170
|
+
? replaceInHtml(value, find, replacement, onlyOccurrence)
|
|
171
|
+
: replaceInText(value, find, replacement, onlyOccurrence);
|
|
172
|
+
}
|
|
173
|
+
/** Short, single-line excerpt around the first match for the preview list. */
|
|
174
|
+
export function buildMatchSnippet(value, fieldType, find, contextLength = 32) {
|
|
175
|
+
const text = (isHtmlFieldType(fieldType) ? htmlToSearchableText(value) : value)
|
|
176
|
+
.replace(/\s+/g, " ")
|
|
177
|
+
.trim();
|
|
178
|
+
find.lastIndex = 0;
|
|
179
|
+
const match = find.exec(text);
|
|
180
|
+
find.lastIndex = 0;
|
|
181
|
+
if (!match)
|
|
182
|
+
return text.slice(0, contextLength * 2);
|
|
183
|
+
const start = Math.max(0, match.index - contextLength);
|
|
184
|
+
const end = Math.min(text.length, match.index + match[0].length + contextLength);
|
|
185
|
+
return ((start > 0 ? "…" : "") +
|
|
186
|
+
text.slice(start, end) +
|
|
187
|
+
(end < text.length ? "…" : ""));
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=findReplaceText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findReplaceText.js","sourceRoot":"","sources":["../../../src/editor/find-replace/findReplaceText.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ export function ActiveUsers() {
|
|
|
97
97
|
const userEmail = session.user.email?.trim();
|
|
98
98
|
const isCurrentUser = session.sessionId === editContext?.sessionId;
|
|
99
99
|
return (_jsxs("div", { className: "hover:bg-neutral-grey-5 flex items-center gap-3 rounded p-1", children: [_jsxs("div", { className: "relative", children: [_jsx(User, { session: session }), _jsx("div", { className: "bg-feedback-green absolute -right-0.5 -bottom-0.5 h-3 w-3 rounded-full border-2 border-white" })] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-neutral-grey-100 truncate text-xs font-medium", children: displayName }), userEmail && (_jsx("div", { className: "text-neutral-grey-50 truncate text-xs", children: userEmail }))] }), isCurrentUser && (_jsx("div", { className: "text-feedback-blue text-xs font-medium", children: "You" }))] }, session.user.name.toLowerCase()));
|
|
100
|
-
}) })), recentVisitors.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "text-neutral-grey-50 mt-3 mb-1 px-2 text-xs font-medium", children: ["Recent Visitors (", recentVisitors.length, ")"] }), _jsx("div", { className: "space-y-1", children: recentVisitors.map((visitor, index) => (_jsx(VisitorRow, { visitor: visitor }, `visitor-${index}`))) })] })), !hasAnyUsers && !isLoadingVisitors && (_jsx("div", { className: "text-neutral-grey-50 p-1 text-sm", children: "No users found" }))] }) }), hasAnyUsers && (_jsx("div", { className: "border-border-default my-2 shrink-0 border-t" })), _jsxs("div", { className: "shrink-0 space-y-
|
|
100
|
+
}) })), recentVisitors.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "text-neutral-grey-50 mt-3 mb-1 px-2 text-xs font-medium", children: ["Recent Visitors (", recentVisitors.length, ")"] }), _jsx("div", { className: "space-y-1", children: recentVisitors.map((visitor, index) => (_jsx(VisitorRow, { visitor: visitor }, `visitor-${index}`))) })] })), !hasAnyUsers && !isLoadingVisitors && (_jsx("div", { className: "text-neutral-grey-50 p-1 text-sm", children: "No users found" }))] }) }), hasAnyUsers && (_jsx("div", { className: "border-border-default my-2 shrink-0 border-t" })), _jsxs("div", { className: "shrink-0 space-y-0.5", "data-testid": "active-users-actions", children: [_jsxs("button", { type: "button", className: "hover:bg-neutral-grey-5 flex w-full cursor-pointer items-center gap-3 rounded p-1 text-left", onClick: handleShowAllSessions, children: [_jsx("div", { className: "flex h-6 w-8 items-center justify-center", children: _jsx(Users, { strokeWidth: 1, className: "text-neutral-grey-50 h-4 w-4" }) }), _jsx("div", { className: "min-w-0 flex-1", children: _jsx("div", { className: "text-neutral-grey-100 text-xs font-medium", children: "Show all user sessions" }) })] }), _jsxs("div", { className: "hover:bg-neutral-grey-5 flex cursor-pointer items-center gap-3 rounded p-1", onClick: handleAbout, children: [_jsx("div", { className: "flex h-6 w-8 items-center justify-center", children: _jsx(Info, { strokeWidth: 1, className: "text-neutral-grey-50 h-4 w-4" }) }), _jsx("div", { className: "min-w-0 flex-1", children: _jsx("div", { className: "text-neutral-grey-100 text-xs font-medium", children: "About" }) })] }), _jsxs("div", { className: "hover:bg-neutral-grey-5 flex cursor-pointer items-center gap-3 rounded p-1", onClick: handleLogout, children: [_jsx("div", { className: "flex h-6 w-8 items-center justify-center", children: _jsx(LogOut, { strokeWidth: 1, className: "text-neutral-grey-50 h-4 w-4" }) }), _jsx("div", { className: "min-w-0 flex-1", children: _jsx("div", { className: "text-neutral-grey-100 text-xs font-medium", children: "Log Out" }) })] })] })] })] }));
|
|
101
101
|
}
|
|
102
102
|
function VisitorRow({ visitor }) {
|
|
103
103
|
const resolved = useResolvedUser(visitor.userName, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveUsers.js","sourceRoot":"","sources":["../../../src/editor/menubar/ActiveUsers.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ActiveUsers.js","sourceRoot":"","sources":["../../../src/editor/menubar/ActiveUsers.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { GenericToolbar } from "./GenericToolbar";
|
|
3
|
-
import { ReviewCommands, InsertControls, ViewportControls, ViewPanelControls, UtilityControls, CompareControls, UndoRedoControls, AgentCommandsToolbar, ContentTreeToggle, } from "./toolbar-sections";
|
|
3
|
+
import { ReviewCommands, InsertControls, ViewportControls, ViewPanelControls, UtilityControls, CompareControls, UndoRedoControls, AgentCommandsToolbar, ContentTreeToggle, FindReplaceControls, } from "./toolbar-sections";
|
|
4
4
|
export function createEditToolbar(editContext) {
|
|
5
5
|
if (!editContext)
|
|
6
6
|
return null;
|
|
@@ -21,6 +21,10 @@ export function createEditToolbar(editContext) {
|
|
|
21
21
|
key: "undo-redo-controls",
|
|
22
22
|
component: _jsx(UndoRedoControls, {}),
|
|
23
23
|
},
|
|
24
|
+
{
|
|
25
|
+
key: "find-replace-controls",
|
|
26
|
+
component: _jsx(FindReplaceControls, {}),
|
|
27
|
+
},
|
|
24
28
|
];
|
|
25
29
|
const center = [
|
|
26
30
|
{
|
|
@@ -58,6 +62,10 @@ export function createEditToolbar(editContext) {
|
|
|
58
62
|
key: "undo-redo-controls",
|
|
59
63
|
component: _jsx(UndoRedoControls, {}),
|
|
60
64
|
});
|
|
65
|
+
left.push({
|
|
66
|
+
key: "find-replace-controls",
|
|
67
|
+
component: _jsx(FindReplaceControls, {}),
|
|
68
|
+
});
|
|
61
69
|
if (isReviewsWorkspace) {
|
|
62
70
|
left.push({
|
|
63
71
|
key: "review-commands",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarFactory.js","sourceRoot":"","sources":["../../../src/editor/menubar/ToolbarFactory.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ToolbarFactory.js","sourceRoot":"","sources":["../../../src/editor/menubar/ToolbarFactory.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { Check, ChevronDown, Clock3, Loader2, Plus } from "lucide-react";
|
|
|
5
5
|
import { useEditContext } from "../client/editContext";
|
|
6
6
|
import { getCreateAndSwitchToNewVersionCommand } from "../commands/createVersionCommand";
|
|
7
7
|
import { getDeleteVersionCommand } from "../commands/deleteVersionCommand";
|
|
8
|
-
import { cn } from "../../lib/utils";
|
|
8
|
+
import { capitalizeFirstLetter, cn } from "../../lib/utils";
|
|
9
9
|
import { Button } from "../../components/ui/button";
|
|
10
10
|
import { Command, CommandEmpty, CommandGroup, CommandItem, CommandList, } from "../../components/ui/command";
|
|
11
11
|
import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
|
|
@@ -53,7 +53,7 @@ function VersionStatusTags({ version, isMobile, }) {
|
|
|
53
53
|
return (_jsxs("div", { className: "flex min-w-0 flex-wrap items-center gap-1", children: [version.isPublished && (_jsx(Badge, { size: "sm", className: "bg-feedback-green-light text-feedback-green", title: publishedTargets.length
|
|
54
54
|
? `Published to ${publishedTargets.join(", ")}`
|
|
55
55
|
: "Published", "data-testid": "version-selector-published-tag", children: isMobile ? "Pub" : "Published" })), restrictions?.hideVersion && (_jsx(Badge, { variant: "destructive", size: "sm", className: "text-2xs", title: "This version is hidden from publishing.", "data-testid": "version-selector-restriction-tag", children: "Hidden" })), validFrom && (_jsxs(Badge, { variant: "outline", size: "sm", className: "text-2xs", title: `Valid from ${validFrom}`, "data-testid": "version-selector-restriction-tag", children: ["From ", validFrom] })), validTo && (_jsxs(Badge, { variant: "outline", size: "sm", className: "text-2xs", title: `Valid to ${validTo}`, "data-testid": "version-selector-restriction-tag", children: ["To ", validTo] })), version.workflowState && (_jsx(Badge, { size: "sm", className: cn(version.isFinalState &&
|
|
56
|
-
"bg-feedback-green-light text-feedback-green"), title: `Workflow state: ${version.workflowState}`, "data-testid": "version-selector-workflow-tag", children: version.workflowState }))] }));
|
|
56
|
+
"bg-feedback-green-light text-feedback-green"), title: `Workflow state: ${version.workflowState}`, "data-testid": "version-selector-workflow-tag", children: capitalizeFirstLetter(version.workflowState) }))] }));
|
|
57
57
|
}
|
|
58
58
|
export function VersionSelector({ itemDescriptor, actualVersion, onVersionSelected, readOnly, versions, isLoading, showVersionPreviews = true, previewDateActive = false, publishRestrictionsItem, triggerClassName, }) {
|
|
59
59
|
const [open, setOpen] = React.useState(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionSelector.js","sourceRoot":"","sources":["../../../src/editor/menubar/VersionSelector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qCAAqC,EAAE,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"VersionSelector.js","sourceRoot":"","sources":["../../../src/editor/menubar/VersionSelector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qCAAqC,EAAE,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,wFAAwF;AACxF,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAE/C,SAAS,qBAAqB,CAAC,QAAwB;IACrD,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,IAAI,EAAE,CAAC;IAEjC,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACxC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAwB;IACvD,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,OAAO,EACP,QAAQ,GAIT;IACC,MAAM,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC;IACpD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG,uBAAuB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,uBAAuB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,aAAa;QAC7B,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,SAAS,CAAC;QAChD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,WAAW;QACzB,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,IACE,CAAC,OAAO,CAAC,WAAW;QACpB,CAAC,OAAO,CAAC,aAAa;QACtB,CAAC,YAAY,EAAE,WAAW;QAC1B,CAAC,SAAS;QACV,CAAC,OAAO,EACR,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,2CAA2C,aACvD,OAAO,CAAC,WAAW,IAAI,CACtB,KAAC,KAAK,IACJ,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,6CAA6C,EACvD,KAAK,EACH,gBAAgB,CAAC,MAAM;oBACrB,CAAC,CAAC,gBAAgB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/C,CAAC,CAAC,WAAW,iBAEL,gCAAgC,YAE3C,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,GACzB,CACT,EACA,YAAY,EAAE,WAAW,IAAI,CAC5B,KAAC,KAAK,IACJ,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,UAAU,EACpB,KAAK,EAAC,yCAAyC,iBACnC,kCAAkC,uBAGxC,CACT,EACA,SAAS,IAAI,CACZ,MAAC,KAAK,IACJ,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE,cAAc,SAAS,EAAE,iBACpB,kCAAkC,sBAExC,SAAS,IACT,CACT,EACA,OAAO,IAAI,CACV,MAAC,KAAK,IACJ,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE,YAAY,OAAO,EAAE,iBAChB,kCAAkC,oBAE1C,OAAO,IACL,CACT,EACA,OAAO,CAAC,aAAa,IAAI,CACxB,KAAC,KAAK,IACJ,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,EAAE,CACX,OAAO,CAAC,YAAY;oBAClB,6CAA6C,CAChD,EACD,KAAK,EAAE,mBAAmB,OAAO,CAAC,aAAa,EAAE,iBACrC,+BAA+B,YAE1C,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,GACvC,CACT,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,mBAAmB,GAAG,IAAI,EAC1B,iBAAiB,GAAG,KAAK,EACzB,uBAAuB,EACvB,gBAAgB,GAYjB;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,cAAc,IAAI,IAAI;QAAE,OAAO;IAEnC,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;IAChC,MAAM,YAAY,GAChB,gCAAgC;QAChC,mBAAmB;QACnB,IAAI;QACJ,CAAC,WAAW,EAAE,QAAQ;QACtB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAC3B,MAAM,0BAA0B,GAC9B,CAAC,CAAC,uBAAuB;QACzB,CAAC,QAAQ;QACT,uBAAuB,CAAC,YAAY;QACpC,uBAAuB,CAAC,gBAAgB;QACxC,uBAAuB,CAAC,gBAAgB,CAAC;IAE3C,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,WAAW,EAAE,QAAQ,EAAE,CAAC;YAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC;YACzC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACxD,CAAC;YACD,IAAI,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACxD,CAAC;YACD,OAAO,KAAK,cAAc,CAAC,OAAO,GAAG,CAAC;QACxC,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,aAAa,CAAC;QAChD,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,aAAa,CAAC,CAAC,CAAC,YAAY,aAAa,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QACrE,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,KAAK,CAAC;YAC9B,OAAO,CACL,gBAAgB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACrE,CAAC;QACJ,OAAO,WAAW,GAAG,cAAc,CAAC,OAAO,GAAG,GAAG,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QAC9C,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;QACrC,IAAI,kBAAkB,CAAC,OAAO;YAAE,OAAO;QAEvC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,EAAE,cAAc,CAAC;gBAChC,OAAO,EAAE,qCAAqC,CAAC,EAAE,CAAC;aACnD,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;YACnC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;QACrC,MAAM,WAAW,EAAE,cAAc,CAAC;YAChC,OAAO,EAAE,uBAAuB,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,KAAK,IAAI,EAAE;QAC3C,IAAI,CAAC,uBAAuB;YAAE,OAAO;QAErC,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,MAAM,WAAW,EAAE,cAAc,CAAC;YAChC,OAAO,EAAE,0BAA0B;YACnC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,uBAAuB,CAAC,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aACxC,KAAC,cAAc,IAAC,OAAO,kBACrB,MAAC,MAAM,IACL,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,UAAU,mBACA,IAAI,iBACP,kBAAkB,kBAChB,eAAe,IAAI,aAAa,EAC9C,SAAS,EAAE,gBAAgB,aAE3B,eAAK,SAAS,EAAC,yBAAyB,aACrC,WAAW,IAAI,CACd,KAAC,OAAO,IACN,SAAS,EAAC,4CAA4C,iBAC1C,0BAA0B,EACtC,WAAW,EAAE,CAAC,GACd,CACH,EACA,eAAe,EAAE,EACjB,iBAAiB,IAAI,CAAC,WAAW,EAAE,QAAQ,IAAI,CAC9C,eAAM,SAAS,EAAC,gCAAgC,gCAEzC,CACR,IACG,EACN,KAAC,WAAW,IACV,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,IAAI,IAAI,YAAY,CACrB,EACD,WAAW,EAAE,CAAC,GACd,IACK,GACM,EACjB,KAAC,cAAc,IACb,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EACpD,KAAK,EAAC,OAAO,EACb,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC3B,uEAAuE;oBACvE,iEAAiE;oBACjE,iEAAiE;oBACjE,qEAAqE;oBACrE,sEAAsE;oBACtE,gEAAgE;oBAChE,kEAAkE;oBAClE,qEAAqE;oBACrE,cAAc;oBACd,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;wBAC/C,IAAI,CAAuB,CAAC;oBAC9B,IACE,MAAM,EAAE,OAAO,CACb,6DAA6D,CAC9D,EACD,CAAC;wBACD,KAAK,CAAC,cAAc,EAAE,CAAC;oBACzB,CAAC;gBACH,CAAC,YAED,MAAC,OAAO,eACN,MAAC,WAAW,IACV,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,iBACjD,uBAAuB,aAEnC,KAAC,YAAY,wCAAqC,EAClD,MAAC,YAAY,eACV,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CACtB,MAAC,WAAW,IAEV,KAAK,EAAC,QAAQ,EACd,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,EAAE,CACX,2CAA2C;4CAC3C,iEAAiE;4CACjE,qCAAqC;4CACrC,gDAAgD;4CAChD,wDAAwD,CACzD,aAED,eAAM,SAAS,EAAC,QAAQ,uBAAc,EACtC,KAAC,KAAK,IACJ,SAAS,EAAE,EAAE,CACX,+BAA+B,EAC/B,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CACpD,EACD,WAAW,EAAE,CAAC,GACd,KAlBE,QAAQ,CAmBA,CACf,EACA,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,MAAC,WAAW,IAEV,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EACxC,SAAS,EAAE,EAAE,CACX,YAAY;gDACV,CAAC,CAAC,0CAA0C;gDAC5C,CAAC,CAAC,2CAA2C;4CAC/C,iEAAiE;4CACjE,qCAAqC;4CACrC,gDAAgD;4CAChD,wDAAwD,CACzD,aAED,eAAK,SAAS,EAAC,wCAAwC,aACpD,YAAY,IAAI,CACf,KAAC,kBAAkB,IACjB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,GAClB,CACH,EACD,eAAK,SAAS,EAAC,wCAAwC,aACrD,gBAAM,SAAS,EAAC,kBAAkB,yBACvB,CAAC,CAAC,OAAO,IACb,EACP,KAAC,iBAAiB,IAChB,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,QAAQ,GACjC,IACE,IACF,EACN,KAAC,KAAK,IACJ,SAAS,EAAE,EAAE,CACX,+BAA+B,EAC/B,eAAe,KAAK,CAAC,CAAC,OAAO;wDAC3B,CAAC,CAAC,aAAa;wDACf,CAAC,CAAC,WAAW,CAChB,EACD,WAAW,EAAE,CAAC,GACd,KAtCG,CAAC,CAAC,OAAO,CAuCF,CACf,CAAC,IACW,IACH,EACb,CAAC,CAAC,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CACzC,8BACE,cAAK,SAAS,EAAC,gCAAgC,GAAG,EAClD,eAAK,SAAS,EAAC,KAAK,aACjB,uBAAuB,IAAI,CAC1B,MAAC,WAAW,IACV,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,CAAC,0BAA0B,EACrC,SAAS,EAAE,EAAE,CACX,2CAA2C;4CAC3C,iEAAiE;4CACjE,qCAAqC;4CACrC,gDAAgD;4CAChD,wDAAwD,EACxD,CAAC,0BAA0B;gDACzB,+BAA+B,CAClC,iBACW,6BAA6B,aAEzC,KAAC,MAAM,IACL,SAAS,EAAC,+BAA+B,EACzC,WAAW,EAAE,CAAC,GACd,EACF,kDAAiC,IACrB,CACf,EACA,uBAAuB,IAAI,CAAC,QAAQ,IAAI,CACvC,cAAK,SAAS,EAAC,qCAAqC,GAAG,CACxD,EACA,CAAC,QAAQ,IAAI,CACZ,8BACE,MAAC,WAAW,IACV,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,EAAE,CACX,2CAA2C;oDAC3C,iEAAiE;oDACjE,qCAAqC;oDACrC,gDAAgD;oDAChD,wDAAwD,EACxD,eAAe,IAAI,+BAA+B,CACnD,iBACW,8BAA8B,aAE1C,KAAC,IAAI,IACH,SAAS,EAAC,+BAA+B,EACzC,WAAW,EAAE,CAAC,GACd,EACF,yCAAwB,IACZ,EACd,MAAC,WAAW,IACV,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EAC/B,SAAS,EAAE,EAAE,CACX,2CAA2C;oDAC3C,iEAAiE;oDACjE,qCAAqC;oDACrC,gDAAgD;oDAChD,wDAAwD,EACxD,uBAAuB,EACvB,QAAQ,CAAC,MAAM,KAAK,CAAC;wDACnB,+BAA+B,CAClC,iBACW,iCAAiC,aAE7C,KAAC,UAAU,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,uBAAuB,GAAG,EAC1D,4CAA2B,IACf,IACb,CACJ,IACG,IACL,CACJ,IACO,GACK,IACT,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Toolbar entry point for "Find and replace" (also reachable with Ctrl+H).
|
|
3
|
+
* The popover is non-modal and stays open while the user scrolls or clicks
|
|
4
|
+
* the canvas, so the highlighted matches can be inspected one by one.
|
|
5
|
+
*/
|
|
6
|
+
export declare function FindReplaceControls(): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Popover, PopoverAnchor, PopoverContent, } from "../../../components/ui/popover";
|
|
3
|
+
import { useEditContext } from "../../client/editContext";
|
|
4
|
+
import { FindReplacePanel } from "../../find-replace/FindReplacePanel";
|
|
5
|
+
import { findReplaceCommand } from "../../find-replace/findReplaceCommand";
|
|
6
|
+
import { findReplaceStore, useFindReplaceState, } from "../../find-replace/findReplaceStore";
|
|
7
|
+
import { SimpleIconButton } from "../../ui/SimpleIconButton";
|
|
8
|
+
/**
|
|
9
|
+
* Toolbar entry point for "Find and replace" (also reachable with Ctrl+H).
|
|
10
|
+
* The popover is non-modal and stays open while the user scrolls or clicks
|
|
11
|
+
* the canvas, so the highlighted matches can be inspected one by one.
|
|
12
|
+
*/
|
|
13
|
+
export function FindReplaceControls() {
|
|
14
|
+
const editContext = useEditContext();
|
|
15
|
+
const { open } = useFindReplaceState();
|
|
16
|
+
if (!editContext)
|
|
17
|
+
return null;
|
|
18
|
+
const disabled = editContext.isCommandDisabled({
|
|
19
|
+
command: findReplaceCommand,
|
|
20
|
+
});
|
|
21
|
+
return (_jsxs(Popover, { open: open, onOpenChange: (next) => {
|
|
22
|
+
if (next)
|
|
23
|
+
findReplaceStore.open();
|
|
24
|
+
else
|
|
25
|
+
findReplaceStore.close();
|
|
26
|
+
}, enableIframeClickDetection: false, children: [_jsx(PopoverAnchor, { asChild: true, children: _jsx(SimpleIconButton, { icon: findReplaceCommand.icon, label: "Find and replace (Ctrl+H)", size: "large", selected: open, disabled: disabled, onClick: () => findReplaceStore.toggle(), "data-testid": "toolbar-find-replace-button" }) }), _jsx(PopoverContent, { align: "start", side: "bottom", sideOffset: 6, className: "w-[400px] max-w-[90vw] p-0",
|
|
27
|
+
// Clicking elsewhere in the editor must not dismiss the panel: it is
|
|
28
|
+
// a tool window, closed by its own button, Escape or the toolbar icon.
|
|
29
|
+
onInteractOutside: (event) => event.preventDefault(), onOpenAutoFocus: (event) => event.preventDefault(), "data-testid": "find-replace-popover", children: open && (_jsx(FindReplacePanel, { editContext: editContext, onClose: () => findReplaceStore.close() })) })] }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=FindReplaceControls.js.map
|