@meistrari/minuta-editor 1.6.0 → 1.7.0
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/README.md +6 -0
- package/dist/index.d.mts +26 -2
- package/dist/index.d.ts +26 -2
- package/dist/index.mjs +180 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -86,6 +86,12 @@ sozinho toma uma decisão que não é dele.
|
|
|
86
86
|
(antd, Material…) monta a barra dele e fala com o Tiptap direto —
|
|
87
87
|
`editor.tiptap.chain().focus().toggleBold().run()`, `isActive('bold')`. É a API
|
|
88
88
|
do Tiptap, documentada, sem um wrapper de comandos que sempre falta um.
|
|
89
|
+
Os comandos próprios do editor seguem o mesmo caminho:
|
|
90
|
+
`toggleTopicNumber()` / `setTopicNumber()` / `unsetTopicNumber()` numeram o
|
|
91
|
+
parágrafo da seleção com o número de tópico da peça (o nó `topicNumber`, que
|
|
92
|
+
continua a sequência do template e sai como numeração nativa no Word — não é a
|
|
93
|
+
lista `<ol>`); `hasLeadingTopicNumber(editor.tiptap)` dá o estado do botão.
|
|
94
|
+
Enter num parágrafo numerado já continua a numeração sozinho.
|
|
89
95
|
|
|
90
96
|
**CSS em arquivo, com namespace.** Tudo vive sob `.poc-editor-root`, inclusive
|
|
91
97
|
as utilities atômicas que o defesa.ai tira do UnoCSS. Importe
|
package/dist/index.d.mts
CHANGED
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
/// <reference types="@tiptap/extension-table" />
|
|
19
19
|
/// <reference types="@tiptap/extension-bubble-menu" />
|
|
20
20
|
import { Node, Editor, Extension, Mark } from '@tiptap/core';
|
|
21
|
+
import { Node as Node$1 } from '@tiptap/pm/model';
|
|
21
22
|
import { Transaction } from '@tiptap/pm/state';
|
|
22
23
|
import { EditorView } from '@tiptap/pm/view';
|
|
23
24
|
import { P as PocPageConfig } from './shared/minuta-editor.9e65d163.mjs';
|
|
24
25
|
export { e as PAGINATE_META, a as PocDocxChrome, b as PocDocxExportOptions, s as PocLoneRow, d as PocPageBreak, c as PocPageNote, v as PocPaginationPlugin, u as breaksEqual, h as buildPocFooterEl, g as buildPocHeaderEl, j as buildPocNotesEl, l as computePocBreaks, t as computePocLoneRows, i as isPocChromeCanvas, n as isPocFlexRow, f as pocChromeFlowHeight, m as pocDescendsInto, r as pocLoneCellIndex, k as pocLooksLikeTitle, o as pocNodeHasVisibleContent, q as pocNodePaintsBox, p as pocPageKey } from './shared/minuta-editor.9e65d163.mjs';
|
|
25
|
-
import { Node as Node$1 } from '@tiptap/pm/model';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Variáveis de template da minuta — o formato do placeholder e a resolução dele.
|
|
@@ -170,6 +170,18 @@ declare function renumberPocFootnotes(editor: Editor): void;
|
|
|
170
170
|
* nativa do Word, que também se refaz quando o advogado apaga um parágrafo lá.
|
|
171
171
|
* Contrato do marcador em `utils/topicNumber.ts`.
|
|
172
172
|
*/
|
|
173
|
+
declare module '@tiptap/core' {
|
|
174
|
+
interface Commands<ReturnType> {
|
|
175
|
+
topicNumber: {
|
|
176
|
+
/** numera os parágrafos da seleção (continua a sequência do parágrafo numerado mais próximo) */
|
|
177
|
+
setTopicNumber: () => ReturnType;
|
|
178
|
+
/** tira o número (e o separador colado nele) dos parágrafos da seleção */
|
|
179
|
+
unsetTopicNumber: () => ReturnType;
|
|
180
|
+
/** todos numerados → tira; senão numera os que faltam */
|
|
181
|
+
toggleTopicNumber: () => ReturnType;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
173
185
|
declare const PocTopicNumber: Node<any, any>;
|
|
174
186
|
/**
|
|
175
187
|
* Re-sequencia os números de tópico na ordem do documento, por grupo, dentro
|
|
@@ -185,6 +197,18 @@ declare function renumberPocTopics(editor: Editor): void;
|
|
|
185
197
|
* parágrafo não custa nada além da varredura.
|
|
186
198
|
*/
|
|
187
199
|
declare const PocTopicRenumber: Extension<any, any>;
|
|
200
|
+
/** índice do nó de número que abre o parágrafo (só espaço antes dele; `ref` não conta), ou -1 */
|
|
201
|
+
declare function leadingTopicIndex(block: Node$1): number;
|
|
202
|
+
/** o parágrafo onde está o cursor começa com número de tópico (estado do botão da toolbar) */
|
|
203
|
+
declare function hasLeadingTopicNumber(editor: Editor): boolean;
|
|
204
|
+
/** numera / desnumera os parágrafos da seleção (atalho tipado para `commands.toggleTopicNumber`) */
|
|
205
|
+
declare function toggleTopicNumber(editor: Editor): boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Enter num parágrafo numerado: o seguinte nasce numerado (continua a
|
|
208
|
+
* sequência). Enter num parágrafo que só tem o número tira o número — a
|
|
209
|
+
* mesma saída da lista que o Word dá.
|
|
210
|
+
*/
|
|
211
|
+
declare const PocTopicNumberKeymap: Extension<any, any>;
|
|
188
212
|
declare const PocStyledDiv: Node<any, any>;
|
|
189
213
|
declare const PocInlineStyle: Mark<any, any>;
|
|
190
214
|
declare const PocUnderline: Mark<any, any>;
|
|
@@ -668,5 +692,5 @@ declare function collectVaultRefs(html: string): string[];
|
|
|
668
692
|
/** aplica as URLs resolvidas às `<img>` do trecho; tags sem resolução ficam como estão */
|
|
669
693
|
declare function renewVaultImageTags(html: string, resolved: Map<string, string>): string;
|
|
670
694
|
|
|
671
|
-
export { A4_HEIGHT_PX, A4_WIDTH_PX, DEFAULT_MARGINS, DOC_FONTS, ICON_PATHS, POC_ASSET_SWAP, PocDocument, PocFootnoteRef, PocHtmlIsland, PocInlineStyle, PocMinutaBlock, PocMissingImage, PocPageConfig, PocStylePassthrough, PocStyledDiv, PocTemplateVariable, PocTopicNumber, PocTopicRenumber, PocUnderline, PocVariableChip, TOPIC_DEFAULT_GROUP, TOPIC_GROUP_ATTR, TOPIC_NUMBER_ATTR, TOPIC_REF_ATTR, TOPIC_ROMAN_ATTR, blockHash, buildPocExtensions, collectVaultRefs, createMinutaEditor, decodeVaultAttr, dispatchVariableClick, escapeHtml, escapeVaultAttr, extractTemplateVariables, footnoteHtmlToRuns, footnoteSizePt, formatTopicNumber, fromRoman, iconSvg, isBlockUntouched, minutaBlockFingerprint, readTopicNumber, refreshVaultImages, renewVaultImageTags, renumberPocFootnotes, renumberPocTopics, renumberPocTopicsIn, resolveTemplateVariables, sanitizeFootnoteHtml, sanitizeRichHtml, shouldMoveBreakToHeading, swapVaultSrc, toRoman, topicNumberHtml, variableChipHtml, vaultImageHtml, vaultRefOf };
|
|
695
|
+
export { A4_HEIGHT_PX, A4_WIDTH_PX, DEFAULT_MARGINS, DOC_FONTS, ICON_PATHS, POC_ASSET_SWAP, PocDocument, PocFootnoteRef, PocHtmlIsland, PocInlineStyle, PocMinutaBlock, PocMissingImage, PocPageConfig, PocStylePassthrough, PocStyledDiv, PocTemplateVariable, PocTopicNumber, PocTopicNumberKeymap, PocTopicRenumber, PocUnderline, PocVariableChip, TOPIC_DEFAULT_GROUP, TOPIC_GROUP_ATTR, TOPIC_NUMBER_ATTR, TOPIC_REF_ATTR, TOPIC_ROMAN_ATTR, blockHash, buildPocExtensions, collectVaultRefs, createMinutaEditor, decodeVaultAttr, dispatchVariableClick, escapeHtml, escapeVaultAttr, extractTemplateVariables, footnoteHtmlToRuns, footnoteSizePt, formatTopicNumber, fromRoman, hasLeadingTopicNumber, iconSvg, isBlockUntouched, leadingTopicIndex, minutaBlockFingerprint, readTopicNumber, refreshVaultImages, renewVaultImageTags, renumberPocFootnotes, renumberPocTopics, renumberPocTopicsIn, resolveTemplateVariables, sanitizeFootnoteHtml, sanitizeRichHtml, shouldMoveBreakToHeading, swapVaultSrc, toRoman, toggleTopicNumber, topicNumberHtml, variableChipHtml, vaultImageHtml, vaultRefOf };
|
|
672
696
|
export type { FootnoteRun, ImageIdentity, MinutaChecklistConflict, MinutaChecklistResult, MinutaChromeText, MinutaEditor, MinutaEditorOptions, MinutaHeader, MinutaMargins, MinutaVariableCatalog, MinutaVariableDef, MinutaVariableRef, PocKeepWithNextItem, RefreshVaultImagesOptions, TopicNumberInfo, VariableClickKind };
|
package/dist/index.d.ts
CHANGED
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
/// <reference types="@tiptap/extension-table" />
|
|
19
19
|
/// <reference types="@tiptap/extension-bubble-menu" />
|
|
20
20
|
import { Node, Editor, Extension, Mark } from '@tiptap/core';
|
|
21
|
+
import { Node as Node$1 } from '@tiptap/pm/model';
|
|
21
22
|
import { Transaction } from '@tiptap/pm/state';
|
|
22
23
|
import { EditorView } from '@tiptap/pm/view';
|
|
23
24
|
import { P as PocPageConfig } from './shared/minuta-editor.9e65d163.js';
|
|
24
25
|
export { e as PAGINATE_META, a as PocDocxChrome, b as PocDocxExportOptions, s as PocLoneRow, d as PocPageBreak, c as PocPageNote, v as PocPaginationPlugin, u as breaksEqual, h as buildPocFooterEl, g as buildPocHeaderEl, j as buildPocNotesEl, l as computePocBreaks, t as computePocLoneRows, i as isPocChromeCanvas, n as isPocFlexRow, f as pocChromeFlowHeight, m as pocDescendsInto, r as pocLoneCellIndex, k as pocLooksLikeTitle, o as pocNodeHasVisibleContent, q as pocNodePaintsBox, p as pocPageKey } from './shared/minuta-editor.9e65d163.js';
|
|
25
|
-
import { Node as Node$1 } from '@tiptap/pm/model';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Variáveis de template da minuta — o formato do placeholder e a resolução dele.
|
|
@@ -170,6 +170,18 @@ declare function renumberPocFootnotes(editor: Editor): void;
|
|
|
170
170
|
* nativa do Word, que também se refaz quando o advogado apaga um parágrafo lá.
|
|
171
171
|
* Contrato do marcador em `utils/topicNumber.ts`.
|
|
172
172
|
*/
|
|
173
|
+
declare module '@tiptap/core' {
|
|
174
|
+
interface Commands<ReturnType> {
|
|
175
|
+
topicNumber: {
|
|
176
|
+
/** numera os parágrafos da seleção (continua a sequência do parágrafo numerado mais próximo) */
|
|
177
|
+
setTopicNumber: () => ReturnType;
|
|
178
|
+
/** tira o número (e o separador colado nele) dos parágrafos da seleção */
|
|
179
|
+
unsetTopicNumber: () => ReturnType;
|
|
180
|
+
/** todos numerados → tira; senão numera os que faltam */
|
|
181
|
+
toggleTopicNumber: () => ReturnType;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
173
185
|
declare const PocTopicNumber: Node<any, any>;
|
|
174
186
|
/**
|
|
175
187
|
* Re-sequencia os números de tópico na ordem do documento, por grupo, dentro
|
|
@@ -185,6 +197,18 @@ declare function renumberPocTopics(editor: Editor): void;
|
|
|
185
197
|
* parágrafo não custa nada além da varredura.
|
|
186
198
|
*/
|
|
187
199
|
declare const PocTopicRenumber: Extension<any, any>;
|
|
200
|
+
/** índice do nó de número que abre o parágrafo (só espaço antes dele; `ref` não conta), ou -1 */
|
|
201
|
+
declare function leadingTopicIndex(block: Node$1): number;
|
|
202
|
+
/** o parágrafo onde está o cursor começa com número de tópico (estado do botão da toolbar) */
|
|
203
|
+
declare function hasLeadingTopicNumber(editor: Editor): boolean;
|
|
204
|
+
/** numera / desnumera os parágrafos da seleção (atalho tipado para `commands.toggleTopicNumber`) */
|
|
205
|
+
declare function toggleTopicNumber(editor: Editor): boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Enter num parágrafo numerado: o seguinte nasce numerado (continua a
|
|
208
|
+
* sequência). Enter num parágrafo que só tem o número tira o número — a
|
|
209
|
+
* mesma saída da lista que o Word dá.
|
|
210
|
+
*/
|
|
211
|
+
declare const PocTopicNumberKeymap: Extension<any, any>;
|
|
188
212
|
declare const PocStyledDiv: Node<any, any>;
|
|
189
213
|
declare const PocInlineStyle: Mark<any, any>;
|
|
190
214
|
declare const PocUnderline: Mark<any, any>;
|
|
@@ -668,5 +692,5 @@ declare function collectVaultRefs(html: string): string[];
|
|
|
668
692
|
/** aplica as URLs resolvidas às `<img>` do trecho; tags sem resolução ficam como estão */
|
|
669
693
|
declare function renewVaultImageTags(html: string, resolved: Map<string, string>): string;
|
|
670
694
|
|
|
671
|
-
export { A4_HEIGHT_PX, A4_WIDTH_PX, DEFAULT_MARGINS, DOC_FONTS, ICON_PATHS, POC_ASSET_SWAP, PocDocument, PocFootnoteRef, PocHtmlIsland, PocInlineStyle, PocMinutaBlock, PocMissingImage, PocPageConfig, PocStylePassthrough, PocStyledDiv, PocTemplateVariable, PocTopicNumber, PocTopicRenumber, PocUnderline, PocVariableChip, TOPIC_DEFAULT_GROUP, TOPIC_GROUP_ATTR, TOPIC_NUMBER_ATTR, TOPIC_REF_ATTR, TOPIC_ROMAN_ATTR, blockHash, buildPocExtensions, collectVaultRefs, createMinutaEditor, decodeVaultAttr, dispatchVariableClick, escapeHtml, escapeVaultAttr, extractTemplateVariables, footnoteHtmlToRuns, footnoteSizePt, formatTopicNumber, fromRoman, iconSvg, isBlockUntouched, minutaBlockFingerprint, readTopicNumber, refreshVaultImages, renewVaultImageTags, renumberPocFootnotes, renumberPocTopics, renumberPocTopicsIn, resolveTemplateVariables, sanitizeFootnoteHtml, sanitizeRichHtml, shouldMoveBreakToHeading, swapVaultSrc, toRoman, topicNumberHtml, variableChipHtml, vaultImageHtml, vaultRefOf };
|
|
695
|
+
export { A4_HEIGHT_PX, A4_WIDTH_PX, DEFAULT_MARGINS, DOC_FONTS, ICON_PATHS, POC_ASSET_SWAP, PocDocument, PocFootnoteRef, PocHtmlIsland, PocInlineStyle, PocMinutaBlock, PocMissingImage, PocPageConfig, PocStylePassthrough, PocStyledDiv, PocTemplateVariable, PocTopicNumber, PocTopicNumberKeymap, PocTopicRenumber, PocUnderline, PocVariableChip, TOPIC_DEFAULT_GROUP, TOPIC_GROUP_ATTR, TOPIC_NUMBER_ATTR, TOPIC_REF_ATTR, TOPIC_ROMAN_ATTR, blockHash, buildPocExtensions, collectVaultRefs, createMinutaEditor, decodeVaultAttr, dispatchVariableClick, escapeHtml, escapeVaultAttr, extractTemplateVariables, footnoteHtmlToRuns, footnoteSizePt, formatTopicNumber, fromRoman, hasLeadingTopicNumber, iconSvg, isBlockUntouched, leadingTopicIndex, minutaBlockFingerprint, readTopicNumber, refreshVaultImages, renewVaultImageTags, renumberPocFootnotes, renumberPocTopics, renumberPocTopicsIn, resolveTemplateVariables, sanitizeFootnoteHtml, sanitizeRichHtml, shouldMoveBreakToHeading, swapVaultSrc, toRoman, toggleTopicNumber, topicNumberHtml, variableChipHtml, vaultImageHtml, vaultRefOf };
|
|
672
696
|
export type { FootnoteRun, ImageIdentity, MinutaChecklistConflict, MinutaChecklistResult, MinutaChromeText, MinutaEditor, MinutaEditorOptions, MinutaHeader, MinutaMargins, MinutaVariableCatalog, MinutaVariableDef, MinutaVariableRef, PocKeepWithNextItem, RefreshVaultImagesOptions, TopicNumberInfo, VariableClickKind };
|
package/dist/index.mjs
CHANGED
|
@@ -550,6 +550,13 @@ const PocTopicNumber = Node$1.create({
|
|
|
550
550
|
if (node.attrs.ref)
|
|
551
551
|
attrs[TOPIC_REF_ATTR] = "true";
|
|
552
552
|
return ["span", attrs, formatTopicNumber(node.attrs.number, node.attrs.roman)];
|
|
553
|
+
},
|
|
554
|
+
addCommands() {
|
|
555
|
+
return {
|
|
556
|
+
setTopicNumber: () => ({ tr }) => applyTopicNumbers(tr, "set"),
|
|
557
|
+
unsetTopicNumber: () => ({ tr }) => applyTopicNumbers(tr, "unset"),
|
|
558
|
+
toggleTopicNumber: () => ({ tr }) => applyTopicNumbers(tr, "toggle")
|
|
559
|
+
};
|
|
553
560
|
}
|
|
554
561
|
});
|
|
555
562
|
function renumberPocTopicsIn(tr) {
|
|
@@ -587,6 +594,169 @@ const PocTopicRenumber = Extension.create({
|
|
|
587
594
|
})];
|
|
588
595
|
}
|
|
589
596
|
});
|
|
597
|
+
const TOPIC_SEPARATOR_DEFAULT = ". ";
|
|
598
|
+
const TOPIC_SEPARATOR_RE = /^[ \u00A0]*[.)\-–—:]?[ \u00A0]*/u;
|
|
599
|
+
const TOPIC_SEPARATOR_MAX = 4;
|
|
600
|
+
function leadingTopicIndex(block) {
|
|
601
|
+
for (let i = 0; i < block.childCount; i++) {
|
|
602
|
+
const child = block.child(i);
|
|
603
|
+
if (child.isText && !child.text?.trim())
|
|
604
|
+
continue;
|
|
605
|
+
return child.type.name === "topicNumber" && !child.attrs.ref ? i : -1;
|
|
606
|
+
}
|
|
607
|
+
return -1;
|
|
608
|
+
}
|
|
609
|
+
function topicSeparatorAfter(block, topicIndex) {
|
|
610
|
+
const next = block.maybeChild(topicIndex + 1);
|
|
611
|
+
if (!next?.isText || !next.text)
|
|
612
|
+
return "";
|
|
613
|
+
return (next.text.match(TOPIC_SEPARATOR_RE)?.[0] ?? "").slice(0, TOPIC_SEPARATOR_MAX);
|
|
614
|
+
}
|
|
615
|
+
function firstTextMarks(block) {
|
|
616
|
+
for (let i = 0; i < block.childCount; i++) {
|
|
617
|
+
const child = block.child(i);
|
|
618
|
+
if (child.isText && child.text?.trim())
|
|
619
|
+
return child.marks;
|
|
620
|
+
}
|
|
621
|
+
return void 0;
|
|
622
|
+
}
|
|
623
|
+
function findTopicReference(doc, blockPos) {
|
|
624
|
+
let before = null;
|
|
625
|
+
let after = null;
|
|
626
|
+
doc.descendants((node, pos) => {
|
|
627
|
+
if (after)
|
|
628
|
+
return false;
|
|
629
|
+
if (!node.isTextblock)
|
|
630
|
+
return;
|
|
631
|
+
if (pos === blockPos)
|
|
632
|
+
return false;
|
|
633
|
+
const index = leadingTopicIndex(node);
|
|
634
|
+
if (index < 0)
|
|
635
|
+
return false;
|
|
636
|
+
const topic = node.child(index);
|
|
637
|
+
const ref = {
|
|
638
|
+
group: topic.attrs.group || TOPIC_DEFAULT_GROUP,
|
|
639
|
+
roman: Boolean(topic.attrs.roman),
|
|
640
|
+
number: Number(topic.attrs.number) || 0,
|
|
641
|
+
separator: topicSeparatorAfter(node, index) || TOPIC_SEPARATOR_DEFAULT,
|
|
642
|
+
marks: topic.marks
|
|
643
|
+
};
|
|
644
|
+
if (pos < blockPos)
|
|
645
|
+
before = ref;
|
|
646
|
+
else
|
|
647
|
+
after = ref;
|
|
648
|
+
return false;
|
|
649
|
+
});
|
|
650
|
+
return before ?? after;
|
|
651
|
+
}
|
|
652
|
+
function textBlockAt(doc, pos) {
|
|
653
|
+
const $pos = doc.resolve(pos);
|
|
654
|
+
for (let depth = $pos.depth; depth > 0; depth--) {
|
|
655
|
+
const node = $pos.node(depth);
|
|
656
|
+
if (node.type.name === "paragraph" || node.type.name === "heading")
|
|
657
|
+
return { node, pos: $pos.before(depth) };
|
|
658
|
+
if (node.isTextblock)
|
|
659
|
+
return null;
|
|
660
|
+
}
|
|
661
|
+
return null;
|
|
662
|
+
}
|
|
663
|
+
function insertTopicNumberAt(tr, blockPos) {
|
|
664
|
+
const block = tr.doc.nodeAt(blockPos);
|
|
665
|
+
if (!block || !block.isTextblock || leadingTopicIndex(block) >= 0)
|
|
666
|
+
return false;
|
|
667
|
+
const type = tr.doc.type.schema.nodes.topicNumber;
|
|
668
|
+
if (!type)
|
|
669
|
+
return false;
|
|
670
|
+
const ref = findTopicReference(tr.doc, blockPos);
|
|
671
|
+
const marks = firstTextMarks(block) ?? ref?.marks ?? [];
|
|
672
|
+
const topic = type.create({
|
|
673
|
+
number: ref && ref.number > 0 ? ref.number + 1 : 1,
|
|
674
|
+
group: ref?.group ?? TOPIC_DEFAULT_GROUP,
|
|
675
|
+
roman: ref?.roman ?? false,
|
|
676
|
+
ref: false
|
|
677
|
+
}, void 0, marks);
|
|
678
|
+
const separator = ref?.separator ?? TOPIC_SEPARATOR_DEFAULT;
|
|
679
|
+
const content = separator ? [topic, tr.doc.type.schema.text(separator, marks)] : [topic];
|
|
680
|
+
tr.insert(blockPos + 1, content);
|
|
681
|
+
return true;
|
|
682
|
+
}
|
|
683
|
+
function removeTopicNumberAt(tr, blockPos) {
|
|
684
|
+
const block = tr.doc.nodeAt(blockPos);
|
|
685
|
+
if (!block || !block.isTextblock)
|
|
686
|
+
return false;
|
|
687
|
+
const index = leadingTopicIndex(block);
|
|
688
|
+
if (index < 0)
|
|
689
|
+
return false;
|
|
690
|
+
let from = blockPos + 1;
|
|
691
|
+
for (let i = 0; i < index; i++)
|
|
692
|
+
from += block.child(i).nodeSize;
|
|
693
|
+
const to = from + block.child(index).nodeSize + topicSeparatorAfter(block, index).length;
|
|
694
|
+
tr.delete(from, to);
|
|
695
|
+
return true;
|
|
696
|
+
}
|
|
697
|
+
function selectedTextBlocks(tr) {
|
|
698
|
+
const { from, to } = tr.selection;
|
|
699
|
+
const blocks = [];
|
|
700
|
+
tr.doc.nodesBetween(from, to, (node, pos) => {
|
|
701
|
+
if (node.type.name === "paragraph" || node.type.name === "heading")
|
|
702
|
+
blocks.push({ node, pos });
|
|
703
|
+
});
|
|
704
|
+
return blocks;
|
|
705
|
+
}
|
|
706
|
+
function applyTopicNumbers(tr, mode) {
|
|
707
|
+
const blocks = selectedTextBlocks(tr);
|
|
708
|
+
if (!blocks.length)
|
|
709
|
+
return false;
|
|
710
|
+
const allNumbered = blocks.every((b) => leadingTopicIndex(b.node) >= 0);
|
|
711
|
+
const remove = mode === "unset" || mode === "toggle" && allNumbered;
|
|
712
|
+
const stepsBefore = tr.mapping.maps.length;
|
|
713
|
+
let changed = false;
|
|
714
|
+
for (const { pos } of blocks) {
|
|
715
|
+
const mapped = tr.mapping.slice(stepsBefore).map(pos);
|
|
716
|
+
changed = (remove ? removeTopicNumberAt(tr, mapped) : insertTopicNumberAt(tr, mapped)) || changed;
|
|
717
|
+
}
|
|
718
|
+
return changed;
|
|
719
|
+
}
|
|
720
|
+
function hasLeadingTopicNumber(editor) {
|
|
721
|
+
if (!editor || editor.isDestroyed)
|
|
722
|
+
return false;
|
|
723
|
+
const block = textBlockAt(editor.state.doc, editor.state.selection.from);
|
|
724
|
+
return Boolean(block && leadingTopicIndex(block.node) >= 0);
|
|
725
|
+
}
|
|
726
|
+
function toggleTopicNumber(editor) {
|
|
727
|
+
return editor.chain().focus().toggleTopicNumber().run();
|
|
728
|
+
}
|
|
729
|
+
const PocTopicNumberKeymap = Extension.create({
|
|
730
|
+
name: "pocTopicNumberKeymap",
|
|
731
|
+
// acima do keymap base e das listas (100); abaixo do `pocKeyDownFirst` (1000)
|
|
732
|
+
priority: 200,
|
|
733
|
+
addKeyboardShortcuts() {
|
|
734
|
+
return {
|
|
735
|
+
Enter: ({ editor }) => {
|
|
736
|
+
const { selection } = editor.state;
|
|
737
|
+
const { $from } = selection;
|
|
738
|
+
const block = $from.parent;
|
|
739
|
+
if (block.type.name !== "paragraph" && block.type.name !== "heading")
|
|
740
|
+
return false;
|
|
741
|
+
const index = leadingTopicIndex(block);
|
|
742
|
+
if (index < 0)
|
|
743
|
+
return false;
|
|
744
|
+
const body = block.textBetween(0, block.content.size, void 0, "\uFFFC");
|
|
745
|
+
const onlyNumber = !/[\p{L}\p{N}]/u.test(body.replace(/^/, ""));
|
|
746
|
+
if (selection.empty && onlyNumber)
|
|
747
|
+
return editor.chain().command(({ tr }) => removeTopicNumberAt(tr, $from.before())).run();
|
|
748
|
+
const inListItem = $from.depth >= 2 && $from.node(-1).type.name === "listItem";
|
|
749
|
+
return editor.chain().command(({ commands }) => inListItem ? commands.splitListItem("listItem") : commands.splitBlock()).command(({ tr }) => {
|
|
750
|
+
const target = textBlockAt(tr.doc, tr.selection.from);
|
|
751
|
+
if (!target || leadingTopicIndex(target.node) >= 0)
|
|
752
|
+
return true;
|
|
753
|
+
insertTopicNumberAt(tr, target.pos);
|
|
754
|
+
return true;
|
|
755
|
+
}).run();
|
|
756
|
+
}
|
|
757
|
+
};
|
|
758
|
+
}
|
|
759
|
+
});
|
|
590
760
|
const PocStyledDiv = Node$1.create({
|
|
591
761
|
name: "styledDiv",
|
|
592
762
|
group: "block",
|
|
@@ -718,6 +888,7 @@ function buildPocExtensions(pageConfig, options) {
|
|
|
718
888
|
PocFootnoteRef,
|
|
719
889
|
PocTopicNumber,
|
|
720
890
|
PocTopicRenumber,
|
|
891
|
+
PocTopicNumberKeymap,
|
|
721
892
|
PocStyledDiv,
|
|
722
893
|
PocInlineStyle,
|
|
723
894
|
PocUnderline,
|
|
@@ -1630,6 +1801,11 @@ function createToolbar(actions) {
|
|
|
1630
1801
|
const strikeBtn = tool("Tachado", "S", () => ed()?.chain().focus().toggleStrike().run(), "line-through");
|
|
1631
1802
|
const bulletBtn = tool("Lista com marcadores", icon("list-bullets"), () => ed()?.chain().focus().toggleBulletList().run());
|
|
1632
1803
|
const orderedBtn = tool("Lista numerada", icon("list-numbers"), () => ed()?.chain().focus().toggleOrderedList().run());
|
|
1804
|
+
const topicBtn = tool("Numerar par\xE1grafo (continua a numera\xE7\xE3o da pe\xE7a)", h("span", { class: "poc-tool-glyph", text: "1." }), () => {
|
|
1805
|
+
const e = ed();
|
|
1806
|
+
if (e)
|
|
1807
|
+
toggleTopicNumber(e);
|
|
1808
|
+
});
|
|
1633
1809
|
const variableBtn = tool("Inserir vari\xE1vel (ou digite / no texto)", icon("brackets-curly"), actions.openVariablePicker);
|
|
1634
1810
|
const el = h("div", { class: "poc-toolbar", on: { click: (e) => e.stopPropagation() } }, [
|
|
1635
1811
|
tool("Desfazer", icon("arrow-u-up-left"), () => ed()?.chain().focus().undo().run()),
|
|
@@ -1651,6 +1827,7 @@ function createToolbar(actions) {
|
|
|
1651
1827
|
tool("Alinhar \xE0 direita", icon("text-align-right"), () => actions.setAlignment("right")),
|
|
1652
1828
|
tool("Justificar", icon("text-align-justify"), () => actions.setAlignment("justify")),
|
|
1653
1829
|
sep(),
|
|
1830
|
+
topicBtn,
|
|
1654
1831
|
bulletBtn,
|
|
1655
1832
|
orderedBtn,
|
|
1656
1833
|
sep(),
|
|
@@ -1665,7 +1842,7 @@ function createToolbar(actions) {
|
|
|
1665
1842
|
variableBtn.hidden = !actions.hasVariables();
|
|
1666
1843
|
toggleClass(variableBtn, "poc-tool--on", actions.isVariablePickerOpen());
|
|
1667
1844
|
if (!e || e.isDestroyed) {
|
|
1668
|
-
for (const b of [boldBtn, italicBtn, underlineBtn, strikeBtn, bulletBtn, orderedBtn])
|
|
1845
|
+
for (const b of [boldBtn, italicBtn, underlineBtn, strikeBtn, topicBtn, bulletBtn, orderedBtn])
|
|
1669
1846
|
toggleClass(b, "poc-tool--on", false);
|
|
1670
1847
|
return;
|
|
1671
1848
|
}
|
|
@@ -1673,6 +1850,7 @@ function createToolbar(actions) {
|
|
|
1673
1850
|
toggleClass(italicBtn, "poc-tool--on", e.isActive("italic"));
|
|
1674
1851
|
toggleClass(underlineBtn, "poc-tool--on", e.isActive("underline"));
|
|
1675
1852
|
toggleClass(strikeBtn, "poc-tool--on", e.isActive("strike"));
|
|
1853
|
+
toggleClass(topicBtn, "poc-tool--on", hasLeadingTopicNumber(e));
|
|
1676
1854
|
toggleClass(bulletBtn, "poc-tool--on", e.isActive("bulletList"));
|
|
1677
1855
|
toggleClass(orderedBtn, "poc-tool--on", e.isActive("orderedList"));
|
|
1678
1856
|
const family = currentFontFamily(e);
|
|
@@ -2590,4 +2768,4 @@ function createMinutaEditor(element, opts) {
|
|
|
2590
2768
|
return api;
|
|
2591
2769
|
}
|
|
2592
2770
|
|
|
2593
|
-
export { A4_HEIGHT_PX, A4_WIDTH_PX, DEFAULT_MARGINS, DOC_FONTS, ICON_PATHS, PAGINATE_META, POC_ASSET_SWAP, PocDocument, PocFootnoteRef, PocHtmlIsland, PocInlineStyle, PocMinutaBlock, PocMissingImage, PocPaginationPlugin, PocStylePassthrough, PocStyledDiv, PocTemplateVariable, PocTopicNumber, PocTopicRenumber, PocUnderline, PocVariableChip, TOPIC_DEFAULT_GROUP, TOPIC_GROUP_ATTR, TOPIC_NUMBER_ATTR, TOPIC_REF_ATTR, TOPIC_ROMAN_ATTR, blockHash, breaksEqual, buildPocExtensions, collectVaultRefs, computePocBreaks, createMinutaEditor, decodeVaultAttr, dispatchVariableClick, escapeHtml, escapeVaultAttr, extractTemplateVariables, footnoteSizePt, formatTopicNumber, iconSvg, isBlockUntouched, minutaBlockFingerprint, pocPageKey, readTopicNumber, refreshVaultImages, renewVaultImageTags, renumberPocFootnotes, renumberPocTopics, renumberPocTopicsIn, resolveTemplateVariables, sanitizeFootnoteHtml, sanitizeRichHtml, swapVaultSrc, variableChipHtml, vaultImageHtml, vaultRefOf };
|
|
2771
|
+
export { A4_HEIGHT_PX, A4_WIDTH_PX, DEFAULT_MARGINS, DOC_FONTS, ICON_PATHS, PAGINATE_META, POC_ASSET_SWAP, PocDocument, PocFootnoteRef, PocHtmlIsland, PocInlineStyle, PocMinutaBlock, PocMissingImage, PocPaginationPlugin, PocStylePassthrough, PocStyledDiv, PocTemplateVariable, PocTopicNumber, PocTopicNumberKeymap, PocTopicRenumber, PocUnderline, PocVariableChip, TOPIC_DEFAULT_GROUP, TOPIC_GROUP_ATTR, TOPIC_NUMBER_ATTR, TOPIC_REF_ATTR, TOPIC_ROMAN_ATTR, blockHash, breaksEqual, buildPocExtensions, collectVaultRefs, computePocBreaks, createMinutaEditor, decodeVaultAttr, dispatchVariableClick, escapeHtml, escapeVaultAttr, extractTemplateVariables, footnoteSizePt, formatTopicNumber, hasLeadingTopicNumber, iconSvg, isBlockUntouched, leadingTopicIndex, minutaBlockFingerprint, pocPageKey, readTopicNumber, refreshVaultImages, renewVaultImageTags, renumberPocFootnotes, renumberPocTopics, renumberPocTopicsIn, resolveTemplateVariables, sanitizeFootnoteHtml, sanitizeRichHtml, swapVaultSrc, toggleTopicNumber, variableChipHtml, vaultImageHtml, vaultRefOf };
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.poc-editor-root .poc-ins{background:rgba(34,197,94,.16);text-decoration:underline;text-decoration-color:#16a34a}.poc-editor-root .poc-del{background:rgba(239,68,68,.12);color:#b91c1c;text-decoration:line-through}.poc-editor-root .poc-bubble-btn{border-radius:6px;font-size:13px;padding:4px 8px;transition:all .15s;transition-timing-function:ease}.poc-editor-root .poc-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:2px;padding:4px 12px}@media (max-width:640px){.poc-editor-root .poc-toolbar{flex-wrap:nowrap;overflow-x:auto;padding:4px 8px;scrollbar-width:none}.poc-editor-root .poc-toolbar::-webkit-scrollbar{display:none}.poc-editor-root .poc-toolbar>*{flex:none}}.poc-editor-root .poc-tool{align-items:center;border-radius:6px;display:flex;font-size:13px;height:28px;justify-content:center;min-width:28px;padding-left:6px;padding-right:6px;position:relative;transition:all .15s;transition-timing-function:ease}.poc-editor-root .poc-tool-sep{background:#dee3e7;height:20px;margin:0 6px;width:1px}.poc-editor-root .poc-tool-select{border-radius:6px;font-size:12px;height:28px;padding-left:6px;padding-right:6px}.poc-editor-root .poc-color-underline{background:#dc2626;border-radius:1px;bottom:4px;height:3px;left:7px;position:absolute;right:7px}.poc-editor-root .poc-palette{background:#fff;border:.5px solid #dee3e7;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);display:flex;flex-wrap:wrap;gap:2px;left:0;padding:8px;position:absolute;top:32px;width:230px;z-index:50}.poc-editor-root .poc-palette-swatch{border:1px solid rgba(0,0,0,.1);border-radius:3px;cursor:pointer;height:19px;width:19px}.poc-editor-root .poc-palette-swatch:hover{transform:scale(1.2)}.poc-editor-root .poc-palette-custom{align-items:center;color:#565d69;cursor:pointer;display:flex;font-size:12px;margin-top:6px;width:100%}.poc-editor-root .poc-color-swatch{border:1px solid rgba(0,0,0,.12);border-radius:4px;cursor:pointer;height:16px;margin:0 2px;width:16px}.poc-editor-root .poc-color-swatch:hover{transform:scale(1.15)}.poc-editor-root .poc-first-header{align-items:center;cursor:pointer;display:flex;gap:12px;position:absolute;top:0}.poc-editor-root .poc-first-header[style*=center]{justify-content:center}.poc-editor-root .poc-first-header[style*=right]{justify-content:flex-end}.poc-editor-root .poc-first-header:hover,.poc-editor-root .poc-last-footer:hover,.poc-editor-root .poc-page-footerarea:hover,.poc-editor-root .poc-page-headerarea:hover{background:rgba(99,102,241,.06);outline:1px dashed #c7d2fe}.poc-editor-root .poc-last-footer{align-items:center;bottom:0;color:#94a3b8;cursor:pointer;display:flex;font-size:11px;justify-content:space-between;position:absolute}.poc-editor-root .poc-chrome-text{color:#64748b;font-size:11px}.poc-editor-root .poc-chrome-text img{display:inline-block;max-height:48px;max-width:200px;vertical-align:middle}.poc-editor-root .poc-pagebreak-marker{border-top:1px dashed #a5b4fc;font-size:0!important;height:16px;line-height:0!important;margin:6px 0!important;position:relative}.poc-editor-root .poc-pagebreak-marker:after{background:#fff;color:#818cf8;content:"quebra de página do template";font-size:10px;left:50%;line-height:16px;padding:0 8px;position:absolute;top:-8px;transform:translateX(-50%)}.poc-editor-root .poc-page-chrome{color:initial;display:block;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;pointer-events:none;text-align:initial;text-indent:0;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:normal}.poc-editor-root .poc-page-chrome>.poc-page-footerarea:not(:hover),.poc-editor-root .poc-page-chrome>.poc-page-headerarea:not(:hover),.poc-editor-root .poc-page-chrome>.poc-page-notes{background:#fff}.poc-editor-root tr.poc-page-chrome-row>td.poc-page-chrome-cell{background:transparent!important;border:0!important;padding:0!important;vertical-align:top}.poc-editor-root .poc-page-footerarea,.poc-editor-root .poc-page-headerarea{cursor:pointer;pointer-events:auto}.poc-editor-root .poc-page-footerarea{align-items:center;color:#94a3b8;display:flex;font-size:11px;justify-content:space-between}.poc-editor-root .poc-page-gapband{background:#eceef1;box-shadow:inset 0 6px 6px -6px rgba(0,0,0,.25),inset 0 -6px 6px -6px rgba(0,0,0,.25)}.poc-editor-root .poc-page-headerarea{align-items:center;display:flex}.poc-editor-root .poc-page-headerarea[style*=center]{justify-content:center}.poc-editor-root .poc-page-headerarea[style*=right]{justify-content:flex-end}.poc-editor-root .ProseMirror{white-space:pre-wrap;word-wrap:break-word}.poc-editor-root h1{color:#0f172a;font-size:24px;font-weight:640;letter-spacing:-.3px;line-height:32px;margin:0 0 20px}.poc-editor-root h2{color:#0f172a;font-size:19px;font-weight:620;letter-spacing:-.2px;line-height:26px;margin:28px 0 14px}.poc-editor-root h3{color:#0f172a;font-size:17px;font-weight:600;letter-spacing:-.1px;line-height:24px;margin:24px 0 12px}.poc-editor-root h1:first-child,.poc-editor-root h2:first-child,.poc-editor-root h3:first-child{margin-top:0}.poc-editor-root strong{font-weight:540}.poc-editor-root p{color:#000;line-height:28px;line-height:1.7em;margin-bottom:.75em;text-align:justify}.poc-editor-root blockquote,.poc-editor-root p{font-size:18px;font-weight:400;letter-spacing:-.4px}.poc-editor-root blockquote{line-height:28px;margin-bottom:2em;margin-left:35%}.poc-editor-root ol,.poc-editor-root ul{margin-bottom:2em}.poc-editor-root li{list-style-position:inside;margin-bottom:16px;margin-left:48px}.poc-editor-root ul>li{list-style-type:disc}.poc-editor-root ol>li{list-style-type:decimal}.poc-editor-root table{border:.5px solid #d4d9df;max-width:100%;table-layout:fixed;width:100%}.poc-editor-root th{font-weight:700}.poc-editor-root td,.poc-editor-root th{color:inherit;font-size:inherit;overflow-wrap:anywhere;padding:12px;text-align:left}.poc-editor-root td{line-height:inherit}.poc-editor-root td p,.poc-editor-root th p{color:inherit;font-size:inherit;line-height:inherit;margin-bottom:0}.poc-editor-root img{display:block;max-width:100%}.poc-editor-root .poc-island--img>img,.poc-editor-root .poc-island>img:only-child{margin-left:auto;margin-right:auto}.poc-editor-root .poc-chrome-canvas{overflow:hidden}.poc-editor-root .poc-chrome-canvas [data-el]{position:absolute}.poc-editor-root .poc-chrome-canvas [data-el=text]{color:#64748b;font-size:11px;line-height:1.4;text-align:left;white-space:pre-wrap}.poc-editor-root img[src^="vault://"]{animation:poc-img-loading 1.4s ease-in-out infinite}@keyframes poc-img-loading{0%,to{opacity:.5}50%{opacity:.9}}.poc-editor-root .poc-lone-row{justify-content:center!important}.poc-editor-root .poc-lone-row>:not(.poc-lone-cell){flex:0 0 0!important;min-width:0!important;padding:0!important}.poc-editor-root .poc-lone-row>.poc-lone-cell{align-items:center!important;flex:0 0 auto!important;max-width:100%;min-width:0}.poc-editor-root [data-horizontal-align=left] .poc-island--img>img,.poc-editor-root [data-horizontal-align=left] .poc-island>img:only-child{margin-left:0}.poc-editor-root [data-horizontal-align=right] .poc-island--img>img,.poc-editor-root [data-horizontal-align=right] .poc-island>img:only-child{margin-right:0}.poc-editor-root .poc-review-cursor .poc-minuta-block{cursor:pointer}.poc-editor-root .poc-minuta-block{border-radius:4px;position:relative}.poc-editor-root .poc-minuta-block:hover{outline:1px dashed #c7d2fe;outline-offset:6px}.poc-editor-root.poc-no-block-origin .poc-minuta-block:hover{outline:none}.poc-editor-root.poc-no-block-origin .poc-minuta-block:hover:before{content:none}.poc-editor-root .poc-minuta-block:hover:before{background:#eef2ff;border:1px solid #c7d2fe;border-radius:4px;color:#6366f1;content:attr(data-block-title);font-size:10px;letter-spacing:.04em;padding:1px 8px;pointer-events:none;position:absolute;right:0;text-transform:uppercase;top:-22px;z-index:3}.poc-editor-root .poc-varchip{background:rgba(59,130,246,.06);border-radius:3px;box-shadow:inset 0 0 0 1px rgba(59,130,246,.25);cursor:pointer;transition:background .15s ease}.poc-editor-root .poc-varchip:hover{background:rgba(59,130,246,.16)}.poc-editor-root .poc-tplvar{background:rgba(251,191,36,.16);border-radius:3px;box-shadow:inset 0 0 0 1px rgba(180,83,9,.35);color:#78350f;display:inline;padding:0 2px;white-space:pre-wrap}.poc-editor-root .poc-tplvar--unknown{background:rgba(244,63,94,.12);box-shadow:inset 0 0 0 1px rgba(190,18,60,.45);color:#881337;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.poc-editor-root .ProseMirror-selectednode.poc-tplvar{box-shadow:inset 0 0 0 2px rgba(180,83,9,.75)}.poc-editor-root .poc-missing-image .missing-image-warning:hover{background-color:rgba(254,174,0,.09);border-color:rgba(223,139,13,.85)}.poc-editor-root .poc-missing-image__remove{background:hsla(0,0%,100%,.75);border:none;border-radius:999px;color:#773613;cursor:pointer;font-size:16px;height:22px;line-height:1;opacity:0;position:absolute;right:4px;top:4px;transition:opacity .15s ease,background .15s ease;width:22px}.poc-editor-root .poc-missing-image:hover .poc-missing-image__remove{opacity:1}.poc-editor-root .poc-missing-image__remove:hover{background:rgba(254,174,0,.35)}.poc-editor-root .poc-missing-image.ProseMirror-selectednode .missing-image-warning{outline:2px solid rgba(223,139,13,.9);outline-offset:2px}.poc-editor-root .poc-page-notes{color:#1c242d;font-size:10.67px;line-height:1.25;padding-top:6px}.poc-editor-root .poc-page-notes:before{border-top:.5px solid #9aa4ae;content:"";display:block;margin-bottom:6px;width:30%}.poc-editor-root .poc-page-note{color:#1c242d;font-size:10.67px;font-weight:400;line-height:1.25;margin:0;text-align:justify}.poc-editor-root .poc-page-note sup{font-size:.8em;line-height:0;vertical-align:super}.poc-editor-root .poc-page-note a{color:#0563c1;text-decoration:underline}.poc-editor-root .poc-footnote{color:#1d4ed8;cursor:help;font-size:.7em;line-height:0;vertical-align:super}.poc-editor-root .poc-island{position:relative}.poc-editor-root .poc-island--img{cursor:grab}.poc-editor-root .poc-img-handle{background:#3b82f6;border:2px solid #fff;border-radius:3px;bottom:-6px;box-shadow:0 1px 3px rgba(0,0,0,.3);cursor:nwse-resize;height:12px;opacity:0;position:absolute;right:-6px;transition:opacity .12s ease;width:12px}.poc-editor-root .poc-island--img.ProseMirror-selectednode .poc-img-handle,.poc-editor-root .poc-island--img:hover .poc-img-handle{opacity:1}.poc-editor-root .poc-island.ProseMirror-selectednode{outline:2px solid #93c5fd;outline-offset:2px}.poc-editor-root .h-full{height:100%}.poc-editor-root .w-full{width:100%}.poc-editor-root .w-1px{width:1px}.poc-editor-root .w-64px{width:64px}.poc-editor-root .h-16px{height:16px}.poc-editor-root .flex{display:flex}.poc-editor-root .flex-col{flex-direction:column}.poc-editor-root .flex-1{flex:1 1 0%}.poc-editor-root .items-center{align-items:center}.poc-editor-root .gap-2px{gap:2px}.poc-editor-root .min-h-0{min-height:0}.poc-editor-root .overflow-y-auto{overflow-y:auto}.poc-editor-root .relative{position:relative}.poc-editor-root .hidden{display:none}.poc-editor-root .inline-block{display:inline-block}.poc-editor-root .align-middle{vertical-align:middle}.poc-editor-root .ml-auto{margin-left:auto}.poc-editor-root .mx-auto{margin-left:auto;margin-right:auto}.poc-editor-root .mx-2px{margin-left:2px;margin-right:2px}.poc-editor-root .p-2px{padding:2px}.poc-editor-root .py-24px{padding-bottom:24px;padding-top:24px}.poc-editor-root .bg-white{background:#fff}.poc-editor-root .bg-gray-120{background:#ebedf0}.poc-editor-root .bg-gray-200{background:#e5e7eb}.poc-editor-root .border{border-style:solid;border-width:1px}.poc-editor-root .border-gray-200{border-color:#e5e7eb}.poc-editor-root .rounded-8px{border-radius:8px}.poc-editor-root .shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.poc-editor-root .shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}.poc-editor-root .font-bold{font-weight:700}.poc-editor-root .font-semibold{font-weight:600}.poc-editor-root .italic{font-style:italic}.poc-editor-root .underline{text-decoration:underline}.poc-editor-root .line-through{text-decoration:line-through}.poc-editor-root .text-red-600{color:#dc2626}.poc-editor-root .body-13-regular{font-size:13px;font-weight:400}.poc-editor-root{font-family:Inter Variable,Inter,-apple-system,Segoe UI,Roboto,sans-serif}.poc-editor-root .poc-toolbar{background:#fafbfc;border-bottom:.5px solid #dee3e7}.poc-editor-root .poc-tool{background:transparent;border:none;cursor:pointer}.poc-editor-root .poc-tool:hover{background:#ebedf0}.poc-editor-root .poc-tool--on{background:#e2e8f0}.poc-editor-root .poc-tool-select{background:#fff;border:.5px solid #d4d9df;cursor:pointer}.poc-editor-root .ProseMirror{outline:none}.poc-editor-root td,.poc-editor-root th{border:.5px solid #d4d9df}.poc-editor-root .poc-footnote-pop{background:#fff;border:.5px solid #d4d9df;border-radius:10px;box-shadow:0 10px 25px -5px rgba(0,0,0,.18);padding:10px 12px;position:absolute;width:364px;z-index:40}.poc-editor-root .poc-footnote-pop__head{color:#6b7280;font-size:11px;font-weight:650;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.poc-editor-root .poc-footnote-pop__toolbar{align-items:center;display:flex;gap:4px;margin-bottom:6px}.poc-editor-root .poc-footnote-pop__tool{background:transparent;border:none;border-radius:6px;color:#374151;cursor:pointer;font-size:12px;height:24px;width:24px}.poc-editor-root .poc-footnote-pop__tool:hover{background:rgba(28,36,45,.06)}.poc-editor-root .poc-footnote-pop__sep{background:#e5e7eb;height:16px;margin:0 2px;width:1px}.poc-editor-root .poc-footnote-pop__select{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:11px;height:24px;max-width:108px;outline:none}.poc-editor-root .poc-footnote-pop__select--narrow{max-width:58px}.poc-editor-root .poc-footnote-pop__swatch{border:1px solid rgba(0,0,0,.15);border-radius:4px;cursor:pointer;height:14px;padding:0;width:14px}.poc-editor-root .poc-footnote-pop__input{border:1px solid #e5e7eb;border-radius:8px;color:#111827;font-size:12.5px;line-height:1.5;max-height:160px;min-height:58px;outline:none;overflow-y:auto;padding:6px 8px;width:100%}.poc-editor-root .poc-footnote-pop__input:focus{border-color:#a5b4fc}.poc-editor-root .poc-footnote-pop__input:empty:before{color:#9ca3af;content:attr(data-placeholder)}.poc-editor-root .poc-footnote-pop__actions{align-items:center;display:flex;gap:8px;margin-top:8px}.poc-editor-root .poc-footnote-pop__spacer{flex:1}.poc-editor-root .poc-footnote-pop__actions button{background:transparent;border:none;border-radius:8px;color:#565d69;cursor:pointer;font-size:12px;font-weight:500;padding:4px 12px}.poc-editor-root .poc-footnote-pop__remove{color:#b91c1c!important}.poc-editor-root .poc-footnote-pop__save{background:rgba(0,0,0,.88)!important;color:#fff!important}.poc-editor-root{display:flex;flex-direction:column;height:100%;width:100%}.poc-editor-root .w-118px{width:118px}.poc-editor-root .poc-varpicker{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 12px 24px -8px rgba(0,0,0,.25);display:flex;flex-direction:column;font-size:13px;max-height:300px;overflow:hidden;position:absolute;width:320px;z-index:60}.poc-editor-root .poc-varpicker__search{border:0;border-bottom:1px solid #f3f4f6;font-family:inherit;font-size:13px;outline:none;padding:10px 12px}.poc-editor-root .poc-varpicker__hint{border-bottom:1px solid #f3f4f6;color:#6b7280;font-size:12px;padding:8px 12px}.poc-editor-root .poc-varpicker__list{flex:1;min-height:0;overflow-y:auto;padding:4px}.poc-editor-root .poc-varpicker__empty{color:#6b7280;font-size:12px;margin:0;padding:12px}.poc-editor-root .poc-varpicker__group{color:#9ca3af;font-size:11px;font-weight:600;letter-spacing:.04em;padding:8px 8px 4px;text-transform:uppercase}.poc-editor-root .poc-varpicker__item{background:none;border:0;border-radius:6px;cursor:pointer;display:grid;font-family:inherit;gap:2px 8px;grid-template-columns:1fr auto;padding:6px 8px;text-align:left;width:100%}.poc-editor-root .poc-varpicker__item--on{background:#f3f4f6}.poc-editor-root .poc-varpicker__label{color:#111827;font-weight:500}.poc-editor-root .poc-varpicker__key{color:#9ca3af;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.poc-editor-root .poc-varpicker__desc{color:#6b7280;display:-webkit-box;font-size:11px;grid-column:1/-1;-webkit-line-clamp:2;line-height:1.4;overflow:hidden;-webkit-box-orient:vertical}.poc-editor-root [hidden]{display:none!important}.poc-editor-root .poc-varchip--flash{background:rgba(59,130,246,.35);transition:background .9s ease}
|
|
1
|
+
.poc-editor-root .poc-ins{background:rgba(34,197,94,.16);text-decoration:underline;text-decoration-color:#16a34a}.poc-editor-root .poc-del{background:rgba(239,68,68,.12);color:#b91c1c;text-decoration:line-through}.poc-editor-root .poc-bubble-btn{border-radius:6px;font-size:13px;padding:4px 8px;transition:all .15s;transition-timing-function:ease}.poc-editor-root .poc-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:2px;padding:4px 12px}@media (max-width:640px){.poc-editor-root .poc-toolbar{flex-wrap:nowrap;overflow-x:auto;padding:4px 8px;scrollbar-width:none}.poc-editor-root .poc-toolbar::-webkit-scrollbar{display:none}.poc-editor-root .poc-toolbar>*{flex:none}}.poc-editor-root .poc-tool{align-items:center;border-radius:6px;display:flex;font-size:13px;height:28px;justify-content:center;min-width:28px;padding-left:6px;padding-right:6px;position:relative;transition:all .15s;transition-timing-function:ease}.poc-editor-root .poc-tool-glyph{font-size:11px;font-weight:600;line-height:1}.poc-editor-root .poc-tool-sep{background:#dee3e7;height:20px;margin:0 6px;width:1px}.poc-editor-root .poc-tool-select{border-radius:6px;font-size:12px;height:28px;padding-left:6px;padding-right:6px}.poc-editor-root .poc-color-underline{background:#dc2626;border-radius:1px;bottom:4px;height:3px;left:7px;position:absolute;right:7px}.poc-editor-root .poc-palette{background:#fff;border:.5px solid #dee3e7;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);display:flex;flex-wrap:wrap;gap:2px;left:0;padding:8px;position:absolute;top:32px;width:230px;z-index:50}.poc-editor-root .poc-palette-swatch{border:1px solid rgba(0,0,0,.1);border-radius:3px;cursor:pointer;height:19px;width:19px}.poc-editor-root .poc-palette-swatch:hover{transform:scale(1.2)}.poc-editor-root .poc-palette-custom{align-items:center;color:#565d69;cursor:pointer;display:flex;font-size:12px;margin-top:6px;width:100%}.poc-editor-root .poc-color-swatch{border:1px solid rgba(0,0,0,.12);border-radius:4px;cursor:pointer;height:16px;margin:0 2px;width:16px}.poc-editor-root .poc-color-swatch:hover{transform:scale(1.15)}.poc-editor-root .poc-first-header{align-items:center;cursor:pointer;display:flex;gap:12px;position:absolute;top:0}.poc-editor-root .poc-first-header[style*=center]{justify-content:center}.poc-editor-root .poc-first-header[style*=right]{justify-content:flex-end}.poc-editor-root .poc-first-header:hover,.poc-editor-root .poc-last-footer:hover,.poc-editor-root .poc-page-footerarea:hover,.poc-editor-root .poc-page-headerarea:hover{background:rgba(99,102,241,.06);outline:1px dashed #c7d2fe}.poc-editor-root .poc-last-footer{align-items:center;bottom:0;color:#94a3b8;cursor:pointer;display:flex;font-size:11px;justify-content:space-between;position:absolute}.poc-editor-root .poc-chrome-text{color:#64748b;font-size:11px}.poc-editor-root .poc-chrome-text img{display:inline-block;max-height:48px;max-width:200px;vertical-align:middle}.poc-editor-root .poc-pagebreak-marker{border-top:1px dashed #a5b4fc;font-size:0!important;height:16px;line-height:0!important;margin:6px 0!important;position:relative}.poc-editor-root .poc-pagebreak-marker:after{background:#fff;color:#818cf8;content:"quebra de página do template";font-size:10px;left:50%;line-height:16px;padding:0 8px;position:absolute;top:-8px;transform:translateX(-50%)}.poc-editor-root .poc-page-chrome{color:initial;display:block;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;pointer-events:none;text-align:initial;text-indent:0;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:normal}.poc-editor-root .poc-page-chrome>.poc-page-footerarea:not(:hover),.poc-editor-root .poc-page-chrome>.poc-page-headerarea:not(:hover),.poc-editor-root .poc-page-chrome>.poc-page-notes{background:#fff}.poc-editor-root tr.poc-page-chrome-row>td.poc-page-chrome-cell{background:transparent!important;border:0!important;padding:0!important;vertical-align:top}.poc-editor-root .poc-page-footerarea,.poc-editor-root .poc-page-headerarea{cursor:pointer;pointer-events:auto}.poc-editor-root .poc-page-footerarea{align-items:center;color:#94a3b8;display:flex;font-size:11px;justify-content:space-between}.poc-editor-root .poc-page-gapband{background:#eceef1;box-shadow:inset 0 6px 6px -6px rgba(0,0,0,.25),inset 0 -6px 6px -6px rgba(0,0,0,.25)}.poc-editor-root .poc-page-headerarea{align-items:center;display:flex}.poc-editor-root .poc-page-headerarea[style*=center]{justify-content:center}.poc-editor-root .poc-page-headerarea[style*=right]{justify-content:flex-end}.poc-editor-root .ProseMirror{white-space:pre-wrap;word-wrap:break-word}.poc-editor-root h1{color:#0f172a;font-size:24px;font-weight:640;letter-spacing:-.3px;line-height:32px;margin:0 0 20px}.poc-editor-root h2{color:#0f172a;font-size:19px;font-weight:620;letter-spacing:-.2px;line-height:26px;margin:28px 0 14px}.poc-editor-root h3{color:#0f172a;font-size:17px;font-weight:600;letter-spacing:-.1px;line-height:24px;margin:24px 0 12px}.poc-editor-root h1:first-child,.poc-editor-root h2:first-child,.poc-editor-root h3:first-child{margin-top:0}.poc-editor-root strong{font-weight:540}.poc-editor-root p{color:#000;line-height:28px;line-height:1.7em;margin-bottom:.75em;text-align:justify}.poc-editor-root blockquote,.poc-editor-root p{font-size:18px;font-weight:400;letter-spacing:-.4px}.poc-editor-root blockquote{line-height:28px;margin-bottom:2em;margin-left:35%}.poc-editor-root ol,.poc-editor-root ul{margin-bottom:2em}.poc-editor-root li{list-style-position:inside;margin-bottom:16px;margin-left:48px}.poc-editor-root ul>li{list-style-type:disc}.poc-editor-root ol>li{list-style-type:decimal}.poc-editor-root table{border:.5px solid #d4d9df;max-width:100%;table-layout:fixed;width:100%}.poc-editor-root th{font-weight:700}.poc-editor-root td,.poc-editor-root th{color:inherit;font-size:inherit;overflow-wrap:anywhere;padding:12px;text-align:left}.poc-editor-root td{line-height:inherit}.poc-editor-root td p,.poc-editor-root th p{color:inherit;font-size:inherit;line-height:inherit;margin-bottom:0}.poc-editor-root img{display:block;max-width:100%}.poc-editor-root .poc-island--img>img,.poc-editor-root .poc-island>img:only-child{margin-left:auto;margin-right:auto}.poc-editor-root .poc-chrome-canvas{overflow:hidden}.poc-editor-root .poc-chrome-canvas [data-el]{position:absolute}.poc-editor-root .poc-chrome-canvas [data-el=text]{color:#64748b;font-size:11px;line-height:1.4;text-align:left;white-space:pre-wrap}.poc-editor-root img[src^="vault://"]{animation:poc-img-loading 1.4s ease-in-out infinite}@keyframes poc-img-loading{0%,to{opacity:.5}50%{opacity:.9}}.poc-editor-root .poc-lone-row{justify-content:center!important}.poc-editor-root .poc-lone-row>:not(.poc-lone-cell){flex:0 0 0!important;min-width:0!important;padding:0!important}.poc-editor-root .poc-lone-row>.poc-lone-cell{align-items:center!important;flex:0 0 auto!important;max-width:100%;min-width:0}.poc-editor-root [data-horizontal-align=left] .poc-island--img>img,.poc-editor-root [data-horizontal-align=left] .poc-island>img:only-child{margin-left:0}.poc-editor-root [data-horizontal-align=right] .poc-island--img>img,.poc-editor-root [data-horizontal-align=right] .poc-island>img:only-child{margin-right:0}.poc-editor-root .poc-review-cursor .poc-minuta-block{cursor:pointer}.poc-editor-root .poc-minuta-block{border-radius:4px;position:relative}.poc-editor-root .poc-minuta-block:hover{outline:1px dashed #c7d2fe;outline-offset:6px}.poc-editor-root.poc-no-block-origin .poc-minuta-block:hover{outline:none}.poc-editor-root.poc-no-block-origin .poc-minuta-block:hover:before{content:none}.poc-editor-root .poc-minuta-block:hover:before{background:#eef2ff;border:1px solid #c7d2fe;border-radius:4px;color:#6366f1;content:attr(data-block-title);font-size:10px;letter-spacing:.04em;padding:1px 8px;pointer-events:none;position:absolute;right:0;text-transform:uppercase;top:-22px;z-index:3}.poc-editor-root .poc-varchip{background:rgba(59,130,246,.06);border-radius:3px;box-shadow:inset 0 0 0 1px rgba(59,130,246,.25);cursor:pointer;transition:background .15s ease}.poc-editor-root .poc-varchip:hover{background:rgba(59,130,246,.16)}.poc-editor-root .poc-tplvar{background:rgba(251,191,36,.16);border-radius:3px;box-shadow:inset 0 0 0 1px rgba(180,83,9,.35);color:#78350f;display:inline;padding:0 2px;white-space:pre-wrap}.poc-editor-root .poc-tplvar--unknown{background:rgba(244,63,94,.12);box-shadow:inset 0 0 0 1px rgba(190,18,60,.45);color:#881337;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.poc-editor-root .ProseMirror-selectednode.poc-tplvar{box-shadow:inset 0 0 0 2px rgba(180,83,9,.75)}.poc-editor-root .poc-missing-image .missing-image-warning:hover{background-color:rgba(254,174,0,.09);border-color:rgba(223,139,13,.85)}.poc-editor-root .poc-missing-image__remove{background:hsla(0,0%,100%,.75);border:none;border-radius:999px;color:#773613;cursor:pointer;font-size:16px;height:22px;line-height:1;opacity:0;position:absolute;right:4px;top:4px;transition:opacity .15s ease,background .15s ease;width:22px}.poc-editor-root .poc-missing-image:hover .poc-missing-image__remove{opacity:1}.poc-editor-root .poc-missing-image__remove:hover{background:rgba(254,174,0,.35)}.poc-editor-root .poc-missing-image.ProseMirror-selectednode .missing-image-warning{outline:2px solid rgba(223,139,13,.9);outline-offset:2px}.poc-editor-root .poc-page-notes{color:#1c242d;font-size:10.67px;line-height:1.25;padding-top:6px}.poc-editor-root .poc-page-notes:before{border-top:.5px solid #9aa4ae;content:"";display:block;margin-bottom:6px;width:30%}.poc-editor-root .poc-page-note{color:#1c242d;font-size:10.67px;font-weight:400;line-height:1.25;margin:0;text-align:justify}.poc-editor-root .poc-page-note sup{font-size:.8em;line-height:0;vertical-align:super}.poc-editor-root .poc-page-note a{color:#0563c1;text-decoration:underline}.poc-editor-root .poc-footnote{color:#1d4ed8;cursor:help;font-size:.7em;line-height:0;vertical-align:super}.poc-editor-root .poc-island{position:relative}.poc-editor-root .poc-island--img{cursor:grab}.poc-editor-root .poc-img-handle{background:#3b82f6;border:2px solid #fff;border-radius:3px;bottom:-6px;box-shadow:0 1px 3px rgba(0,0,0,.3);cursor:nwse-resize;height:12px;opacity:0;position:absolute;right:-6px;transition:opacity .12s ease;width:12px}.poc-editor-root .poc-island--img.ProseMirror-selectednode .poc-img-handle,.poc-editor-root .poc-island--img:hover .poc-img-handle{opacity:1}.poc-editor-root .poc-island.ProseMirror-selectednode{outline:2px solid #93c5fd;outline-offset:2px}.poc-editor-root .h-full{height:100%}.poc-editor-root .w-full{width:100%}.poc-editor-root .w-1px{width:1px}.poc-editor-root .w-64px{width:64px}.poc-editor-root .h-16px{height:16px}.poc-editor-root .flex{display:flex}.poc-editor-root .flex-col{flex-direction:column}.poc-editor-root .flex-1{flex:1 1 0%}.poc-editor-root .items-center{align-items:center}.poc-editor-root .gap-2px{gap:2px}.poc-editor-root .min-h-0{min-height:0}.poc-editor-root .overflow-y-auto{overflow-y:auto}.poc-editor-root .relative{position:relative}.poc-editor-root .hidden{display:none}.poc-editor-root .inline-block{display:inline-block}.poc-editor-root .align-middle{vertical-align:middle}.poc-editor-root .ml-auto{margin-left:auto}.poc-editor-root .mx-auto{margin-left:auto;margin-right:auto}.poc-editor-root .mx-2px{margin-left:2px;margin-right:2px}.poc-editor-root .p-2px{padding:2px}.poc-editor-root .py-24px{padding-bottom:24px;padding-top:24px}.poc-editor-root .bg-white{background:#fff}.poc-editor-root .bg-gray-120{background:#ebedf0}.poc-editor-root .bg-gray-200{background:#e5e7eb}.poc-editor-root .border{border-style:solid;border-width:1px}.poc-editor-root .border-gray-200{border-color:#e5e7eb}.poc-editor-root .rounded-8px{border-radius:8px}.poc-editor-root .shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.poc-editor-root .shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}.poc-editor-root .font-bold{font-weight:700}.poc-editor-root .font-semibold{font-weight:600}.poc-editor-root .italic{font-style:italic}.poc-editor-root .underline{text-decoration:underline}.poc-editor-root .line-through{text-decoration:line-through}.poc-editor-root .text-red-600{color:#dc2626}.poc-editor-root .body-13-regular{font-size:13px;font-weight:400}.poc-editor-root{font-family:Inter Variable,Inter,-apple-system,Segoe UI,Roboto,sans-serif}.poc-editor-root .poc-toolbar{background:#fafbfc;border-bottom:.5px solid #dee3e7}.poc-editor-root .poc-tool{background:transparent;border:none;cursor:pointer}.poc-editor-root .poc-tool:hover{background:#ebedf0}.poc-editor-root .poc-tool--on{background:#e2e8f0}.poc-editor-root .poc-tool-select{background:#fff;border:.5px solid #d4d9df;cursor:pointer}.poc-editor-root .ProseMirror{outline:none}.poc-editor-root td,.poc-editor-root th{border:.5px solid #d4d9df}.poc-editor-root .poc-footnote-pop{background:#fff;border:.5px solid #d4d9df;border-radius:10px;box-shadow:0 10px 25px -5px rgba(0,0,0,.18);padding:10px 12px;position:absolute;width:364px;z-index:40}.poc-editor-root .poc-footnote-pop__head{color:#6b7280;font-size:11px;font-weight:650;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.poc-editor-root .poc-footnote-pop__toolbar{align-items:center;display:flex;gap:4px;margin-bottom:6px}.poc-editor-root .poc-footnote-pop__tool{background:transparent;border:none;border-radius:6px;color:#374151;cursor:pointer;font-size:12px;height:24px;width:24px}.poc-editor-root .poc-footnote-pop__tool:hover{background:rgba(28,36,45,.06)}.poc-editor-root .poc-footnote-pop__sep{background:#e5e7eb;height:16px;margin:0 2px;width:1px}.poc-editor-root .poc-footnote-pop__select{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:11px;height:24px;max-width:108px;outline:none}.poc-editor-root .poc-footnote-pop__select--narrow{max-width:58px}.poc-editor-root .poc-footnote-pop__swatch{border:1px solid rgba(0,0,0,.15);border-radius:4px;cursor:pointer;height:14px;padding:0;width:14px}.poc-editor-root .poc-footnote-pop__input{border:1px solid #e5e7eb;border-radius:8px;color:#111827;font-size:12.5px;line-height:1.5;max-height:160px;min-height:58px;outline:none;overflow-y:auto;padding:6px 8px;width:100%}.poc-editor-root .poc-footnote-pop__input:focus{border-color:#a5b4fc}.poc-editor-root .poc-footnote-pop__input:empty:before{color:#9ca3af;content:attr(data-placeholder)}.poc-editor-root .poc-footnote-pop__actions{align-items:center;display:flex;gap:8px;margin-top:8px}.poc-editor-root .poc-footnote-pop__spacer{flex:1}.poc-editor-root .poc-footnote-pop__actions button{background:transparent;border:none;border-radius:8px;color:#565d69;cursor:pointer;font-size:12px;font-weight:500;padding:4px 12px}.poc-editor-root .poc-footnote-pop__remove{color:#b91c1c!important}.poc-editor-root .poc-footnote-pop__save{background:rgba(0,0,0,.88)!important;color:#fff!important}.poc-editor-root{display:flex;flex-direction:column;height:100%;width:100%}.poc-editor-root .w-118px{width:118px}.poc-editor-root .poc-varpicker{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 12px 24px -8px rgba(0,0,0,.25);display:flex;flex-direction:column;font-size:13px;max-height:300px;overflow:hidden;position:absolute;width:320px;z-index:60}.poc-editor-root .poc-varpicker__search{border:0;border-bottom:1px solid #f3f4f6;font-family:inherit;font-size:13px;outline:none;padding:10px 12px}.poc-editor-root .poc-varpicker__hint{border-bottom:1px solid #f3f4f6;color:#6b7280;font-size:12px;padding:8px 12px}.poc-editor-root .poc-varpicker__list{flex:1;min-height:0;overflow-y:auto;padding:4px}.poc-editor-root .poc-varpicker__empty{color:#6b7280;font-size:12px;margin:0;padding:12px}.poc-editor-root .poc-varpicker__group{color:#9ca3af;font-size:11px;font-weight:600;letter-spacing:.04em;padding:8px 8px 4px;text-transform:uppercase}.poc-editor-root .poc-varpicker__item{background:none;border:0;border-radius:6px;cursor:pointer;display:grid;font-family:inherit;gap:2px 8px;grid-template-columns:1fr auto;padding:6px 8px;text-align:left;width:100%}.poc-editor-root .poc-varpicker__item--on{background:#f3f4f6}.poc-editor-root .poc-varpicker__label{color:#111827;font-weight:500}.poc-editor-root .poc-varpicker__key{color:#9ca3af;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.poc-editor-root .poc-varpicker__desc{color:#6b7280;display:-webkit-box;font-size:11px;grid-column:1/-1;-webkit-line-clamp:2;line-height:1.4;overflow:hidden;-webkit-box-orient:vertical}.poc-editor-root [hidden]{display:none!important}.poc-editor-root .poc-varchip--flash{background:rgba(59,130,246,.35);transition:background .9s ease}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meistrari/minuta-editor",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Editor de minuta do defesa.ai sem framework: folha A4 paginada, edição rica, placeholders de variável e export DOCX fiel ao preview — monta em qualquer app (React, Vue, vanilla)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|