UNPKG

@udecode/plate-basic-marks

Version:

Basic marks plugin for Plate

351 lines (326 loc) 9.72 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/react/index.ts var react_exports = {}; __export(react_exports, { BasicMarksPlugin: () => BasicMarksPlugin, BoldPlugin: () => BoldPlugin, CodePlugin: () => CodePlugin, HighlightPlugin: () => HighlightPlugin, ItalicPlugin: () => ItalicPlugin, KbdPlugin: () => KbdPlugin, StrikethroughPlugin: () => StrikethroughPlugin, SubscriptPlugin: () => SubscriptPlugin, SuperscriptPlugin: () => SuperscriptPlugin, UnderlinePlugin: () => UnderlinePlugin }); module.exports = __toCommonJS(react_exports); // src/react/BasicMarksPlugin.tsx var import_react8 = require("@udecode/plate/react"); // src/lib/BaseBasicMarksPlugin.ts var import_plate8 = require("@udecode/plate"); // src/lib/BaseBoldPlugin.ts var import_plate = require("@udecode/plate"); var BaseBoldPlugin = (0, import_plate.createSlatePlugin)({ key: import_plate.KEYS.bold, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["STRONG", "B"] }, { validStyle: { fontWeight: ["600", "700", "bold"] } } ], query: ({ element }) => !(0, import_plate.someHtmlElement)( element, (node) => node.style.fontWeight === "normal" ) } } }, render: { as: "strong" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type); } })); // src/lib/BaseCodePlugin.ts var import_plate2 = require("@udecode/plate"); var BaseCodePlugin = (0, import_plate2.createSlatePlugin)({ key: import_plate2.KEYS.code, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["CODE"] }, { validStyle: { fontFamily: "Consolas" } } ], query({ element }) { const blockAbove = (0, import_plate2.findHtmlParentElement)(element, "P"); if (blockAbove?.style.fontFamily === "Consolas") return false; return !(0, import_plate2.findHtmlParentElement)(element, "PRE"); } } } }, render: { as: "code" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type); } })); // src/lib/BaseItalicPlugin.ts var import_plate3 = require("@udecode/plate"); var BaseItalicPlugin = (0, import_plate3.createSlatePlugin)({ key: import_plate3.KEYS.italic, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["EM", "I"] }, { validStyle: { fontStyle: "italic" } } ], query: ({ element }) => !(0, import_plate3.someHtmlElement)( element, (node) => node.style.fontStyle === "normal" ) } } }, render: { as: "em" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type); } })); // src/lib/BaseStrikethroughPlugin.ts var import_plate4 = require("@udecode/plate"); var BaseStrikethroughPlugin = (0, import_plate4.createSlatePlugin)({ key: import_plate4.KEYS.strikethrough, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["S", "DEL", "STRIKE"] }, { validStyle: { textDecoration: "line-through" } } ], query: ({ element }) => !(0, import_plate4.someHtmlElement)( element, (node) => node.style.textDecoration === "none" ) } } }, render: { as: "s" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type); } })); // src/lib/BaseSubscriptPlugin.ts var import_plate5 = require("@udecode/plate"); var BaseSubscriptPlugin = (0, import_plate5.createSlatePlugin)({ key: import_plate5.KEYS.sub, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["SUB"] }, { validStyle: { verticalAlign: "sub" } } ] } } }, render: { as: "sub" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type, { remove: editor.getType(import_plate5.KEYS.sup) }); } })); // src/lib/BaseSuperscriptPlugin.ts var import_plate6 = require("@udecode/plate"); var BaseSuperscriptPlugin = (0, import_plate6.createSlatePlugin)({ key: import_plate6.KEYS.sup, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["SUP"] }, { validStyle: { verticalAlign: "super" } } ] } } }, render: { as: "sup" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type, { remove: editor.getType(import_plate6.KEYS.sub) }); } })); // src/lib/BaseUnderlinePlugin.ts var import_plate7 = require("@udecode/plate"); var BaseUnderlinePlugin = (0, import_plate7.createSlatePlugin)({ key: import_plate7.KEYS.underline, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["U"] }, { validStyle: { textDecoration: ["underline"] } } ], query: ({ element }) => !(0, import_plate7.someHtmlElement)( element, (node) => node.style.textDecoration === "none" ) } } }, render: { as: "u" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type); } })); // src/lib/BaseBasicMarksPlugin.ts var BaseBasicMarksPlugin = (0, import_plate8.createSlatePlugin)({ plugins: [ BaseBoldPlugin, BaseCodePlugin, BaseItalicPlugin, BaseStrikethroughPlugin, BaseSubscriptPlugin, BaseSuperscriptPlugin, BaseUnderlinePlugin ] }); // src/react/BoldPlugin.tsx var import_react = require("@udecode/plate/react"); var BoldPlugin = (0, import_react.toPlatePlugin)(BaseBoldPlugin, { shortcuts: { toggle: { keys: [[import_react.Key.Mod, "b"]] } } }); // src/react/CodePlugin.tsx var import_react2 = require("@udecode/plate/react"); var CodePlugin = (0, import_react2.toPlatePlugin)(BaseCodePlugin); // src/react/ItalicPlugin.tsx var import_react3 = require("@udecode/plate/react"); var ItalicPlugin = (0, import_react3.toPlatePlugin)(BaseItalicPlugin, { shortcuts: { toggle: { keys: [[import_react3.Key.Mod, "i"]] } } }); // src/react/StrikethroughPlugin.tsx var import_react4 = require("@udecode/plate/react"); var StrikethroughPlugin = (0, import_react4.toPlatePlugin)(BaseStrikethroughPlugin); // src/react/SubscriptPlugin.tsx var import_react5 = require("@udecode/plate/react"); var SubscriptPlugin = (0, import_react5.toPlatePlugin)(BaseSubscriptPlugin); // src/react/SuperscriptPlugin.tsx var import_react6 = require("@udecode/plate/react"); var SuperscriptPlugin = (0, import_react6.toPlatePlugin)(BaseSuperscriptPlugin); // src/react/UnderlinePlugin.tsx var import_react7 = require("@udecode/plate/react"); var UnderlinePlugin = (0, import_react7.toPlatePlugin)(BaseUnderlinePlugin, { shortcuts: { toggle: { keys: [[import_react7.Key.Mod, "u"]] } } }); // src/react/BasicMarksPlugin.tsx var BasicMarksPlugin = (0, import_react8.toPlatePlugin)(BaseBasicMarksPlugin, { plugins: [ BoldPlugin, CodePlugin, ItalicPlugin, StrikethroughPlugin, SubscriptPlugin, SuperscriptPlugin, UnderlinePlugin ] }); // src/react/HighlightPlugin.tsx var import_react9 = require("@udecode/plate/react"); // src/lib/BaseHighlightPlugin.ts var import_plate9 = require("@udecode/plate"); var BaseHighlightPlugin = (0, import_plate9.createSlatePlugin)({ key: import_plate9.KEYS.highlight, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [ { validNodeName: ["MARK"] } ] } } }, render: { as: "mark" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type); } })); // src/react/HighlightPlugin.tsx var HighlightPlugin = (0, import_react9.toPlatePlugin)(BaseHighlightPlugin); // src/react/KbdPlugin.tsx var import_react10 = require("@udecode/plate/react"); // src/lib/BaseKbdPlugin.ts var import_plate10 = require("@udecode/plate"); var BaseKbdPlugin = (0, import_plate10.createSlatePlugin)({ key: import_plate10.KEYS.kbd, node: { isLeaf: true }, parsers: { html: { deserializer: { rules: [{ validNodeName: ["KBD"] }] } } }, render: { as: "kbd" } }).extendTransforms(({ editor, type }) => ({ toggle: () => { editor.tf.toggleMark(type); } })); // src/react/KbdPlugin.tsx var KbdPlugin = (0, import_react10.toPlatePlugin)(BaseKbdPlugin); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { BasicMarksPlugin, BoldPlugin, CodePlugin, HighlightPlugin, ItalicPlugin, KbdPlugin, StrikethroughPlugin, SubscriptPlugin, SuperscriptPlugin, UnderlinePlugin }); //# sourceMappingURL=index.js.map