{ "version": 3, "sources": ["../../../../../src/lib/shapes/frame/components/FrameLabelInput.tsx"], "sourcesContent": ["import { TLFrameShape, TLShapeId, stopEventPropagation, useEditor } from '@tldraw/editor'\nimport { forwardRef, useCallback } from 'react'\nimport { defaultEmptyAs } from '../FrameShapeUtil'\n\nexport const FrameLabelInput = forwardRef<\n\tHTMLInputElement,\n\t{ id: TLShapeId; name: string; isEditing: boolean }\n>(({ id, name, isEditing }, ref) => {\n\tconst editor = useEditor()\n\n\tconst handleKeyDown = useCallback(\n\t\t(e: React.KeyboardEvent) => {\n\t\t\tif (e.key === 'Enter' && !e.nativeEvent.isComposing) {\n\t\t\t\t// need to prevent the enter keydown making it's way up to the Idle state\n\t\t\t\t// and sending us back into edit mode\n\t\t\t\tstopEventPropagation(e)\n\t\t\t\te.currentTarget.blur()\n\t\t\t\teditor.setEditingShape(null)\n\t\t\t}\n\t\t},\n\t\t[editor]\n\t)\n\n\tconst handleBlur = useCallback(\n\t\t(e: React.FocusEvent) => {\n\t\t\tconst shape = editor.getShape(id)\n\t\t\tif (!shape) return\n\n\t\t\tconst name = shape.props.name\n\t\t\tconst value = e.currentTarget.value.trim()\n\t\t\tif (name === value) return\n\n\t\t\teditor.updateShapes(\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\ttype: 'frame',\n\t\t\t\t\t\tprops: { name: value },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t{ squashing: true }\n\t\t\t)\n\t\t},\n\t\t[id, editor]\n\t)\n\n\tconst handleChange = useCallback(\n\t\t(e: React.ChangeEvent) => {\n\t\t\tconst shape = editor.getShape(id)\n\t\t\tif (!shape) return\n\n\t\t\tconst name = shape.props.name\n\t\t\tconst value = e.currentTarget.value\n\t\t\tif (name === value) return\n\n\t\t\teditor.updateShapes(\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\ttype: 'frame',\n\t\t\t\t\t\tprops: { name: value },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t{ squashing: true }\n\t\t\t)\n\t\t},\n\t\t[id, editor]\n\t)\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{defaultEmptyAs(name, 'Frame') + String.fromCharCode(8203)}\n\t\t
\n\t)\n})\n"], "mappings": "AAsEE,SACC,KADD;AAtEF,SAAkC,sBAAsB,iBAAiB;AACzE,SAAS,YAAY,mBAAmB;AACxC,SAAS,sBAAsB;AAExB,MAAM,kBAAkB,WAG7B,CAAC,EAAE,IAAI,MAAM,UAAU,GAAG,QAAQ;AACnC,QAAM,SAAS,UAAU;AAEzB,QAAM,gBAAgB;AAAA,IACrB,CAAC,MAA6C;AAC7C,UAAI,EAAE,QAAQ,WAAW,CAAC,EAAE,YAAY,aAAa;AAGpD,6BAAqB,CAAC;AACtB,UAAE,cAAc,KAAK;AACrB,eAAO,gBAAgB,IAAI;AAAA,MAC5B;AAAA,IACD;AAAA,IACA,CAAC,MAAM;AAAA,EACR;AAEA,QAAM,aAAa;AAAA,IAClB,CAAC,MAA0C;AAC1C,YAAM,QAAQ,OAAO,SAAuB,EAAE;AAC9C,UAAI,CAAC;AAAO;AAEZ,YAAMA,QAAO,MAAM,MAAM;AACzB,YAAM,QAAQ,EAAE,cAAc,MAAM,KAAK;AACzC,UAAIA,UAAS;AAAO;AAEpB,aAAO;AAAA,QACN;AAAA,UACC;AAAA,YACC;AAAA,YACA,MAAM;AAAA,YACN,OAAO,EAAE,MAAM,MAAM;AAAA,UACtB;AAAA,QACD;AAAA,QACA,EAAE,WAAW,KAAK;AAAA,MACnB;AAAA,IACD;AAAA,IACA,CAAC,IAAI,MAAM;AAAA,EACZ;AAEA,QAAM,eAAe;AAAA,IACpB,CAAC,MAA2C;AAC3C,YAAM,QAAQ,OAAO,SAAuB,EAAE;AAC9C,UAAI,CAAC;AAAO;AAEZ,YAAMA,QAAO,MAAM,MAAM;AACzB,YAAM,QAAQ,EAAE,cAAc;AAC9B,UAAIA,UAAS;AAAO;AAEpB,aAAO;AAAA,QACN;AAAA,UACC;AAAA,YACC;AAAA,YACA,MAAM;AAAA,YACN,OAAO,EAAE,MAAM,MAAM;AAAA,UACtB;AAAA,QACD;AAAA,QACA,EAAE,WAAW,KAAK;AAAA,MACnB;AAAA,IACD;AAAA,IACA,CAAC,IAAI,MAAM;AAAA,EACZ;AAEA,SACC,qBAAC,SAAI,WAAW,kBAAkB,YAAY,4BAA4B,EAAE,IAC3E;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV;AAAA,QACA,OAAO,EAAE,SAAS,YAAY,SAAY,OAAO;AAAA,QACjD,OAAO;AAAA,QACP,WAAS;AAAA,QACT,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,UAAU;AAAA;AAAA,IACX;AAAA,IACC,eAAe,MAAM,OAAO,IAAI,OAAO,aAAa,IAAI;AAAA,KAC1D;AAEF,CAAC;", "names": ["name"] }