@tldraw/editor
Version:
tldraw infinite canvas SDK (editor).
8 lines (7 loc) • 2.33 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../../src/lib/components/default-components/DefaultHandle.tsx"],
"sourcesContent": ["import { TLHandle, TLShapeId } from '@tldraw/tlschema'\nimport classNames from 'classnames'\nimport { SIDES } from '../../constants'\nimport { useEditor } from '../../hooks/useEditor'\n\n/** @public */\nexport interface TLHandleProps {\n\tshapeId: TLShapeId\n\thandle: TLHandle\n\tzoom: number\n\tisCoarse: boolean\n\tclassName?: string\n}\n\n/** @public @react */\nexport function DefaultHandle({ handle, isCoarse, className, zoom }: TLHandleProps) {\n\tconst editor = useEditor()\n\tconst br = (isCoarse ? editor.options.coarseHandleRadius : editor.options.handleRadius) / zoom\n\n\tif (handle.type === 'clone') {\n\t\t// bouba\n\t\tconst fr = 3 / zoom\n\t\tconst path = `M0,${-fr} A${fr},${fr} 0 0,1 0,${fr}`\n\n\t\tconst index = SIDES.indexOf(handle.id as (typeof SIDES)[number])\n\t\treturn (\n\t\t\t<g className={classNames(`tl-handle tl-handle__${handle.type}`, className)}>\n\t\t\t\t<circle className=\"tl-handle__bg\" r={br} />\n\t\t\t\t{/* Half circle */}\n\t\t\t\t<path className=\"tl-handle__fg\" d={path} transform={`rotate(${-90 + 90 * index})`} />\n\t\t\t</g>\n\t\t)\n\t}\n\n\tconst fr = (handle.type === 'create' && isCoarse ? 3 : 4) / Math.max(zoom, 0.25)\n\treturn (\n\t\t<g className={classNames(`tl-handle tl-handle__${handle.type}`, className)}>\n\t\t\t<circle className=\"tl-handle__bg\" r={br} />\n\t\t\t<circle className=\"tl-handle__fg\" r={fr} />\n\t\t</g>\n\t)\n}\n"],
"mappings": "AA0BG,SACC,KADD;AAzBH,OAAO,gBAAgB;AACvB,SAAS,aAAa;AACtB,SAAS,iBAAiB;AAYnB,SAAS,cAAc,EAAE,QAAQ,UAAU,WAAW,KAAK,GAAkB;AACnF,QAAM,SAAS,UAAU;AACzB,QAAM,MAAM,WAAW,OAAO,QAAQ,qBAAqB,OAAO,QAAQ,gBAAgB;AAE1F,MAAI,OAAO,SAAS,SAAS;AAE5B,UAAMA,MAAK,IAAI;AACf,UAAM,OAAO,MAAM,CAACA,GAAE,KAAKA,GAAE,IAAIA,GAAE,YAAYA,GAAE;AAEjD,UAAM,QAAQ,MAAM,QAAQ,OAAO,EAA4B;AAC/D,WACC,qBAAC,OAAE,WAAW,WAAW,wBAAwB,OAAO,IAAI,IAAI,SAAS,GACxE;AAAA,0BAAC,YAAO,WAAU,iBAAgB,GAAG,IAAI;AAAA,MAEzC,oBAAC,UAAK,WAAU,iBAAgB,GAAG,MAAM,WAAW,UAAU,MAAM,KAAK,KAAK,KAAK;AAAA,OACpF;AAAA,EAEF;AAEA,QAAM,MAAM,OAAO,SAAS,YAAY,WAAW,IAAI,KAAK,KAAK,IAAI,MAAM,IAAI;AAC/E,SACC,qBAAC,OAAE,WAAW,WAAW,wBAAwB,OAAO,IAAI,IAAI,SAAS,GACxE;AAAA,wBAAC,YAAO,WAAU,iBAAgB,GAAG,IAAI;AAAA,IACzC,oBAAC,YAAO,WAAU,iBAAgB,GAAG,IAAI;AAAA,KAC1C;AAEF;",
"names": ["fr"]
}