@mhamz.01/easyflow-texteditor 0.1.91 → 0.1.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +24 -24
- package/dist/index.css.map +1 -1
- package/dist/index.js +923 -561
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +852 -490
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1335,6 +1335,7 @@ function EditorLayout({ children, onChange, initialTabs, onTabsChange }) {
|
|
|
1335
1335
|
var import_react98 = require("react");
|
|
1336
1336
|
var import_react99 = require("@tiptap/react");
|
|
1337
1337
|
var import_starter_kit = require("@tiptap/starter-kit");
|
|
1338
|
+
var import_tiptap_extension_resize_image = __toESM(require("tiptap-extension-resize-image"));
|
|
1338
1339
|
var import_extension_image = __toESM(require("@tiptap/extension-image"));
|
|
1339
1340
|
var import_extension_list = require("@tiptap/extension-list");
|
|
1340
1341
|
var import_extension_text_align = require("@tiptap/extension-text-align");
|
|
@@ -1411,9 +1412,396 @@ var Paragraph = import_core2.Node.create({
|
|
|
1411
1412
|
});
|
|
1412
1413
|
var index_default2 = Paragraph;
|
|
1413
1414
|
|
|
1414
|
-
// node_modules/@tiptap/extension-
|
|
1415
|
+
// node_modules/@tiptap/extension-blockquote/dist/index.js
|
|
1415
1416
|
var import_core3 = require("@tiptap/core");
|
|
1416
|
-
var
|
|
1417
|
+
var import_jsx_runtime17 = require("@tiptap/core/jsx-runtime");
|
|
1418
|
+
var inputRegex = /^\s*>\s$/;
|
|
1419
|
+
var Blockquote = import_core3.Node.create({
|
|
1420
|
+
name: "blockquote",
|
|
1421
|
+
addOptions() {
|
|
1422
|
+
return {
|
|
1423
|
+
HTMLAttributes: {}
|
|
1424
|
+
};
|
|
1425
|
+
},
|
|
1426
|
+
content: "block+",
|
|
1427
|
+
group: "block",
|
|
1428
|
+
defining: true,
|
|
1429
|
+
parseHTML() {
|
|
1430
|
+
return [{ tag: "blockquote" }];
|
|
1431
|
+
},
|
|
1432
|
+
renderHTML({ HTMLAttributes }) {
|
|
1433
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("blockquote", { ...(0, import_core3.mergeAttributes)(this.options.HTMLAttributes, HTMLAttributes), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("slot", {}) });
|
|
1434
|
+
},
|
|
1435
|
+
parseMarkdown: (token, helpers) => {
|
|
1436
|
+
return helpers.createNode("blockquote", void 0, helpers.parseChildren(token.tokens || []));
|
|
1437
|
+
},
|
|
1438
|
+
renderMarkdown: (node, h) => {
|
|
1439
|
+
if (!node.content) {
|
|
1440
|
+
return "";
|
|
1441
|
+
}
|
|
1442
|
+
const prefix = ">";
|
|
1443
|
+
const result = [];
|
|
1444
|
+
node.content.forEach((child) => {
|
|
1445
|
+
const childContent = h.renderChildren([child]);
|
|
1446
|
+
const lines = childContent.split("\n");
|
|
1447
|
+
const linesWithPrefix = lines.map((line) => {
|
|
1448
|
+
if (line.trim() === "") {
|
|
1449
|
+
return prefix;
|
|
1450
|
+
}
|
|
1451
|
+
return `${prefix} ${line}`;
|
|
1452
|
+
});
|
|
1453
|
+
result.push(linesWithPrefix.join("\n"));
|
|
1454
|
+
});
|
|
1455
|
+
return result.join(`
|
|
1456
|
+
${prefix}
|
|
1457
|
+
`);
|
|
1458
|
+
},
|
|
1459
|
+
addCommands() {
|
|
1460
|
+
return {
|
|
1461
|
+
setBlockquote: () => ({ commands }) => {
|
|
1462
|
+
return commands.wrapIn(this.name);
|
|
1463
|
+
},
|
|
1464
|
+
toggleBlockquote: () => ({ commands }) => {
|
|
1465
|
+
return commands.toggleWrap(this.name);
|
|
1466
|
+
},
|
|
1467
|
+
unsetBlockquote: () => ({ commands }) => {
|
|
1468
|
+
return commands.lift(this.name);
|
|
1469
|
+
}
|
|
1470
|
+
};
|
|
1471
|
+
},
|
|
1472
|
+
addKeyboardShortcuts() {
|
|
1473
|
+
return {
|
|
1474
|
+
"Mod-Shift-b": () => this.editor.commands.toggleBlockquote()
|
|
1475
|
+
};
|
|
1476
|
+
},
|
|
1477
|
+
addInputRules() {
|
|
1478
|
+
return [
|
|
1479
|
+
(0, import_core3.wrappingInputRule)({
|
|
1480
|
+
find: inputRegex,
|
|
1481
|
+
type: this.type
|
|
1482
|
+
})
|
|
1483
|
+
];
|
|
1484
|
+
}
|
|
1485
|
+
});
|
|
1486
|
+
var index_default3 = Blockquote;
|
|
1487
|
+
|
|
1488
|
+
// node_modules/@tiptap/extension-code-block/dist/index.js
|
|
1489
|
+
var import_core4 = require("@tiptap/core");
|
|
1490
|
+
var import_state = require("@tiptap/pm/state");
|
|
1491
|
+
var DEFAULT_TAB_SIZE = 4;
|
|
1492
|
+
var backtickInputRegex = /^```([a-z]+)?[\s\n]$/;
|
|
1493
|
+
var tildeInputRegex = /^~~~([a-z]+)?[\s\n]$/;
|
|
1494
|
+
var CodeBlock = import_core4.Node.create({
|
|
1495
|
+
name: "codeBlock",
|
|
1496
|
+
addOptions() {
|
|
1497
|
+
return {
|
|
1498
|
+
languageClassPrefix: "language-",
|
|
1499
|
+
exitOnTripleEnter: true,
|
|
1500
|
+
exitOnArrowDown: true,
|
|
1501
|
+
defaultLanguage: null,
|
|
1502
|
+
enableTabIndentation: false,
|
|
1503
|
+
tabSize: DEFAULT_TAB_SIZE,
|
|
1504
|
+
HTMLAttributes: {}
|
|
1505
|
+
};
|
|
1506
|
+
},
|
|
1507
|
+
content: "text*",
|
|
1508
|
+
marks: "",
|
|
1509
|
+
group: "block",
|
|
1510
|
+
code: true,
|
|
1511
|
+
defining: true,
|
|
1512
|
+
addAttributes() {
|
|
1513
|
+
return {
|
|
1514
|
+
language: {
|
|
1515
|
+
default: this.options.defaultLanguage,
|
|
1516
|
+
parseHTML: (element) => {
|
|
1517
|
+
var _a;
|
|
1518
|
+
const { languageClassPrefix } = this.options;
|
|
1519
|
+
if (!languageClassPrefix) {
|
|
1520
|
+
return null;
|
|
1521
|
+
}
|
|
1522
|
+
const classNames = [...((_a = element.firstElementChild) == null ? void 0 : _a.classList) || []];
|
|
1523
|
+
const languages = classNames.filter((className) => className.startsWith(languageClassPrefix)).map((className) => className.replace(languageClassPrefix, ""));
|
|
1524
|
+
const language = languages[0];
|
|
1525
|
+
if (!language) {
|
|
1526
|
+
return null;
|
|
1527
|
+
}
|
|
1528
|
+
return language;
|
|
1529
|
+
},
|
|
1530
|
+
rendered: false
|
|
1531
|
+
}
|
|
1532
|
+
};
|
|
1533
|
+
},
|
|
1534
|
+
parseHTML() {
|
|
1535
|
+
return [
|
|
1536
|
+
{
|
|
1537
|
+
tag: "pre",
|
|
1538
|
+
preserveWhitespace: "full"
|
|
1539
|
+
}
|
|
1540
|
+
];
|
|
1541
|
+
},
|
|
1542
|
+
renderHTML({ node, HTMLAttributes }) {
|
|
1543
|
+
return [
|
|
1544
|
+
"pre",
|
|
1545
|
+
(0, import_core4.mergeAttributes)(this.options.HTMLAttributes, HTMLAttributes),
|
|
1546
|
+
[
|
|
1547
|
+
"code",
|
|
1548
|
+
{
|
|
1549
|
+
class: node.attrs.language ? this.options.languageClassPrefix + node.attrs.language : null
|
|
1550
|
+
},
|
|
1551
|
+
0
|
|
1552
|
+
]
|
|
1553
|
+
];
|
|
1554
|
+
},
|
|
1555
|
+
markdownTokenName: "code",
|
|
1556
|
+
parseMarkdown: (token, helpers) => {
|
|
1557
|
+
var _a;
|
|
1558
|
+
if (((_a = token.raw) == null ? void 0 : _a.startsWith("```")) === false && token.codeBlockStyle !== "indented") {
|
|
1559
|
+
return [];
|
|
1560
|
+
}
|
|
1561
|
+
return helpers.createNode(
|
|
1562
|
+
"codeBlock",
|
|
1563
|
+
{ language: token.lang || null },
|
|
1564
|
+
token.text ? [helpers.createTextNode(token.text)] : []
|
|
1565
|
+
);
|
|
1566
|
+
},
|
|
1567
|
+
renderMarkdown: (node, h) => {
|
|
1568
|
+
var _a;
|
|
1569
|
+
let output = "";
|
|
1570
|
+
const language = ((_a = node.attrs) == null ? void 0 : _a.language) || "";
|
|
1571
|
+
if (!node.content) {
|
|
1572
|
+
output = `\`\`\`${language}
|
|
1573
|
+
|
|
1574
|
+
\`\`\``;
|
|
1575
|
+
} else {
|
|
1576
|
+
const lines = [`\`\`\`${language}`, h.renderChildren(node.content), "```"];
|
|
1577
|
+
output = lines.join("\n");
|
|
1578
|
+
}
|
|
1579
|
+
return output;
|
|
1580
|
+
},
|
|
1581
|
+
addCommands() {
|
|
1582
|
+
return {
|
|
1583
|
+
setCodeBlock: (attributes) => ({ commands }) => {
|
|
1584
|
+
return commands.setNode(this.name, attributes);
|
|
1585
|
+
},
|
|
1586
|
+
toggleCodeBlock: (attributes) => ({ commands }) => {
|
|
1587
|
+
return commands.toggleNode(this.name, "paragraph", attributes);
|
|
1588
|
+
}
|
|
1589
|
+
};
|
|
1590
|
+
},
|
|
1591
|
+
addKeyboardShortcuts() {
|
|
1592
|
+
return {
|
|
1593
|
+
"Mod-Alt-c": () => this.editor.commands.toggleCodeBlock(),
|
|
1594
|
+
// remove code block when at start of document or code block is empty
|
|
1595
|
+
Backspace: () => {
|
|
1596
|
+
const { empty, $anchor } = this.editor.state.selection;
|
|
1597
|
+
const isAtStart = $anchor.pos === 1;
|
|
1598
|
+
if (!empty || $anchor.parent.type.name !== this.name) {
|
|
1599
|
+
return false;
|
|
1600
|
+
}
|
|
1601
|
+
if (isAtStart || !$anchor.parent.textContent.length) {
|
|
1602
|
+
return this.editor.commands.clearNodes();
|
|
1603
|
+
}
|
|
1604
|
+
return false;
|
|
1605
|
+
},
|
|
1606
|
+
// handle tab indentation
|
|
1607
|
+
Tab: ({ editor }) => {
|
|
1608
|
+
var _a;
|
|
1609
|
+
if (!this.options.enableTabIndentation) {
|
|
1610
|
+
return false;
|
|
1611
|
+
}
|
|
1612
|
+
const tabSize = (_a = this.options.tabSize) != null ? _a : DEFAULT_TAB_SIZE;
|
|
1613
|
+
const { state } = editor;
|
|
1614
|
+
const { selection } = state;
|
|
1615
|
+
const { $from, empty } = selection;
|
|
1616
|
+
if ($from.parent.type !== this.type) {
|
|
1617
|
+
return false;
|
|
1618
|
+
}
|
|
1619
|
+
const indent = " ".repeat(tabSize);
|
|
1620
|
+
if (empty) {
|
|
1621
|
+
return editor.commands.insertContent(indent);
|
|
1622
|
+
}
|
|
1623
|
+
return editor.commands.command(({ tr }) => {
|
|
1624
|
+
const { from, to } = selection;
|
|
1625
|
+
const text = state.doc.textBetween(from, to, "\n", "\n");
|
|
1626
|
+
const lines = text.split("\n");
|
|
1627
|
+
const indentedText = lines.map((line) => indent + line).join("\n");
|
|
1628
|
+
tr.replaceWith(from, to, state.schema.text(indentedText));
|
|
1629
|
+
return true;
|
|
1630
|
+
});
|
|
1631
|
+
},
|
|
1632
|
+
// handle shift+tab reverse indentation
|
|
1633
|
+
"Shift-Tab": ({ editor }) => {
|
|
1634
|
+
var _a;
|
|
1635
|
+
if (!this.options.enableTabIndentation) {
|
|
1636
|
+
return false;
|
|
1637
|
+
}
|
|
1638
|
+
const tabSize = (_a = this.options.tabSize) != null ? _a : DEFAULT_TAB_SIZE;
|
|
1639
|
+
const { state } = editor;
|
|
1640
|
+
const { selection } = state;
|
|
1641
|
+
const { $from, empty } = selection;
|
|
1642
|
+
if ($from.parent.type !== this.type) {
|
|
1643
|
+
return false;
|
|
1644
|
+
}
|
|
1645
|
+
if (empty) {
|
|
1646
|
+
return editor.commands.command(({ tr }) => {
|
|
1647
|
+
var _a2;
|
|
1648
|
+
const { pos } = $from;
|
|
1649
|
+
const codeBlockStart = $from.start();
|
|
1650
|
+
const codeBlockEnd = $from.end();
|
|
1651
|
+
const allText = state.doc.textBetween(codeBlockStart, codeBlockEnd, "\n", "\n");
|
|
1652
|
+
const lines = allText.split("\n");
|
|
1653
|
+
let currentLineIndex = 0;
|
|
1654
|
+
let charCount = 0;
|
|
1655
|
+
const relativeCursorPos = pos - codeBlockStart;
|
|
1656
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
1657
|
+
if (charCount + lines[i].length >= relativeCursorPos) {
|
|
1658
|
+
currentLineIndex = i;
|
|
1659
|
+
break;
|
|
1660
|
+
}
|
|
1661
|
+
charCount += lines[i].length + 1;
|
|
1662
|
+
}
|
|
1663
|
+
const currentLine = lines[currentLineIndex];
|
|
1664
|
+
const leadingSpaces = ((_a2 = currentLine.match(/^ */)) == null ? void 0 : _a2[0]) || "";
|
|
1665
|
+
const spacesToRemove = Math.min(leadingSpaces.length, tabSize);
|
|
1666
|
+
if (spacesToRemove === 0) {
|
|
1667
|
+
return true;
|
|
1668
|
+
}
|
|
1669
|
+
let lineStartPos = codeBlockStart;
|
|
1670
|
+
for (let i = 0; i < currentLineIndex; i += 1) {
|
|
1671
|
+
lineStartPos += lines[i].length + 1;
|
|
1672
|
+
}
|
|
1673
|
+
tr.delete(lineStartPos, lineStartPos + spacesToRemove);
|
|
1674
|
+
const cursorPosInLine = pos - lineStartPos;
|
|
1675
|
+
if (cursorPosInLine <= spacesToRemove) {
|
|
1676
|
+
tr.setSelection(import_state.TextSelection.create(tr.doc, lineStartPos));
|
|
1677
|
+
}
|
|
1678
|
+
return true;
|
|
1679
|
+
});
|
|
1680
|
+
}
|
|
1681
|
+
return editor.commands.command(({ tr }) => {
|
|
1682
|
+
const { from, to } = selection;
|
|
1683
|
+
const text = state.doc.textBetween(from, to, "\n", "\n");
|
|
1684
|
+
const lines = text.split("\n");
|
|
1685
|
+
const reverseIndentText = lines.map((line) => {
|
|
1686
|
+
var _a2;
|
|
1687
|
+
const leadingSpaces = ((_a2 = line.match(/^ */)) == null ? void 0 : _a2[0]) || "";
|
|
1688
|
+
const spacesToRemove = Math.min(leadingSpaces.length, tabSize);
|
|
1689
|
+
return line.slice(spacesToRemove);
|
|
1690
|
+
}).join("\n");
|
|
1691
|
+
tr.replaceWith(from, to, state.schema.text(reverseIndentText));
|
|
1692
|
+
return true;
|
|
1693
|
+
});
|
|
1694
|
+
},
|
|
1695
|
+
// exit node on triple enter
|
|
1696
|
+
Enter: ({ editor }) => {
|
|
1697
|
+
if (!this.options.exitOnTripleEnter) {
|
|
1698
|
+
return false;
|
|
1699
|
+
}
|
|
1700
|
+
const { state } = editor;
|
|
1701
|
+
const { selection } = state;
|
|
1702
|
+
const { $from, empty } = selection;
|
|
1703
|
+
if (!empty || $from.parent.type !== this.type) {
|
|
1704
|
+
return false;
|
|
1705
|
+
}
|
|
1706
|
+
const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2;
|
|
1707
|
+
const endsWithDoubleNewline = $from.parent.textContent.endsWith("\n\n");
|
|
1708
|
+
if (!isAtEnd || !endsWithDoubleNewline) {
|
|
1709
|
+
return false;
|
|
1710
|
+
}
|
|
1711
|
+
return editor.chain().command(({ tr }) => {
|
|
1712
|
+
tr.delete($from.pos - 2, $from.pos);
|
|
1713
|
+
return true;
|
|
1714
|
+
}).exitCode().run();
|
|
1715
|
+
},
|
|
1716
|
+
// exit node on arrow down
|
|
1717
|
+
ArrowDown: ({ editor }) => {
|
|
1718
|
+
if (!this.options.exitOnArrowDown) {
|
|
1719
|
+
return false;
|
|
1720
|
+
}
|
|
1721
|
+
const { state } = editor;
|
|
1722
|
+
const { selection, doc } = state;
|
|
1723
|
+
const { $from, empty } = selection;
|
|
1724
|
+
if (!empty || $from.parent.type !== this.type) {
|
|
1725
|
+
return false;
|
|
1726
|
+
}
|
|
1727
|
+
const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2;
|
|
1728
|
+
if (!isAtEnd) {
|
|
1729
|
+
return false;
|
|
1730
|
+
}
|
|
1731
|
+
const after = $from.after();
|
|
1732
|
+
if (after === void 0) {
|
|
1733
|
+
return false;
|
|
1734
|
+
}
|
|
1735
|
+
const nodeAfter = doc.nodeAt(after);
|
|
1736
|
+
if (nodeAfter) {
|
|
1737
|
+
return editor.commands.command(({ tr }) => {
|
|
1738
|
+
tr.setSelection(import_state.Selection.near(doc.resolve(after)));
|
|
1739
|
+
return true;
|
|
1740
|
+
});
|
|
1741
|
+
}
|
|
1742
|
+
return editor.commands.exitCode();
|
|
1743
|
+
}
|
|
1744
|
+
};
|
|
1745
|
+
},
|
|
1746
|
+
addInputRules() {
|
|
1747
|
+
return [
|
|
1748
|
+
(0, import_core4.textblockTypeInputRule)({
|
|
1749
|
+
find: backtickInputRegex,
|
|
1750
|
+
type: this.type,
|
|
1751
|
+
getAttributes: (match) => ({
|
|
1752
|
+
language: match[1]
|
|
1753
|
+
})
|
|
1754
|
+
}),
|
|
1755
|
+
(0, import_core4.textblockTypeInputRule)({
|
|
1756
|
+
find: tildeInputRegex,
|
|
1757
|
+
type: this.type,
|
|
1758
|
+
getAttributes: (match) => ({
|
|
1759
|
+
language: match[1]
|
|
1760
|
+
})
|
|
1761
|
+
})
|
|
1762
|
+
];
|
|
1763
|
+
},
|
|
1764
|
+
addProseMirrorPlugins() {
|
|
1765
|
+
return [
|
|
1766
|
+
// this plugin creates a code block for pasted content from VS Code
|
|
1767
|
+
// we can also detect the copied code language
|
|
1768
|
+
new import_state.Plugin({
|
|
1769
|
+
key: new import_state.PluginKey("codeBlockVSCodeHandler"),
|
|
1770
|
+
props: {
|
|
1771
|
+
handlePaste: (view, event) => {
|
|
1772
|
+
if (!event.clipboardData) {
|
|
1773
|
+
return false;
|
|
1774
|
+
}
|
|
1775
|
+
if (this.editor.isActive(this.type.name)) {
|
|
1776
|
+
return false;
|
|
1777
|
+
}
|
|
1778
|
+
const text = event.clipboardData.getData("text/plain");
|
|
1779
|
+
const vscode = event.clipboardData.getData("vscode-editor-data");
|
|
1780
|
+
const vscodeData = vscode ? JSON.parse(vscode) : void 0;
|
|
1781
|
+
const language = vscodeData == null ? void 0 : vscodeData.mode;
|
|
1782
|
+
if (!text || !language) {
|
|
1783
|
+
return false;
|
|
1784
|
+
}
|
|
1785
|
+
const { tr, schema } = view.state;
|
|
1786
|
+
const textNode = schema.text(text.replace(/\r\n?/g, "\n"));
|
|
1787
|
+
tr.replaceSelectionWith(this.type.create({ language }, textNode));
|
|
1788
|
+
if (tr.selection.$from.parent.type !== this.type) {
|
|
1789
|
+
tr.setSelection(import_state.TextSelection.near(tr.doc.resolve(Math.max(0, tr.selection.from - 2))));
|
|
1790
|
+
}
|
|
1791
|
+
tr.setMeta("paste", true);
|
|
1792
|
+
view.dispatch(tr);
|
|
1793
|
+
return true;
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
})
|
|
1797
|
+
];
|
|
1798
|
+
}
|
|
1799
|
+
});
|
|
1800
|
+
var index_default4 = CodeBlock;
|
|
1801
|
+
|
|
1802
|
+
// node_modules/@tiptap/extension-text/dist/index.js
|
|
1803
|
+
var import_core5 = require("@tiptap/core");
|
|
1804
|
+
var Text = import_core5.Node.create({
|
|
1417
1805
|
name: "text",
|
|
1418
1806
|
group: "inline",
|
|
1419
1807
|
parseMarkdown: (token) => {
|
|
@@ -1424,7 +1812,7 @@ var Text = import_core3.Node.create({
|
|
|
1424
1812
|
},
|
|
1425
1813
|
renderMarkdown: (node) => node.text || ""
|
|
1426
1814
|
});
|
|
1427
|
-
var
|
|
1815
|
+
var index_default5 = Text;
|
|
1428
1816
|
|
|
1429
1817
|
// src/components/tiptap-templates/simple/simple-editor.tsx
|
|
1430
1818
|
var import_extension_text_style2 = require("@tiptap/extension-text-style");
|
|
@@ -1433,7 +1821,7 @@ var import_extension_table = require("@tiptap/extension-table");
|
|
|
1433
1821
|
var import_extensions2 = require("@tiptap/extensions");
|
|
1434
1822
|
|
|
1435
1823
|
// src/components/extensions/font-size-stepper.ts
|
|
1436
|
-
var
|
|
1824
|
+
var import_core6 = require("@tiptap/core");
|
|
1437
1825
|
function parsePx(value) {
|
|
1438
1826
|
if (!value) return null;
|
|
1439
1827
|
const m = /(-?\d+\.?\d*)px/.exec(String(value));
|
|
@@ -1461,7 +1849,7 @@ function getFontSizeFromResolvedPos(editor) {
|
|
|
1461
1849
|
}
|
|
1462
1850
|
return null;
|
|
1463
1851
|
}
|
|
1464
|
-
var FontSizeStepper =
|
|
1852
|
+
var FontSizeStepper = import_core6.Extension.create({
|
|
1465
1853
|
name: "fontSizeStepper",
|
|
1466
1854
|
// configuration option to control step & min size
|
|
1467
1855
|
addOptions() {
|
|
@@ -1520,7 +1908,7 @@ var import_react12 = require("react");
|
|
|
1520
1908
|
// src/components/tiptap-ui-primitive/tooltip/tooltip.tsx
|
|
1521
1909
|
var import_react10 = require("react");
|
|
1522
1910
|
var import_react11 = require("@floating-ui/react");
|
|
1523
|
-
var
|
|
1911
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1524
1912
|
function useTooltip({
|
|
1525
1913
|
initialOpen = false,
|
|
1526
1914
|
placement = "top",
|
|
@@ -1584,14 +1972,14 @@ function useTooltipContext() {
|
|
|
1584
1972
|
function Tooltip2({ children, ...props }) {
|
|
1585
1973
|
const tooltip = useTooltip(props);
|
|
1586
1974
|
if (!props.useDelayGroup) {
|
|
1587
|
-
return /* @__PURE__ */ (0,
|
|
1975
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TooltipContext.Provider, { value: tooltip, children });
|
|
1588
1976
|
}
|
|
1589
|
-
return /* @__PURE__ */ (0,
|
|
1977
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1590
1978
|
import_react11.FloatingDelayGroup,
|
|
1591
1979
|
{
|
|
1592
1980
|
delay: { open: props.delay ?? 0, close: props.closeDelay ?? 0 },
|
|
1593
1981
|
timeoutMs: props.timeout,
|
|
1594
|
-
children: /* @__PURE__ */ (0,
|
|
1982
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TooltipContext.Provider, { value: tooltip, children })
|
|
1595
1983
|
}
|
|
1596
1984
|
);
|
|
1597
1985
|
}
|
|
@@ -1620,7 +2008,7 @@ var TooltipTrigger2 = (0, import_react10.forwardRef)(
|
|
|
1620
2008
|
})
|
|
1621
2009
|
);
|
|
1622
2010
|
}
|
|
1623
|
-
return /* @__PURE__ */ (0,
|
|
2011
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1624
2012
|
"button",
|
|
1625
2013
|
{
|
|
1626
2014
|
ref,
|
|
@@ -1636,7 +2024,7 @@ var TooltipContent2 = (0, import_react10.forwardRef)(
|
|
|
1636
2024
|
const context = useTooltipContext();
|
|
1637
2025
|
const ref = (0, import_react11.useMergeRefs)([context.refs.setFloating, propRef]);
|
|
1638
2026
|
if (!context.open) return null;
|
|
1639
|
-
const content = /* @__PURE__ */ (0,
|
|
2027
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1640
2028
|
"div",
|
|
1641
2029
|
{
|
|
1642
2030
|
ref,
|
|
@@ -1650,7 +2038,7 @@ var TooltipContent2 = (0, import_react10.forwardRef)(
|
|
|
1650
2038
|
}
|
|
1651
2039
|
);
|
|
1652
2040
|
if (portal) {
|
|
1653
|
-
return /* @__PURE__ */ (0,
|
|
2041
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react11.FloatingPortal, { ...portalProps, children: content });
|
|
1654
2042
|
}
|
|
1655
2043
|
return content;
|
|
1656
2044
|
}
|
|
@@ -1660,8 +2048,8 @@ TooltipTrigger2.displayName = "TooltipTrigger";
|
|
|
1660
2048
|
TooltipContent2.displayName = "TooltipContent";
|
|
1661
2049
|
|
|
1662
2050
|
// src/lib/tiptap-utils.ts
|
|
1663
|
-
var
|
|
1664
|
-
var
|
|
2051
|
+
var import_state2 = require("@tiptap/pm/state");
|
|
2052
|
+
var import_core7 = require("@tiptap/core");
|
|
1665
2053
|
var MAX_FILE_SIZE = 5 * 1024 * 1024;
|
|
1666
2054
|
var MAC_SYMBOLS = {
|
|
1667
2055
|
mod: "\u2318",
|
|
@@ -1707,7 +2095,7 @@ var isNodeInSchema = (nodeName, editor) => {
|
|
|
1707
2095
|
function focusNextNode(editor) {
|
|
1708
2096
|
const { state, view } = editor;
|
|
1709
2097
|
const { doc, selection } = state;
|
|
1710
|
-
const nextSel =
|
|
2098
|
+
const nextSel = import_state2.Selection.findFrom(selection.$to, 1, true);
|
|
1711
2099
|
if (nextSel) {
|
|
1712
2100
|
view.dispatch(state.tr.setSelection(nextSel).scrollIntoView());
|
|
1713
2101
|
return true;
|
|
@@ -1721,7 +2109,7 @@ function focusNextNode(editor) {
|
|
|
1721
2109
|
const para = paragraphType.create();
|
|
1722
2110
|
let tr = state.tr.insert(end, para);
|
|
1723
2111
|
const $inside = tr.doc.resolve(end + 1);
|
|
1724
|
-
tr = tr.setSelection(
|
|
2112
|
+
tr = tr.setSelection(import_state2.TextSelection.near($inside)).scrollIntoView();
|
|
1725
2113
|
view.dispatch(tr);
|
|
1726
2114
|
return true;
|
|
1727
2115
|
}
|
|
@@ -1789,7 +2177,7 @@ function isNodeTypeSelected(editor, nodeTypeNames = [], checkAncestorNodes = fal
|
|
|
1789
2177
|
if (!editor || !editor.state.selection) return false;
|
|
1790
2178
|
const { selection } = editor.state;
|
|
1791
2179
|
if (selection.empty) return false;
|
|
1792
|
-
if (selection instanceof
|
|
2180
|
+
if (selection instanceof import_state2.NodeSelection) {
|
|
1793
2181
|
const selectedNode = selection.node;
|
|
1794
2182
|
return selectedNode ? nodeTypeNames.includes(selectedNode.type.name) : false;
|
|
1795
2183
|
}
|
|
@@ -1809,11 +2197,11 @@ function selectionWithinConvertibleTypes(editor, types = []) {
|
|
|
1809
2197
|
const { state } = editor;
|
|
1810
2198
|
const { selection } = state;
|
|
1811
2199
|
const allowed = new Set(types);
|
|
1812
|
-
if (selection instanceof
|
|
2200
|
+
if (selection instanceof import_state2.NodeSelection) {
|
|
1813
2201
|
const nodeType = selection.node?.type?.name;
|
|
1814
2202
|
return !!nodeType && allowed.has(nodeType);
|
|
1815
2203
|
}
|
|
1816
|
-
if (selection instanceof
|
|
2204
|
+
if (selection instanceof import_state2.TextSelection || selection instanceof import_state2.AllSelection) {
|
|
1817
2205
|
let valid = true;
|
|
1818
2206
|
state.doc.nodesBetween(selection.from, selection.to, (node) => {
|
|
1819
2207
|
if (node.isTextblock && !allowed.has(node.type.name)) {
|
|
@@ -1904,7 +2292,7 @@ var FONT_SIZES = [
|
|
|
1904
2292
|
"56px",
|
|
1905
2293
|
"64px"
|
|
1906
2294
|
];
|
|
1907
|
-
var FontSizeExtension =
|
|
2295
|
+
var FontSizeExtension = import_core7.Extension.create({
|
|
1908
2296
|
name: "fontSize",
|
|
1909
2297
|
addOptions() {
|
|
1910
2298
|
return {
|
|
@@ -1962,14 +2350,14 @@ var FontSizeExtension = import_core5.Extension.create({
|
|
|
1962
2350
|
});
|
|
1963
2351
|
|
|
1964
2352
|
// src/components/tiptap-ui-primitive/button/button.tsx
|
|
1965
|
-
var
|
|
2353
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1966
2354
|
var ShortcutDisplay = ({
|
|
1967
2355
|
shortcuts
|
|
1968
2356
|
}) => {
|
|
1969
2357
|
if (shortcuts.length === 0) return null;
|
|
1970
|
-
return /* @__PURE__ */ (0,
|
|
1971
|
-
index > 0 && /* @__PURE__ */ (0,
|
|
1972
|
-
/* @__PURE__ */ (0,
|
|
2358
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { children: shortcuts.map((key, index) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react12.Fragment, { children: [
|
|
2359
|
+
index > 0 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("kbd", { children: "+" }),
|
|
2360
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("kbd", { children: key })
|
|
1973
2361
|
] }, index)) });
|
|
1974
2362
|
};
|
|
1975
2363
|
var Button2 = (0, import_react12.forwardRef)(
|
|
@@ -1987,7 +2375,7 @@ var Button2 = (0, import_react12.forwardRef)(
|
|
|
1987
2375
|
[shortcutKeys]
|
|
1988
2376
|
);
|
|
1989
2377
|
if (!tooltip || !showTooltip) {
|
|
1990
|
-
return /* @__PURE__ */ (0,
|
|
2378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1991
2379
|
"button",
|
|
1992
2380
|
{
|
|
1993
2381
|
className: cn2("tiptap-button", className),
|
|
@@ -1998,8 +2386,8 @@ var Button2 = (0, import_react12.forwardRef)(
|
|
|
1998
2386
|
}
|
|
1999
2387
|
);
|
|
2000
2388
|
}
|
|
2001
|
-
return /* @__PURE__ */ (0,
|
|
2002
|
-
/* @__PURE__ */ (0,
|
|
2389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Tooltip2, { delay: 200, children: [
|
|
2390
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2003
2391
|
TooltipTrigger2,
|
|
2004
2392
|
{
|
|
2005
2393
|
className: cn2("tiptap-button", className),
|
|
@@ -2009,16 +2397,16 @@ var Button2 = (0, import_react12.forwardRef)(
|
|
|
2009
2397
|
children
|
|
2010
2398
|
}
|
|
2011
2399
|
),
|
|
2012
|
-
/* @__PURE__ */ (0,
|
|
2400
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(TooltipContent2, { children: [
|
|
2013
2401
|
tooltip,
|
|
2014
|
-
/* @__PURE__ */ (0,
|
|
2402
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ShortcutDisplay, { shortcuts })
|
|
2015
2403
|
] })
|
|
2016
2404
|
] });
|
|
2017
2405
|
}
|
|
2018
2406
|
);
|
|
2019
2407
|
Button2.displayName = "Button";
|
|
2020
2408
|
var ButtonGroup = (0, import_react12.forwardRef)(({ className, children, orientation = "vertical", ...props }, ref) => {
|
|
2021
|
-
return /* @__PURE__ */ (0,
|
|
2409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2022
2410
|
"div",
|
|
2023
2411
|
{
|
|
2024
2412
|
ref,
|
|
@@ -2033,7 +2421,7 @@ var ButtonGroup = (0, import_react12.forwardRef)(({ className, children, orienta
|
|
|
2033
2421
|
ButtonGroup.displayName = "ButtonGroup";
|
|
2034
2422
|
|
|
2035
2423
|
// src/components/tiptap-ui-primitive/spacer/spacer.tsx
|
|
2036
|
-
var
|
|
2424
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
2037
2425
|
function Spacer({
|
|
2038
2426
|
orientation = "horizontal",
|
|
2039
2427
|
size,
|
|
@@ -2048,7 +2436,7 @@ function Spacer({
|
|
|
2048
2436
|
height: orientation === "horizontal" ? "1px" : size
|
|
2049
2437
|
}
|
|
2050
2438
|
};
|
|
2051
|
-
return /* @__PURE__ */ (0,
|
|
2439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { ...props, style: computedStyle });
|
|
2052
2440
|
}
|
|
2053
2441
|
|
|
2054
2442
|
// src/components/tiptap-ui-primitive/toolbar/toolbar.tsx
|
|
@@ -2056,12 +2444,12 @@ var import_react16 = require("react");
|
|
|
2056
2444
|
|
|
2057
2445
|
// src/components/tiptap-ui-primitive/separator/separator.tsx
|
|
2058
2446
|
var import_react13 = require("react");
|
|
2059
|
-
var
|
|
2447
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
2060
2448
|
var Separator2 = (0, import_react13.forwardRef)(
|
|
2061
2449
|
({ decorative, orientation = "vertical", className, ...divProps }, ref) => {
|
|
2062
2450
|
const ariaOrientation = orientation === "vertical" ? orientation : void 0;
|
|
2063
2451
|
const semanticProps = decorative ? { role: "none" } : { "aria-orientation": ariaOrientation, role: "separator" };
|
|
2064
|
-
return /* @__PURE__ */ (0,
|
|
2452
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2065
2453
|
"div",
|
|
2066
2454
|
{
|
|
2067
2455
|
className: cn2("tiptap-separator", className),
|
|
@@ -2230,7 +2618,7 @@ var useComposedRef = (libRef, userRef) => {
|
|
|
2230
2618
|
};
|
|
2231
2619
|
|
|
2232
2620
|
// src/components/tiptap-ui-primitive/toolbar/toolbar.tsx
|
|
2233
|
-
var
|
|
2621
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2234
2622
|
var useToolbarNavigation = (toolbarRef) => {
|
|
2235
2623
|
const [items, setItems] = (0, import_react16.useState)([]);
|
|
2236
2624
|
const collectItems = (0, import_react16.useCallback)(() => {
|
|
@@ -2287,7 +2675,7 @@ var Toolbar = (0, import_react16.forwardRef)(
|
|
|
2287
2675
|
const toolbarRef = (0, import_react16.useRef)(null);
|
|
2288
2676
|
const composedRef = useComposedRef(toolbarRef, ref);
|
|
2289
2677
|
useToolbarNavigation(toolbarRef);
|
|
2290
|
-
return /* @__PURE__ */ (0,
|
|
2678
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2291
2679
|
"div",
|
|
2292
2680
|
{
|
|
2293
2681
|
ref: composedRef,
|
|
@@ -2303,7 +2691,7 @@ var Toolbar = (0, import_react16.forwardRef)(
|
|
|
2303
2691
|
);
|
|
2304
2692
|
Toolbar.displayName = "Toolbar";
|
|
2305
2693
|
var ToolbarGroup = (0, import_react16.forwardRef)(
|
|
2306
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2694
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2307
2695
|
"div",
|
|
2308
2696
|
{
|
|
2309
2697
|
ref,
|
|
@@ -2316,7 +2704,7 @@ var ToolbarGroup = (0, import_react16.forwardRef)(
|
|
|
2316
2704
|
);
|
|
2317
2705
|
ToolbarGroup.displayName = "ToolbarGroup";
|
|
2318
2706
|
var ToolbarSeparator = (0, import_react16.forwardRef)(
|
|
2319
|
-
({ ...props }, ref) => /* @__PURE__ */ (0,
|
|
2707
|
+
({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Separator2, { ref, orientation: "vertical", decorative: true, ...props })
|
|
2320
2708
|
);
|
|
2321
2709
|
ToolbarSeparator.displayName = "ToolbarSeparator";
|
|
2322
2710
|
|
|
@@ -2324,11 +2712,11 @@ ToolbarSeparator.displayName = "ToolbarSeparator";
|
|
|
2324
2712
|
var import_menus = require("@tiptap/react/menus");
|
|
2325
2713
|
var import_react17 = require("@tiptap/react");
|
|
2326
2714
|
var import_lucide_react7 = require("lucide-react");
|
|
2327
|
-
var
|
|
2715
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2328
2716
|
function BubbleMenuInline() {
|
|
2329
2717
|
const { editor } = (0, import_react17.useCurrentEditor)();
|
|
2330
2718
|
if (!editor) return null;
|
|
2331
|
-
return /* @__PURE__ */ (0,
|
|
2719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2332
2720
|
import_menus.BubbleMenu,
|
|
2333
2721
|
{
|
|
2334
2722
|
editor,
|
|
@@ -2347,81 +2735,81 @@ function BubbleMenuInline() {
|
|
|
2347
2735
|
if (hasImage) return false;
|
|
2348
2736
|
return true;
|
|
2349
2737
|
},
|
|
2350
|
-
children: /* @__PURE__ */ (0,
|
|
2738
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2351
2739
|
"div",
|
|
2352
2740
|
{
|
|
2353
2741
|
className: "relative flex items-center gap-1 rounded-md border bg-[#171717] text-[#a1a1a6] p-1 shadow-md z-[15]\r\n animate-in fade-in slide-in-from-top-2 duration-200",
|
|
2354
2742
|
children: [
|
|
2355
|
-
/* @__PURE__ */ (0,
|
|
2743
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2356
2744
|
Button,
|
|
2357
2745
|
{
|
|
2358
2746
|
variant: "ghost",
|
|
2359
2747
|
size: "sm",
|
|
2360
2748
|
onClick: () => editor.chain().focus().toggleHeading({ level: 1 }).run(),
|
|
2361
2749
|
className: editor.isActive("heading", { level: 1 }) ? "bg-accent" : "",
|
|
2362
|
-
children: /* @__PURE__ */ (0,
|
|
2750
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react7.Heading1, { size: 15 })
|
|
2363
2751
|
}
|
|
2364
2752
|
),
|
|
2365
|
-
/* @__PURE__ */ (0,
|
|
2753
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2366
2754
|
Button,
|
|
2367
2755
|
{
|
|
2368
2756
|
variant: "ghost",
|
|
2369
2757
|
size: "sm",
|
|
2370
2758
|
onClick: () => editor.chain().focus().toggleHeading({ level: 2 }).run(),
|
|
2371
2759
|
className: editor.isActive("heading", { level: 2 }) ? "bg-accent" : "",
|
|
2372
|
-
children: /* @__PURE__ */ (0,
|
|
2760
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react7.Heading2, { size: 15 })
|
|
2373
2761
|
}
|
|
2374
2762
|
),
|
|
2375
|
-
/* @__PURE__ */ (0,
|
|
2763
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2376
2764
|
Button,
|
|
2377
2765
|
{
|
|
2378
2766
|
variant: "ghost",
|
|
2379
2767
|
size: "sm",
|
|
2380
2768
|
onClick: () => editor.chain().focus().toggleHeading({ level: 3 }).run(),
|
|
2381
2769
|
className: editor.isActive("heading", { level: 3 }) ? "bg-accent" : "",
|
|
2382
|
-
children: /* @__PURE__ */ (0,
|
|
2770
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react7.Heading3, { size: 15 })
|
|
2383
2771
|
}
|
|
2384
2772
|
),
|
|
2385
|
-
/* @__PURE__ */ (0,
|
|
2386
|
-
/* @__PURE__ */ (0,
|
|
2773
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Separator, { orientation: "vertical", className: "mx-1" }),
|
|
2774
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2387
2775
|
Button,
|
|
2388
2776
|
{
|
|
2389
2777
|
variant: "ghost",
|
|
2390
2778
|
size: "sm",
|
|
2391
2779
|
onClick: () => editor.chain().focus().toggleBulletList().run(),
|
|
2392
2780
|
className: editor.isActive("bulletList") ? "bg-accent" : "",
|
|
2393
|
-
children: /* @__PURE__ */ (0,
|
|
2781
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react7.List, { size: 15 })
|
|
2394
2782
|
}
|
|
2395
2783
|
),
|
|
2396
|
-
/* @__PURE__ */ (0,
|
|
2784
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2397
2785
|
Button,
|
|
2398
2786
|
{
|
|
2399
2787
|
variant: "ghost",
|
|
2400
2788
|
size: "sm",
|
|
2401
2789
|
onClick: () => editor.chain().focus().toggleOrderedList().run(),
|
|
2402
2790
|
className: editor.isActive("orderedList") ? "bg-accent" : "",
|
|
2403
|
-
children: /* @__PURE__ */ (0,
|
|
2791
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react7.ListOrdered, { size: 15 })
|
|
2404
2792
|
}
|
|
2405
2793
|
),
|
|
2406
|
-
/* @__PURE__ */ (0,
|
|
2794
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2407
2795
|
Button,
|
|
2408
2796
|
{
|
|
2409
2797
|
variant: "ghost",
|
|
2410
2798
|
size: "sm",
|
|
2411
2799
|
onClick: () => editor.chain().focus().toggleTaskList().run(),
|
|
2412
2800
|
className: editor.isActive("taskList") ? "bg-accent" : "",
|
|
2413
|
-
children: /* @__PURE__ */ (0,
|
|
2801
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react7.CheckSquare, { size: 15 })
|
|
2414
2802
|
}
|
|
2415
2803
|
),
|
|
2416
|
-
/* @__PURE__ */ (0,
|
|
2417
|
-
/* @__PURE__ */ (0,
|
|
2804
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Separator, { orientation: "vertical", className: "mx-1" }),
|
|
2805
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2418
2806
|
Button,
|
|
2419
2807
|
{
|
|
2420
2808
|
variant: "ghost",
|
|
2421
2809
|
size: "sm",
|
|
2422
2810
|
onClick: () => editor.chain().focus().toggleCodeBlock().run(),
|
|
2423
2811
|
className: editor.isActive("codeBlock") ? "bg-accent" : "",
|
|
2424
|
-
children: /* @__PURE__ */ (0,
|
|
2812
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react7.Code, { size: 15 })
|
|
2425
2813
|
}
|
|
2426
2814
|
)
|
|
2427
2815
|
]
|
|
@@ -2441,9 +2829,9 @@ var import_react20 = require("@tiptap/react");
|
|
|
2441
2829
|
|
|
2442
2830
|
// src/components/tiptap-icons/close-icon.tsx
|
|
2443
2831
|
var import_react18 = require("react");
|
|
2444
|
-
var
|
|
2832
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2445
2833
|
var CloseIcon = (0, import_react18.memo)(({ className, ...props }) => {
|
|
2446
|
-
return /* @__PURE__ */ (0,
|
|
2834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2447
2835
|
"svg",
|
|
2448
2836
|
{
|
|
2449
2837
|
width: "24",
|
|
@@ -2453,7 +2841,7 @@ var CloseIcon = (0, import_react18.memo)(({ className, ...props }) => {
|
|
|
2453
2841
|
fill: "currentColor",
|
|
2454
2842
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2455
2843
|
...props,
|
|
2456
|
-
children: /* @__PURE__ */ (0,
|
|
2844
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2457
2845
|
"path",
|
|
2458
2846
|
{
|
|
2459
2847
|
d: "M18.7071 6.70711C19.0976 6.31658 19.0976 5.68342 18.7071 5.29289C18.3166 4.90237 17.6834 4.90237 17.2929 5.29289L12 10.5858L6.70711 5.29289C6.31658 4.90237 5.68342 4.90237 5.29289 5.29289C4.90237 5.68342 4.90237 6.31658 5.29289 6.70711L10.5858 12L5.29289 17.2929C4.90237 17.6834 4.90237 18.3166 5.29289 18.7071C5.68342 19.0976 6.31658 19.0976 6.70711 18.7071L12 13.4142L17.2929 18.7071C17.6834 19.0976 18.3166 19.0976 18.7071 18.7071C19.0976 18.3166 19.0976 17.6834 18.7071 17.2929L13.4142 12L18.7071 6.70711Z",
|
|
@@ -2466,7 +2854,7 @@ var CloseIcon = (0, import_react18.memo)(({ className, ...props }) => {
|
|
|
2466
2854
|
CloseIcon.displayName = "CloseIcon";
|
|
2467
2855
|
|
|
2468
2856
|
// src/components/tiptap-node/image-upload-node/image-upload-node.tsx
|
|
2469
|
-
var
|
|
2857
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2470
2858
|
function useFileUpload(options) {
|
|
2471
2859
|
const [fileItems, setFileItems] = (0, import_react19.useState)([]);
|
|
2472
2860
|
const uploadFile = async (file) => {
|
|
@@ -2574,7 +2962,7 @@ function useFileUpload(options) {
|
|
|
2574
2962
|
clearAllFiles
|
|
2575
2963
|
};
|
|
2576
2964
|
}
|
|
2577
|
-
var CloudUploadIcon = () => /* @__PURE__ */ (0,
|
|
2965
|
+
var CloudUploadIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2578
2966
|
"svg",
|
|
2579
2967
|
{
|
|
2580
2968
|
width: "24",
|
|
@@ -2584,14 +2972,14 @@ var CloudUploadIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
|
2584
2972
|
fill: "currentColor",
|
|
2585
2973
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2586
2974
|
children: [
|
|
2587
|
-
/* @__PURE__ */ (0,
|
|
2975
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2588
2976
|
"path",
|
|
2589
2977
|
{
|
|
2590
2978
|
d: "M11.1953 4.41771C10.3478 4.08499 9.43578 3.94949 8.5282 4.02147C7.62062 4.09345 6.74133 4.37102 5.95691 4.83316C5.1725 5.2953 4.50354 5.92989 4.00071 6.68886C3.49788 7.44783 3.17436 8.31128 3.05465 9.2138C2.93495 10.1163 3.0222 11.0343 3.3098 11.8981C3.5974 12.7619 4.07781 13.5489 4.71463 14.1995C5.10094 14.5942 5.09414 15.2274 4.69945 15.6137C4.30476 16 3.67163 15.9932 3.28532 15.5985C2.43622 14.731 1.79568 13.6816 1.41221 12.5299C1.02875 11.3781 0.91241 10.1542 1.07201 8.95084C1.23162 7.74748 1.66298 6.59621 2.33343 5.58425C3.00387 4.57229 3.89581 3.72617 4.9417 3.10998C5.98758 2.4938 7.15998 2.1237 8.37008 2.02773C9.58018 1.93176 10.7963 2.11243 11.9262 2.55605C13.0561 2.99968 14.0703 3.69462 14.8919 4.58825C15.5423 5.29573 16.0585 6.11304 16.4177 7.00002H17.4999C18.6799 6.99991 19.8288 7.37933 20.7766 8.08222C21.7245 8.78515 22.4212 9.7743 22.7637 10.9036C23.1062 12.0328 23.0765 13.2423 22.6788 14.3534C22.2812 15.4644 21.5367 16.4181 20.5554 17.0736C20.0962 17.3803 19.4752 17.2567 19.1684 16.7975C18.8617 16.3382 18.9853 15.7172 19.4445 15.4105C20.069 14.9934 20.5427 14.3865 20.7958 13.6794C21.0488 12.9724 21.0678 12.2027 20.8498 11.4841C20.6318 10.7655 20.1885 10.136 19.5853 9.6887C18.9821 9.24138 18.251 8.99993 17.5001 9.00002H15.71C15.2679 9.00002 14.8783 8.70973 14.7518 8.28611C14.4913 7.41374 14.0357 6.61208 13.4195 5.94186C12.8034 5.27164 12.0427 4.75043 11.1953 4.41771Z",
|
|
2591
2979
|
fill: "currentColor"
|
|
2592
2980
|
}
|
|
2593
2981
|
),
|
|
2594
|
-
/* @__PURE__ */ (0,
|
|
2982
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2595
2983
|
"path",
|
|
2596
2984
|
{
|
|
2597
2985
|
d: "M11 14.4142V21C11 21.5523 11.4477 22 12 22C12.5523 22 13 21.5523 13 21V14.4142L15.2929 16.7071C15.6834 17.0976 16.3166 17.0976 16.7071 16.7071C17.0976 16.3166 17.0976 15.6834 16.7071 15.2929L12.7078 11.2936C12.7054 11.2912 12.703 11.2888 12.7005 11.2864C12.5208 11.1099 12.2746 11.0008 12.003 11L12 11L11.997 11C11.8625 11.0004 11.7343 11.0273 11.6172 11.0759C11.502 11.1236 11.3938 11.1937 11.2995 11.2864C11.297 11.2888 11.2946 11.2912 11.2922 11.2936L7.29289 15.2929C6.90237 15.6834 6.90237 16.3166 7.29289 16.7071C7.68342 17.0976 8.31658 17.0976 8.70711 16.7071L11 14.4142Z",
|
|
@@ -2601,7 +2989,7 @@ var CloudUploadIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
|
2601
2989
|
]
|
|
2602
2990
|
}
|
|
2603
2991
|
);
|
|
2604
|
-
var FileIcon = () => /* @__PURE__ */ (0,
|
|
2992
|
+
var FileIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2605
2993
|
"svg",
|
|
2606
2994
|
{
|
|
2607
2995
|
width: "43",
|
|
@@ -2610,7 +2998,7 @@ var FileIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
|
2610
2998
|
fill: "currentColor",
|
|
2611
2999
|
className: "tiptap-image-upload-dropzone-rect-primary",
|
|
2612
3000
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2613
|
-
children: /* @__PURE__ */ (0,
|
|
3001
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2614
3002
|
"path",
|
|
2615
3003
|
{
|
|
2616
3004
|
d: "M0.75 10.75C0.75 5.64137 4.89137 1.5 10 1.5H32.3431C33.2051 1.5 34.0317 1.84241 34.6412 2.4519L40.2981 8.10876C40.9076 8.71825 41.25 9.5449 41.25 10.4069V46.75C41.25 51.8586 37.1086 56 32 56H10C4.89137 56 0.75 51.8586 0.75 46.75V10.75Z",
|
|
@@ -2622,7 +3010,7 @@ var FileIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
|
2622
3010
|
)
|
|
2623
3011
|
}
|
|
2624
3012
|
);
|
|
2625
|
-
var FileCornerIcon = () => /* @__PURE__ */ (0,
|
|
3013
|
+
var FileCornerIcon = () => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2626
3014
|
"svg",
|
|
2627
3015
|
{
|
|
2628
3016
|
width: "10",
|
|
@@ -2631,7 +3019,7 @@ var FileCornerIcon = () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
|
2631
3019
|
viewBox: "0 0 10 10",
|
|
2632
3020
|
fill: "currentColor",
|
|
2633
3021
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2634
|
-
children: /* @__PURE__ */ (0,
|
|
3022
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2635
3023
|
"path",
|
|
2636
3024
|
{
|
|
2637
3025
|
d: "M0 0.75H0.343146C1.40401 0.75 2.42143 1.17143 3.17157 1.92157L8.82843 7.57843C9.57857 8.32857 10 9.34599 10 10.4069V10.75H4C1.79086 10.75 0 8.95914 0 6.75V0.75Z",
|
|
@@ -2674,7 +3062,7 @@ var ImageUploadDragArea = ({
|
|
|
2674
3062
|
onFile(files);
|
|
2675
3063
|
}
|
|
2676
3064
|
};
|
|
2677
|
-
return /* @__PURE__ */ (0,
|
|
3065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2678
3066
|
"div",
|
|
2679
3067
|
{
|
|
2680
3068
|
className: `tiptap-image-upload-drag-area ${isDragActive ? "drag-active" : ""} ${isDragOver ? "drag-over" : ""}`,
|
|
@@ -2697,28 +3085,28 @@ var ImageUploadPreview = ({
|
|
|
2697
3085
|
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
2698
3086
|
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
|
|
2699
3087
|
};
|
|
2700
|
-
return /* @__PURE__ */ (0,
|
|
2701
|
-
fileItem.status === "uploading" && /* @__PURE__ */ (0,
|
|
3088
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-preview", children: [
|
|
3089
|
+
fileItem.status === "uploading" && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2702
3090
|
"div",
|
|
2703
3091
|
{
|
|
2704
3092
|
className: "tiptap-image-upload-progress",
|
|
2705
3093
|
style: { width: `${fileItem.progress}%` }
|
|
2706
3094
|
}
|
|
2707
3095
|
),
|
|
2708
|
-
/* @__PURE__ */ (0,
|
|
2709
|
-
/* @__PURE__ */ (0,
|
|
2710
|
-
/* @__PURE__ */ (0,
|
|
2711
|
-
/* @__PURE__ */ (0,
|
|
2712
|
-
/* @__PURE__ */ (0,
|
|
2713
|
-
/* @__PURE__ */ (0,
|
|
3096
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-preview-content", children: [
|
|
3097
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-file-info", children: [
|
|
3098
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "tiptap-image-upload-file-icon", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CloudUploadIcon, {}) }),
|
|
3099
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-details", children: [
|
|
3100
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "tiptap-image-upload-text", children: fileItem.file.name }),
|
|
3101
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "tiptap-image-upload-subtext", children: formatFileSize(fileItem.file.size) })
|
|
2714
3102
|
] })
|
|
2715
3103
|
] }),
|
|
2716
|
-
/* @__PURE__ */ (0,
|
|
2717
|
-
fileItem.status === "uploading" && /* @__PURE__ */ (0,
|
|
3104
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-actions", children: [
|
|
3105
|
+
fileItem.status === "uploading" && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "tiptap-image-upload-progress-text", children: [
|
|
2718
3106
|
fileItem.progress,
|
|
2719
3107
|
"%"
|
|
2720
3108
|
] }),
|
|
2721
|
-
/* @__PURE__ */ (0,
|
|
3109
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2722
3110
|
Button2,
|
|
2723
3111
|
{
|
|
2724
3112
|
type: "button",
|
|
@@ -2727,7 +3115,7 @@ var ImageUploadPreview = ({
|
|
|
2727
3115
|
e.stopPropagation();
|
|
2728
3116
|
onRemove();
|
|
2729
3117
|
},
|
|
2730
|
-
children: /* @__PURE__ */ (0,
|
|
3118
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CloseIcon, { className: "tiptap-button-icon" })
|
|
2731
3119
|
}
|
|
2732
3120
|
)
|
|
2733
3121
|
] })
|
|
@@ -2737,18 +3125,18 @@ var ImageUploadPreview = ({
|
|
|
2737
3125
|
var DropZoneContent = ({
|
|
2738
3126
|
maxSize,
|
|
2739
3127
|
limit
|
|
2740
|
-
}) => /* @__PURE__ */ (0,
|
|
2741
|
-
/* @__PURE__ */ (0,
|
|
2742
|
-
/* @__PURE__ */ (0,
|
|
2743
|
-
/* @__PURE__ */ (0,
|
|
2744
|
-
/* @__PURE__ */ (0,
|
|
3128
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
3129
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-dropzone", children: [
|
|
3130
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(FileIcon, {}),
|
|
3131
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(FileCornerIcon, {}),
|
|
3132
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "tiptap-image-upload-icon-container", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CloudUploadIcon, {}) })
|
|
2745
3133
|
] }),
|
|
2746
|
-
/* @__PURE__ */ (0,
|
|
2747
|
-
/* @__PURE__ */ (0,
|
|
2748
|
-
/* @__PURE__ */ (0,
|
|
3134
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-content", children: [
|
|
3135
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "tiptap-image-upload-text", children: [
|
|
3136
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("em", { children: "Click to upload" }),
|
|
2749
3137
|
" or drag and drop"
|
|
2750
3138
|
] }),
|
|
2751
|
-
/* @__PURE__ */ (0,
|
|
3139
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "tiptap-image-upload-subtext", children: [
|
|
2752
3140
|
"Maximum ",
|
|
2753
3141
|
limit,
|
|
2754
3142
|
" file",
|
|
@@ -2809,22 +3197,22 @@ var ImageUploadNode = (props) => {
|
|
|
2809
3197
|
}
|
|
2810
3198
|
};
|
|
2811
3199
|
const hasFiles = fileItems.length > 0;
|
|
2812
|
-
return /* @__PURE__ */ (0,
|
|
3200
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2813
3201
|
import_react20.NodeViewWrapper,
|
|
2814
3202
|
{
|
|
2815
3203
|
className: "tiptap-image-upload",
|
|
2816
3204
|
tabIndex: 0,
|
|
2817
3205
|
onClick: handleClick,
|
|
2818
3206
|
children: [
|
|
2819
|
-
!hasFiles && /* @__PURE__ */ (0,
|
|
2820
|
-
hasFiles && /* @__PURE__ */ (0,
|
|
2821
|
-
fileItems.length > 1 && /* @__PURE__ */ (0,
|
|
2822
|
-
/* @__PURE__ */ (0,
|
|
3207
|
+
!hasFiles && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ImageUploadDragArea, { onFile: handleUpload, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(DropZoneContent, { maxSize, limit }) }),
|
|
3208
|
+
hasFiles && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-previews", children: [
|
|
3209
|
+
fileItems.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tiptap-image-upload-header", children: [
|
|
3210
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { children: [
|
|
2823
3211
|
"Uploading ",
|
|
2824
3212
|
fileItems.length,
|
|
2825
3213
|
" files"
|
|
2826
3214
|
] }),
|
|
2827
|
-
/* @__PURE__ */ (0,
|
|
3215
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2828
3216
|
Button2,
|
|
2829
3217
|
{
|
|
2830
3218
|
type: "button",
|
|
@@ -2837,7 +3225,7 @@ var ImageUploadNode = (props) => {
|
|
|
2837
3225
|
}
|
|
2838
3226
|
)
|
|
2839
3227
|
] }),
|
|
2840
|
-
fileItems.map((fileItem) => /* @__PURE__ */ (0,
|
|
3228
|
+
fileItems.map((fileItem) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2841
3229
|
ImageUploadPreview,
|
|
2842
3230
|
{
|
|
2843
3231
|
fileItem,
|
|
@@ -2846,7 +3234,7 @@ var ImageUploadNode = (props) => {
|
|
|
2846
3234
|
fileItem.id
|
|
2847
3235
|
))
|
|
2848
3236
|
] }),
|
|
2849
|
-
/* @__PURE__ */ (0,
|
|
3237
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2850
3238
|
"input",
|
|
2851
3239
|
{
|
|
2852
3240
|
ref: inputRef,
|
|
@@ -2959,9 +3347,9 @@ var import_react38 = require("react");
|
|
|
2959
3347
|
|
|
2960
3348
|
// src/components/tiptap-icons/chevron-down-icon.tsx
|
|
2961
3349
|
var import_react24 = require("react");
|
|
2962
|
-
var
|
|
3350
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2963
3351
|
var ChevronDownIcon = (0, import_react24.memo)(({ className, ...props }) => {
|
|
2964
|
-
return /* @__PURE__ */ (0,
|
|
3352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2965
3353
|
"svg",
|
|
2966
3354
|
{
|
|
2967
3355
|
width: "24",
|
|
@@ -2971,7 +3359,7 @@ var ChevronDownIcon = (0, import_react24.memo)(({ className, ...props }) => {
|
|
|
2971
3359
|
fill: "currentColor",
|
|
2972
3360
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2973
3361
|
...props,
|
|
2974
|
-
children: /* @__PURE__ */ (0,
|
|
3362
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2975
3363
|
"path",
|
|
2976
3364
|
{
|
|
2977
3365
|
fillRule: "evenodd",
|
|
@@ -3019,7 +3407,7 @@ var import_react28 = require("react");
|
|
|
3019
3407
|
|
|
3020
3408
|
// src/components/tiptap-ui-primitive/badge/badge.tsx
|
|
3021
3409
|
var import_react27 = require("react");
|
|
3022
|
-
var
|
|
3410
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3023
3411
|
var Badge = (0, import_react27.forwardRef)(
|
|
3024
3412
|
({
|
|
3025
3413
|
variant,
|
|
@@ -3030,7 +3418,7 @@ var Badge = (0, import_react27.forwardRef)(
|
|
|
3030
3418
|
children,
|
|
3031
3419
|
...props
|
|
3032
3420
|
}, ref) => {
|
|
3033
|
-
return /* @__PURE__ */ (0,
|
|
3421
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3034
3422
|
"div",
|
|
3035
3423
|
{
|
|
3036
3424
|
ref,
|
|
@@ -3048,12 +3436,12 @@ var Badge = (0, import_react27.forwardRef)(
|
|
|
3048
3436
|
Badge.displayName = "Badge";
|
|
3049
3437
|
|
|
3050
3438
|
// src/components/tiptap-ui/heading-button/heading-button.tsx
|
|
3051
|
-
var
|
|
3439
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3052
3440
|
function HeadingShortcutBadge({
|
|
3053
3441
|
level,
|
|
3054
3442
|
shortcutKeys = HEADING_SHORTCUT_KEYS[level]
|
|
3055
3443
|
}) {
|
|
3056
|
-
return /* @__PURE__ */ (0,
|
|
3444
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
3057
3445
|
}
|
|
3058
3446
|
var HeadingButton = (0, import_react28.forwardRef)(
|
|
3059
3447
|
({
|
|
@@ -3093,7 +3481,7 @@ var HeadingButton = (0, import_react28.forwardRef)(
|
|
|
3093
3481
|
if (!isVisible) {
|
|
3094
3482
|
return null;
|
|
3095
3483
|
}
|
|
3096
|
-
return /* @__PURE__ */ (0,
|
|
3484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3097
3485
|
Button2,
|
|
3098
3486
|
{
|
|
3099
3487
|
type: "button",
|
|
@@ -3109,10 +3497,10 @@ var HeadingButton = (0, import_react28.forwardRef)(
|
|
|
3109
3497
|
onClick: handleClick,
|
|
3110
3498
|
...buttonProps,
|
|
3111
3499
|
ref,
|
|
3112
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
3113
|
-
/* @__PURE__ */ (0,
|
|
3114
|
-
text && /* @__PURE__ */ (0,
|
|
3115
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
3500
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
|
|
3501
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { className: "tiptap-button-icon" }),
|
|
3502
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
3503
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(HeadingShortcutBadge, { level, shortcutKeys })
|
|
3116
3504
|
] })
|
|
3117
3505
|
}
|
|
3118
3506
|
);
|
|
@@ -3122,13 +3510,13 @@ HeadingButton.displayName = "HeadingButton";
|
|
|
3122
3510
|
|
|
3123
3511
|
// src/components/tiptap-ui/heading-button/use-heading.ts
|
|
3124
3512
|
var import_react35 = require("react");
|
|
3125
|
-
var
|
|
3513
|
+
var import_state3 = require("@tiptap/pm/state");
|
|
3126
3514
|
|
|
3127
3515
|
// src/components/tiptap-icons/heading-one-icon.tsx
|
|
3128
3516
|
var import_react29 = require("react");
|
|
3129
|
-
var
|
|
3517
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3130
3518
|
var HeadingOneIcon = (0, import_react29.memo)(({ className, ...props }) => {
|
|
3131
|
-
return /* @__PURE__ */ (0,
|
|
3519
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
3132
3520
|
"svg",
|
|
3133
3521
|
{
|
|
3134
3522
|
width: "24",
|
|
@@ -3139,14 +3527,14 @@ var HeadingOneIcon = (0, import_react29.memo)(({ className, ...props }) => {
|
|
|
3139
3527
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3140
3528
|
...props,
|
|
3141
3529
|
children: [
|
|
3142
|
-
/* @__PURE__ */ (0,
|
|
3530
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3143
3531
|
"path",
|
|
3144
3532
|
{
|
|
3145
3533
|
d: "M5 6C5 5.44772 4.55228 5 4 5C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19C4.55228 19 5 18.5523 5 18V13H11V18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18V6C13 5.44772 12.5523 5 12 5C11.4477 5 11 5.44772 11 6V11H5V6Z",
|
|
3146
3534
|
fill: "currentColor"
|
|
3147
3535
|
}
|
|
3148
3536
|
),
|
|
3149
|
-
/* @__PURE__ */ (0,
|
|
3537
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3150
3538
|
"path",
|
|
3151
3539
|
{
|
|
3152
3540
|
d: "M21.0001 10C21.0001 9.63121 20.7971 9.29235 20.472 9.11833C20.1468 8.94431 19.7523 8.96338 19.4454 9.16795L16.4454 11.168C15.9859 11.4743 15.8617 12.0952 16.1681 12.5547C16.4744 13.0142 17.0953 13.1384 17.5548 12.8321L19.0001 11.8685V18C19.0001 18.5523 19.4478 19 20.0001 19C20.5524 19 21.0001 18.5523 21.0001 18V10Z",
|
|
@@ -3161,9 +3549,9 @@ HeadingOneIcon.displayName = "HeadingOneIcon";
|
|
|
3161
3549
|
|
|
3162
3550
|
// src/components/tiptap-icons/heading-two-icon.tsx
|
|
3163
3551
|
var import_react30 = require("react");
|
|
3164
|
-
var
|
|
3552
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3165
3553
|
var HeadingTwoIcon = (0, import_react30.memo)(({ className, ...props }) => {
|
|
3166
|
-
return /* @__PURE__ */ (0,
|
|
3554
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
3167
3555
|
"svg",
|
|
3168
3556
|
{
|
|
3169
3557
|
width: "24",
|
|
@@ -3174,14 +3562,14 @@ var HeadingTwoIcon = (0, import_react30.memo)(({ className, ...props }) => {
|
|
|
3174
3562
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3175
3563
|
...props,
|
|
3176
3564
|
children: [
|
|
3177
|
-
/* @__PURE__ */ (0,
|
|
3565
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3178
3566
|
"path",
|
|
3179
3567
|
{
|
|
3180
3568
|
d: "M5 6C5 5.44772 4.55228 5 4 5C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19C4.55228 19 5 18.5523 5 18V13H11V18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18V6C13 5.44772 12.5523 5 12 5C11.4477 5 11 5.44772 11 6V11H5V6Z",
|
|
3181
3569
|
fill: "currentColor"
|
|
3182
3570
|
}
|
|
3183
3571
|
),
|
|
3184
|
-
/* @__PURE__ */ (0,
|
|
3572
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3185
3573
|
"path",
|
|
3186
3574
|
{
|
|
3187
3575
|
d: "M22.0001 12C22.0001 10.7611 21.1663 9.79297 20.0663 9.42632C18.9547 9.05578 17.6171 9.28724 16.4001 10.2C15.9582 10.5314 15.8687 11.1582 16.2001 11.6C16.5314 12.0418 17.1582 12.1314 17.6001 11.8C18.383 11.2128 19.0455 11.1942 19.4338 11.3237C19.8339 11.457 20.0001 11.7389 20.0001 12C20.0001 12.4839 19.8554 12.7379 19.6537 12.9481C19.4275 13.1837 19.1378 13.363 18.7055 13.6307C18.6313 13.6767 18.553 13.7252 18.4701 13.777C17.9572 14.0975 17.3128 14.5261 16.8163 15.2087C16.3007 15.9177 16.0001 16.8183 16.0001 18C16.0001 18.5523 16.4478 19 17.0001 19H21.0001C21.5523 19 22.0001 18.5523 22.0001 18C22.0001 17.4477 21.5523 17 21.0001 17H18.131C18.21 16.742 18.3176 16.5448 18.4338 16.385C18.6873 16.0364 19.0429 15.7775 19.5301 15.473C19.5898 15.4357 19.6536 15.3966 19.7205 15.3556C20.139 15.0992 20.6783 14.7687 21.0964 14.3332C21.6447 13.7621 22.0001 13.0161 22.0001 12Z",
|
|
@@ -3196,9 +3584,9 @@ HeadingTwoIcon.displayName = "HeadingTwoIcon";
|
|
|
3196
3584
|
|
|
3197
3585
|
// src/components/tiptap-icons/heading-three-icon.tsx
|
|
3198
3586
|
var import_react31 = require("react");
|
|
3199
|
-
var
|
|
3587
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3200
3588
|
var HeadingThreeIcon = (0, import_react31.memo)(({ className, ...props }) => {
|
|
3201
|
-
return /* @__PURE__ */ (0,
|
|
3589
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
3202
3590
|
"svg",
|
|
3203
3591
|
{
|
|
3204
3592
|
width: "24",
|
|
@@ -3209,14 +3597,14 @@ var HeadingThreeIcon = (0, import_react31.memo)(({ className, ...props }) => {
|
|
|
3209
3597
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3210
3598
|
...props,
|
|
3211
3599
|
children: [
|
|
3212
|
-
/* @__PURE__ */ (0,
|
|
3600
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3213
3601
|
"path",
|
|
3214
3602
|
{
|
|
3215
3603
|
d: "M4 5C4.55228 5 5 5.44772 5 6V11H11V6C11 5.44772 11.4477 5 12 5C12.5523 5 13 5.44772 13 6V18C13 18.5523 12.5523 19 12 19C11.4477 19 11 18.5523 11 18V13H5V18C5 18.5523 4.55228 19 4 19C3.44772 19 3 18.5523 3 18V6C3 5.44772 3.44772 5 4 5Z",
|
|
3216
3604
|
fill: "currentColor"
|
|
3217
3605
|
}
|
|
3218
3606
|
),
|
|
3219
|
-
/* @__PURE__ */ (0,
|
|
3607
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3220
3608
|
"path",
|
|
3221
3609
|
{
|
|
3222
3610
|
fillRule: "evenodd",
|
|
@@ -3225,7 +3613,7 @@ var HeadingThreeIcon = (0, import_react31.memo)(({ className, ...props }) => {
|
|
|
3225
3613
|
fill: "currentColor"
|
|
3226
3614
|
}
|
|
3227
3615
|
),
|
|
3228
|
-
/* @__PURE__ */ (0,
|
|
3616
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3229
3617
|
"path",
|
|
3230
3618
|
{
|
|
3231
3619
|
fillRule: "evenodd",
|
|
@@ -3242,9 +3630,9 @@ HeadingThreeIcon.displayName = "HeadingThreeIcon";
|
|
|
3242
3630
|
|
|
3243
3631
|
// src/components/tiptap-icons/heading-four-icon.tsx
|
|
3244
3632
|
var import_react32 = require("react");
|
|
3245
|
-
var
|
|
3633
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3246
3634
|
var HeadingFourIcon = (0, import_react32.memo)(({ className, ...props }) => {
|
|
3247
|
-
return /* @__PURE__ */ (0,
|
|
3635
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
3248
3636
|
"svg",
|
|
3249
3637
|
{
|
|
3250
3638
|
width: "24",
|
|
@@ -3255,14 +3643,14 @@ var HeadingFourIcon = (0, import_react32.memo)(({ className, ...props }) => {
|
|
|
3255
3643
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3256
3644
|
...props,
|
|
3257
3645
|
children: [
|
|
3258
|
-
/* @__PURE__ */ (0,
|
|
3646
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3259
3647
|
"path",
|
|
3260
3648
|
{
|
|
3261
3649
|
d: "M4 5C4.55228 5 5 5.44772 5 6V11H11V6C11 5.44772 11.4477 5 12 5C12.5523 5 13 5.44772 13 6V18C13 18.5523 12.5523 19 12 19C11.4477 19 11 18.5523 11 18V13H5V18C5 18.5523 4.55228 19 4 19C3.44772 19 3 18.5523 3 18V6C3 5.44772 3.44772 5 4 5Z",
|
|
3262
3650
|
fill: "currentColor"
|
|
3263
3651
|
}
|
|
3264
3652
|
),
|
|
3265
|
-
/* @__PURE__ */ (0,
|
|
3653
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3266
3654
|
"path",
|
|
3267
3655
|
{
|
|
3268
3656
|
d: "M17 9C17.5523 9 18 9.44772 18 10V13H20V10C20 9.44772 20.4477 9 21 9C21.5523 9 22 9.44772 22 10V18C22 18.5523 21.5523 19 21 19C20.4477 19 20 18.5523 20 18V15H17C16.4477 15 16 14.5523 16 14V10C16 9.44772 16.4477 9 17 9Z",
|
|
@@ -3277,9 +3665,9 @@ HeadingFourIcon.displayName = "HeadingFourIcon";
|
|
|
3277
3665
|
|
|
3278
3666
|
// src/components/tiptap-icons/heading-five-icon.tsx
|
|
3279
3667
|
var import_react33 = require("react");
|
|
3280
|
-
var
|
|
3668
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
3281
3669
|
var HeadingFiveIcon = (0, import_react33.memo)(({ className, ...props }) => {
|
|
3282
|
-
return /* @__PURE__ */ (0,
|
|
3670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
3283
3671
|
"svg",
|
|
3284
3672
|
{
|
|
3285
3673
|
width: "24",
|
|
@@ -3290,14 +3678,14 @@ var HeadingFiveIcon = (0, import_react33.memo)(({ className, ...props }) => {
|
|
|
3290
3678
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3291
3679
|
...props,
|
|
3292
3680
|
children: [
|
|
3293
|
-
/* @__PURE__ */ (0,
|
|
3681
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
3294
3682
|
"path",
|
|
3295
3683
|
{
|
|
3296
3684
|
d: "M5 6C5 5.44772 4.55228 5 4 5C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19C4.55228 19 5 18.5523 5 18V13H11V18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18V6C13 5.44772 12.5523 5 12 5C11.4477 5 11 5.44772 11 6V11H5V6Z",
|
|
3297
3685
|
fill: "currentColor"
|
|
3298
3686
|
}
|
|
3299
3687
|
),
|
|
3300
|
-
/* @__PURE__ */ (0,
|
|
3688
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
3301
3689
|
"path",
|
|
3302
3690
|
{
|
|
3303
3691
|
d: "M16 10C16 9.44772 16.4477 9 17 9H21C21.5523 9 22 9.44772 22 10C22 10.5523 21.5523 11 21 11H18V12H18.3C20.2754 12 22 13.4739 22 15.5C22 17.5261 20.2754 19 18.3 19C17.6457 19 17.0925 18.8643 16.5528 18.5944C16.0588 18.3474 15.8586 17.7468 16.1055 17.2528C16.3525 16.7588 16.9532 16.5586 17.4472 16.8056C17.7074 16.9357 17.9542 17 18.3 17C19.3246 17 20 16.2739 20 15.5C20 14.7261 19.3246 14 18.3 14H17C16.4477 14 16 13.5523 16 13L16 12.9928V10Z",
|
|
@@ -3312,9 +3700,9 @@ HeadingFiveIcon.displayName = "HeadingFiveIcon";
|
|
|
3312
3700
|
|
|
3313
3701
|
// src/components/tiptap-icons/heading-six-icon.tsx
|
|
3314
3702
|
var import_react34 = require("react");
|
|
3315
|
-
var
|
|
3703
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
3316
3704
|
var HeadingSixIcon = (0, import_react34.memo)(({ className, ...props }) => {
|
|
3317
|
-
return /* @__PURE__ */ (0,
|
|
3705
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
3318
3706
|
"svg",
|
|
3319
3707
|
{
|
|
3320
3708
|
width: "24",
|
|
@@ -3325,14 +3713,14 @@ var HeadingSixIcon = (0, import_react34.memo)(({ className, ...props }) => {
|
|
|
3325
3713
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3326
3714
|
...props,
|
|
3327
3715
|
children: [
|
|
3328
|
-
/* @__PURE__ */ (0,
|
|
3716
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3329
3717
|
"path",
|
|
3330
3718
|
{
|
|
3331
3719
|
d: "M5 6C5 5.44772 4.55228 5 4 5C3.44772 5 3 5.44772 3 6V18C3 18.5523 3.44772 19 4 19C4.55228 19 5 18.5523 5 18V13H11V18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18V6C13 5.44772 12.5523 5 12 5C11.4477 5 11 5.44772 11 6V11H5V6Z",
|
|
3332
3720
|
fill: "currentColor"
|
|
3333
3721
|
}
|
|
3334
3722
|
),
|
|
3335
|
-
/* @__PURE__ */ (0,
|
|
3723
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3336
3724
|
"path",
|
|
3337
3725
|
{
|
|
3338
3726
|
fillRule: "evenodd",
|
|
@@ -3399,26 +3787,26 @@ function toggleHeading(editor, level) {
|
|
|
3399
3787
|
const view = editor.view;
|
|
3400
3788
|
let state = view.state;
|
|
3401
3789
|
let tr = state.tr;
|
|
3402
|
-
if (state.selection.empty || state.selection instanceof
|
|
3790
|
+
if (state.selection.empty || state.selection instanceof import_state3.TextSelection) {
|
|
3403
3791
|
const pos = findNodePosition({
|
|
3404
3792
|
editor,
|
|
3405
3793
|
node: state.selection.$anchor.node(1)
|
|
3406
3794
|
})?.pos;
|
|
3407
3795
|
if (!isValidPosition(pos)) return false;
|
|
3408
|
-
tr = tr.setSelection(
|
|
3796
|
+
tr = tr.setSelection(import_state3.NodeSelection.create(state.doc, pos));
|
|
3409
3797
|
view.dispatch(tr);
|
|
3410
3798
|
state = view.state;
|
|
3411
3799
|
}
|
|
3412
3800
|
const selection = state.selection;
|
|
3413
3801
|
let chain = editor.chain().focus();
|
|
3414
|
-
if (selection instanceof
|
|
3802
|
+
if (selection instanceof import_state3.NodeSelection) {
|
|
3415
3803
|
const firstChild = selection.node.firstChild?.firstChild;
|
|
3416
3804
|
const lastChild = selection.node.lastChild?.lastChild;
|
|
3417
3805
|
const from = firstChild ? selection.from + firstChild.nodeSize : selection.from + 1;
|
|
3418
3806
|
const to = lastChild ? selection.to - lastChild.nodeSize : selection.to - 1;
|
|
3419
3807
|
const resolvedFrom = state.doc.resolve(from);
|
|
3420
3808
|
const resolvedTo = state.doc.resolve(to);
|
|
3421
|
-
chain = chain.setTextSelection(
|
|
3809
|
+
chain = chain.setTextSelection(import_state3.TextSelection.between(resolvedFrom, resolvedTo)).clearNodes();
|
|
3422
3810
|
}
|
|
3423
3811
|
const isActive = levels.some(
|
|
3424
3812
|
(l) => editor.isActive("heading", { level: l })
|
|
@@ -3487,22 +3875,22 @@ function useHeading(config) {
|
|
|
3487
3875
|
// src/components/tiptap-ui-primitive/dropdown-menu/dropdown-menu.tsx
|
|
3488
3876
|
var import_react36 = require("react");
|
|
3489
3877
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
3490
|
-
var
|
|
3878
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
3491
3879
|
function DropdownMenu({
|
|
3492
3880
|
...props
|
|
3493
3881
|
}) {
|
|
3494
|
-
return /* @__PURE__ */ (0,
|
|
3882
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropdownMenuPrimitive.Root, { modal: false, ...props });
|
|
3495
3883
|
}
|
|
3496
3884
|
function DropdownMenuPortal({
|
|
3497
3885
|
...props
|
|
3498
3886
|
}) {
|
|
3499
|
-
return /* @__PURE__ */ (0,
|
|
3887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropdownMenuPrimitive.Portal, { ...props });
|
|
3500
3888
|
}
|
|
3501
|
-
var DropdownMenuTrigger = (0, import_react36.forwardRef)(({ ...props }, ref) => /* @__PURE__ */ (0,
|
|
3889
|
+
var DropdownMenuTrigger = (0, import_react36.forwardRef)(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropdownMenuPrimitive.Trigger, { ref, ...props }));
|
|
3502
3890
|
DropdownMenuTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;
|
|
3503
3891
|
var DropdownMenuItem = DropdownMenuPrimitive.Item;
|
|
3504
3892
|
var DropdownMenuSubContent = (0, import_react36.forwardRef)(({ className, portal = true, ...props }, ref) => {
|
|
3505
|
-
const content = /* @__PURE__ */ (0,
|
|
3893
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3506
3894
|
DropdownMenuPrimitive.SubContent,
|
|
3507
3895
|
{
|
|
3508
3896
|
ref,
|
|
@@ -3510,11 +3898,11 @@ var DropdownMenuSubContent = (0, import_react36.forwardRef)(({ className, portal
|
|
|
3510
3898
|
...props
|
|
3511
3899
|
}
|
|
3512
3900
|
);
|
|
3513
|
-
return portal ? /* @__PURE__ */ (0,
|
|
3901
|
+
return portal ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropdownMenuPortal, { ...typeof portal === "object" ? portal : {}, children: content }) : content;
|
|
3514
3902
|
});
|
|
3515
3903
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
3516
3904
|
var DropdownMenuContent = (0, import_react36.forwardRef)(({ className, sideOffset = 4, portal = false, ...props }, ref) => {
|
|
3517
|
-
const content = /* @__PURE__ */ (0,
|
|
3905
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3518
3906
|
DropdownMenuPrimitive.Content,
|
|
3519
3907
|
{
|
|
3520
3908
|
ref,
|
|
@@ -3524,22 +3912,22 @@ var DropdownMenuContent = (0, import_react36.forwardRef)(({ className, sideOffse
|
|
|
3524
3912
|
...props
|
|
3525
3913
|
}
|
|
3526
3914
|
);
|
|
3527
|
-
return portal ? /* @__PURE__ */ (0,
|
|
3915
|
+
return portal ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(DropdownMenuPortal, { ...typeof portal === "object" ? portal : {}, children: content }) : content;
|
|
3528
3916
|
});
|
|
3529
3917
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
3530
3918
|
|
|
3531
3919
|
// src/components/tiptap-ui-primitive/card/card.tsx
|
|
3532
3920
|
var import_react37 = require("react");
|
|
3533
|
-
var
|
|
3921
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
3534
3922
|
var Card = (0, import_react37.forwardRef)(
|
|
3535
3923
|
({ className, ...props }, ref) => {
|
|
3536
|
-
return /* @__PURE__ */ (0,
|
|
3924
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { ref, className: cn2("tiptap-card", className), ...props });
|
|
3537
3925
|
}
|
|
3538
3926
|
);
|
|
3539
3927
|
Card.displayName = "Card";
|
|
3540
3928
|
var CardHeader = (0, import_react37.forwardRef)(
|
|
3541
3929
|
({ className, ...props }, ref) => {
|
|
3542
|
-
return /* @__PURE__ */ (0,
|
|
3930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3543
3931
|
"div",
|
|
3544
3932
|
{
|
|
3545
3933
|
ref,
|
|
@@ -3552,12 +3940,12 @@ var CardHeader = (0, import_react37.forwardRef)(
|
|
|
3552
3940
|
CardHeader.displayName = "CardHeader";
|
|
3553
3941
|
var CardBody = (0, import_react37.forwardRef)(
|
|
3554
3942
|
({ className, ...props }, ref) => {
|
|
3555
|
-
return /* @__PURE__ */ (0,
|
|
3943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { ref, className: cn2("tiptap-card-body", className), ...props });
|
|
3556
3944
|
}
|
|
3557
3945
|
);
|
|
3558
3946
|
CardBody.displayName = "CardBody";
|
|
3559
3947
|
var CardItemGroup = (0, import_react37.forwardRef)(({ className, orientation = "vertical", ...props }, ref) => {
|
|
3560
|
-
return /* @__PURE__ */ (0,
|
|
3948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3561
3949
|
"div",
|
|
3562
3950
|
{
|
|
3563
3951
|
ref,
|
|
@@ -3570,7 +3958,7 @@ var CardItemGroup = (0, import_react37.forwardRef)(({ className, orientation = "
|
|
|
3570
3958
|
CardItemGroup.displayName = "CardItemGroup";
|
|
3571
3959
|
var CardGroupLabel = (0, import_react37.forwardRef)(
|
|
3572
3960
|
({ className, ...props }, ref) => {
|
|
3573
|
-
return /* @__PURE__ */ (0,
|
|
3961
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3574
3962
|
"div",
|
|
3575
3963
|
{
|
|
3576
3964
|
ref,
|
|
@@ -3583,7 +3971,7 @@ var CardGroupLabel = (0, import_react37.forwardRef)(
|
|
|
3583
3971
|
CardGroupLabel.displayName = "CardGroupLabel";
|
|
3584
3972
|
var CardFooter = (0, import_react37.forwardRef)(
|
|
3585
3973
|
({ className, ...props }, ref) => {
|
|
3586
|
-
return /* @__PURE__ */ (0,
|
|
3974
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3587
3975
|
"div",
|
|
3588
3976
|
{
|
|
3589
3977
|
ref,
|
|
@@ -3596,7 +3984,7 @@ var CardFooter = (0, import_react37.forwardRef)(
|
|
|
3596
3984
|
CardFooter.displayName = "CardFooter";
|
|
3597
3985
|
|
|
3598
3986
|
// src/components/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu.tsx
|
|
3599
|
-
var
|
|
3987
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
3600
3988
|
var HeadingDropdownMenu = (0, import_react38.forwardRef)(
|
|
3601
3989
|
({
|
|
3602
3990
|
editor: providedEditor,
|
|
@@ -3624,8 +4012,8 @@ var HeadingDropdownMenu = (0, import_react38.forwardRef)(
|
|
|
3624
4012
|
if (!isVisible) {
|
|
3625
4013
|
return null;
|
|
3626
4014
|
}
|
|
3627
|
-
return /* @__PURE__ */ (0,
|
|
3628
|
-
/* @__PURE__ */ (0,
|
|
4015
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(DropdownMenu, { modal: true, open: isOpen, onOpenChange: handleOpenChange, children: [
|
|
4016
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
3629
4017
|
Button2,
|
|
3630
4018
|
{
|
|
3631
4019
|
type: "button",
|
|
@@ -3641,12 +4029,12 @@ var HeadingDropdownMenu = (0, import_react38.forwardRef)(
|
|
|
3641
4029
|
...buttonProps,
|
|
3642
4030
|
ref,
|
|
3643
4031
|
children: [
|
|
3644
|
-
/* @__PURE__ */ (0,
|
|
3645
|
-
/* @__PURE__ */ (0,
|
|
4032
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { className: "tiptap-button-icon" }),
|
|
4033
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ChevronDownIcon, { className: "tiptap-button-dropdown-small" })
|
|
3646
4034
|
]
|
|
3647
4035
|
}
|
|
3648
4036
|
) }),
|
|
3649
|
-
/* @__PURE__ */ (0,
|
|
4037
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DropdownMenuContent, { align: "start", portal, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Card, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CardBody, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ButtonGroup, { children: levels.map((level) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3650
4038
|
HeadingButton,
|
|
3651
4039
|
{
|
|
3652
4040
|
editor,
|
|
@@ -3665,9 +4053,9 @@ var import_react40 = require("react");
|
|
|
3665
4053
|
|
|
3666
4054
|
// src/components/tiptap-icons/heading-icon.tsx
|
|
3667
4055
|
var import_react39 = require("react");
|
|
3668
|
-
var
|
|
4056
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3669
4057
|
var HeadingIcon = (0, import_react39.memo)(({ className, ...props }) => {
|
|
3670
|
-
return /* @__PURE__ */ (0,
|
|
4058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3671
4059
|
"svg",
|
|
3672
4060
|
{
|
|
3673
4061
|
width: "24",
|
|
@@ -3677,7 +4065,7 @@ var HeadingIcon = (0, import_react39.memo)(({ className, ...props }) => {
|
|
|
3677
4065
|
fill: "currentColor",
|
|
3678
4066
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3679
4067
|
...props,
|
|
3680
|
-
children: /* @__PURE__ */ (0,
|
|
4068
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3681
4069
|
"path",
|
|
3682
4070
|
{
|
|
3683
4071
|
d: "M6 3C6.55228 3 7 3.44772 7 4V11H17V4C17 3.44772 17.4477 3 18 3C18.5523 3 19 3.44772 19 4V20C19 20.5523 18.5523 21 18 21C17.4477 21 17 20.5523 17 20V13H7V20C7 20.5523 6.55228 21 6 21C5.44772 21 5 20.5523 5 20V4C5 3.44772 5.44772 3 6 3Z",
|
|
@@ -3731,11 +4119,11 @@ function useHeadingDropdownMenu(config) {
|
|
|
3731
4119
|
|
|
3732
4120
|
// src/components/tiptap-ui/image-upload-button/image-upload-button.tsx
|
|
3733
4121
|
var import_react41 = require("react");
|
|
3734
|
-
var
|
|
4122
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3735
4123
|
function ImageShortcutBadge({
|
|
3736
4124
|
shortcutKeys = IMAGE_UPLOAD_SHORTCUT_KEY
|
|
3737
4125
|
}) {
|
|
3738
|
-
return /* @__PURE__ */ (0,
|
|
4126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
3739
4127
|
}
|
|
3740
4128
|
var ImageUploadButton = (0, import_react41.forwardRef)(
|
|
3741
4129
|
({
|
|
@@ -3775,7 +4163,7 @@ var ImageUploadButton = (0, import_react41.forwardRef)(
|
|
|
3775
4163
|
return null;
|
|
3776
4164
|
}
|
|
3777
4165
|
const RenderIcon = CustomIcon ?? Icon;
|
|
3778
|
-
return /* @__PURE__ */ (0,
|
|
4166
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3779
4167
|
Button2,
|
|
3780
4168
|
{
|
|
3781
4169
|
type: "button",
|
|
@@ -3791,10 +4179,10 @@ var ImageUploadButton = (0, import_react41.forwardRef)(
|
|
|
3791
4179
|
onClick: handleClick,
|
|
3792
4180
|
...buttonProps,
|
|
3793
4181
|
ref,
|
|
3794
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
3795
|
-
/* @__PURE__ */ (0,
|
|
3796
|
-
text && /* @__PURE__ */ (0,
|
|
3797
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
4182
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
4183
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RenderIcon, { className: "tiptap-button-icon" }),
|
|
4184
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
4185
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ImageShortcutBadge, { shortcutKeys })
|
|
3798
4186
|
] })
|
|
3799
4187
|
}
|
|
3800
4188
|
);
|
|
@@ -3823,9 +4211,9 @@ function useIsBreakpoint(mode = "max", breakpoint = 768) {
|
|
|
3823
4211
|
|
|
3824
4212
|
// src/components/tiptap-icons/image-plus-icon.tsx
|
|
3825
4213
|
var import_react43 = require("react");
|
|
3826
|
-
var
|
|
4214
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3827
4215
|
var ImagePlusIcon = (0, import_react43.memo)(({ className, ...props }) => {
|
|
3828
|
-
return /* @__PURE__ */ (0,
|
|
4216
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3829
4217
|
"svg",
|
|
3830
4218
|
{
|
|
3831
4219
|
width: "24",
|
|
@@ -3835,7 +4223,7 @@ var ImagePlusIcon = (0, import_react43.memo)(({ className, ...props }) => {
|
|
|
3835
4223
|
fill: "currentColor",
|
|
3836
4224
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3837
4225
|
...props,
|
|
3838
|
-
children: /* @__PURE__ */ (0,
|
|
4226
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3839
4227
|
"path",
|
|
3840
4228
|
{
|
|
3841
4229
|
fillRule: "evenodd",
|
|
@@ -3959,12 +4347,12 @@ var import_react51 = require("react");
|
|
|
3959
4347
|
|
|
3960
4348
|
// src/components/tiptap-ui/list-button/list-button.tsx
|
|
3961
4349
|
var import_react45 = require("react");
|
|
3962
|
-
var
|
|
4350
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
3963
4351
|
function ListShortcutBadge({
|
|
3964
4352
|
type,
|
|
3965
4353
|
shortcutKeys = LIST_SHORTCUT_KEYS[type]
|
|
3966
4354
|
}) {
|
|
3967
|
-
return /* @__PURE__ */ (0,
|
|
4355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
3968
4356
|
}
|
|
3969
4357
|
var ListButton = (0, import_react45.forwardRef)(
|
|
3970
4358
|
({
|
|
@@ -4004,7 +4392,7 @@ var ListButton = (0, import_react45.forwardRef)(
|
|
|
4004
4392
|
if (!isVisible) {
|
|
4005
4393
|
return null;
|
|
4006
4394
|
}
|
|
4007
|
-
return /* @__PURE__ */ (0,
|
|
4395
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4008
4396
|
Button2,
|
|
4009
4397
|
{
|
|
4010
4398
|
type: "button",
|
|
@@ -4020,10 +4408,10 @@ var ListButton = (0, import_react45.forwardRef)(
|
|
|
4020
4408
|
onClick: handleClick,
|
|
4021
4409
|
...buttonProps,
|
|
4022
4410
|
ref,
|
|
4023
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
4024
|
-
/* @__PURE__ */ (0,
|
|
4025
|
-
text && /* @__PURE__ */ (0,
|
|
4026
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
4411
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
|
|
4412
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icon, { className: "tiptap-button-icon" }),
|
|
4413
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
4414
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ListShortcutBadge, { type, shortcutKeys })
|
|
4027
4415
|
] })
|
|
4028
4416
|
}
|
|
4029
4417
|
);
|
|
@@ -4033,13 +4421,13 @@ ListButton.displayName = "ListButton";
|
|
|
4033
4421
|
|
|
4034
4422
|
// src/components/tiptap-ui/list-button/use-list.ts
|
|
4035
4423
|
var import_react49 = require("react");
|
|
4036
|
-
var
|
|
4424
|
+
var import_state4 = require("@tiptap/pm/state");
|
|
4037
4425
|
|
|
4038
4426
|
// src/components/tiptap-icons/list-icon.tsx
|
|
4039
4427
|
var import_react46 = require("react");
|
|
4040
|
-
var
|
|
4428
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
4041
4429
|
var ListIcon = (0, import_react46.memo)(({ className, ...props }) => {
|
|
4042
|
-
return /* @__PURE__ */ (0,
|
|
4430
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
4043
4431
|
"svg",
|
|
4044
4432
|
{
|
|
4045
4433
|
width: "24",
|
|
@@ -4050,7 +4438,7 @@ var ListIcon = (0, import_react46.memo)(({ className, ...props }) => {
|
|
|
4050
4438
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4051
4439
|
...props,
|
|
4052
4440
|
children: [
|
|
4053
|
-
/* @__PURE__ */ (0,
|
|
4441
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4054
4442
|
"path",
|
|
4055
4443
|
{
|
|
4056
4444
|
fillRule: "evenodd",
|
|
@@ -4059,7 +4447,7 @@ var ListIcon = (0, import_react46.memo)(({ className, ...props }) => {
|
|
|
4059
4447
|
fill: "currentColor"
|
|
4060
4448
|
}
|
|
4061
4449
|
),
|
|
4062
|
-
/* @__PURE__ */ (0,
|
|
4450
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4063
4451
|
"path",
|
|
4064
4452
|
{
|
|
4065
4453
|
fillRule: "evenodd",
|
|
@@ -4068,7 +4456,7 @@ var ListIcon = (0, import_react46.memo)(({ className, ...props }) => {
|
|
|
4068
4456
|
fill: "currentColor"
|
|
4069
4457
|
}
|
|
4070
4458
|
),
|
|
4071
|
-
/* @__PURE__ */ (0,
|
|
4459
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4072
4460
|
"path",
|
|
4073
4461
|
{
|
|
4074
4462
|
fillRule: "evenodd",
|
|
@@ -4077,7 +4465,7 @@ var ListIcon = (0, import_react46.memo)(({ className, ...props }) => {
|
|
|
4077
4465
|
fill: "currentColor"
|
|
4078
4466
|
}
|
|
4079
4467
|
),
|
|
4080
|
-
/* @__PURE__ */ (0,
|
|
4468
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4081
4469
|
"path",
|
|
4082
4470
|
{
|
|
4083
4471
|
fillRule: "evenodd",
|
|
@@ -4086,7 +4474,7 @@ var ListIcon = (0, import_react46.memo)(({ className, ...props }) => {
|
|
|
4086
4474
|
fill: "currentColor"
|
|
4087
4475
|
}
|
|
4088
4476
|
),
|
|
4089
|
-
/* @__PURE__ */ (0,
|
|
4477
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4090
4478
|
"path",
|
|
4091
4479
|
{
|
|
4092
4480
|
fillRule: "evenodd",
|
|
@@ -4095,7 +4483,7 @@ var ListIcon = (0, import_react46.memo)(({ className, ...props }) => {
|
|
|
4095
4483
|
fill: "currentColor"
|
|
4096
4484
|
}
|
|
4097
4485
|
),
|
|
4098
|
-
/* @__PURE__ */ (0,
|
|
4486
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4099
4487
|
"path",
|
|
4100
4488
|
{
|
|
4101
4489
|
fillRule: "evenodd",
|
|
@@ -4112,9 +4500,9 @@ ListIcon.displayName = "ListIcon";
|
|
|
4112
4500
|
|
|
4113
4501
|
// src/components/tiptap-icons/list-ordered-icon.tsx
|
|
4114
4502
|
var import_react47 = require("react");
|
|
4115
|
-
var
|
|
4503
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
4116
4504
|
var ListOrderedIcon = (0, import_react47.memo)(({ className, ...props }) => {
|
|
4117
|
-
return /* @__PURE__ */ (0,
|
|
4505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
4118
4506
|
"svg",
|
|
4119
4507
|
{
|
|
4120
4508
|
width: "24",
|
|
@@ -4125,7 +4513,7 @@ var ListOrderedIcon = (0, import_react47.memo)(({ className, ...props }) => {
|
|
|
4125
4513
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4126
4514
|
...props,
|
|
4127
4515
|
children: [
|
|
4128
|
-
/* @__PURE__ */ (0,
|
|
4516
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4129
4517
|
"path",
|
|
4130
4518
|
{
|
|
4131
4519
|
fillRule: "evenodd",
|
|
@@ -4134,7 +4522,7 @@ var ListOrderedIcon = (0, import_react47.memo)(({ className, ...props }) => {
|
|
|
4134
4522
|
fill: "currentColor"
|
|
4135
4523
|
}
|
|
4136
4524
|
),
|
|
4137
|
-
/* @__PURE__ */ (0,
|
|
4525
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4138
4526
|
"path",
|
|
4139
4527
|
{
|
|
4140
4528
|
fillRule: "evenodd",
|
|
@@ -4143,7 +4531,7 @@ var ListOrderedIcon = (0, import_react47.memo)(({ className, ...props }) => {
|
|
|
4143
4531
|
fill: "currentColor"
|
|
4144
4532
|
}
|
|
4145
4533
|
),
|
|
4146
|
-
/* @__PURE__ */ (0,
|
|
4534
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4147
4535
|
"path",
|
|
4148
4536
|
{
|
|
4149
4537
|
fillRule: "evenodd",
|
|
@@ -4152,7 +4540,7 @@ var ListOrderedIcon = (0, import_react47.memo)(({ className, ...props }) => {
|
|
|
4152
4540
|
fill: "currentColor"
|
|
4153
4541
|
}
|
|
4154
4542
|
),
|
|
4155
|
-
/* @__PURE__ */ (0,
|
|
4543
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4156
4544
|
"path",
|
|
4157
4545
|
{
|
|
4158
4546
|
fillRule: "evenodd",
|
|
@@ -4161,7 +4549,7 @@ var ListOrderedIcon = (0, import_react47.memo)(({ className, ...props }) => {
|
|
|
4161
4549
|
fill: "currentColor"
|
|
4162
4550
|
}
|
|
4163
4551
|
),
|
|
4164
|
-
/* @__PURE__ */ (0,
|
|
4552
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4165
4553
|
"path",
|
|
4166
4554
|
{
|
|
4167
4555
|
fillRule: "evenodd",
|
|
@@ -4170,7 +4558,7 @@ var ListOrderedIcon = (0, import_react47.memo)(({ className, ...props }) => {
|
|
|
4170
4558
|
fill: "currentColor"
|
|
4171
4559
|
}
|
|
4172
4560
|
),
|
|
4173
|
-
/* @__PURE__ */ (0,
|
|
4561
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4174
4562
|
"path",
|
|
4175
4563
|
{
|
|
4176
4564
|
fillRule: "evenodd",
|
|
@@ -4187,9 +4575,9 @@ ListOrderedIcon.displayName = "ListOrderedIcon";
|
|
|
4187
4575
|
|
|
4188
4576
|
// src/components/tiptap-icons/list-todo-icon.tsx
|
|
4189
4577
|
var import_react48 = require("react");
|
|
4190
|
-
var
|
|
4578
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4191
4579
|
var ListTodoIcon = (0, import_react48.memo)(({ className, ...props }) => {
|
|
4192
|
-
return /* @__PURE__ */ (0,
|
|
4580
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
4193
4581
|
"svg",
|
|
4194
4582
|
{
|
|
4195
4583
|
width: "24",
|
|
@@ -4200,7 +4588,7 @@ var ListTodoIcon = (0, import_react48.memo)(({ className, ...props }) => {
|
|
|
4200
4588
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4201
4589
|
...props,
|
|
4202
4590
|
children: [
|
|
4203
|
-
/* @__PURE__ */ (0,
|
|
4591
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4204
4592
|
"path",
|
|
4205
4593
|
{
|
|
4206
4594
|
fillRule: "evenodd",
|
|
@@ -4209,7 +4597,7 @@ var ListTodoIcon = (0, import_react48.memo)(({ className, ...props }) => {
|
|
|
4209
4597
|
fill: "currentColor"
|
|
4210
4598
|
}
|
|
4211
4599
|
),
|
|
4212
|
-
/* @__PURE__ */ (0,
|
|
4600
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4213
4601
|
"path",
|
|
4214
4602
|
{
|
|
4215
4603
|
fillRule: "evenodd",
|
|
@@ -4218,7 +4606,7 @@ var ListTodoIcon = (0, import_react48.memo)(({ className, ...props }) => {
|
|
|
4218
4606
|
fill: "currentColor"
|
|
4219
4607
|
}
|
|
4220
4608
|
),
|
|
4221
|
-
/* @__PURE__ */ (0,
|
|
4609
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4222
4610
|
"path",
|
|
4223
4611
|
{
|
|
4224
4612
|
fillRule: "evenodd",
|
|
@@ -4227,7 +4615,7 @@ var ListTodoIcon = (0, import_react48.memo)(({ className, ...props }) => {
|
|
|
4227
4615
|
fill: "currentColor"
|
|
4228
4616
|
}
|
|
4229
4617
|
),
|
|
4230
|
-
/* @__PURE__ */ (0,
|
|
4618
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4231
4619
|
"path",
|
|
4232
4620
|
{
|
|
4233
4621
|
fillRule: "evenodd",
|
|
@@ -4236,7 +4624,7 @@ var ListTodoIcon = (0, import_react48.memo)(({ className, ...props }) => {
|
|
|
4236
4624
|
fill: "currentColor"
|
|
4237
4625
|
}
|
|
4238
4626
|
),
|
|
4239
|
-
/* @__PURE__ */ (0,
|
|
4627
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4240
4628
|
"path",
|
|
4241
4629
|
{
|
|
4242
4630
|
fillRule: "evenodd",
|
|
@@ -4324,26 +4712,26 @@ function toggleList(editor, type) {
|
|
|
4324
4712
|
const view = editor.view;
|
|
4325
4713
|
let state = view.state;
|
|
4326
4714
|
let tr = state.tr;
|
|
4327
|
-
if (state.selection.empty || state.selection instanceof
|
|
4715
|
+
if (state.selection.empty || state.selection instanceof import_state4.TextSelection) {
|
|
4328
4716
|
const pos = findNodePosition({
|
|
4329
4717
|
editor,
|
|
4330
4718
|
node: state.selection.$anchor.node(1)
|
|
4331
4719
|
})?.pos;
|
|
4332
4720
|
if (!isValidPosition(pos)) return false;
|
|
4333
|
-
tr = tr.setSelection(
|
|
4721
|
+
tr = tr.setSelection(import_state4.NodeSelection.create(state.doc, pos));
|
|
4334
4722
|
view.dispatch(tr);
|
|
4335
4723
|
state = view.state;
|
|
4336
4724
|
}
|
|
4337
4725
|
const selection = state.selection;
|
|
4338
4726
|
let chain = editor.chain().focus();
|
|
4339
|
-
if (selection instanceof
|
|
4727
|
+
if (selection instanceof import_state4.NodeSelection) {
|
|
4340
4728
|
const firstChild = selection.node.firstChild?.firstChild;
|
|
4341
4729
|
const lastChild = selection.node.lastChild?.lastChild;
|
|
4342
4730
|
const from = firstChild ? selection.from + firstChild.nodeSize : selection.from + 1;
|
|
4343
4731
|
const to = lastChild ? selection.to - lastChild.nodeSize : selection.to - 1;
|
|
4344
4732
|
const resolvedFrom = state.doc.resolve(from);
|
|
4345
4733
|
const resolvedTo = state.doc.resolve(to);
|
|
4346
|
-
chain = chain.setTextSelection(
|
|
4734
|
+
chain = chain.setTextSelection(import_state4.TextSelection.between(resolvedFrom, resolvedTo)).clearNodes();
|
|
4347
4735
|
}
|
|
4348
4736
|
if (editor.isActive(type)) {
|
|
4349
4737
|
chain.liftListItem("listItem").lift("bulletList").lift("orderedList").lift("taskList").run();
|
|
@@ -4505,7 +4893,7 @@ function useListDropdownMenu(config) {
|
|
|
4505
4893
|
}
|
|
4506
4894
|
|
|
4507
4895
|
// src/components/tiptap-ui/list-dropdown-menu/list-dropdown-menu.tsx
|
|
4508
|
-
var
|
|
4896
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
4509
4897
|
function ListDropdownMenu({
|
|
4510
4898
|
editor: providedEditor,
|
|
4511
4899
|
types = ["bulletList", "orderedList", "taskList"],
|
|
@@ -4531,8 +4919,8 @@ function ListDropdownMenu({
|
|
|
4531
4919
|
if (!isVisible) {
|
|
4532
4920
|
return null;
|
|
4533
4921
|
}
|
|
4534
|
-
return /* @__PURE__ */ (0,
|
|
4535
|
-
/* @__PURE__ */ (0,
|
|
4922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(DropdownMenu, { open: isOpen, onOpenChange: handleOnOpenChange, children: [
|
|
4923
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
4536
4924
|
Button2,
|
|
4537
4925
|
{
|
|
4538
4926
|
type: "button",
|
|
@@ -4546,12 +4934,12 @@ function ListDropdownMenu({
|
|
|
4546
4934
|
tooltip: "List",
|
|
4547
4935
|
...props,
|
|
4548
4936
|
children: [
|
|
4549
|
-
/* @__PURE__ */ (0,
|
|
4550
|
-
/* @__PURE__ */ (0,
|
|
4937
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Icon, { className: "tiptap-button-icon" }),
|
|
4938
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ChevronDownIcon, { className: "tiptap-button-dropdown-small" })
|
|
4551
4939
|
]
|
|
4552
4940
|
}
|
|
4553
4941
|
) }),
|
|
4554
|
-
/* @__PURE__ */ (0,
|
|
4942
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DropdownMenuContent, { align: "start", portal, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Card, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(CardBody, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ButtonGroup, { children: filteredLists.map((option) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4555
4943
|
ListButton,
|
|
4556
4944
|
{
|
|
4557
4945
|
editor,
|
|
@@ -4565,11 +4953,11 @@ function ListDropdownMenu({
|
|
|
4565
4953
|
|
|
4566
4954
|
// src/components/tiptap-ui/blockquote-button/blockquote-button.tsx
|
|
4567
4955
|
var import_react52 = require("react");
|
|
4568
|
-
var
|
|
4956
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
4569
4957
|
function BlockquoteShortcutBadge({
|
|
4570
4958
|
shortcutKeys = BLOCKQUOTE_SHORTCUT_KEY
|
|
4571
4959
|
}) {
|
|
4572
|
-
return /* @__PURE__ */ (0,
|
|
4960
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
4573
4961
|
}
|
|
4574
4962
|
var BlockquoteButton = (0, import_react52.forwardRef)(
|
|
4575
4963
|
({
|
|
@@ -4607,7 +4995,7 @@ var BlockquoteButton = (0, import_react52.forwardRef)(
|
|
|
4607
4995
|
if (!isVisible) {
|
|
4608
4996
|
return null;
|
|
4609
4997
|
}
|
|
4610
|
-
return /* @__PURE__ */ (0,
|
|
4998
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4611
4999
|
Button2,
|
|
4612
5000
|
{
|
|
4613
5001
|
type: "button",
|
|
@@ -4623,10 +5011,10 @@ var BlockquoteButton = (0, import_react52.forwardRef)(
|
|
|
4623
5011
|
onClick: handleClick,
|
|
4624
5012
|
...buttonProps,
|
|
4625
5013
|
ref,
|
|
4626
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
4627
|
-
/* @__PURE__ */ (0,
|
|
4628
|
-
text && /* @__PURE__ */ (0,
|
|
4629
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
5014
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
|
|
5015
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Icon, { className: "tiptap-button-icon" }),
|
|
5016
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
5017
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(BlockquoteShortcutBadge, { shortcutKeys })
|
|
4630
5018
|
] })
|
|
4631
5019
|
}
|
|
4632
5020
|
);
|
|
@@ -4636,13 +5024,13 @@ BlockquoteButton.displayName = "BlockquoteButton";
|
|
|
4636
5024
|
|
|
4637
5025
|
// src/components/tiptap-ui/blockquote-button/use-blockquote.ts
|
|
4638
5026
|
var import_react54 = require("react");
|
|
4639
|
-
var
|
|
5027
|
+
var import_state5 = require("@tiptap/pm/state");
|
|
4640
5028
|
|
|
4641
5029
|
// src/components/tiptap-icons/blockquote-icon.tsx
|
|
4642
5030
|
var import_react53 = require("react");
|
|
4643
|
-
var
|
|
5031
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
4644
5032
|
var BlockquoteIcon = (0, import_react53.memo)(({ className, ...props }) => {
|
|
4645
|
-
return /* @__PURE__ */ (0,
|
|
5033
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
4646
5034
|
"svg",
|
|
4647
5035
|
{
|
|
4648
5036
|
width: "24",
|
|
@@ -4653,7 +5041,7 @@ var BlockquoteIcon = (0, import_react53.memo)(({ className, ...props }) => {
|
|
|
4653
5041
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4654
5042
|
...props,
|
|
4655
5043
|
children: [
|
|
4656
|
-
/* @__PURE__ */ (0,
|
|
5044
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4657
5045
|
"path",
|
|
4658
5046
|
{
|
|
4659
5047
|
fillRule: "evenodd",
|
|
@@ -4662,7 +5050,7 @@ var BlockquoteIcon = (0, import_react53.memo)(({ className, ...props }) => {
|
|
|
4662
5050
|
fill: "currentColor"
|
|
4663
5051
|
}
|
|
4664
5052
|
),
|
|
4665
|
-
/* @__PURE__ */ (0,
|
|
5053
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4666
5054
|
"path",
|
|
4667
5055
|
{
|
|
4668
5056
|
fillRule: "evenodd",
|
|
@@ -4671,7 +5059,7 @@ var BlockquoteIcon = (0, import_react53.memo)(({ className, ...props }) => {
|
|
|
4671
5059
|
fill: "currentColor"
|
|
4672
5060
|
}
|
|
4673
5061
|
),
|
|
4674
|
-
/* @__PURE__ */ (0,
|
|
5062
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4675
5063
|
"path",
|
|
4676
5064
|
{
|
|
4677
5065
|
fillRule: "evenodd",
|
|
@@ -4680,7 +5068,7 @@ var BlockquoteIcon = (0, import_react53.memo)(({ className, ...props }) => {
|
|
|
4680
5068
|
fill: "currentColor"
|
|
4681
5069
|
}
|
|
4682
5070
|
),
|
|
4683
|
-
/* @__PURE__ */ (0,
|
|
5071
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4684
5072
|
"path",
|
|
4685
5073
|
{
|
|
4686
5074
|
fillRule: "evenodd",
|
|
@@ -4723,26 +5111,26 @@ function toggleBlockquote(editor) {
|
|
|
4723
5111
|
const view = editor.view;
|
|
4724
5112
|
let state = view.state;
|
|
4725
5113
|
let tr = state.tr;
|
|
4726
|
-
if (state.selection.empty || state.selection instanceof
|
|
5114
|
+
if (state.selection.empty || state.selection instanceof import_state5.TextSelection) {
|
|
4727
5115
|
const pos = findNodePosition({
|
|
4728
5116
|
editor,
|
|
4729
5117
|
node: state.selection.$anchor.node(1)
|
|
4730
5118
|
})?.pos;
|
|
4731
5119
|
if (!isValidPosition(pos)) return false;
|
|
4732
|
-
tr = tr.setSelection(
|
|
5120
|
+
tr = tr.setSelection(import_state5.NodeSelection.create(state.doc, pos));
|
|
4733
5121
|
view.dispatch(tr);
|
|
4734
5122
|
state = view.state;
|
|
4735
5123
|
}
|
|
4736
5124
|
const selection = state.selection;
|
|
4737
5125
|
let chain = editor.chain().focus();
|
|
4738
|
-
if (selection instanceof
|
|
5126
|
+
if (selection instanceof import_state5.NodeSelection) {
|
|
4739
5127
|
const firstChild = selection.node.firstChild?.firstChild;
|
|
4740
5128
|
const lastChild = selection.node.lastChild?.lastChild;
|
|
4741
5129
|
const from = firstChild ? selection.from + firstChild.nodeSize : selection.from + 1;
|
|
4742
5130
|
const to = lastChild ? selection.to - lastChild.nodeSize : selection.to - 1;
|
|
4743
5131
|
const resolvedFrom = state.doc.resolve(from);
|
|
4744
5132
|
const resolvedTo = state.doc.resolve(to);
|
|
4745
|
-
chain = chain.setTextSelection(
|
|
5133
|
+
chain = chain.setTextSelection(import_state5.TextSelection.between(resolvedFrom, resolvedTo)).clearNodes();
|
|
4746
5134
|
}
|
|
4747
5135
|
const toggle = editor.isActive("blockquote") ? chain.lift("blockquote") : chain.wrapIn("blockquote");
|
|
4748
5136
|
toggle.run();
|
|
@@ -4806,9 +5194,9 @@ var import_react59 = require("react");
|
|
|
4806
5194
|
|
|
4807
5195
|
// src/components/tiptap-icons/ban-icon.tsx
|
|
4808
5196
|
var import_react55 = require("react");
|
|
4809
|
-
var
|
|
5197
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
4810
5198
|
var BanIcon = (0, import_react55.memo)(({ className, ...props }) => {
|
|
4811
|
-
return /* @__PURE__ */ (0,
|
|
5199
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4812
5200
|
"svg",
|
|
4813
5201
|
{
|
|
4814
5202
|
width: "24",
|
|
@@ -4818,7 +5206,7 @@ var BanIcon = (0, import_react55.memo)(({ className, ...props }) => {
|
|
|
4818
5206
|
fill: "currentColor",
|
|
4819
5207
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4820
5208
|
...props,
|
|
4821
|
-
children: /* @__PURE__ */ (0,
|
|
5209
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4822
5210
|
"path",
|
|
4823
5211
|
{
|
|
4824
5212
|
fillRule: "evenodd",
|
|
@@ -4834,9 +5222,9 @@ BanIcon.displayName = "BanIcon";
|
|
|
4834
5222
|
|
|
4835
5223
|
// src/components/tiptap-icons/highlighter-icon.tsx
|
|
4836
5224
|
var import_react56 = require("react");
|
|
4837
|
-
var
|
|
5225
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
4838
5226
|
var HighlighterIcon = (0, import_react56.memo)(({ className, ...props }) => {
|
|
4839
|
-
return /* @__PURE__ */ (0,
|
|
5227
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
4840
5228
|
"svg",
|
|
4841
5229
|
{
|
|
4842
5230
|
width: "24",
|
|
@@ -4846,7 +5234,7 @@ var HighlighterIcon = (0, import_react56.memo)(({ className, ...props }) => {
|
|
|
4846
5234
|
fill: "currentColor",
|
|
4847
5235
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4848
5236
|
...props,
|
|
4849
|
-
children: /* @__PURE__ */ (0,
|
|
5237
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
4850
5238
|
"path",
|
|
4851
5239
|
{
|
|
4852
5240
|
fillRule: "evenodd",
|
|
@@ -4862,16 +5250,16 @@ HighlighterIcon.displayName = "HighlighterIcon";
|
|
|
4862
5250
|
|
|
4863
5251
|
// src/components/tiptap-ui-primitive/popover/popover.tsx
|
|
4864
5252
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
4865
|
-
var
|
|
5253
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4866
5254
|
function Popover({
|
|
4867
5255
|
...props
|
|
4868
5256
|
}) {
|
|
4869
|
-
return /* @__PURE__ */ (0,
|
|
5257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PopoverPrimitive.Root, { ...props });
|
|
4870
5258
|
}
|
|
4871
5259
|
function PopoverTrigger({
|
|
4872
5260
|
...props
|
|
4873
5261
|
}) {
|
|
4874
|
-
return /* @__PURE__ */ (0,
|
|
5262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PopoverPrimitive.Trigger, { ...props });
|
|
4875
5263
|
}
|
|
4876
5264
|
function PopoverContent({
|
|
4877
5265
|
className,
|
|
@@ -4879,7 +5267,7 @@ function PopoverContent({
|
|
|
4879
5267
|
sideOffset = 4,
|
|
4880
5268
|
...props
|
|
4881
5269
|
}) {
|
|
4882
|
-
return /* @__PURE__ */ (0,
|
|
5270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4883
5271
|
PopoverPrimitive.Content,
|
|
4884
5272
|
{
|
|
4885
5273
|
align,
|
|
@@ -4892,11 +5280,11 @@ function PopoverContent({
|
|
|
4892
5280
|
|
|
4893
5281
|
// src/components/tiptap-ui/color-highlight-button/color-highlight-button.tsx
|
|
4894
5282
|
var import_react57 = require("react");
|
|
4895
|
-
var
|
|
5283
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
4896
5284
|
function ColorHighlightShortcutBadge({
|
|
4897
5285
|
shortcutKeys = COLOR_HIGHLIGHT_SHORTCUT_KEY
|
|
4898
5286
|
}) {
|
|
4899
|
-
return /* @__PURE__ */ (0,
|
|
5287
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
4900
5288
|
}
|
|
4901
5289
|
var ColorHighlightButton = (0, import_react57.forwardRef)(
|
|
4902
5290
|
({
|
|
@@ -4946,7 +5334,7 @@ var ColorHighlightButton = (0, import_react57.forwardRef)(
|
|
|
4946
5334
|
if (!isVisible) {
|
|
4947
5335
|
return null;
|
|
4948
5336
|
}
|
|
4949
|
-
return /* @__PURE__ */ (0,
|
|
5337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
4950
5338
|
Button2,
|
|
4951
5339
|
{
|
|
4952
5340
|
type: "button",
|
|
@@ -4963,16 +5351,16 @@ var ColorHighlightButton = (0, import_react57.forwardRef)(
|
|
|
4963
5351
|
style: buttonStyle,
|
|
4964
5352
|
...buttonProps,
|
|
4965
5353
|
ref,
|
|
4966
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
4967
|
-
/* @__PURE__ */ (0,
|
|
5354
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
|
|
5355
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
4968
5356
|
"span",
|
|
4969
5357
|
{
|
|
4970
5358
|
className: "tiptap-button-highlight",
|
|
4971
5359
|
style: { "--highlight-color": highlightColor }
|
|
4972
5360
|
}
|
|
4973
5361
|
),
|
|
4974
|
-
text && /* @__PURE__ */ (0,
|
|
4975
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
5362
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
5363
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ColorHighlightShortcutBadge, { shortcutKeys })
|
|
4976
5364
|
] })
|
|
4977
5365
|
}
|
|
4978
5366
|
);
|
|
@@ -5187,8 +5575,8 @@ function useColorHighlight(config) {
|
|
|
5187
5575
|
}
|
|
5188
5576
|
|
|
5189
5577
|
// src/components/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx
|
|
5190
|
-
var
|
|
5191
|
-
var ColorHighlightPopoverButton = (0, import_react59.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
5578
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
5579
|
+
var ColorHighlightPopoverButton = (0, import_react59.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
5192
5580
|
Button2,
|
|
5193
5581
|
{
|
|
5194
5582
|
type: "button",
|
|
@@ -5201,7 +5589,7 @@ var ColorHighlightPopoverButton = (0, import_react59.forwardRef)(({ className, c
|
|
|
5201
5589
|
tooltip: "Highlight",
|
|
5202
5590
|
ref,
|
|
5203
5591
|
...props,
|
|
5204
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
5592
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(HighlighterIcon, { className: "tiptap-button-icon" })
|
|
5205
5593
|
}
|
|
5206
5594
|
));
|
|
5207
5595
|
ColorHighlightPopoverButton.displayName = "ColorHighlightPopoverButton";
|
|
@@ -5237,14 +5625,14 @@ function ColorHighlightPopoverContent({
|
|
|
5237
5625
|
},
|
|
5238
5626
|
autoSelectFirstItem: false
|
|
5239
5627
|
});
|
|
5240
|
-
return /* @__PURE__ */ (0,
|
|
5628
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
5241
5629
|
Card,
|
|
5242
5630
|
{
|
|
5243
5631
|
ref: containerRef,
|
|
5244
5632
|
tabIndex: 0,
|
|
5245
5633
|
style: isMobile ? { boxShadow: "none", border: 0 } : {},
|
|
5246
|
-
children: /* @__PURE__ */ (0,
|
|
5247
|
-
/* @__PURE__ */ (0,
|
|
5634
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(CardBody, { style: isMobile ? { padding: 0 } : {}, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(CardItemGroup, { orientation: "horizontal", children: [
|
|
5635
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ButtonGroup, { orientation: "horizontal", children: colors.map((color, index) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
5248
5636
|
ColorHighlightButton,
|
|
5249
5637
|
{
|
|
5250
5638
|
editor,
|
|
@@ -5256,8 +5644,8 @@ function ColorHighlightPopoverContent({
|
|
|
5256
5644
|
},
|
|
5257
5645
|
color.value
|
|
5258
5646
|
)) }),
|
|
5259
|
-
/* @__PURE__ */ (0,
|
|
5260
|
-
/* @__PURE__ */ (0,
|
|
5647
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Separator2, {}),
|
|
5648
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ButtonGroup, { orientation: "horizontal", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
5261
5649
|
Button2,
|
|
5262
5650
|
{
|
|
5263
5651
|
onClick: handleRemoveHighlight,
|
|
@@ -5268,7 +5656,7 @@ function ColorHighlightPopoverContent({
|
|
|
5268
5656
|
role: "menuitem",
|
|
5269
5657
|
"data-style": "ghost",
|
|
5270
5658
|
"data-highlighted": selectedIndex === colors.length,
|
|
5271
|
-
children: /* @__PURE__ */ (0,
|
|
5659
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(BanIcon, { className: "tiptap-button-icon" })
|
|
5272
5660
|
}
|
|
5273
5661
|
) })
|
|
5274
5662
|
] }) })
|
|
@@ -5281,9 +5669,9 @@ var import_react64 = require("react");
|
|
|
5281
5669
|
|
|
5282
5670
|
// src/components/tiptap-icons/corner-down-left-icon.tsx
|
|
5283
5671
|
var import_react60 = require("react");
|
|
5284
|
-
var
|
|
5672
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
5285
5673
|
var CornerDownLeftIcon = (0, import_react60.memo)(({ className, ...props }) => {
|
|
5286
|
-
return /* @__PURE__ */ (0,
|
|
5674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5287
5675
|
"svg",
|
|
5288
5676
|
{
|
|
5289
5677
|
width: "24",
|
|
@@ -5293,7 +5681,7 @@ var CornerDownLeftIcon = (0, import_react60.memo)(({ className, ...props }) => {
|
|
|
5293
5681
|
fill: "currentColor",
|
|
5294
5682
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5295
5683
|
...props,
|
|
5296
|
-
children: /* @__PURE__ */ (0,
|
|
5684
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
5297
5685
|
"path",
|
|
5298
5686
|
{
|
|
5299
5687
|
fillRule: "evenodd",
|
|
@@ -5309,9 +5697,9 @@ CornerDownLeftIcon.displayName = "CornerDownLeftIcon";
|
|
|
5309
5697
|
|
|
5310
5698
|
// src/components/tiptap-icons/external-link-icon.tsx
|
|
5311
5699
|
var import_react61 = require("react");
|
|
5312
|
-
var
|
|
5700
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
5313
5701
|
var ExternalLinkIcon = (0, import_react61.memo)(({ className, ...props }) => {
|
|
5314
|
-
return /* @__PURE__ */ (0,
|
|
5702
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
5315
5703
|
"svg",
|
|
5316
5704
|
{
|
|
5317
5705
|
width: "24",
|
|
@@ -5322,14 +5710,14 @@ var ExternalLinkIcon = (0, import_react61.memo)(({ className, ...props }) => {
|
|
|
5322
5710
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5323
5711
|
...props,
|
|
5324
5712
|
children: [
|
|
5325
|
-
/* @__PURE__ */ (0,
|
|
5713
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
5326
5714
|
"path",
|
|
5327
5715
|
{
|
|
5328
5716
|
d: "M14 3C14 2.44772 14.4477 2 15 2H21C21.5523 2 22 2.44772 22 3V9C22 9.55228 21.5523 10 21 10C20.4477 10 20 9.55228 20 9V5.41421L10.7071 14.7071C10.3166 15.0976 9.68342 15.0976 9.29289 14.7071C8.90237 14.3166 8.90237 13.6834 9.29289 13.2929L18.5858 4H15C14.4477 4 14 3.55228 14 3Z",
|
|
5329
5717
|
fill: "currentColor"
|
|
5330
5718
|
}
|
|
5331
5719
|
),
|
|
5332
|
-
/* @__PURE__ */ (0,
|
|
5720
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
5333
5721
|
"path",
|
|
5334
5722
|
{
|
|
5335
5723
|
d: "M4.29289 7.29289C4.48043 7.10536 4.73478 7 5 7H11C11.5523 7 12 6.55228 12 6C12 5.44772 11.5523 5 11 5H5C4.20435 5 3.44129 5.31607 2.87868 5.87868C2.31607 6.44129 2 7.20435 2 8V19C2 19.7957 2.31607 20.5587 2.87868 21.1213C3.44129 21.6839 4.20435 22 5 22H16C16.7957 22 17.5587 21.6839 18.1213 21.1213C18.6839 20.5587 19 19.7957 19 19V13C19 12.4477 18.5523 12 18 12C17.4477 12 17 12.4477 17 13V19C17 19.2652 16.8946 19.5196 16.7071 19.7071C16.5196 19.8946 16.2652 20 16 20H5C4.73478 20 4.48043 19.8946 4.29289 19.7071C4.10536 19.5196 4 19.2652 4 19V8C4 7.73478 4.10536 7.48043 4.29289 7.29289Z",
|
|
@@ -5344,9 +5732,9 @@ ExternalLinkIcon.displayName = "ExternalLinkIcon";
|
|
|
5344
5732
|
|
|
5345
5733
|
// src/components/tiptap-icons/link-icon.tsx
|
|
5346
5734
|
var import_react62 = require("react");
|
|
5347
|
-
var
|
|
5735
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
5348
5736
|
var LinkIcon = (0, import_react62.memo)(({ className, ...props }) => {
|
|
5349
|
-
return /* @__PURE__ */ (0,
|
|
5737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
5350
5738
|
"svg",
|
|
5351
5739
|
{
|
|
5352
5740
|
width: "24",
|
|
@@ -5357,14 +5745,14 @@ var LinkIcon = (0, import_react62.memo)(({ className, ...props }) => {
|
|
|
5357
5745
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5358
5746
|
...props,
|
|
5359
5747
|
children: [
|
|
5360
|
-
/* @__PURE__ */ (0,
|
|
5748
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5361
5749
|
"path",
|
|
5362
5750
|
{
|
|
5363
5751
|
d: "M16.9958 1.06669C15.4226 1.05302 13.907 1.65779 12.7753 2.75074L12.765 2.76086L11.045 4.47086C10.6534 4.86024 10.6515 5.49341 11.0409 5.88507C11.4303 6.27673 12.0634 6.27858 12.4551 5.88919L14.1697 4.18456C14.9236 3.45893 15.9319 3.05752 16.9784 3.06662C18.0272 3.07573 19.0304 3.49641 19.772 4.23804C20.5137 4.97967 20.9344 5.98292 20.9435 7.03171C20.9526 8.07776 20.5515 9.08563 19.8265 9.83941L16.833 12.8329C16.4274 13.2386 15.9393 13.5524 15.4019 13.7529C14.8645 13.9533 14.2903 14.0359 13.7181 13.9949C13.146 13.9539 12.5894 13.7904 12.0861 13.5154C11.5827 13.2404 11.1444 12.8604 10.8008 12.401C10.47 11.9588 9.84333 11.8685 9.40108 12.1993C8.95883 12.5301 8.86849 13.1568 9.1993 13.599C9.71464 14.288 10.3721 14.858 11.1272 15.2705C11.8822 15.683 12.7171 15.9283 13.5753 15.9898C14.4334 16.0513 15.2948 15.9274 16.1009 15.6267C16.907 15.326 17.639 14.8555 18.2473 14.247L21.2472 11.2471L21.2593 11.2347C22.3523 10.1031 22.9571 8.58751 22.9434 7.01433C22.9297 5.44115 22.2987 3.93628 21.1863 2.82383C20.0738 1.71138 18.5689 1.08036 16.9958 1.06669Z",
|
|
5364
5752
|
fill: "currentColor"
|
|
5365
5753
|
}
|
|
5366
5754
|
),
|
|
5367
|
-
/* @__PURE__ */ (0,
|
|
5755
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
5368
5756
|
"path",
|
|
5369
5757
|
{
|
|
5370
5758
|
d: "M10.4247 8.0102C9.56657 7.94874 8.70522 8.07256 7.89911 8.37326C7.09305 8.67395 6.36096 9.14458 5.75272 9.753L2.75285 12.7529L2.74067 12.7653C1.64772 13.8969 1.04295 15.4125 1.05662 16.9857C1.07029 18.5589 1.70131 20.0637 2.81376 21.1762C3.9262 22.2886 5.43108 22.9196 7.00426 22.9333C8.57744 22.947 10.0931 22.3422 11.2247 21.2493L11.2371 21.2371L12.9471 19.5271C13.3376 19.1366 13.3376 18.5034 12.9471 18.1129C12.5565 17.7223 11.9234 17.7223 11.5328 18.1129L9.82932 19.8164C9.07555 20.5414 8.06768 20.9425 7.02164 20.9334C5.97285 20.9243 4.9696 20.5036 4.22797 19.762C3.48634 19.0203 3.06566 18.0171 3.05655 16.9683C3.04746 15.9222 3.44851 14.9144 4.17355 14.1606L7.16719 11.167C7.5727 10.7613 8.06071 10.4476 8.59811 10.2471C9.13552 10.0467 9.70976 9.96412 10.2819 10.0051C10.854 10.0461 11.4106 10.2096 11.9139 10.4846C12.4173 10.7596 12.8556 11.1397 13.1992 11.599C13.53 12.0412 14.1567 12.1316 14.5989 11.8007C15.0412 11.4699 15.1315 10.8433 14.8007 10.401C14.2854 9.71205 13.6279 9.14198 12.8729 8.72948C12.1178 8.31697 11.2829 8.07166 10.4247 8.0102Z",
|
|
@@ -5379,9 +5767,9 @@ LinkIcon.displayName = "LinkIcon";
|
|
|
5379
5767
|
|
|
5380
5768
|
// src/components/tiptap-icons/trash-icon.tsx
|
|
5381
5769
|
var import_react63 = require("react");
|
|
5382
|
-
var
|
|
5770
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
5383
5771
|
var TrashIcon = (0, import_react63.memo)(({ className, ...props }) => {
|
|
5384
|
-
return /* @__PURE__ */ (0,
|
|
5772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5385
5773
|
"svg",
|
|
5386
5774
|
{
|
|
5387
5775
|
width: "24",
|
|
@@ -5391,7 +5779,7 @@ var TrashIcon = (0, import_react63.memo)(({ className, ...props }) => {
|
|
|
5391
5779
|
fill: "currentColor",
|
|
5392
5780
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5393
5781
|
...props,
|
|
5394
|
-
children: /* @__PURE__ */ (0,
|
|
5782
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
5395
5783
|
"path",
|
|
5396
5784
|
{
|
|
5397
5785
|
fillRule: "evenodd",
|
|
@@ -5406,23 +5794,23 @@ var TrashIcon = (0, import_react63.memo)(({ className, ...props }) => {
|
|
|
5406
5794
|
TrashIcon.displayName = "TrashIcon";
|
|
5407
5795
|
|
|
5408
5796
|
// src/components/tiptap-ui-primitive/input/input.tsx
|
|
5409
|
-
var
|
|
5797
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
5410
5798
|
function Input({ className, type, ...props }) {
|
|
5411
|
-
return /* @__PURE__ */ (0,
|
|
5799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("input", { type, className: cn2("tiptap-input", className), ...props });
|
|
5412
5800
|
}
|
|
5413
5801
|
function InputGroup({
|
|
5414
5802
|
className,
|
|
5415
5803
|
children,
|
|
5416
5804
|
...props
|
|
5417
5805
|
}) {
|
|
5418
|
-
return /* @__PURE__ */ (0,
|
|
5806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn2("tiptap-input-group", className), ...props, children });
|
|
5419
5807
|
}
|
|
5420
5808
|
|
|
5421
5809
|
// src/components/tiptap-ui/link-popover/link-popover.tsx
|
|
5422
|
-
var
|
|
5810
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
5423
5811
|
var LinkButton = (0, import_react64.forwardRef)(
|
|
5424
5812
|
({ className, children, ...props }, ref) => {
|
|
5425
|
-
return /* @__PURE__ */ (0,
|
|
5813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5426
5814
|
Button2,
|
|
5427
5815
|
{
|
|
5428
5816
|
type: "button",
|
|
@@ -5434,7 +5822,7 @@ var LinkButton = (0, import_react64.forwardRef)(
|
|
|
5434
5822
|
tooltip: "Link",
|
|
5435
5823
|
ref,
|
|
5436
5824
|
...props,
|
|
5437
|
-
children: children || /* @__PURE__ */ (0,
|
|
5825
|
+
children: children || /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(LinkIcon, { className: "tiptap-button-icon" })
|
|
5438
5826
|
}
|
|
5439
5827
|
);
|
|
5440
5828
|
}
|
|
@@ -5455,20 +5843,20 @@ var LinkMain = ({
|
|
|
5455
5843
|
setLink();
|
|
5456
5844
|
}
|
|
5457
5845
|
};
|
|
5458
|
-
return /* @__PURE__ */ (0,
|
|
5846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5459
5847
|
Card,
|
|
5460
5848
|
{
|
|
5461
5849
|
style: {
|
|
5462
5850
|
...isMobile ? { boxShadow: "none", border: 0 } : {}
|
|
5463
5851
|
},
|
|
5464
|
-
children: /* @__PURE__ */ (0,
|
|
5852
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5465
5853
|
CardBody,
|
|
5466
5854
|
{
|
|
5467
5855
|
style: {
|
|
5468
5856
|
...isMobile ? { padding: 0 } : {}
|
|
5469
5857
|
},
|
|
5470
|
-
children: /* @__PURE__ */ (0,
|
|
5471
|
-
/* @__PURE__ */ (0,
|
|
5858
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(CardItemGroup, { orientation: "horizontal", children: [
|
|
5859
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(InputGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5472
5860
|
Input,
|
|
5473
5861
|
{
|
|
5474
5862
|
type: "url",
|
|
@@ -5482,7 +5870,7 @@ var LinkMain = ({
|
|
|
5482
5870
|
autoCapitalize: "off"
|
|
5483
5871
|
}
|
|
5484
5872
|
) }),
|
|
5485
|
-
/* @__PURE__ */ (0,
|
|
5873
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ButtonGroup, { orientation: "horizontal", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5486
5874
|
Button2,
|
|
5487
5875
|
{
|
|
5488
5876
|
type: "button",
|
|
@@ -5490,12 +5878,12 @@ var LinkMain = ({
|
|
|
5490
5878
|
title: "Apply link",
|
|
5491
5879
|
disabled: !url && !isActive,
|
|
5492
5880
|
"data-style": "ghost",
|
|
5493
|
-
children: /* @__PURE__ */ (0,
|
|
5881
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(CornerDownLeftIcon, { className: "tiptap-button-icon" })
|
|
5494
5882
|
}
|
|
5495
5883
|
) }),
|
|
5496
|
-
/* @__PURE__ */ (0,
|
|
5497
|
-
/* @__PURE__ */ (0,
|
|
5498
|
-
/* @__PURE__ */ (0,
|
|
5884
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Separator2, {}),
|
|
5885
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ButtonGroup, { orientation: "horizontal", children: [
|
|
5886
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5499
5887
|
Button2,
|
|
5500
5888
|
{
|
|
5501
5889
|
type: "button",
|
|
@@ -5503,10 +5891,10 @@ var LinkMain = ({
|
|
|
5503
5891
|
title: "Open in new window",
|
|
5504
5892
|
disabled: !url && !isActive,
|
|
5505
5893
|
"data-style": "ghost",
|
|
5506
|
-
children: /* @__PURE__ */ (0,
|
|
5894
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ExternalLinkIcon, { className: "tiptap-button-icon" })
|
|
5507
5895
|
}
|
|
5508
5896
|
),
|
|
5509
|
-
/* @__PURE__ */ (0,
|
|
5897
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5510
5898
|
Button2,
|
|
5511
5899
|
{
|
|
5512
5900
|
type: "button",
|
|
@@ -5514,7 +5902,7 @@ var LinkMain = ({
|
|
|
5514
5902
|
title: "Remove link",
|
|
5515
5903
|
disabled: !url && !isActive,
|
|
5516
5904
|
"data-style": "ghost",
|
|
5517
|
-
children: /* @__PURE__ */ (0,
|
|
5905
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TrashIcon, { className: "tiptap-button-icon" })
|
|
5518
5906
|
}
|
|
5519
5907
|
)
|
|
5520
5908
|
] })
|
|
@@ -5528,7 +5916,7 @@ var LinkContent = ({ editor }) => {
|
|
|
5528
5916
|
const linkPopover = useLinkPopover({
|
|
5529
5917
|
editor
|
|
5530
5918
|
});
|
|
5531
|
-
return /* @__PURE__ */ (0,
|
|
5919
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(LinkMain, { ...linkPopover });
|
|
5532
5920
|
};
|
|
5533
5921
|
var LinkPopover = (0, import_react64.forwardRef)(
|
|
5534
5922
|
({
|
|
@@ -5586,8 +5974,8 @@ var LinkPopover = (0, import_react64.forwardRef)(
|
|
|
5586
5974
|
if (!isVisible) {
|
|
5587
5975
|
return null;
|
|
5588
5976
|
}
|
|
5589
|
-
return /* @__PURE__ */ (0,
|
|
5590
|
-
/* @__PURE__ */ (0,
|
|
5977
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Popover, { open: isOpen, onOpenChange: handleOnOpenChange, children: [
|
|
5978
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5591
5979
|
LinkButton,
|
|
5592
5980
|
{
|
|
5593
5981
|
disabled: !canSet,
|
|
@@ -5598,10 +5986,10 @@ var LinkPopover = (0, import_react64.forwardRef)(
|
|
|
5598
5986
|
onClick: handleClick,
|
|
5599
5987
|
...buttonProps,
|
|
5600
5988
|
ref,
|
|
5601
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
5989
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Icon, { className: "tiptap-button-icon" })
|
|
5602
5990
|
}
|
|
5603
5991
|
) }),
|
|
5604
|
-
/* @__PURE__ */ (0,
|
|
5992
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PopoverContent, { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
5605
5993
|
LinkMain,
|
|
5606
5994
|
{
|
|
5607
5995
|
url,
|
|
@@ -5750,12 +6138,12 @@ function useLinkPopover(config) {
|
|
|
5750
6138
|
|
|
5751
6139
|
// src/components/tiptap-ui/mark-button/mark-button.tsx
|
|
5752
6140
|
var import_react66 = require("react");
|
|
5753
|
-
var
|
|
6141
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
5754
6142
|
function MarkShortcutBadge({
|
|
5755
6143
|
type,
|
|
5756
6144
|
shortcutKeys = MARK_SHORTCUT_KEYS[type]
|
|
5757
6145
|
}) {
|
|
5758
|
-
return /* @__PURE__ */ (0,
|
|
6146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
5759
6147
|
}
|
|
5760
6148
|
var MarkButton = (0, import_react66.forwardRef)(
|
|
5761
6149
|
({
|
|
@@ -5795,7 +6183,7 @@ var MarkButton = (0, import_react66.forwardRef)(
|
|
|
5795
6183
|
if (!isVisible) {
|
|
5796
6184
|
return null;
|
|
5797
6185
|
}
|
|
5798
|
-
return /* @__PURE__ */ (0,
|
|
6186
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
5799
6187
|
Button2,
|
|
5800
6188
|
{
|
|
5801
6189
|
type: "button",
|
|
@@ -5811,10 +6199,10 @@ var MarkButton = (0, import_react66.forwardRef)(
|
|
|
5811
6199
|
onClick: handleClick,
|
|
5812
6200
|
...buttonProps,
|
|
5813
6201
|
ref,
|
|
5814
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
5815
|
-
/* @__PURE__ */ (0,
|
|
5816
|
-
text && /* @__PURE__ */ (0,
|
|
5817
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
6202
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
6203
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { className: "tiptap-button-icon" }),
|
|
6204
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
6205
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(MarkShortcutBadge, { type, shortcutKeys })
|
|
5818
6206
|
] })
|
|
5819
6207
|
}
|
|
5820
6208
|
);
|
|
@@ -5827,9 +6215,9 @@ var import_react74 = require("react");
|
|
|
5827
6215
|
|
|
5828
6216
|
// src/components/tiptap-icons/bold-icon.tsx
|
|
5829
6217
|
var import_react67 = require("react");
|
|
5830
|
-
var
|
|
6218
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
5831
6219
|
var BoldIcon = (0, import_react67.memo)(({ className, ...props }) => {
|
|
5832
|
-
return /* @__PURE__ */ (0,
|
|
6220
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
5833
6221
|
"svg",
|
|
5834
6222
|
{
|
|
5835
6223
|
width: "24",
|
|
@@ -5839,7 +6227,7 @@ var BoldIcon = (0, import_react67.memo)(({ className, ...props }) => {
|
|
|
5839
6227
|
fill: "currentColor",
|
|
5840
6228
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5841
6229
|
...props,
|
|
5842
|
-
children: /* @__PURE__ */ (0,
|
|
6230
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
5843
6231
|
"path",
|
|
5844
6232
|
{
|
|
5845
6233
|
fillRule: "evenodd",
|
|
@@ -5855,9 +6243,9 @@ BoldIcon.displayName = "BoldIcon";
|
|
|
5855
6243
|
|
|
5856
6244
|
// src/components/tiptap-icons/code2-icon.tsx
|
|
5857
6245
|
var import_react68 = require("react");
|
|
5858
|
-
var
|
|
6246
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
5859
6247
|
var Code2Icon = (0, import_react68.memo)(({ className, ...props }) => {
|
|
5860
|
-
return /* @__PURE__ */ (0,
|
|
6248
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
5861
6249
|
"svg",
|
|
5862
6250
|
{
|
|
5863
6251
|
width: "24",
|
|
@@ -5868,21 +6256,21 @@ var Code2Icon = (0, import_react68.memo)(({ className, ...props }) => {
|
|
|
5868
6256
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5869
6257
|
...props,
|
|
5870
6258
|
children: [
|
|
5871
|
-
/* @__PURE__ */ (0,
|
|
6259
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
5872
6260
|
"path",
|
|
5873
6261
|
{
|
|
5874
6262
|
d: "M15.4545 4.2983C15.6192 3.77115 15.3254 3.21028 14.7983 3.04554C14.2712 2.88081 13.7103 3.1746 13.5455 3.70175L8.54554 19.7017C8.38081 20.2289 8.6746 20.7898 9.20175 20.9545C9.72889 21.1192 10.2898 20.8254 10.4545 20.2983L15.4545 4.2983Z",
|
|
5875
6263
|
fill: "currentColor"
|
|
5876
6264
|
}
|
|
5877
6265
|
),
|
|
5878
|
-
/* @__PURE__ */ (0,
|
|
6266
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
5879
6267
|
"path",
|
|
5880
6268
|
{
|
|
5881
6269
|
d: "M6.70711 7.29289C7.09763 7.68342 7.09763 8.31658 6.70711 8.70711L3.41421 12L6.70711 15.2929C7.09763 15.6834 7.09763 16.3166 6.70711 16.7071C6.31658 17.0976 5.68342 17.0976 5.29289 16.7071L1.29289 12.7071C0.902369 12.3166 0.902369 11.6834 1.29289 11.2929L5.29289 7.29289C5.68342 6.90237 6.31658 6.90237 6.70711 7.29289Z",
|
|
5882
6270
|
fill: "currentColor"
|
|
5883
6271
|
}
|
|
5884
6272
|
),
|
|
5885
|
-
/* @__PURE__ */ (0,
|
|
6273
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
5886
6274
|
"path",
|
|
5887
6275
|
{
|
|
5888
6276
|
d: "M17.2929 7.29289C17.6834 6.90237 18.3166 6.90237 18.7071 7.29289L22.7071 11.2929C23.0976 11.6834 23.0976 12.3166 22.7071 12.7071L18.7071 16.7071C18.3166 17.0976 17.6834 17.0976 17.2929 16.7071C16.9024 16.3166 16.9024 15.6834 17.2929 15.2929L20.5858 12L17.2929 8.70711C16.9024 8.31658 16.9024 7.68342 17.2929 7.29289Z",
|
|
@@ -5897,9 +6285,9 @@ Code2Icon.displayName = "Code2Icon";
|
|
|
5897
6285
|
|
|
5898
6286
|
// src/components/tiptap-icons/italic-icon.tsx
|
|
5899
6287
|
var import_react69 = require("react");
|
|
5900
|
-
var
|
|
6288
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
5901
6289
|
var ItalicIcon = (0, import_react69.memo)(({ className, ...props }) => {
|
|
5902
|
-
return /* @__PURE__ */ (0,
|
|
6290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5903
6291
|
"svg",
|
|
5904
6292
|
{
|
|
5905
6293
|
width: "24",
|
|
@@ -5909,7 +6297,7 @@ var ItalicIcon = (0, import_react69.memo)(({ className, ...props }) => {
|
|
|
5909
6297
|
fill: "currentColor",
|
|
5910
6298
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5911
6299
|
...props,
|
|
5912
|
-
children: /* @__PURE__ */ (0,
|
|
6300
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
5913
6301
|
"path",
|
|
5914
6302
|
{
|
|
5915
6303
|
d: "M15.0222 3H19C19.5523 3 20 3.44772 20 4C20 4.55228 19.5523 5 19 5H15.693L10.443 19H14C14.5523 19 15 19.4477 15 20C15 20.5523 14.5523 21 14 21H9.02418C9.00802 21.0004 8.99181 21.0004 8.97557 21H5C4.44772 21 4 20.5523 4 20C4 19.4477 4.44772 19 5 19H8.30704L13.557 5H10C9.44772 5 9 4.55228 9 4C9 3.44772 9.44772 3 10 3H14.9782C14.9928 2.99968 15.0075 2.99967 15.0222 3Z",
|
|
@@ -5923,9 +6311,9 @@ ItalicIcon.displayName = "ItalicIcon";
|
|
|
5923
6311
|
|
|
5924
6312
|
// src/components/tiptap-icons/strike-icon.tsx
|
|
5925
6313
|
var import_react70 = require("react");
|
|
5926
|
-
var
|
|
6314
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
5927
6315
|
var StrikeIcon = (0, import_react70.memo)(({ className, ...props }) => {
|
|
5928
|
-
return /* @__PURE__ */ (0,
|
|
6316
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
5929
6317
|
"svg",
|
|
5930
6318
|
{
|
|
5931
6319
|
width: "24",
|
|
@@ -5936,14 +6324,14 @@ var StrikeIcon = (0, import_react70.memo)(({ className, ...props }) => {
|
|
|
5936
6324
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5937
6325
|
...props,
|
|
5938
6326
|
children: [
|
|
5939
|
-
/* @__PURE__ */ (0,
|
|
6327
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
5940
6328
|
"path",
|
|
5941
6329
|
{
|
|
5942
6330
|
d: "M9.00039 3H16.0001C16.5524 3 17.0001 3.44772 17.0001 4C17.0001 4.55229 16.5524 5 16.0001 5H9.00011C8.68006 4.99983 8.36412 5.07648 8.07983 5.22349C7.79555 5.37051 7.55069 5.5836 7.36585 5.84487C7.181 6.10614 7.06155 6.40796 7.01754 6.72497C6.97352 7.04198 7.00623 7.36492 7.11292 7.66667C7.29701 8.18737 7.02414 8.75872 6.50344 8.94281C5.98274 9.1269 5.4114 8.85403 5.2273 8.33333C5.01393 7.72984 4.94851 7.08396 5.03654 6.44994C5.12456 5.81592 5.36346 5.21229 5.73316 4.68974C6.10285 4.1672 6.59256 3.74101 7.16113 3.44698C7.72955 3.15303 8.36047 2.99975 9.00039 3Z",
|
|
5943
6331
|
fill: "currentColor"
|
|
5944
6332
|
}
|
|
5945
6333
|
),
|
|
5946
|
-
/* @__PURE__ */ (0,
|
|
6334
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
5947
6335
|
"path",
|
|
5948
6336
|
{
|
|
5949
6337
|
d: "M18 13H20C20.5523 13 21 12.5523 21 12C21 11.4477 20.5523 11 20 11H4C3.44772 11 3 11.4477 3 12C3 12.5523 3.44772 13 4 13H14C14.7956 13 15.5587 13.3161 16.1213 13.8787C16.6839 14.4413 17 15.2044 17 16C17 16.7956 16.6839 17.5587 16.1213 18.1213C15.5587 18.6839 14.7956 19 14 19H6C5.44772 19 5 19.4477 5 20C5 20.5523 5.44772 21 6 21H14C15.3261 21 16.5979 20.4732 17.5355 19.5355C18.4732 18.5979 19 17.3261 19 16C19 14.9119 18.6453 13.8604 18 13Z",
|
|
@@ -5958,9 +6346,9 @@ StrikeIcon.displayName = "StrikeIcon";
|
|
|
5958
6346
|
|
|
5959
6347
|
// src/components/tiptap-icons/subscript-icon.tsx
|
|
5960
6348
|
var import_react71 = require("react");
|
|
5961
|
-
var
|
|
6349
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
5962
6350
|
var SubscriptIcon = (0, import_react71.memo)(({ className, ...props }) => {
|
|
5963
|
-
return /* @__PURE__ */ (0,
|
|
6351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
5964
6352
|
"svg",
|
|
5965
6353
|
{
|
|
5966
6354
|
width: "24",
|
|
@@ -5971,7 +6359,7 @@ var SubscriptIcon = (0, import_react71.memo)(({ className, ...props }) => {
|
|
|
5971
6359
|
xmlns: "http://www.w3.org/2000/svg",
|
|
5972
6360
|
...props,
|
|
5973
6361
|
children: [
|
|
5974
|
-
/* @__PURE__ */ (0,
|
|
6362
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
5975
6363
|
"path",
|
|
5976
6364
|
{
|
|
5977
6365
|
fillRule: "evenodd",
|
|
@@ -5980,7 +6368,7 @@ var SubscriptIcon = (0, import_react71.memo)(({ className, ...props }) => {
|
|
|
5980
6368
|
fill: "currentColor"
|
|
5981
6369
|
}
|
|
5982
6370
|
),
|
|
5983
|
-
/* @__PURE__ */ (0,
|
|
6371
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
5984
6372
|
"path",
|
|
5985
6373
|
{
|
|
5986
6374
|
fillRule: "evenodd",
|
|
@@ -5989,7 +6377,7 @@ var SubscriptIcon = (0, import_react71.memo)(({ className, ...props }) => {
|
|
|
5989
6377
|
fill: "currentColor"
|
|
5990
6378
|
}
|
|
5991
6379
|
),
|
|
5992
|
-
/* @__PURE__ */ (0,
|
|
6380
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
5993
6381
|
"path",
|
|
5994
6382
|
{
|
|
5995
6383
|
fillRule: "evenodd",
|
|
@@ -6006,9 +6394,9 @@ SubscriptIcon.displayName = "SubscriptIcon";
|
|
|
6006
6394
|
|
|
6007
6395
|
// src/components/tiptap-icons/superscript-icon.tsx
|
|
6008
6396
|
var import_react72 = require("react");
|
|
6009
|
-
var
|
|
6397
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
6010
6398
|
var SuperscriptIcon = (0, import_react72.memo)(({ className, ...props }) => {
|
|
6011
|
-
return /* @__PURE__ */ (0,
|
|
6399
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
6012
6400
|
"svg",
|
|
6013
6401
|
{
|
|
6014
6402
|
width: "24",
|
|
@@ -6019,7 +6407,7 @@ var SuperscriptIcon = (0, import_react72.memo)(({ className, ...props }) => {
|
|
|
6019
6407
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6020
6408
|
...props,
|
|
6021
6409
|
children: [
|
|
6022
|
-
/* @__PURE__ */ (0,
|
|
6410
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
6023
6411
|
"path",
|
|
6024
6412
|
{
|
|
6025
6413
|
fillRule: "evenodd",
|
|
@@ -6028,7 +6416,7 @@ var SuperscriptIcon = (0, import_react72.memo)(({ className, ...props }) => {
|
|
|
6028
6416
|
fill: "currentColor"
|
|
6029
6417
|
}
|
|
6030
6418
|
),
|
|
6031
|
-
/* @__PURE__ */ (0,
|
|
6419
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
6032
6420
|
"path",
|
|
6033
6421
|
{
|
|
6034
6422
|
fillRule: "evenodd",
|
|
@@ -6037,7 +6425,7 @@ var SuperscriptIcon = (0, import_react72.memo)(({ className, ...props }) => {
|
|
|
6037
6425
|
fill: "currentColor"
|
|
6038
6426
|
}
|
|
6039
6427
|
),
|
|
6040
|
-
/* @__PURE__ */ (0,
|
|
6428
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
6041
6429
|
"path",
|
|
6042
6430
|
{
|
|
6043
6431
|
fillRule: "evenodd",
|
|
@@ -6054,9 +6442,9 @@ SuperscriptIcon.displayName = "SuperscriptIcon";
|
|
|
6054
6442
|
|
|
6055
6443
|
// src/components/tiptap-icons/underline-icon.tsx
|
|
6056
6444
|
var import_react73 = require("react");
|
|
6057
|
-
var
|
|
6445
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
6058
6446
|
var UnderlineIcon = (0, import_react73.memo)(({ className, ...props }) => {
|
|
6059
|
-
return /* @__PURE__ */ (0,
|
|
6447
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
6060
6448
|
"svg",
|
|
6061
6449
|
{
|
|
6062
6450
|
width: "24",
|
|
@@ -6066,7 +6454,7 @@ var UnderlineIcon = (0, import_react73.memo)(({ className, ...props }) => {
|
|
|
6066
6454
|
fill: "currentColor",
|
|
6067
6455
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6068
6456
|
...props,
|
|
6069
|
-
children: /* @__PURE__ */ (0,
|
|
6457
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
6070
6458
|
"path",
|
|
6071
6459
|
{
|
|
6072
6460
|
fillRule: "evenodd",
|
|
@@ -6169,12 +6557,12 @@ function useMark(config) {
|
|
|
6169
6557
|
|
|
6170
6558
|
// src/components/tiptap-ui/text-align-button/text-align-button.tsx
|
|
6171
6559
|
var import_react75 = require("react");
|
|
6172
|
-
var
|
|
6560
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
6173
6561
|
function TextAlignShortcutBadge({
|
|
6174
6562
|
align,
|
|
6175
6563
|
shortcutKeys = TEXT_ALIGN_SHORTCUT_KEYS[align]
|
|
6176
6564
|
}) {
|
|
6177
|
-
return /* @__PURE__ */ (0,
|
|
6565
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
6178
6566
|
}
|
|
6179
6567
|
var TextAlignButton = (0, import_react75.forwardRef)(
|
|
6180
6568
|
({
|
|
@@ -6216,7 +6604,7 @@ var TextAlignButton = (0, import_react75.forwardRef)(
|
|
|
6216
6604
|
return null;
|
|
6217
6605
|
}
|
|
6218
6606
|
const RenderIcon = CustomIcon ?? Icon;
|
|
6219
|
-
return /* @__PURE__ */ (0,
|
|
6607
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
6220
6608
|
Button2,
|
|
6221
6609
|
{
|
|
6222
6610
|
type: "button",
|
|
@@ -6232,10 +6620,10 @@ var TextAlignButton = (0, import_react75.forwardRef)(
|
|
|
6232
6620
|
onClick: handleClick,
|
|
6233
6621
|
...buttonProps,
|
|
6234
6622
|
ref,
|
|
6235
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
6236
|
-
/* @__PURE__ */ (0,
|
|
6237
|
-
text && /* @__PURE__ */ (0,
|
|
6238
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
6623
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
|
|
6624
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(RenderIcon, { className: "tiptap-button-icon" }),
|
|
6625
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
6626
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
6239
6627
|
TextAlignShortcutBadge,
|
|
6240
6628
|
{
|
|
6241
6629
|
align,
|
|
@@ -6254,9 +6642,9 @@ var import_react80 = require("react");
|
|
|
6254
6642
|
|
|
6255
6643
|
// src/components/tiptap-icons/align-center-icon.tsx
|
|
6256
6644
|
var import_react76 = require("react");
|
|
6257
|
-
var
|
|
6645
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
6258
6646
|
var AlignCenterIcon = (0, import_react76.memo)(({ className, ...props }) => {
|
|
6259
|
-
return /* @__PURE__ */ (0,
|
|
6647
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
6260
6648
|
"svg",
|
|
6261
6649
|
{
|
|
6262
6650
|
width: "24",
|
|
@@ -6267,7 +6655,7 @@ var AlignCenterIcon = (0, import_react76.memo)(({ className, ...props }) => {
|
|
|
6267
6655
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6268
6656
|
...props,
|
|
6269
6657
|
children: [
|
|
6270
|
-
/* @__PURE__ */ (0,
|
|
6658
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
6271
6659
|
"path",
|
|
6272
6660
|
{
|
|
6273
6661
|
fillRule: "evenodd",
|
|
@@ -6276,7 +6664,7 @@ var AlignCenterIcon = (0, import_react76.memo)(({ className, ...props }) => {
|
|
|
6276
6664
|
fill: "currentColor"
|
|
6277
6665
|
}
|
|
6278
6666
|
),
|
|
6279
|
-
/* @__PURE__ */ (0,
|
|
6667
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
6280
6668
|
"path",
|
|
6281
6669
|
{
|
|
6282
6670
|
fillRule: "evenodd",
|
|
@@ -6285,7 +6673,7 @@ var AlignCenterIcon = (0, import_react76.memo)(({ className, ...props }) => {
|
|
|
6285
6673
|
fill: "currentColor"
|
|
6286
6674
|
}
|
|
6287
6675
|
),
|
|
6288
|
-
/* @__PURE__ */ (0,
|
|
6676
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
6289
6677
|
"path",
|
|
6290
6678
|
{
|
|
6291
6679
|
fillRule: "evenodd",
|
|
@@ -6302,9 +6690,9 @@ AlignCenterIcon.displayName = "AlignCenterIcon";
|
|
|
6302
6690
|
|
|
6303
6691
|
// src/components/tiptap-icons/align-justify-icon.tsx
|
|
6304
6692
|
var import_react77 = require("react");
|
|
6305
|
-
var
|
|
6693
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
6306
6694
|
var AlignJustifyIcon = (0, import_react77.memo)(({ className, ...props }) => {
|
|
6307
|
-
return /* @__PURE__ */ (0,
|
|
6695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
6308
6696
|
"svg",
|
|
6309
6697
|
{
|
|
6310
6698
|
width: "24",
|
|
@@ -6315,7 +6703,7 @@ var AlignJustifyIcon = (0, import_react77.memo)(({ className, ...props }) => {
|
|
|
6315
6703
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6316
6704
|
...props,
|
|
6317
6705
|
children: [
|
|
6318
|
-
/* @__PURE__ */ (0,
|
|
6706
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
6319
6707
|
"path",
|
|
6320
6708
|
{
|
|
6321
6709
|
fillRule: "evenodd",
|
|
@@ -6324,7 +6712,7 @@ var AlignJustifyIcon = (0, import_react77.memo)(({ className, ...props }) => {
|
|
|
6324
6712
|
fill: "currentColor"
|
|
6325
6713
|
}
|
|
6326
6714
|
),
|
|
6327
|
-
/* @__PURE__ */ (0,
|
|
6715
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
6328
6716
|
"path",
|
|
6329
6717
|
{
|
|
6330
6718
|
fillRule: "evenodd",
|
|
@@ -6333,7 +6721,7 @@ var AlignJustifyIcon = (0, import_react77.memo)(({ className, ...props }) => {
|
|
|
6333
6721
|
fill: "currentColor"
|
|
6334
6722
|
}
|
|
6335
6723
|
),
|
|
6336
|
-
/* @__PURE__ */ (0,
|
|
6724
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
6337
6725
|
"path",
|
|
6338
6726
|
{
|
|
6339
6727
|
fillRule: "evenodd",
|
|
@@ -6350,9 +6738,9 @@ AlignJustifyIcon.displayName = "AlignJustifyIcon";
|
|
|
6350
6738
|
|
|
6351
6739
|
// src/components/tiptap-icons/align-left-icon.tsx
|
|
6352
6740
|
var import_react78 = require("react");
|
|
6353
|
-
var
|
|
6741
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
6354
6742
|
var AlignLeftIcon = (0, import_react78.memo)(({ className, ...props }) => {
|
|
6355
|
-
return /* @__PURE__ */ (0,
|
|
6743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
6356
6744
|
"svg",
|
|
6357
6745
|
{
|
|
6358
6746
|
width: "24",
|
|
@@ -6363,7 +6751,7 @@ var AlignLeftIcon = (0, import_react78.memo)(({ className, ...props }) => {
|
|
|
6363
6751
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6364
6752
|
...props,
|
|
6365
6753
|
children: [
|
|
6366
|
-
/* @__PURE__ */ (0,
|
|
6754
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
6367
6755
|
"path",
|
|
6368
6756
|
{
|
|
6369
6757
|
fillRule: "evenodd",
|
|
@@ -6372,7 +6760,7 @@ var AlignLeftIcon = (0, import_react78.memo)(({ className, ...props }) => {
|
|
|
6372
6760
|
fill: "currentColor"
|
|
6373
6761
|
}
|
|
6374
6762
|
),
|
|
6375
|
-
/* @__PURE__ */ (0,
|
|
6763
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
6376
6764
|
"path",
|
|
6377
6765
|
{
|
|
6378
6766
|
fillRule: "evenodd",
|
|
@@ -6381,7 +6769,7 @@ var AlignLeftIcon = (0, import_react78.memo)(({ className, ...props }) => {
|
|
|
6381
6769
|
fill: "currentColor"
|
|
6382
6770
|
}
|
|
6383
6771
|
),
|
|
6384
|
-
/* @__PURE__ */ (0,
|
|
6772
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
6385
6773
|
"path",
|
|
6386
6774
|
{
|
|
6387
6775
|
fillRule: "evenodd",
|
|
@@ -6398,9 +6786,9 @@ AlignLeftIcon.displayName = "AlignLeftIcon";
|
|
|
6398
6786
|
|
|
6399
6787
|
// src/components/tiptap-icons/align-right-icon.tsx
|
|
6400
6788
|
var import_react79 = require("react");
|
|
6401
|
-
var
|
|
6789
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
6402
6790
|
var AlignRightIcon = (0, import_react79.memo)(({ className, ...props }) => {
|
|
6403
|
-
return /* @__PURE__ */ (0,
|
|
6791
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
6404
6792
|
"svg",
|
|
6405
6793
|
{
|
|
6406
6794
|
width: "24",
|
|
@@ -6411,7 +6799,7 @@ var AlignRightIcon = (0, import_react79.memo)(({ className, ...props }) => {
|
|
|
6411
6799
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6412
6800
|
...props,
|
|
6413
6801
|
children: [
|
|
6414
|
-
/* @__PURE__ */ (0,
|
|
6802
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
6415
6803
|
"path",
|
|
6416
6804
|
{
|
|
6417
6805
|
fillRule: "evenodd",
|
|
@@ -6420,7 +6808,7 @@ var AlignRightIcon = (0, import_react79.memo)(({ className, ...props }) => {
|
|
|
6420
6808
|
fill: "currentColor"
|
|
6421
6809
|
}
|
|
6422
6810
|
),
|
|
6423
|
-
/* @__PURE__ */ (0,
|
|
6811
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
6424
6812
|
"path",
|
|
6425
6813
|
{
|
|
6426
6814
|
fillRule: "evenodd",
|
|
@@ -6429,7 +6817,7 @@ var AlignRightIcon = (0, import_react79.memo)(({ className, ...props }) => {
|
|
|
6429
6817
|
fill: "currentColor"
|
|
6430
6818
|
}
|
|
6431
6819
|
),
|
|
6432
|
-
/* @__PURE__ */ (0,
|
|
6820
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
6433
6821
|
"path",
|
|
6434
6822
|
{
|
|
6435
6823
|
fillRule: "evenodd",
|
|
@@ -6537,12 +6925,12 @@ function useTextAlign(config) {
|
|
|
6537
6925
|
|
|
6538
6926
|
// src/components/tiptap-ui/undo-redo-button/undo-redo-button.tsx
|
|
6539
6927
|
var import_react81 = require("react");
|
|
6540
|
-
var
|
|
6928
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
6541
6929
|
function HistoryShortcutBadge({
|
|
6542
6930
|
action,
|
|
6543
6931
|
shortcutKeys = UNDO_REDO_SHORTCUT_KEYS[action]
|
|
6544
6932
|
}) {
|
|
6545
|
-
return /* @__PURE__ */ (0,
|
|
6933
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Badge, { children: parseShortcutKeys({ shortcutKeys }) });
|
|
6546
6934
|
}
|
|
6547
6935
|
var UndoRedoButton = (0, import_react81.forwardRef)(
|
|
6548
6936
|
({
|
|
@@ -6574,7 +6962,7 @@ var UndoRedoButton = (0, import_react81.forwardRef)(
|
|
|
6574
6962
|
if (!isVisible) {
|
|
6575
6963
|
return null;
|
|
6576
6964
|
}
|
|
6577
|
-
return /* @__PURE__ */ (0,
|
|
6965
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
6578
6966
|
Button2,
|
|
6579
6967
|
{
|
|
6580
6968
|
type: "button",
|
|
@@ -6588,10 +6976,10 @@ var UndoRedoButton = (0, import_react81.forwardRef)(
|
|
|
6588
6976
|
onClick: handleClick,
|
|
6589
6977
|
...buttonProps,
|
|
6590
6978
|
ref,
|
|
6591
|
-
children: children ?? /* @__PURE__ */ (0,
|
|
6592
|
-
/* @__PURE__ */ (0,
|
|
6593
|
-
text && /* @__PURE__ */ (0,
|
|
6594
|
-
showShortcut && /* @__PURE__ */ (0,
|
|
6979
|
+
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_jsx_runtime72.Fragment, { children: [
|
|
6980
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Icon, { className: "tiptap-button-icon" }),
|
|
6981
|
+
text && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "tiptap-button-text", children: text }),
|
|
6982
|
+
showShortcut && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
6595
6983
|
HistoryShortcutBadge,
|
|
6596
6984
|
{
|
|
6597
6985
|
action,
|
|
@@ -6610,9 +6998,9 @@ var import_react84 = require("react");
|
|
|
6610
6998
|
|
|
6611
6999
|
// src/components/tiptap-icons/redo2-icon.tsx
|
|
6612
7000
|
var import_react82 = require("react");
|
|
6613
|
-
var
|
|
7001
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
6614
7002
|
var Redo2Icon = (0, import_react82.memo)(({ className, ...props }) => {
|
|
6615
|
-
return /* @__PURE__ */ (0,
|
|
7003
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
6616
7004
|
"svg",
|
|
6617
7005
|
{
|
|
6618
7006
|
width: "24",
|
|
@@ -6622,7 +7010,7 @@ var Redo2Icon = (0, import_react82.memo)(({ className, ...props }) => {
|
|
|
6622
7010
|
fill: "currentColor",
|
|
6623
7011
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6624
7012
|
...props,
|
|
6625
|
-
children: /* @__PURE__ */ (0,
|
|
7013
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
6626
7014
|
"path",
|
|
6627
7015
|
{
|
|
6628
7016
|
fillRule: "evenodd",
|
|
@@ -6638,9 +7026,9 @@ Redo2Icon.displayName = "Redo2Icon";
|
|
|
6638
7026
|
|
|
6639
7027
|
// src/components/tiptap-icons/undo2-icon.tsx
|
|
6640
7028
|
var import_react83 = require("react");
|
|
6641
|
-
var
|
|
7029
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
6642
7030
|
var Undo2Icon = (0, import_react83.memo)(({ className, ...props }) => {
|
|
6643
|
-
return /* @__PURE__ */ (0,
|
|
7031
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
6644
7032
|
"svg",
|
|
6645
7033
|
{
|
|
6646
7034
|
width: "24",
|
|
@@ -6650,7 +7038,7 @@ var Undo2Icon = (0, import_react83.memo)(({ className, ...props }) => {
|
|
|
6650
7038
|
fill: "currentColor",
|
|
6651
7039
|
xmlns: "http://www.w3.org/2000/svg",
|
|
6652
7040
|
...props,
|
|
6653
|
-
children: /* @__PURE__ */ (0,
|
|
7041
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
6654
7042
|
"path",
|
|
6655
7043
|
{
|
|
6656
7044
|
fillRule: "evenodd",
|
|
@@ -6926,12 +7314,12 @@ var import_lucide_react9 = require("lucide-react");
|
|
|
6926
7314
|
// src/components/ui/command.tsx
|
|
6927
7315
|
var import_cmdk = require("cmdk");
|
|
6928
7316
|
var import_lucide_react8 = require("lucide-react");
|
|
6929
|
-
var
|
|
7317
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
6930
7318
|
function Command({
|
|
6931
7319
|
className,
|
|
6932
7320
|
...props
|
|
6933
7321
|
}) {
|
|
6934
|
-
return /* @__PURE__ */ (0,
|
|
7322
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
6935
7323
|
import_cmdk.Command,
|
|
6936
7324
|
{
|
|
6937
7325
|
"data-slot": "command",
|
|
@@ -6947,14 +7335,14 @@ function CommandInput({
|
|
|
6947
7335
|
className,
|
|
6948
7336
|
...props
|
|
6949
7337
|
}) {
|
|
6950
|
-
return /* @__PURE__ */ (0,
|
|
7338
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
|
|
6951
7339
|
"div",
|
|
6952
7340
|
{
|
|
6953
7341
|
"data-slot": "command-input-wrapper",
|
|
6954
7342
|
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
6955
7343
|
children: [
|
|
6956
|
-
/* @__PURE__ */ (0,
|
|
6957
|
-
/* @__PURE__ */ (0,
|
|
7344
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react8.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
|
|
7345
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
6958
7346
|
import_cmdk.Command.Input,
|
|
6959
7347
|
{
|
|
6960
7348
|
"data-slot": "command-input",
|
|
@@ -6973,7 +7361,7 @@ function CommandList({
|
|
|
6973
7361
|
className,
|
|
6974
7362
|
...props
|
|
6975
7363
|
}) {
|
|
6976
|
-
return /* @__PURE__ */ (0,
|
|
7364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
6977
7365
|
import_cmdk.Command.List,
|
|
6978
7366
|
{
|
|
6979
7367
|
"data-slot": "command-list",
|
|
@@ -6988,7 +7376,7 @@ function CommandList({
|
|
|
6988
7376
|
function CommandEmpty({
|
|
6989
7377
|
...props
|
|
6990
7378
|
}) {
|
|
6991
|
-
return /* @__PURE__ */ (0,
|
|
7379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
6992
7380
|
import_cmdk.Command.Empty,
|
|
6993
7381
|
{
|
|
6994
7382
|
"data-slot": "command-empty",
|
|
@@ -7001,7 +7389,7 @@ function CommandGroup({
|
|
|
7001
7389
|
className,
|
|
7002
7390
|
...props
|
|
7003
7391
|
}) {
|
|
7004
|
-
return /* @__PURE__ */ (0,
|
|
7392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
7005
7393
|
import_cmdk.Command.Group,
|
|
7006
7394
|
{
|
|
7007
7395
|
"data-slot": "command-group",
|
|
@@ -7017,7 +7405,7 @@ function CommandItem({
|
|
|
7017
7405
|
className,
|
|
7018
7406
|
...props
|
|
7019
7407
|
}) {
|
|
7020
|
-
return /* @__PURE__ */ (0,
|
|
7408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
7021
7409
|
import_cmdk.Command.Item,
|
|
7022
7410
|
{
|
|
7023
7411
|
"data-slot": "command-item",
|
|
@@ -7032,16 +7420,16 @@ function CommandItem({
|
|
|
7032
7420
|
|
|
7033
7421
|
// src/components/ui/popover.tsx
|
|
7034
7422
|
var PopoverPrimitive2 = __toESM(require("@radix-ui/react-popover"));
|
|
7035
|
-
var
|
|
7423
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
7036
7424
|
function Popover2({
|
|
7037
7425
|
...props
|
|
7038
7426
|
}) {
|
|
7039
|
-
return /* @__PURE__ */ (0,
|
|
7427
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(PopoverPrimitive2.Root, { "data-slot": "popover", ...props });
|
|
7040
7428
|
}
|
|
7041
7429
|
function PopoverTrigger2({
|
|
7042
7430
|
...props
|
|
7043
7431
|
}) {
|
|
7044
|
-
return /* @__PURE__ */ (0,
|
|
7432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(PopoverPrimitive2.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
7045
7433
|
}
|
|
7046
7434
|
function PopoverContent2({
|
|
7047
7435
|
className,
|
|
@@ -7049,7 +7437,7 @@ function PopoverContent2({
|
|
|
7049
7437
|
sideOffset = 4,
|
|
7050
7438
|
...props
|
|
7051
7439
|
}) {
|
|
7052
|
-
return /* @__PURE__ */ (0,
|
|
7440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(PopoverPrimitive2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
7053
7441
|
PopoverPrimitive2.Content,
|
|
7054
7442
|
{
|
|
7055
7443
|
"data-slot": "popover-content",
|
|
@@ -7065,66 +7453,15 @@ function PopoverContent2({
|
|
|
7065
7453
|
}
|
|
7066
7454
|
|
|
7067
7455
|
// src/components/tiptap-ui/font-family-dropdown/font-family-dropdown.tsx
|
|
7068
|
-
var
|
|
7456
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
7069
7457
|
function FontFamilyDropdown() {
|
|
7070
7458
|
const { editor } = (0, import_react85.useCurrentEditor)();
|
|
7071
7459
|
const [open, setOpen] = (0, import_react86.useState)(false);
|
|
7072
|
-
const [selectedFont, setSelectedFont] = (0, import_react86.useState)(null);
|
|
7073
7460
|
(0, import_react86.useEffect)(() => {
|
|
7074
7461
|
loadGoogleFonts();
|
|
7075
7462
|
}, []);
|
|
7076
|
-
(0, import_react86.useEffect)(() => {
|
|
7077
|
-
if (!editor || !selectedFont) return;
|
|
7078
|
-
const handleUpdate = () => {
|
|
7079
|
-
const currentFontFamily2 = editor.getAttributes("textStyle").fontFamily;
|
|
7080
|
-
if (!currentFontFamily2) {
|
|
7081
|
-
requestAnimationFrame(() => {
|
|
7082
|
-
editor.commands.setFontFamily(selectedFont);
|
|
7083
|
-
});
|
|
7084
|
-
}
|
|
7085
|
-
};
|
|
7086
|
-
const handleSelectionUpdate = () => {
|
|
7087
|
-
const currentFontFamily2 = editor.getAttributes("textStyle").fontFamily;
|
|
7088
|
-
if (!currentFontFamily2 && selectedFont) {
|
|
7089
|
-
requestAnimationFrame(() => {
|
|
7090
|
-
editor.commands.setFontFamily(selectedFont);
|
|
7091
|
-
});
|
|
7092
|
-
}
|
|
7093
|
-
};
|
|
7094
|
-
const handleTransaction = ({ transaction }) => {
|
|
7095
|
-
const isBlockChange = transaction.steps.some((step) => {
|
|
7096
|
-
return step.slice?.content?.content?.some(
|
|
7097
|
-
(node) => ["heading", "bulletList", "orderedList", "blockquote", "codeBlock"].includes(node.type?.name)
|
|
7098
|
-
);
|
|
7099
|
-
});
|
|
7100
|
-
if (isBlockChange && selectedFont) {
|
|
7101
|
-
requestAnimationFrame(() => {
|
|
7102
|
-
editor.commands.setFontFamily(selectedFont);
|
|
7103
|
-
});
|
|
7104
|
-
}
|
|
7105
|
-
};
|
|
7106
|
-
editor.on("update", handleUpdate);
|
|
7107
|
-
editor.on("selectionUpdate", handleSelectionUpdate);
|
|
7108
|
-
editor.on("transaction", handleTransaction);
|
|
7109
|
-
return () => {
|
|
7110
|
-
editor.off("update", handleUpdate);
|
|
7111
|
-
editor.off("selectionUpdate", handleSelectionUpdate);
|
|
7112
|
-
editor.off("transaction", handleTransaction);
|
|
7113
|
-
};
|
|
7114
|
-
}, [editor, selectedFont]);
|
|
7115
|
-
(0, import_react86.useEffect)(() => {
|
|
7116
|
-
if (!editor || !selectedFont) return;
|
|
7117
|
-
const { state } = editor;
|
|
7118
|
-
const { schema } = state;
|
|
7119
|
-
const textStyleMark = schema.marks.textStyle;
|
|
7120
|
-
if (textStyleMark) {
|
|
7121
|
-
const mark = textStyleMark.create({ fontFamily: selectedFont });
|
|
7122
|
-
const tr = state.tr.addStoredMark(mark);
|
|
7123
|
-
editor.view.dispatch(tr);
|
|
7124
|
-
}
|
|
7125
|
-
}, [editor, selectedFont]);
|
|
7126
7463
|
if (!editor) return null;
|
|
7127
|
-
const currentFontFamily = editor.getAttributes("textStyle").fontFamily
|
|
7464
|
+
const currentFontFamily = editor.getAttributes("textStyle").fontFamily;
|
|
7128
7465
|
const getCurrentFontLabel = () => {
|
|
7129
7466
|
if (!currentFontFamily) return "Font Family";
|
|
7130
7467
|
const matchedFont = FONT_OPTIONS.find(
|
|
@@ -7135,50 +7472,26 @@ function FontFamilyDropdown() {
|
|
|
7135
7472
|
const currentFont = getCurrentFontLabel();
|
|
7136
7473
|
const applyFont = (family) => {
|
|
7137
7474
|
if (!editor) return;
|
|
7138
|
-
|
|
7139
|
-
if (
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
editor.view.dispatch(editor.state.tr.removeStoredMark(textStyleMark2));
|
|
7143
|
-
}
|
|
7144
|
-
}
|
|
7145
|
-
editor.chain().focus().setFontFamily(family).run();
|
|
7146
|
-
const { state } = editor;
|
|
7147
|
-
const { schema } = state;
|
|
7148
|
-
const textStyleMark = schema.marks.textStyle;
|
|
7149
|
-
if (textStyleMark) {
|
|
7150
|
-
const mark = textStyleMark.create({ fontFamily: family });
|
|
7151
|
-
const tr = state.tr.addStoredMark(mark);
|
|
7152
|
-
editor.view.dispatch(tr);
|
|
7153
|
-
}
|
|
7154
|
-
};
|
|
7155
|
-
const resetFont = () => {
|
|
7156
|
-
if (!editor) return;
|
|
7157
|
-
setSelectedFont(null);
|
|
7158
|
-
if (editor.state.storedMarks) {
|
|
7159
|
-
const textStyleMark = editor.schema.marks.textStyle;
|
|
7160
|
-
if (textStyleMark) {
|
|
7161
|
-
editor.view.dispatch(
|
|
7162
|
-
editor.state.tr.removeStoredMark(textStyleMark)
|
|
7163
|
-
);
|
|
7164
|
-
}
|
|
7475
|
+
const { from, to } = editor.state.selection;
|
|
7476
|
+
if (from === to) {
|
|
7477
|
+
editor.chain().focus().setFontFamily(family).run();
|
|
7478
|
+
return;
|
|
7165
7479
|
}
|
|
7166
|
-
editor.chain().focus().
|
|
7167
|
-
setOpen(false);
|
|
7480
|
+
editor.chain().focus().setMark("textStyle", { fontFamily: family }).run();
|
|
7168
7481
|
};
|
|
7169
|
-
return /* @__PURE__ */ (0,
|
|
7170
|
-
/* @__PURE__ */ (0,
|
|
7482
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(Popover2, { open, onOpenChange: setOpen, children: [
|
|
7483
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(PopoverTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
|
|
7171
7484
|
Button,
|
|
7172
7485
|
{
|
|
7173
7486
|
variant: "outlineFontFamily",
|
|
7174
7487
|
className: "min-w-[90px] h-7 px-2 flex items-center justify-between rounded-sm border-[#a3a3a8] text-[#a3a3a8] hover:border-[#000] hover:text-[#fff] transition-colors",
|
|
7175
7488
|
children: [
|
|
7176
7489
|
currentFont,
|
|
7177
|
-
/* @__PURE__ */ (0,
|
|
7490
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_lucide_react9.ChevronDown, { className: "w-4 h-4" })
|
|
7178
7491
|
]
|
|
7179
7492
|
}
|
|
7180
7493
|
) }),
|
|
7181
|
-
/* @__PURE__ */ (0,
|
|
7494
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7182
7495
|
PopoverContent2,
|
|
7183
7496
|
{
|
|
7184
7497
|
className: "w-[300px] p-0",
|
|
@@ -7189,21 +7502,30 @@ function FontFamilyDropdown() {
|
|
|
7189
7502
|
e.preventDefault();
|
|
7190
7503
|
}
|
|
7191
7504
|
},
|
|
7192
|
-
children: /* @__PURE__ */ (0,
|
|
7193
|
-
/* @__PURE__ */ (0,
|
|
7194
|
-
/* @__PURE__ */ (0,
|
|
7195
|
-
/* @__PURE__ */ (0,
|
|
7196
|
-
/* @__PURE__ */ (0,
|
|
7197
|
-
/* @__PURE__ */ (0,
|
|
7505
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(Command, { children: [
|
|
7506
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "cmd-input-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CommandInput, { placeholder: "Search font..." }) }),
|
|
7507
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(CommandList, { className: "max-h-[220px]", children: [
|
|
7508
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CommandEmpty, { children: "No font found." }),
|
|
7509
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(CommandGroup, { children: [
|
|
7510
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7198
7511
|
CommandItem,
|
|
7199
7512
|
{
|
|
7200
|
-
onSelect:
|
|
7513
|
+
onSelect: () => {
|
|
7514
|
+
if (!editor) return;
|
|
7515
|
+
const { from, to } = editor.state.selection;
|
|
7516
|
+
if (from === to) {
|
|
7517
|
+
editor.chain().focus().unsetFontFamily().run();
|
|
7518
|
+
} else {
|
|
7519
|
+
editor.chain().focus().unsetMark("textStyle", { extendEmptyMarkRange: true }).run();
|
|
7520
|
+
}
|
|
7521
|
+
setOpen(false);
|
|
7522
|
+
},
|
|
7201
7523
|
className: "font-sans",
|
|
7202
7524
|
children: "Default"
|
|
7203
7525
|
},
|
|
7204
7526
|
"default"
|
|
7205
7527
|
),
|
|
7206
|
-
FONT_OPTIONS.map(({ label, cssFontFamily }) => /* @__PURE__ */ (0,
|
|
7528
|
+
FONT_OPTIONS.map(({ label, cssFontFamily }) => /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
7207
7529
|
CommandItem,
|
|
7208
7530
|
{
|
|
7209
7531
|
onSelect: () => {
|
|
@@ -7231,12 +7553,12 @@ var import_lodash = require("lodash");
|
|
|
7231
7553
|
|
|
7232
7554
|
// src/components/ui/label.tsx
|
|
7233
7555
|
var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
|
|
7234
|
-
var
|
|
7556
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
7235
7557
|
function Label({
|
|
7236
7558
|
className,
|
|
7237
7559
|
...props
|
|
7238
7560
|
}) {
|
|
7239
|
-
return /* @__PURE__ */ (0,
|
|
7561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
7240
7562
|
LabelPrimitive.Root,
|
|
7241
7563
|
{
|
|
7242
7564
|
"data-slot": "label",
|
|
@@ -7251,7 +7573,7 @@ function Label({
|
|
|
7251
7573
|
|
|
7252
7574
|
// src/components/tiptap-ui/color-picker/color-picker.tsx
|
|
7253
7575
|
var import_react89 = __toESM(require("react"));
|
|
7254
|
-
var
|
|
7576
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
7255
7577
|
function ColorPicker({ type = "text" }) {
|
|
7256
7578
|
const { editor } = (0, import_react88.useCurrentEditor)();
|
|
7257
7579
|
const [open, setOpen] = (0, import_react87.useState)(false);
|
|
@@ -7301,15 +7623,15 @@ function ColorPicker({ type = "text" }) {
|
|
|
7301
7623
|
[]
|
|
7302
7624
|
);
|
|
7303
7625
|
if (!editor) return null;
|
|
7304
|
-
return /* @__PURE__ */ (0,
|
|
7305
|
-
/* @__PURE__ */ (0,
|
|
7626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Popover2, { open, onOpenChange: (v) => setOpen(v), children: [
|
|
7627
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(PopoverTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
7306
7628
|
Button,
|
|
7307
7629
|
{
|
|
7308
7630
|
variant: "outlineFontFamily",
|
|
7309
7631
|
className: "flex items-center h-7 rounded-sm px-2 border-[#a3a3a8] text-[#a3a3a8] hover:text-white",
|
|
7310
7632
|
children: [
|
|
7311
7633
|
"Color",
|
|
7312
|
-
/* @__PURE__ */ (0,
|
|
7634
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
7313
7635
|
"span",
|
|
7314
7636
|
{
|
|
7315
7637
|
className: "w-3 h-3 ml-2 rounded-sm border border-black/20",
|
|
@@ -7319,16 +7641,16 @@ function ColorPicker({ type = "text" }) {
|
|
|
7319
7641
|
]
|
|
7320
7642
|
}
|
|
7321
7643
|
) }),
|
|
7322
|
-
/* @__PURE__ */ (0,
|
|
7644
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
7323
7645
|
PopoverContent2,
|
|
7324
7646
|
{
|
|
7325
7647
|
className: "w-[260px] p-3",
|
|
7326
7648
|
align: "start",
|
|
7327
7649
|
onClick: (e) => e.stopPropagation(),
|
|
7328
7650
|
children: [
|
|
7329
|
-
/* @__PURE__ */ (0,
|
|
7330
|
-
!showCustom && /* @__PURE__ */ (0,
|
|
7331
|
-
/* @__PURE__ */ (0,
|
|
7651
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Label, { className: "text-xs mb-2", children: type === "text" ? "Text Color" : "Highlight Color" }),
|
|
7652
|
+
!showCustom && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
7653
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "grid grid-cols-7 gap-1", children: GRADIENT_ROWS_70.map((c) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
7332
7654
|
"div",
|
|
7333
7655
|
{
|
|
7334
7656
|
onClick: () => {
|
|
@@ -7340,7 +7662,7 @@ function ColorPicker({ type = "text" }) {
|
|
|
7340
7662
|
},
|
|
7341
7663
|
c
|
|
7342
7664
|
)) }),
|
|
7343
|
-
/* @__PURE__ */ (0,
|
|
7665
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
7344
7666
|
Button,
|
|
7345
7667
|
{
|
|
7346
7668
|
size: "sm",
|
|
@@ -7354,7 +7676,7 @@ function ColorPicker({ type = "text" }) {
|
|
|
7354
7676
|
)
|
|
7355
7677
|
] }),
|
|
7356
7678
|
showCustom && // stop mouse/pointer events from bubbling so popover doesn't treat them as outside clicks
|
|
7357
|
-
/* @__PURE__ */ (0,
|
|
7679
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
7358
7680
|
"div",
|
|
7359
7681
|
{
|
|
7360
7682
|
className: "flex flex-col gap-3",
|
|
@@ -7364,7 +7686,7 @@ function ColorPicker({ type = "text" }) {
|
|
|
7364
7686
|
onPointerUp: (e) => e.stopPropagation(),
|
|
7365
7687
|
onClick: (e) => e.stopPropagation(),
|
|
7366
7688
|
children: [
|
|
7367
|
-
/* @__PURE__ */ (0,
|
|
7689
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
7368
7690
|
import_react_colorful.HexColorPicker,
|
|
7369
7691
|
{
|
|
7370
7692
|
color: tempHex,
|
|
@@ -7375,8 +7697,8 @@ function ColorPicker({ type = "text" }) {
|
|
|
7375
7697
|
onMouseUp: (e) => e.stopPropagation()
|
|
7376
7698
|
}
|
|
7377
7699
|
),
|
|
7378
|
-
/* @__PURE__ */ (0,
|
|
7379
|
-
/* @__PURE__ */ (0,
|
|
7700
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex gap-2 items-center", children: [
|
|
7701
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
7380
7702
|
"input",
|
|
7381
7703
|
{
|
|
7382
7704
|
value: tempHex,
|
|
@@ -7387,7 +7709,7 @@ function ColorPicker({ type = "text" }) {
|
|
|
7387
7709
|
className: "w-full px-2 py-1 border rounded text-sm"
|
|
7388
7710
|
}
|
|
7389
7711
|
),
|
|
7390
|
-
/* @__PURE__ */ (0,
|
|
7712
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
7391
7713
|
Button,
|
|
7392
7714
|
{
|
|
7393
7715
|
size: "sm",
|
|
@@ -7400,7 +7722,7 @@ function ColorPicker({ type = "text" }) {
|
|
|
7400
7722
|
}
|
|
7401
7723
|
)
|
|
7402
7724
|
] }),
|
|
7403
|
-
/* @__PURE__ */ (0,
|
|
7725
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "flex justify-end mt-2", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
7404
7726
|
Button,
|
|
7405
7727
|
{
|
|
7406
7728
|
size: "sm",
|
|
@@ -7428,7 +7750,7 @@ function ColorPicker({ type = "text" }) {
|
|
|
7428
7750
|
var import_react90 = require("react");
|
|
7429
7751
|
var import_react91 = require("@tiptap/react");
|
|
7430
7752
|
var import_fi = require("react-icons/fi");
|
|
7431
|
-
var
|
|
7753
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
7432
7754
|
function TableDropdownMenu() {
|
|
7433
7755
|
const { editor } = (0, import_react91.useCurrentEditor)();
|
|
7434
7756
|
const [open, setOpen] = (0, import_react90.useState)(false);
|
|
@@ -7470,21 +7792,21 @@ function TableDropdownMenu() {
|
|
|
7470
7792
|
}
|
|
7471
7793
|
setOpen(false);
|
|
7472
7794
|
};
|
|
7473
|
-
return /* @__PURE__ */ (0,
|
|
7474
|
-
/* @__PURE__ */ (0,
|
|
7475
|
-
/* @__PURE__ */ (0,
|
|
7476
|
-
/* @__PURE__ */ (0,
|
|
7477
|
-
/* @__PURE__ */ (0,
|
|
7478
|
-
/* @__PURE__ */ (0,
|
|
7479
|
-
/* @__PURE__ */ (0,
|
|
7480
|
-
/* @__PURE__ */ (0,
|
|
7481
|
-
/* @__PURE__ */ (0,
|
|
7482
|
-
/* @__PURE__ */ (0,
|
|
7483
|
-
/* @__PURE__ */ (0,
|
|
7484
|
-
/* @__PURE__ */ (0,
|
|
7485
|
-
/* @__PURE__ */ (0,
|
|
7486
|
-
/* @__PURE__ */ (0,
|
|
7487
|
-
/* @__PURE__ */ (0,
|
|
7795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(Popover2, { open, onOpenChange: setOpen, children: [
|
|
7796
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(PopoverTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Button, { variant: "tableButton", size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_fi.FiTable, { size: 16, color: "#a3a3a8" }) }) }),
|
|
7797
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(PopoverContent2, { className: "w-[220px] p-0", align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(Command, { children: [
|
|
7798
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandInput, { placeholder: "Search table actions..." }),
|
|
7799
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandList, { className: "max-h-[260px]", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(CommandGroup, { children: [
|
|
7800
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("insert"), children: "Insert Table" }),
|
|
7801
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("addColBefore"), children: "Add Column Before" }),
|
|
7802
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("addColAfter"), children: "Add Column After" }),
|
|
7803
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("delCol"), children: "Delete Column" }),
|
|
7804
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("addRowBefore"), children: "Add Row Before" }),
|
|
7805
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("addRowAfter"), children: "Add Row After" }),
|
|
7806
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("delRow"), children: "Delete Row" }),
|
|
7807
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("merge"), children: "Merge Cells" }),
|
|
7808
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("split"), children: "Split Cells" }),
|
|
7809
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CommandItem, { onSelect: () => handleAction("deleteTable"), children: "Delete Table" })
|
|
7488
7810
|
] }) })
|
|
7489
7811
|
] }) })
|
|
7490
7812
|
] });
|
|
@@ -7492,9 +7814,9 @@ function TableDropdownMenu() {
|
|
|
7492
7814
|
|
|
7493
7815
|
// src/components/tiptap-icons/arrow-left-icon.tsx
|
|
7494
7816
|
var import_react92 = require("react");
|
|
7495
|
-
var
|
|
7817
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
7496
7818
|
var ArrowLeftIcon = (0, import_react92.memo)(({ className, ...props }) => {
|
|
7497
|
-
return /* @__PURE__ */ (0,
|
|
7819
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
7498
7820
|
"svg",
|
|
7499
7821
|
{
|
|
7500
7822
|
width: "24",
|
|
@@ -7504,7 +7826,7 @@ var ArrowLeftIcon = (0, import_react92.memo)(({ className, ...props }) => {
|
|
|
7504
7826
|
fill: "currentColor",
|
|
7505
7827
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7506
7828
|
...props,
|
|
7507
|
-
children: /* @__PURE__ */ (0,
|
|
7829
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
7508
7830
|
"path",
|
|
7509
7831
|
{
|
|
7510
7832
|
d: "M12.7071 5.70711C13.0976 5.31658 13.0976 4.68342 12.7071 4.29289C12.3166 3.90237 11.6834 3.90237 11.2929 4.29289L4.29289 11.2929C3.90237 11.6834 3.90237 12.3166 4.29289 12.7071L11.2929 19.7071C11.6834 20.0976 12.3166 20.0976 12.7071 19.7071C13.0976 19.3166 13.0976 18.6834 12.7071 18.2929L7.41421 13L19 13C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11L7.41421 11L12.7071 5.70711Z",
|
|
@@ -7730,62 +8052,62 @@ function useCursorVisibility({
|
|
|
7730
8052
|
}
|
|
7731
8053
|
|
|
7732
8054
|
// src/components/tiptap-templates/simple/simple-editor.tsx
|
|
7733
|
-
var
|
|
8055
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
7734
8056
|
var MainToolbarContent = ({
|
|
7735
8057
|
onHighlighterClick,
|
|
7736
8058
|
onLinkClick,
|
|
7737
8059
|
isMobile
|
|
7738
8060
|
}) => {
|
|
7739
|
-
return /* @__PURE__ */ (0,
|
|
7740
|
-
/* @__PURE__ */ (0,
|
|
7741
|
-
/* @__PURE__ */ (0,
|
|
7742
|
-
/* @__PURE__ */ (0,
|
|
7743
|
-
/* @__PURE__ */ (0,
|
|
7744
|
-
/* @__PURE__ */ (0,
|
|
7745
|
-
/* @__PURE__ */ (0,
|
|
7746
|
-
/* @__PURE__ */ (0,
|
|
7747
|
-
/* @__PURE__ */ (0,
|
|
7748
|
-
/* @__PURE__ */ (0,
|
|
7749
|
-
/* @__PURE__ */ (0,
|
|
7750
|
-
/* @__PURE__ */ (0,
|
|
8061
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
|
|
8062
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Spacer, {}),
|
|
8063
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(FontFamilyDropdown, {}),
|
|
8064
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ColorPicker, { type: "text" }),
|
|
8065
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(ToolbarGroup, { children: [
|
|
8066
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(MarkButton, { type: "bold" }),
|
|
8067
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(MarkButton, { type: "italic" }),
|
|
8068
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(MarkButton, { type: "strike" }),
|
|
8069
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(MarkButton, { type: "code" }),
|
|
8070
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(MarkButton, { type: "underline" }),
|
|
8071
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(UndoRedoButton, { action: "undo" }),
|
|
8072
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(UndoRedoButton, { action: "redo" })
|
|
7751
8073
|
] }),
|
|
7752
|
-
/* @__PURE__ */ (0,
|
|
7753
|
-
/* @__PURE__ */ (0,
|
|
7754
|
-
/* @__PURE__ */ (0,
|
|
7755
|
-
/* @__PURE__ */ (0,
|
|
7756
|
-
/* @__PURE__ */ (0,
|
|
7757
|
-
/* @__PURE__ */ (0,
|
|
8074
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarSeparator, {}),
|
|
8075
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(ToolbarGroup, { children: [
|
|
8076
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TextAlignButton, { align: "left" }),
|
|
8077
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TextAlignButton, { align: "center" }),
|
|
8078
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TextAlignButton, { align: "right" }),
|
|
8079
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TextAlignButton, { align: "justify" })
|
|
7758
8080
|
] }),
|
|
7759
|
-
/* @__PURE__ */ (0,
|
|
7760
|
-
/* @__PURE__ */ (0,
|
|
7761
|
-
/* @__PURE__ */ (0,
|
|
7762
|
-
/* @__PURE__ */ (0,
|
|
8081
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarSeparator, {}),
|
|
8082
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(ToolbarGroup, { children: [
|
|
8083
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(HeadingDropdownMenu, { levels: [1, 2, 3, 4], portal: isMobile }),
|
|
8084
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
7763
8085
|
ListDropdownMenu,
|
|
7764
8086
|
{
|
|
7765
8087
|
types: ["bulletList", "orderedList", "taskList"],
|
|
7766
8088
|
portal: isMobile
|
|
7767
8089
|
}
|
|
7768
8090
|
),
|
|
7769
|
-
/* @__PURE__ */ (0,
|
|
8091
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(BlockquoteButton, {})
|
|
7770
8092
|
] }),
|
|
7771
|
-
/* @__PURE__ */ (0,
|
|
7772
|
-
/* @__PURE__ */ (0,
|
|
7773
|
-
/* @__PURE__ */ (0,
|
|
7774
|
-
/* @__PURE__ */ (0,
|
|
7775
|
-
/* @__PURE__ */ (0,
|
|
7776
|
-
isMobile && /* @__PURE__ */ (0,
|
|
8093
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TableDropdownMenu, {}) }),
|
|
8094
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarGroup, {}),
|
|
8095
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarSeparator, {}),
|
|
8096
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ImageUploadButton, { text: "Add" }) }),
|
|
8097
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Spacer, {}),
|
|
8098
|
+
isMobile && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarSeparator, {})
|
|
7777
8099
|
] });
|
|
7778
8100
|
};
|
|
7779
8101
|
var MobileToolbarContent = ({
|
|
7780
8102
|
type,
|
|
7781
8103
|
onBack
|
|
7782
|
-
}) => /* @__PURE__ */ (0,
|
|
7783
|
-
/* @__PURE__ */ (0,
|
|
7784
|
-
/* @__PURE__ */ (0,
|
|
7785
|
-
type === "highlighter" ? /* @__PURE__ */ (0,
|
|
8104
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
|
|
8105
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Button2, { "data-style": "ghost", onClick: onBack, children: [
|
|
8106
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ArrowLeftIcon, { className: "tiptap-button-icon" }),
|
|
8107
|
+
type === "highlighter" ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(HighlighterIcon, { className: "tiptap-button-icon" }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(LinkIcon, { className: "tiptap-button-icon" })
|
|
7786
8108
|
] }) }),
|
|
7787
|
-
/* @__PURE__ */ (0,
|
|
7788
|
-
type === "highlighter" ? /* @__PURE__ */ (0,
|
|
8109
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ToolbarSeparator, {}),
|
|
8110
|
+
type === "highlighter" ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ColorHighlightPopoverContent, {}) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(LinkContent, {})
|
|
7789
8111
|
] });
|
|
7790
8112
|
function SimpleEditor() {
|
|
7791
8113
|
const { setEditorContent, debouncedSave } = useEditorBridge();
|
|
@@ -7816,12 +8138,52 @@ function SimpleEditor() {
|
|
|
7816
8138
|
}),
|
|
7817
8139
|
HorizontalRule,
|
|
7818
8140
|
index_default,
|
|
8141
|
+
index_default3.configure({
|
|
8142
|
+
HTMLAttributes: {
|
|
8143
|
+
class: "blockquote-node"
|
|
8144
|
+
}
|
|
8145
|
+
}),
|
|
8146
|
+
index_default4.configure({
|
|
8147
|
+
HTMLAttributes: {
|
|
8148
|
+
class: "code-block-node"
|
|
8149
|
+
}
|
|
8150
|
+
}),
|
|
8151
|
+
import_extension_list.ListItem.configure({
|
|
8152
|
+
HTMLAttributes: {
|
|
8153
|
+
class: "list-item-node"
|
|
8154
|
+
}
|
|
8155
|
+
}),
|
|
8156
|
+
import_tiptap_extension_resize_image.default,
|
|
7819
8157
|
index_default2,
|
|
7820
|
-
|
|
8158
|
+
index_default5,
|
|
7821
8159
|
import_extensions.Gapcursor,
|
|
7822
8160
|
import_extension_text_style2.TextStyle,
|
|
7823
8161
|
FontSizeStepper.configure({ step: 2, min: 8, defaultSize: 16 }),
|
|
7824
|
-
import_extension_text_style2.FontFamily.
|
|
8162
|
+
import_extension_text_style2.FontFamily.extend({
|
|
8163
|
+
addGlobalAttributes() {
|
|
8164
|
+
return [
|
|
8165
|
+
{
|
|
8166
|
+
types: [
|
|
8167
|
+
"textStyle"
|
|
8168
|
+
],
|
|
8169
|
+
attributes: {
|
|
8170
|
+
fontFamily: {
|
|
8171
|
+
default: null,
|
|
8172
|
+
parseHTML: (element) => element.style.fontFamily?.replace(/['"]+/g, ""),
|
|
8173
|
+
renderHTML: (attributes) => {
|
|
8174
|
+
if (!attributes.fontFamily) {
|
|
8175
|
+
return {};
|
|
8176
|
+
}
|
|
8177
|
+
return {
|
|
8178
|
+
style: `font-family: ${attributes.fontFamily}`
|
|
8179
|
+
};
|
|
8180
|
+
}
|
|
8181
|
+
}
|
|
8182
|
+
}
|
|
8183
|
+
}
|
|
8184
|
+
];
|
|
8185
|
+
}
|
|
8186
|
+
}).configure({
|
|
7825
8187
|
types: ["textStyle"]
|
|
7826
8188
|
}),
|
|
7827
8189
|
import_extension_color.default.configure({ types: ["textStyle"] }),
|
|
@@ -7895,8 +8257,8 @@ function SimpleEditor() {
|
|
|
7895
8257
|
window.visualViewport?.removeEventListener("scroll", updatePosition);
|
|
7896
8258
|
};
|
|
7897
8259
|
}, []);
|
|
7898
|
-
return /* @__PURE__ */ (0,
|
|
7899
|
-
/* @__PURE__ */ (0,
|
|
8260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "simple-editor-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_react99.EditorContext.Provider, { value: { editor }, children: [
|
|
8261
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
7900
8262
|
Toolbar,
|
|
7901
8263
|
{
|
|
7902
8264
|
ref: toolbarRef,
|
|
@@ -7905,14 +8267,14 @@ function SimpleEditor() {
|
|
|
7905
8267
|
bottom: `calc(100% - ${height - rect.y}px)`
|
|
7906
8268
|
} : {}
|
|
7907
8269
|
},
|
|
7908
|
-
children: mobileView === "main" ? /* @__PURE__ */ (0,
|
|
8270
|
+
children: mobileView === "main" ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
7909
8271
|
MainToolbarContent,
|
|
7910
8272
|
{
|
|
7911
8273
|
onHighlighterClick: () => setMobileView("highlighter"),
|
|
7912
8274
|
onLinkClick: () => setMobileView("link"),
|
|
7913
8275
|
isMobile
|
|
7914
8276
|
}
|
|
7915
|
-
) : /* @__PURE__ */ (0,
|
|
8277
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
7916
8278
|
MobileToolbarContent,
|
|
7917
8279
|
{
|
|
7918
8280
|
type: mobileView === "highlighter" ? "highlighter" : "link",
|
|
@@ -7921,14 +8283,14 @@ function SimpleEditor() {
|
|
|
7921
8283
|
)
|
|
7922
8284
|
}
|
|
7923
8285
|
),
|
|
7924
|
-
/* @__PURE__ */ (0,
|
|
8286
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
7925
8287
|
import_react99.EditorContent,
|
|
7926
8288
|
{
|
|
7927
8289
|
editor,
|
|
7928
8290
|
role: "presentation",
|
|
7929
8291
|
autoFocus: true,
|
|
7930
8292
|
className: "simple-editor-content",
|
|
7931
|
-
children: editor && /* @__PURE__ */ (0,
|
|
8293
|
+
children: editor && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(BubbleMenuInline, {})
|
|
7932
8294
|
}
|
|
7933
8295
|
)
|
|
7934
8296
|
] }) });
|
|
@@ -7936,9 +8298,9 @@ function SimpleEditor() {
|
|
|
7936
8298
|
|
|
7937
8299
|
// src/components/editor/editor.tsx
|
|
7938
8300
|
var import_clsx2 = __toESM(require("clsx"));
|
|
7939
|
-
var
|
|
8301
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
7940
8302
|
function Editor({ onChange, className, style, onTabsChange, initialTabs }) {
|
|
7941
|
-
return /* @__PURE__ */ (0,
|
|
8303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
7942
8304
|
"div",
|
|
7943
8305
|
{
|
|
7944
8306
|
className: (0, import_clsx2.default)(
|
|
@@ -7946,7 +8308,7 @@ function Editor({ onChange, className, style, onTabsChange, initialTabs }) {
|
|
|
7946
8308
|
className
|
|
7947
8309
|
),
|
|
7948
8310
|
style,
|
|
7949
|
-
children: /* @__PURE__ */ (0,
|
|
8311
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(EditorShell, { children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(EditorLayout, { onChange, initialTabs, onTabsChange, children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SimpleEditor, {}) }) })
|
|
7950
8312
|
}
|
|
7951
8313
|
);
|
|
7952
8314
|
}
|