From 1bc0a82e732a7ee496cb6acb677193dfd8d8c3e1 Mon Sep 17 00:00:00 2001 From: Alex Hernandez Date: Thu, 26 Feb 2026 12:12:07 +1000 Subject: [PATCH] :sparkles: dismiss suggestions --- .claude/launch.json | 11 +++ .../components/Editor/MarkdownEditor.tsx | 69 ++++++++++++------- .../components/Feedback/FeedbackPanel.css | 27 ++++++++ .../components/Feedback/FeedbackPanel.tsx | 23 +++++-- src/renderer/store/editorStore.ts | 19 +++++ tsconfig.web.tsbuildinfo | 2 +- 6 files changed, 120 insertions(+), 31 deletions(-) create mode 100644 .claude/launch.json diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 0000000..619a65f --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "demo", + "runtimeExecutable": "npm", + "runtimeArgs": ["run", "dev:demo"], + "port": 5174 + } + ] +} diff --git a/src/renderer/components/Editor/MarkdownEditor.tsx b/src/renderer/components/Editor/MarkdownEditor.tsx index fed3a7e..d50d8a7 100644 --- a/src/renderer/components/Editor/MarkdownEditor.tsx +++ b/src/renderer/components/Editor/MarkdownEditor.tsx @@ -15,13 +15,25 @@ import './Editor.css' // StateEffect to push new annotations into the editor export const setAnnotationsEffect = StateEffect.define() -// StateField stores the raw annotation array for hover lookup +// StateField stores the raw annotation array for hover lookup. +// Positions are mapped through every document change so the field always +// reflects where annotations actually are in the current document. +// Zero-width entries (from === to after a deletion) are intentionally kept: +// if the user cuts text and pastes it back at the same spot, the position +// expands and the decoration reappears automatically. const rawAnnotationsField = StateField.define({ create: () => [], update(annotations, tr) { for (const effect of tr.effects) { if (effect.is(setAnnotationsEffect)) return effect.value } + if (tr.docChanged && annotations.length > 0) { + return annotations.map(a => ({ + ...a, + from: tr.changes.mapPos(a.from, -1), + to: tr.changes.mapPos(a.to, 1) + })) + } return annotations } }) @@ -194,32 +206,32 @@ const annotationHoverTooltip = hoverTooltip( { hoverTime: 500 } ) -// StateField tracks the decoration set derived from annotations +// Build a DecorationSet from an annotation list, clamped to docLen. +function buildDecoSet(annotations: TextAnnotation[], docLen: number): DecorationSet { + const builder = new RangeSetBuilder() + const sorted = [...annotations].sort((a, b) => a.from - b.from) + for (const ann of sorted) { + const from = Math.max(0, Math.min(ann.from, docLen)) + const to = Math.max(from, Math.min(ann.to, docLen)) + if (from < to) { + builder.add(from, to, Decoration.mark({ + class: `annotation annotation-${ann.type}`, + attributes: { 'data-id': ann.id } + })) + } + } + return builder.finish() +} + +// StateField tracks the decoration set derived from annotations. +// Rebuilds from rawAnnotationsField on every doc change (not deco.map) so that +// position-mapped highlights update immediately, and a decoration whose text +// was cut and pasted back at the same spot reappears without any extra action. const annotationField = StateField.define({ create: () => Decoration.none, update(deco, tr) { - deco = deco.map(tr.changes) - for (const effect of tr.effects) { - if (effect.is(setAnnotationsEffect)) { - const builder = new RangeSetBuilder() - const sorted = [...effect.value].sort((a, b) => a.from - b.from) - for (const ann of sorted) { - const docLen = tr.newDoc.length - const from = Math.max(0, Math.min(ann.from, docLen)) - const to = Math.max(from, Math.min(ann.to, docLen)) - if (from < to) { - builder.add( - from, - to, - Decoration.mark({ - class: `annotation annotation-${ann.type}`, - attributes: { 'data-id': ann.id } - }) - ) - } - } - return builder.finish() - } + if (tr.docChanged || tr.effects.some(e => e.is(setAnnotationsEffect))) { + return buildDecoSet(tr.state.field(rawAnnotationsField), tr.newDoc.length) } return deco }, @@ -412,11 +424,16 @@ export function MarkdownEditor(): JSX.Element { } }, [activeFilePath]) // Only sync on file switch - // Push annotation decorations into CodeMirror + // Push annotation decorations into CodeMirror. + // Merge the store's list (which annotations exist) with CM-tracked positions + // (where they actually are after any edits), so that dismissing or adding an + // annotation doesn't reset surviving highlights to stale store positions. useEffect(() => { const view = viewRef.current if (!view) return - view.dispatch({ effects: setAnnotationsEffect.of(annotations) }) + const trackedById = new Map(view.state.field(rawAnnotationsField).map(a => [a.id, a])) + const toDispatch = annotations.map(a => trackedById.get(a.id) ?? a) + view.dispatch({ effects: setAnnotationsEffect.of(toDispatch) }) }, [annotations]) // Reconfigure theme when font size or colour theme changes diff --git a/src/renderer/components/Feedback/FeedbackPanel.css b/src/renderer/components/Feedback/FeedbackPanel.css index 6ce4647..9fce220 100644 --- a/src/renderer/components/Feedback/FeedbackPanel.css +++ b/src/renderer/components/Feedback/FeedbackPanel.css @@ -96,6 +96,33 @@ background: rgba(255, 255, 255, 0.04); } +.fb-card-header-top { + display: flex; + align-items: center; + justify-content: space-between; +} + +.fb-card-dismiss { + background: none; + border: none; + color: var(--text-muted); + font-size: 16px; + line-height: 1; + padding: 0 2px; + cursor: pointer; + opacity: 0; + transition: opacity 0.15s, color 0.15s; + flex-shrink: 0; +} + +.fb-card:hover .fb-card-dismiss { + opacity: 1; +} + +.fb-card-dismiss:hover { + color: var(--text-primary); +} + /* Coloured type badge */ .fb-card-badge { font-size: 10px; diff --git a/src/renderer/components/Feedback/FeedbackPanel.tsx b/src/renderer/components/Feedback/FeedbackPanel.tsx index ea2c904..c348836 100644 --- a/src/renderer/components/Feedback/FeedbackPanel.tsx +++ b/src/renderer/components/Feedback/FeedbackPanel.tsx @@ -33,9 +33,10 @@ function renderMarkdown(text: string, streaming: boolean): string { interface FeedbackCardProps { ann: TextAnnotation autoAnalyse: boolean + onDismiss: () => void } -function FeedbackCard({ ann, autoAnalyse }: FeedbackCardProps): JSX.Element { +function FeedbackCard({ ann, autoAnalyse, onDismiss }: FeedbackCardProps): JSX.Element { const [state, setState] = useState(() => { const cached = tooltipAnalysisCache.get(ann.id) if (cached) return { status: 'done', text: cached.text, suggestion: cached.suggestion } @@ -82,7 +83,16 @@ function FeedbackCard({ ann, autoAnalyse }: FeedbackCardProps): JSX.Element { > {/* Header — click to jump to passage in editor */}
scrollToAnnotation(ann)} title="Jump to passage"> - {typeName} +
+ {typeName} + +
"{ann.matchedText}"
@@ -124,7 +134,7 @@ function FeedbackCard({ ann, autoAnalyse }: FeedbackCardProps): JSX.Element { } export function FeedbackPanel(): JSX.Element { - const { annotations, setAnnotations } = useEditorStore() + const { annotations, setAnnotations, removeAnnotation } = useEditorStore() const [analyseAll, setAnalyseAll] = useState(false) // Reset "Analyse all" whenever the annotation set changes (new critique run), @@ -175,7 +185,12 @@ export function FeedbackPanel(): JSX.Element {
{annotations.map(ann => ( - + { removeAnnotation(ann.id); tooltipAnalysisCache.delete(ann.id) }} + /> ))}
diff --git a/src/renderer/store/editorStore.ts b/src/renderer/store/editorStore.ts index eefe27b..40ed097 100644 --- a/src/renderer/store/editorStore.ts +++ b/src/renderer/store/editorStore.ts @@ -35,6 +35,7 @@ interface EditorState { annotations: TextAnnotation[] annotationsByFile: Record setAnnotations: (annotations: TextAnnotation[]) => void + removeAnnotation: (id: string) => void clearAnnotations: () => void // Analysis mode @@ -252,6 +253,24 @@ export const useEditorStore = create((set, get) => ({ } }) }, + removeAnnotation: (id) => { + set((s) => { + const annotations = s.annotations.filter((a) => a.id !== id) + const annotationsByFile = s.activeFilePath + ? { ...s.annotationsByFile, [s.activeFilePath]: { mode: s.analysisMode, annotations } } + : s.annotationsByFile + return { annotations, annotationsByFile } + }) + scheduleSave(() => { + const st = get() + return { + activeFilePath: st.activeFilePath, + scrollPositions: st.scrollPositions, + chatHistoryByFile: st.chatHistoryByFile, + annotationsByFile: st.annotationsByFile + } + }) + }, clearAnnotations: () => { set((s) => { const annotationsByFile = s.activeFilePath diff --git a/tsconfig.web.tsbuildinfo b/tsconfig.web.tsbuildinfo index 39ce598..c2f4272 100644 --- a/tsconfig.web.tsbuildinfo +++ b/tsconfig.web.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/zustand/vanilla.d.ts","./node_modules/zustand/react.d.ts","./node_modules/zustand/index.d.ts","./src/renderer/types/editor.ts","./src/renderer/store/editorstore.ts","./src/renderer/components/filetree/filetreenode.tsx","./src/renderer/components/filetree/filetree.tsx","./node_modules/@codemirror/state/dist/index.d.ts","./node_modules/style-mod/src/style-mod.d.ts","./node_modules/@codemirror/view/dist/index.d.ts","./node_modules/@lezer/common/dist/index.d.ts","./node_modules/@lezer/lr/dist/index.d.ts","./node_modules/@lezer/highlight/dist/index.d.ts","./node_modules/@codemirror/language/dist/index.d.ts","./node_modules/@lezer/markdown/dist/index.d.ts","./node_modules/@codemirror/lang-markdown/dist/index.d.ts","./node_modules/@codemirror/commands/dist/index.d.ts","./node_modules/marked/lib/marked.d.ts","./node_modules/@types/trusted-types/lib/index.d.ts","./node_modules/dompurify/dist/purify.cjs.d.ts","./src/renderer/components/editor/markdowneditor.tsx","./src/renderer/components/aichat/chatmessageitem.tsx","./src/renderer/components/aichat/chatinput.tsx","./src/renderer/components/feedback/feedbackpanel.tsx","./src/renderer/utils/annotationparser.ts","./src/renderer/components/aichat/chatpanel.tsx","./src/renderer/utils/passivevoice.ts","./src/renderer/components/toolbar/analysistoolbar.tsx","./src/renderer/components/revisions/revisionpanel.tsx","./src/renderer/app.tsx","./node_modules/@types/react-dom/client.d.ts","./src/renderer/main.tsx","./src/renderer/types/global.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/importmeta.d.ts","./node_modules/vite/client.d.ts"],"fileIdsList":[[94,96],[94,96,100,101],[94,95,96,97,98,99],[94,95],[97],[97,99],[86],[83,84,85],[105],[124],[120],[121],[122,123],[87,88],[87],[86,91,93,107,112,114,115,125],[86,90],[86,90,104,106],[86,90,91,108,109,110,111,125],[86,90,91,94,96,100,102,103,104,106,125],[86,90,91,104,106,107,125],[91,92,125],[86,90,91],[86,91,111,113,125],[86,116,117,125],[89,90],[90]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"41f45ed6b4cd7b8aec2e4888a47d5061ee1020f89375b57d388cfe1f05313991","impliedFormat":1},{"version":"95e6580d60d580c8cd6a42d3853eda0da840d64139a58ecb56ed9a2f8ff42d6e","impliedFormat":1},{"version":"bec45e0777e88662fdbb5e8ef48f3fd1a474768075abe838b184973025c94244","impliedFormat":1},{"version":"339b224df0349d04cb3247eace4fe7796e4f4b96804efc6dea0ab55919f03360","signature":"b54673e2f55a72a7bf5dd9634aa3325a13c9aad30ad5a0257bc2e1e145c59805"},{"version":"0ef215fd555393081434dfe0a046c7e9a951852150cdbea62c1c8fe2ce8de92b","signature":"0943d5665449c8cc04e01f9ba4103d75875bfee6c40524f839aaac046b4eae4c"},{"version":"9c65c24a680c2909b1c5c24d06b4a204004c9364a3fc96084da5e293c969f0d3","signature":"8d7dd99713c7f63750f4f2b986bfe8425770cb76d781bb6393c376b621bfad14"},{"version":"82653759516820924b95e6fb9c11c192cecd31d7c24f3d249df4b9df359795f0","signature":"66f70141b0c2ad3df18f1729fe6b5bca4892b52b689603bbc0843649174b6de7"},{"version":"97e0a23ac45763f990b704b66cabbb48df07eddc5bf46054a34d72e350f1088e","impliedFormat":99},{"version":"fe9dd679e568dc2a0e5e6959f77b53f8bc1f126d46b0d17631347ba57470b808","impliedFormat":99},{"version":"86245b010961138b1c4ce2e0610b8b9577157dac3f7eeaf3d20017ee01e7760b","impliedFormat":99},{"version":"54e76a6612d9b83fde2b1cc0569f20c5b8d38f7a860b88a1d9d805399bfeead3","impliedFormat":99},{"version":"5a4ddf80b1bdab540fe5d3f837921e9e8dc559a1a319e75451c30f0d5f62ac0f","impliedFormat":99},{"version":"0c6ef3deba595b7dc7b4ee09342435c7a2392fe7752e335acdedfe2476529638","impliedFormat":99},{"version":"00fab36b3130e6d7a2316d0583a2e2a4d328a6f4e01817d90d8b07baad69b4e1","impliedFormat":99},{"version":"66f19adc323e2146c965f004478fd3ea9d9a0aa4a915c5f32564094a9d82f5c6","impliedFormat":99},{"version":"c1a9b5cd932e681580e597e21bfd3905e79e2a08b626a8904371e0fb70b079f1","impliedFormat":99},{"version":"126eac20336c7374782d571be802e7b7adb9fc5b24c0dd0dfc37bfc9774d9182","impliedFormat":99},{"version":"dae5b9f74f24c35a89c21652878572a1be244d0ee0afe3491e83155ec3dd9f75","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"89f32f220b6f0c84465bd7901e64b5a3a44866de5dd8080f8d1bdc384d8b7997","impliedFormat":1},{"version":"768be409f8e9486dd8b9b28a3c3da2182b4d5f874d1eaf7c5f3dc630845ccbdd","signature":"408c51c5deba0a12a3ab96908e7d758c985287ba3cd8e7ba2919595931dccb31"},{"version":"3e6c6ea689e6ef20fc6791930cc42769da503b7f77b88ecb47132db110e57cc8","signature":"e3416975871a744c981824610c863d257d59fba4a9237fc4775f8524f4089a8e"},{"version":"b4318567d13812aba7f7a18480159f5e377b8443b08b260884f0190b6eed8d96","signature":"d4f8405fdb049a316ee7c01ded4c0f64a53cff1617058fa1a0397a4e83bfc7b8"},{"version":"ff18f93c64b89f9089f5da9b8df9dbaec39e65edc3ff10a3f618de2d2fae487d","signature":"7591de44ae9fe7f11e143160c5403402511983903252b6954e84714f9e683ad3"},{"version":"7d61fa11427ce118d0569388ac7d775e80a569bf4ad7e9b2d165a023b40c531e","signature":"5c3d4e9ba20f617cd1a4b40d2894156367263f0f5980f6a9fbd8c49773d6143a"},{"version":"4ebb659a0e5cef3b44a7f36045b7b3a8d90d71b04db89ca96f5f4149b6f5e1f2","signature":"f5980acc8aeeb2bb630713fc9e71903da2187e671e0dd8dd335441263b062427"},{"version":"31d3031c0ef9f45cdfc31daf77e1657b6864d27029b67bd5c50a835aa82f91c2","signature":"45c78136329738c3ebc5db991658d0d04f4e72ff8667ac00d6d8014451adf901"},{"version":"2237880c7b8faaf9fbbf816b365a9e168e39bc98bb2bacf6ea7afa04562ec0fd","signature":"247140c0c8310ff452f28df780f324e89f966018c6189e7418dfe4c16d46b31c"},{"version":"475e69d3c4c4cae6535caf11b75fde5722d01b1f17985531de451c667ae8d81f","signature":"c15673b34a3735fd75dd49b5db5a7c0a1ed4fafe604ffe7373375e92879a7abf"},{"version":"2b2b884cf0cacb071a440f46ba12fd76755f2661638032184a50af16adba359d","signature":"5e38cd3fe651bf92719e015b613038b76bf9fc3fe4ee1609c6edefd89def9be7"},{"version":"05321b823dd3781d0b6aac8700bfdc0c9181d56479fe52ba6a40c9196fd661a8","impliedFormat":1},{"version":"5203b00cdd66aa00aa1b536240141759c5361b6963e4b6455a6ee29e1be18edc","signature":"f2679080b084cba762e53cb7865d911bde1411f19f95ed074ddb1267cd33a3ec"},{"version":"d9936d13d9dcd0bc9ca912e2e81412c32a8e94286e4142c72775c080d238be3f","affectsGlobalScope":true},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99}],"root":[[90,93],[107,116],118,119],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"module":99,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"sourceMap":false,"strict":true,"target":99},"referencedMap":[[103,1],[102,2],[100,3],[96,4],[99,5],[98,5],[101,6],[117,7],[86,8],[106,9],[125,10],[121,11],[122,12],[124,13],[89,14],[88,15],[116,16],[109,17],[108,18],[112,19],[107,20],[110,21],[93,22],[92,23],[115,21],[114,24],[118,25],[91,26],[119,27],[111,27],[113,27]],"affectedFilesPendingEmit":[[116,17],[109,17],[108,17],[112,17],[107,17],[110,17],[93,17],[92,17],[115,17],[114,17],[118,17],[91,17],[90,17],[111,17],[113,17]],"emitSignatures":[90,91,92,93,107,108,109,110,111,112,113,114,115,116,118],"version":"5.9.3"} \ No newline at end of file +{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/zustand/vanilla.d.ts","./node_modules/zustand/react.d.ts","./node_modules/zustand/index.d.ts","./src/renderer/types/editor.ts","./src/renderer/store/editorstore.ts","./node_modules/@types/react-dom/index.d.ts","./src/renderer/components/filetree/contextmenu.tsx","./src/renderer/components/filetree/filetreenode.tsx","./src/renderer/components/filetree/filetree.tsx","./node_modules/@codemirror/state/dist/index.d.ts","./node_modules/style-mod/src/style-mod.d.ts","./node_modules/@codemirror/view/dist/index.d.ts","./node_modules/@lezer/common/dist/index.d.ts","./node_modules/@lezer/lr/dist/index.d.ts","./node_modules/@lezer/highlight/dist/index.d.ts","./node_modules/@codemirror/language/dist/index.d.ts","./node_modules/@lezer/markdown/dist/index.d.ts","./node_modules/@codemirror/lang-markdown/dist/index.d.ts","./node_modules/@codemirror/commands/dist/index.d.ts","./node_modules/marked/lib/marked.d.ts","./node_modules/@types/trusted-types/lib/index.d.ts","./node_modules/dompurify/dist/purify.cjs.d.ts","./src/renderer/components/editor/markdowneditor.tsx","./src/renderer/components/aichat/chatmessageitem.tsx","./src/renderer/components/aichat/chatinput.tsx","./src/renderer/components/feedback/feedbackpanel.tsx","./src/renderer/utils/annotationparser.ts","./src/renderer/components/aichat/chatpanel.tsx","./src/renderer/utils/passivevoice.ts","./src/renderer/components/toolbar/analysistoolbar.tsx","./src/renderer/components/revisions/revisionpanel.tsx","./src/renderer/app.tsx","./node_modules/@types/react-dom/client.d.ts","./src/renderer/main.tsx","./src/renderer/types/global.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/importmeta.d.ts","./node_modules/vite/client.d.ts"],"fileIdsList":[[96,98],[96,98,102,103],[96,97,98,99,100,101],[96,97],[99],[99,101],[86],[83,84,85],[107],[126],[122],[123],[124,125],[87,88],[87],[86,91,95,109,114,116,117,127],[86,90,93],[86,90,106,108],[86,90,91,110,111,112,113,127],[86,90,91,93,96,98,102,104,105,106,108,127],[86,90,91,106,108,109,127],[86,92,127],[91,94,127],[86,90,91,93],[86,91,113,115,127],[86,118,119,127],[89,90],[90]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"41f45ed6b4cd7b8aec2e4888a47d5061ee1020f89375b57d388cfe1f05313991","impliedFormat":1},{"version":"95e6580d60d580c8cd6a42d3853eda0da840d64139a58ecb56ed9a2f8ff42d6e","impliedFormat":1},{"version":"bec45e0777e88662fdbb5e8ef48f3fd1a474768075abe838b184973025c94244","impliedFormat":1},{"version":"339b224df0349d04cb3247eace4fe7796e4f4b96804efc6dea0ab55919f03360","signature":"b54673e2f55a72a7bf5dd9634aa3325a13c9aad30ad5a0257bc2e1e145c59805"},{"version":"103625aa3b786c06442a8d3f247697baf9dcd6636c982118f535af9b8516c04d","signature":"89d48e476762b2992eadfa0bb4584ca312acad9cf695353a0bc8bb8f3e1b8ebd"},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"a5cf985a35fb2b08b3b07d9720ca70c57709026130c0736cbd53129477a939ea","signature":"b575f95452ae690f0929807edfceadc0375380c3a4ca24c64c9e9e08a8de0df3"},{"version":"24d4ad1205eac8da69139cf6eade3a46f9bf3ea16304e7d87b2a59c54d0cd203","signature":"8d7dd99713c7f63750f4f2b986bfe8425770cb76d781bb6393c376b621bfad14"},"82653759516820924b95e6fb9c11c192cecd31d7c24f3d249df4b9df359795f0",{"version":"97e0a23ac45763f990b704b66cabbb48df07eddc5bf46054a34d72e350f1088e","impliedFormat":99},{"version":"fe9dd679e568dc2a0e5e6959f77b53f8bc1f126d46b0d17631347ba57470b808","impliedFormat":99},{"version":"86245b010961138b1c4ce2e0610b8b9577157dac3f7eeaf3d20017ee01e7760b","impliedFormat":99},{"version":"54e76a6612d9b83fde2b1cc0569f20c5b8d38f7a860b88a1d9d805399bfeead3","impliedFormat":99},{"version":"5a4ddf80b1bdab540fe5d3f837921e9e8dc559a1a319e75451c30f0d5f62ac0f","impliedFormat":99},{"version":"0c6ef3deba595b7dc7b4ee09342435c7a2392fe7752e335acdedfe2476529638","impliedFormat":99},{"version":"00fab36b3130e6d7a2316d0583a2e2a4d328a6f4e01817d90d8b07baad69b4e1","impliedFormat":99},{"version":"66f19adc323e2146c965f004478fd3ea9d9a0aa4a915c5f32564094a9d82f5c6","impliedFormat":99},{"version":"c1a9b5cd932e681580e597e21bfd3905e79e2a08b626a8904371e0fb70b079f1","impliedFormat":99},{"version":"126eac20336c7374782d571be802e7b7adb9fc5b24c0dd0dfc37bfc9774d9182","impliedFormat":99},{"version":"dae5b9f74f24c35a89c21652878572a1be244d0ee0afe3491e83155ec3dd9f75","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"89f32f220b6f0c84465bd7901e64b5a3a44866de5dd8080f8d1bdc384d8b7997","impliedFormat":1},{"version":"ed2157b89d44e8e688b0a2e1a76b748ebb34352a77c35598d47a66a527dab8d7","signature":"408c51c5deba0a12a3ab96908e7d758c985287ba3cd8e7ba2919595931dccb31"},{"version":"3e6c6ea689e6ef20fc6791930cc42769da503b7f77b88ecb47132db110e57cc8","signature":"e3416975871a744c981824610c863d257d59fba4a9237fc4775f8524f4089a8e"},{"version":"2398094188fabb55a22bd93ebd043dd9a9ad7c1964dc7be61cde2e969b902a35","signature":"d4f8405fdb049a316ee7c01ded4c0f64a53cff1617058fa1a0397a4e83bfc7b8"},{"version":"aaaf65bf080f4c5393bfd0fbe58f812f3cb9fd3a783ba7c8c0497e945f9ec1a2","signature":"7591de44ae9fe7f11e143160c5403402511983903252b6954e84714f9e683ad3"},{"version":"7d61fa11427ce118d0569388ac7d775e80a569bf4ad7e9b2d165a023b40c531e","signature":"5c3d4e9ba20f617cd1a4b40d2894156367263f0f5980f6a9fbd8c49773d6143a"},"4ebb659a0e5cef3b44a7f36045b7b3a8d90d71b04db89ca96f5f4149b6f5e1f2",{"version":"31d3031c0ef9f45cdfc31daf77e1657b6864d27029b67bd5c50a835aa82f91c2","signature":"45c78136329738c3ebc5db991658d0d04f4e72ff8667ac00d6d8014451adf901"},"2237880c7b8faaf9fbbf816b365a9e168e39bc98bb2bacf6ea7afa04562ec0fd","475e69d3c4c4cae6535caf11b75fde5722d01b1f17985531de451c667ae8d81f","2b2b884cf0cacb071a440f46ba12fd76755f2661638032184a50af16adba359d",{"version":"05321b823dd3781d0b6aac8700bfdc0c9181d56479fe52ba6a40c9196fd661a8","impliedFormat":1},"5203b00cdd66aa00aa1b536240141759c5361b6963e4b6455a6ee29e1be18edc",{"version":"027d2615e56c3d1d05fea7d6f163a6d621a455b0b45c053971b3aef836991c33","affectsGlobalScope":true},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99}],"root":[90,91,[93,95],[109,118],120,121],"options":{"composite":true,"esModuleInterop":true,"jsx":1,"module":99,"noImplicitAny":false,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"sourceMap":false,"strict":true,"target":99},"referencedMap":[[105,1],[104,2],[102,3],[98,4],[101,5],[100,5],[103,6],[119,7],[92,7],[86,8],[108,9],[127,10],[123,11],[124,12],[126,13],[89,14],[88,15],[118,16],[111,17],[110,18],[114,19],[109,20],[112,21],[93,22],[95,23],[94,24],[117,21],[116,25],[120,26],[91,27],[121,28],[113,28],[115,28]],"affectedFilesPendingEmit":[[118,17],[111,17],[110,17],[114,17],[109,17],[112,17],[93,17],[95,17],[94,17],[117,17],[116,17],[120,17],[91,17],[90,17],[113,17],[115,17]],"emitSignatures":[90,91,93,94,95,109,110,111,112,113,114,115,116,117,118,120],"version":"5.9.3"} \ No newline at end of file