{"version":3,"sources":["jsdelivr-header.js","/npm/@udecode/plate-ui-placeholder@21.5.1/src/components/Placeholder.styles.ts","/npm/@udecode/plate-ui-placeholder@21.5.1/src/components/Placeholder.tsx"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gbCAa,qBACX,GAEA,mCACE,CAAE,iBAAkB,iBAAkB,GACtC,CACE,KAAM,EAAM,QACR,qBAIQ,yDAAA,SAAA,WAAA,QAAA,QAAA,OAAA,cAGR,ICPG,YAAgC,IAC3C,MAAM,SACJ,EADI,QAEJ,EAFI,YAGJ,EAHI,WAIJ,GAAa,EAJT,UAKJ,GACE,EAEE,EAAU,wBACV,EAAW,yBACX,EAAS,kCAIT,EAFe,2BAAe,EAAQ,MAIxC,GACC,wBAAY,EAAO,YAAc,GAAc,GAAW,GAE/D,OAAO,uBAAM,SAAS,IAAI,GAAW,GAC5B,uBAAM,aAAa,EAAO,CAC/B,UAAW,EAAM,MAAM,UACvB,UAAW,IACN,EACH,OAAQ,qBAAqB,CAAE,aAAY,IAC3C,kBANN,EAYW,gBAAkB,0BAAc,aAChC,iBAAmB,2BAAe,a","file":"/npm/@udecode/plate-ui-placeholder@21.5.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/@udecode/plate-ui-placeholder@21.5.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { Value } from '@udecode/plate-common';\nimport { createStyles } from '@udecode/plate-styled-components';\nimport { css } from 'styled-components';\nimport tw from 'twin.macro';\nimport { PlaceholderProps } from './Placeholder.types';\n\nexport const getPlaceholderStyles = <V extends Value>(\n  props: PlaceholderProps<V> & { enabled?: boolean }\n) =>\n  createStyles(\n    { prefixClassNames: 'Placeholder', ...props },\n    {\n      root: props.enabled\n        ? css`\n            ::before {\n              content: attr(placeholder);\n              opacity: 0.3;\n              ${tw`block absolute cursor-text`}\n            }\n          `\n        : undefined,\n    }\n  );\n","import React from 'react';\nimport {\n  createNodeHOC,\n  createNodesHOC,\n  isCollapsed,\n  isElementEmpty,\n  usePlateEditorState,\n  Value,\n} from '@udecode/plate-common';\nimport { useFocused, useSelected } from 'slate-react';\nimport { getPlaceholderStyles } from './Placeholder.styles';\nimport { PlaceholderProps } from './Placeholder.types';\n\nexport const Placeholder = <V extends Value>(props: PlaceholderProps<V>) => {\n  const {\n    children,\n    element,\n    placeholder,\n    hideOnBlur = true,\n    nodeProps,\n  } = props;\n\n  const focused = useFocused();\n  const selected = useSelected();\n  const editor = usePlateEditorState();\n\n  const isEmptyBlock = isElementEmpty(editor, element);\n\n  const enabled =\n    isEmptyBlock &&\n    (!hideOnBlur ||\n      (isCollapsed(editor.selection) && hideOnBlur && focused && selected));\n\n  return React.Children.map(children, (child) => {\n    return React.cloneElement(child, {\n      className: child.props.className,\n      nodeProps: {\n        ...nodeProps,\n        styles: getPlaceholderStyles({ enabled, ...props }),\n        placeholder,\n      },\n    });\n  });\n};\n\nexport const withPlaceholder = createNodeHOC(Placeholder);\nexport const withPlaceholders = createNodesHOC(Placeholder);\n"]}