{"version":3,"file":"named-link-markers.cjs","sources":["../../../src/theme/named-link-markers.tsx"],"sourcesContent":["import { isString } from '../utils/is';\nimport {\n  linkMarkerArrow,\n  linkMarkerArrowOpen,\n  linkMarkerArrowSunken,\n  linkMarkerCircle,\n  linkMarkerDiamond,\n  type LinkMarkerRecord,\n} from '../presets/link-markers';\n\n/**\n * Built-in marker shapes for links.\n */\nexport const namedLinkMarkers = {\n  'none': null,\n  'arrow': linkMarkerArrow(),\n  'arrow-open': linkMarkerArrowOpen(),\n  'arrow-sunken': linkMarkerArrowSunken(),\n  'circle': linkMarkerCircle(),\n  'diamond': linkMarkerDiamond(),\n} as const satisfies Record<string, LinkMarkerRecord | null>;\n\n/**\n * The names of the built-in link markers you can pass to a {@link LinkStyle}:\n * `'arrow'`, `'arrow-open'`, `'arrow-sunken'`, `'circle'`, `'diamond'`, or\n * `'none'`.\n * @group Types\n */\nexport type LinkMarkerName = keyof typeof namedLinkMarkers;\n\n/**\n * A link endpoint marker, either a built-in {@link LinkMarkerName} or a custom\n * {@link LinkMarkerRecord}.\n * @group Types\n */\nexport type LinkMarker = LinkMarkerName | LinkMarkerRecord;\n\n/**\n * Normalizes a {@link LinkMarker} into a concrete {@link LinkMarkerRecord}. Looks\n * up a built-in name (`'arrow'`, `'circle'`, …) in the marker registry, passes a\n * custom record through unchanged, and returns `null` for `'none'`, `undefined`,\n * or an unknown name, meaning \"draw no marker\".\n * @param marker - a marker name, a custom marker record, `'none'`, or `undefined`\n * @returns The resolved marker record, or `null` when no marker should be drawn\n * @example\n * ```ts\n * import { resolveLinkMarker } from '@joint/react';\n *\n * resolveLinkMarker('arrow'); // built-in arrow record\n * resolveLinkMarker('none');  // null\n * ```\n * @group Presets\n */\nexport function resolveLinkMarker(marker: LinkMarker | undefined): LinkMarkerRecord | null {\n  if (marker === undefined || marker === 'none') return null;\n  const resolvedMarker = isString(marker)\n    ? namedLinkMarkers[marker as keyof typeof namedLinkMarkers]\n    : marker;\n  if (!resolvedMarker) return null;\n  return resolvedMarker;\n}\n"],"names":["linkMarkerArrow","linkMarkerArrowOpen","linkMarkerArrowSunken","linkMarkerCircle","linkMarkerDiamond","isString"],"mappings":";;;;;;;;;;;;AAaO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,gBAAA,CAAA,CAAA,CAAmB,CAAA;AAAA,CAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAASA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAgB,CAAA;AAAA,CAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAoB,CAAA;AAAA,CAAA,CAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAsB,CAAA;AAAA,CAAA,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAiB,CAAA;AAAA,CAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;AACb,CAAA,CAAA;AAiCO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyD,CAAA;AACzF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,MAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAiBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC,CAAA,GACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;;"}