{ "version": 3, "sources": ["../../../../../src/lib/shapes/arrow/components/ArrowTextLabel.tsx"], "sourcesContent": ["import { TLArrowShape, TLShapeId, VecLike, stopEventPropagation } from '@tldraw/editor'\nimport * as React from 'react'\nimport { TextHelpers } from '../../shared/TextHelpers'\nimport { ARROW_LABEL_FONT_SIZES, TEXT_PROPS } from '../../shared/default-shape-constants'\nimport { useEditableText } from '../../shared/useEditableText'\n\nexport const ArrowTextLabel = React.memo(function ArrowTextLabel({\n\tid,\n\ttext,\n\tsize,\n\tfont,\n\tposition,\n\twidth,\n\tlabelColor,\n}: { id: TLShapeId; position: VecLike; width?: number; labelColor: string } & Pick<\n\tTLArrowShape['props'],\n\t'text' | 'size' | 'font'\n>) {\n\tconst {\n\t\trInput,\n\t\tisEditing,\n\t\thandleFocus,\n\t\thandleBlur,\n\t\thandleKeyDown,\n\t\thandleChange,\n\t\tisEmpty,\n\t\thandleInputPointerDown,\n\t\thandleDoubleClick,\n\t} = useEditableText(id, 'arrow', text)\n\n\tconst finalText = TextHelpers.normalizeTextForDom(text)\n\tconst hasText = finalText.trim().length > 0\n\n\tif (!isEditing && !hasText) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\t\t{text ? TextHelpers.normalizeTextForDom(text) : ' '}\n\t\t\t\t
\n\t\t\t\t{isEditing && (\n\t\t\t\t\t// Consider replacing with content-editable\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t