{"version":3,"sources":["../../src/react/hooks/useEditorString.ts","../../src/react/hooks/useFormInputProps.ts","../../src/react/hooks/useMarkToolbarButton.ts","../../src/react/hooks/useRemoveNodeButton.ts","../../src/react/hooks/useSelection.ts","../../src/react/hooks/useSelectionFragment.ts","../../src/react/plugins/BlockPlaceholderPlugin.tsx","../../src/lib/plate-keys.ts"],"sourcesContent":["import { useEditorSelector } from '@udecode/plate-core/react';\n\nexport const useEditorString = () => {\n  return useEditorSelector((editor) => editor.api.string([]), []);\n};\n","interface InputProps {\n  /**\n   * Should we activate the onKeyDownCapture handler to preventDefault when the\n   * user presses enter?\n   */\n  preventDefaultOnEnterKeydown?: boolean;\n}\n\n/**\n * Hook to allow the user to spread a set of predefined props to the Div wrapper\n * of an Input element\n *\n * @param param0 An options object which can be expanded to add further\n *   functionality\n * @returns A props object which can be spread onto the element\n */\nexport const useFormInputProps = (options?: InputProps) => {\n  // Nothing provided to just return an empty object which can still be spread.\n  // If we need to add more functionality later we will still be able to do so\n  if (!options) return { props: {} };\n\n  // Destructure our options so we can use them\n  const { preventDefaultOnEnterKeydown } = options;\n\n  /**\n   * Handle the keydown capture event and prevent the default behaviour when the\n   * user presses enter.\n   *\n   * In the event the user presses enter on a field such as a link, prior to\n   * filling in both label and url, the default behaviour is to submit the form.\n   * This, ultimately, results in no link being added as you need to fill both\n   * fields to pass validation.\n   *\n   * By calling preventDefault we short circuit the form's submission thus\n   * allowing the user to continue filling in the other fields\n   *\n   * @param e The original event which was provided by the VDOM implement their\n   *   own behaviour on this event\n   */\n  const handleEnterKeydownCapture = (\n    e: React.KeyboardEvent<HTMLDivElement>\n  ) => {\n    // Prevent the form from submitting\n    if (e.key === 'Enter' || e.keyCode === 13) {\n      e.preventDefault();\n    }\n  };\n\n  return {\n    props: {\n      onKeyDownCapture: preventDefaultOnEnterKeydown\n        ? (e: React.KeyboardEvent<HTMLDivElement>) =>\n            handleEnterKeydownCapture(e)\n        : undefined,\n    },\n  };\n};\n","import { useEditorRef, useEditorSelector } from '@udecode/plate-core/react';\n\nexport const useMarkToolbarButtonState = ({\n  clear,\n  nodeType,\n}: {\n  nodeType: string;\n  clear?: string[] | string;\n}) => {\n  const pressed = useEditorSelector(\n    (editor) => editor.api.hasMark(nodeType),\n    [nodeType]\n  );\n\n  return {\n    clear,\n    nodeType,\n    pressed,\n  };\n};\n\nexport const useMarkToolbarButton = (\n  state: ReturnType<typeof useMarkToolbarButtonState>\n) => {\n  const editor = useEditorRef();\n\n  return {\n    props: {\n      pressed: state.pressed,\n      onClick: () => {\n        editor.tf.toggleMark(state.nodeType, { remove: state.clear });\n        editor.tf.focus();\n      },\n      onMouseDown: (e: React.MouseEvent<HTMLButtonElement>) => {\n        e.preventDefault();\n      },\n    },\n  };\n};\n","import type { TElement } from '@udecode/slate';\n\nimport { useEditorRef } from '@udecode/plate-core/react';\n\nexport const useRemoveNodeButton = ({ element }: { element: TElement }) => {\n  const editor = useEditorRef();\n\n  return {\n    props: {\n      onClick: () => {\n        const path = editor.api.findPath(element);\n\n        editor.tf.removeNodes({ at: path });\n      },\n      onMouseDown: (e: React.MouseEvent<HTMLButtonElement>) => {\n        e.preventDefault();\n      },\n    },\n  };\n};\n","import { useEditorSelector } from '@udecode/plate-core/react';\n\nexport function useSelectionCollapsed() {\n  return useEditorSelector((editor) => !editor.api.isExpanded(), []);\n}\n\nexport function useSelectionExpanded() {\n  return useEditorSelector((editor) => editor.api.isExpanded(), []);\n}\n\nexport function useSelectionWithinBlock() {\n  return useEditorSelector((editor) => editor.api.isAt({ block: true }), []);\n}\n\nexport function useSelectionAcrossBlocks() {\n  return useEditorSelector((editor) => editor.api.isAt({ blocks: true }), []);\n}\n","import type { EditorPropOptions, TElement } from '@udecode/slate';\n\nimport { getContainerTypes } from '@udecode/plate-core';\nimport { useEditorSelector } from '@udecode/plate-core/react';\n\nexport const useSelectionFragment = () => {\n  return useEditorSelector((editor) => {\n    return editor.api.fragment(editor.selection, {\n      unwrap: getContainerTypes(editor),\n    });\n  }, []);\n};\n\nexport const useSelectionFragmentProp = (\n  options: Omit<EditorPropOptions, 'nodes'> = {}\n) => {\n  return useEditorSelector((editor) => {\n    const fragment = editor.api.fragment<TElement>(editor.selection, {\n      unwrap: getContainerTypes(editor),\n    });\n\n    return editor.api.prop({ nodes: fragment, ...options });\n  }, []);\n};\n","import React from 'react';\n\nimport type { PluginConfig } from '@udecode/plate-core';\nimport type { Path, TElement } from '@udecode/slate';\n\nimport {\n  type PlatePluginContext,\n  createTPlatePlugin,\n  useEditorComposing,\n  useEditorReadOnly,\n  useEditorSelector,\n  useFocused,\n  usePluginOption,\n} from '@udecode/plate-core/react';\n\nimport { KEYS } from '../../lib';\n\nexport type BlockPlaceholderConfig = PluginConfig<\n  'blockPlaceholder',\n  {\n    _target: { node: TElement; placeholder: string } | null;\n    placeholders: Record<string, string>;\n    query: (\n      context: PlatePluginContext<BlockPlaceholderConfig> & {\n        node: TElement;\n        path: Path;\n      }\n    ) => boolean;\n    className?: string;\n  }\n>;\n\nexport const BlockPlaceholderPlugin =\n  createTPlatePlugin<BlockPlaceholderConfig>({\n    key: KEYS.blockPlaceholder,\n    editOnly: true,\n    options: {\n      _target: null,\n      placeholders: {\n        [KEYS.p]: 'Type something...',\n      },\n      query: ({ path }) => {\n        return path.length === 1;\n      },\n    },\n    useHooks: (ctx) => {\n      const { editor, getOptions, setOption } = ctx;\n      const focused = useFocused();\n\n      const readOnly = useEditorReadOnly();\n      const composing = useEditorComposing();\n      const entry = useEditorSelector(() => {\n        if (\n          readOnly ||\n          composing ||\n          !focused ||\n          !editor.selection ||\n          editor.api.isExpanded()\n        )\n          return null;\n\n        return editor.api.block();\n      }, [readOnly, composing, focused]);\n\n      React.useEffect(() => {\n        if (!entry) {\n          setOption('_target', null);\n          return;\n        }\n\n        const { placeholders, query } = getOptions();\n\n        const [element, path] = entry;\n\n        const placeholder = Object.keys(placeholders).find(\n          (key) => editor.getType(key) === element.type\n        );\n\n        if (\n          query({ ...ctx, node: element, path }) &&\n          placeholder &&\n          editor.api.isEmpty(element) &&\n          !editor.api.isEmpty()\n        ) {\n          setOption('_target', {\n            node: element,\n            placeholder: placeholders[placeholder],\n          });\n        } else {\n          setOption('_target', null);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n      }, [editor, entry, setOption, getOptions]);\n    },\n  })\n    .extendSelectors(({ getOption }) => ({\n      placeholder: (node: TElement) => {\n        const target = getOption('_target');\n\n        if (target?.node === node) {\n          return target.placeholder;\n        }\n      },\n    }))\n    .extend({\n      inject: {\n        isBlock: true,\n        nodeProps: {\n          transformProps: (props) => {\n            // eslint-disable-next-line react-hooks/rules-of-hooks\n            const placeholder = usePluginOption(\n              props.plugin,\n              'placeholder',\n              props.element!\n            );\n\n            if (placeholder) {\n              return {\n                className: props.getOption('className'),\n                placeholder,\n              };\n            }\n          },\n        },\n      },\n    });\n","export const NODES = {\n  a: 'a',\n  ai: 'ai',\n  aiChat: 'aiChat',\n  audio: 'audio',\n  blockquote: 'blockquote',\n  bold: 'bold',\n  callout: 'callout',\n  code: 'code',\n  codeBlock: 'code_block',\n  codeLine: 'code_line',\n  codeSyntax: 'code_syntax',\n  column: 'column',\n  columnGroup: 'column_group',\n  comment: 'comment',\n  date: 'date',\n  emojiInput: 'emoji_input',\n  equation: 'equation',\n  excalidraw: 'excalidraw',\n  file: 'file',\n  h1: 'h1',\n  h2: 'h2',\n  h3: 'h3',\n  h4: 'h4',\n  h5: 'h5',\n  h6: 'h6',\n  highlight: 'highlight',\n  hr: 'hr',\n  img: 'img',\n  inlineEquation: 'inline_equation',\n  italic: 'italic',\n  kbd: 'kbd',\n  li: 'li',\n  lic: 'lic',\n  link: 'a',\n  listTodoClassic: 'action_item',\n  mediaEmbed: 'media_embed',\n  mention: 'mention',\n  mentionInput: 'mention_input',\n  olClassic: 'ol',\n  p: 'p',\n  searchHighlight: 'search_highlight',\n  slashInput: 'slash_input',\n  strikethrough: 'strikethrough',\n  sub: 'subscript',\n  suggestion: 'suggestion',\n  sup: 'superscript',\n  table: 'table',\n  tag: 'tag',\n  td: 'td',\n  th: 'th',\n  toc: 'toc',\n  toggle: 'toggle',\n  tr: 'tr',\n  ulClassic: 'ul',\n  underline: 'underline',\n  video: 'video',\n} as const;\n\nexport const STYLE_KEYS = {\n  backgroundColor: 'backgroundColor',\n  color: 'color',\n  fontFamily: 'fontFamily',\n  fontSize: 'fontSize',\n  fontWeight: 'fontWeight',\n  indent: 'indent',\n  lineHeight: 'lineHeight',\n  listType: 'listStyleType',\n  textAlign: 'textAlign',\n  textIndent: 'textIndent',\n} as const;\n\nexport const KEYS = {\n  ...NODES,\n  ...STYLE_KEYS,\n  autoformat: 'autoformat',\n  blockMenu: 'blockMenu',\n  blockPlaceholder: 'blockPlaceholder',\n  blockSelection: 'blockSelection',\n  caption: 'caption',\n  copilot: 'copilot',\n  csv: 'csv',\n  cursorOverlay: 'cursorOverlay',\n  delete: 'delete',\n  dnd: 'dnd',\n  docx: 'docx',\n  emoji: 'emoji',\n  exitBreak: 'exitBreak',\n  heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as string[],\n  html: 'html',\n  juice: 'juice',\n  list: 'list',\n  listChecked: 'checked',\n  listClassic: 'listClassic',\n  listRestart: 'listRestart',\n  listRestartPolite: 'listRestartPolite',\n  listStart: 'listStart',\n  listTodo: 'todo',\n  markdown: 'markdown',\n  nodeId: 'nodeId',\n  normalizeTypes: 'normalizeTypes',\n  ol: 'decimal',\n  placeholder: 'placeholder',\n  playwright: 'playwright',\n  removeEmptyNodes: 'removeEmptyNodes',\n  resetNode: 'resetNode',\n  singleBlock: 'singleBlock',\n  singleLine: 'singleLine',\n  slashCommand: 'slash_command',\n  softBreak: 'softBreak',\n  tabbable: 'tabbable',\n  trailingBlock: 'trailingBlock',\n  ul: 'disc',\n  yjs: 'yjs',\n} as const;\n\nexport type NodeKey = (typeof NODES)[keyof typeof NODES];\nexport type StyleKey = (typeof STYLE_KEYS)[keyof typeof STYLE_KEYS];\nexport type PlateKey = (typeof KEYS)[keyof typeof KEYS];\n"],"mappings":"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","names":["useEditorSelector","useEditorRef","useEditorSelector","useEditorSelector","useEditorSelector","useEditorSelector"]}