UNPKG

@udecode/plate-ui-mention

Version:

Media embed UI for Plate

159 lines (143 loc) 5.07 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var plateCommon = require('@udecode/plate-common'); var plateMention = require('@udecode/plate-mention'); var plateUiCombobox = require('@udecode/plate-ui-combobox'); var plateStyledComponents = require('@udecode/plate-styled-components'); var _styled = require('styled-components'); var slateReact = require('slate-react'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var _styled__default = /*#__PURE__*/_interopDefaultLegacy(_styled); function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } const MentionCombobox = ({ pluginKey = plateMention.ELEMENT_MENTION, id = pluginKey, ...props }) => { const editor = plateCommon.usePlateEditorRef(); const { trigger } = plateCommon.getPluginOptions(editor, pluginKey); return /*#__PURE__*/React__default["default"].createElement(plateUiCombobox.Combobox, _extends({ id: id, trigger: trigger, controlled: true, onSelectItem: plateMention.getMentionOnSelectItem({ key: pluginKey }) }, props)); }; const getMentionElementStyles = props => plateStyledComponents.createStyles({ prefixClassNames: 'MentionElement', ...props }, { root: [{ "marginLeft": "1px", "marginRight": "1px", "marginTop": "0px", "marginBottom": "0px", "display": "inline-block", "verticalAlign": "baseline" }, props.selected && props.focused && { "--tw-shadow": "0 0 0 2px #B4D5FF", "--tw-shadow-colored": "0 0 0 2px var(--tw-shadow-color)", "boxShadow": "var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)" }, _styled.css(["padding:3px 3px 2px;border-radius:4px;background-color:#eee;font-size:0.9em;"])] }); const MentionElement = props => { const { attributes, children, nodeProps, element, prefix, onClick, renderLabel } = props; const rootProps = plateStyledComponents.getRootProps(props); const selected = slateReact.useSelected(); const focused = slateReact.useFocused(); const styles = getMentionElementStyles({ ...props, selected, focused }); return /*#__PURE__*/React__default["default"].createElement(_StyledSpan$1, _extends({}, attributes, { "data-slate-value": element.value, className: styles.root.className, contentEditable: false, onClick: plateCommon.getHandler(onClick, element) }, rootProps, nodeProps, { $_css: styles.root.css }), prefix, renderLabel ? renderLabel(element) : element.value, children); }; var _StyledSpan$1 = _styled__default["default"]("span").withConfig({ displayName: "MentionElement___StyledSpan", componentId: "sc-1oqi1vc-0" })(["", ""], p => p.$_css); const getMentionInputElementStyles = props => plateStyledComponents.createStyles({ prefixClassNames: 'MentionInputElement', ...props }, { root: [{ "marginLeft": "1px", "marginRight": "1px", "marginTop": "0px", "marginBottom": "0px", "display": "inline-block", "verticalAlign": "baseline" }, props.selected && props.focused && { "--tw-shadow": "0 0 0 2px #B4D5FF", "--tw-shadow-colored": "0 0 0 2px var(--tw-shadow-color)", "boxShadow": "var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)" }, _styled.css(["padding:3px 3px 2px;border-radius:4px;background-color:#eee;font-size:0.9em;"])] }); const MentionInputElement = props => { const { attributes, children, nodeProps, element, as, onClick } = props; const rootProps = plateStyledComponents.getRootProps(props); const selected = slateReact.useSelected(); const focused = slateReact.useFocused(); const styles = getMentionInputElementStyles({ ...props, selected, focused }); return /*#__PURE__*/React__default["default"].createElement(_StyledSpan, _extends({}, attributes, { as: as, "data-slate-value": element.value, className: styles.root.className, onClick: plateCommon.getHandler(onClick, element) }, rootProps, nodeProps, { $_css: styles.root.css }), children); }; var _StyledSpan = _styled__default["default"]("span").withConfig({ displayName: "MentionInputElement___StyledSpan", componentId: "sc-7amwcf-0" })(["", ""], p => p.$_css); exports.MentionCombobox = MentionCombobox; exports.MentionElement = MentionElement; exports.MentionInputElement = MentionInputElement; exports.getMentionElementStyles = getMentionElementStyles; exports.getMentionInputElementStyles = getMentionInputElementStyles; //# sourceMappingURL=index.js.map