UNPKG

@zsnout/ithkuil

Version:

A set of tools which can generate and parse romanized Ithkuil text and which can generate Ithkuil script from text and JSON data.

68 lines (67 loc) 5.28 kB
import { jsx as _jsx } from "@zsnout/ithkuil-jsx/jsx-runtime"; import { deepFreeze } from "../../generate/index.js"; /** An object containing all diacritics and their SVG paths. */ export const CORE_DIACRITICS = /* @__PURE__ */ deepFreeze({ DOT: "M 0 0 l 7.5 7.5 l 7.5 -7.5 l -7.5 -7.5 l -7.5 7.5 z", HORIZ_BAR: "M 0 0 l 10 -10 l -30 0 l -10 10 l 30 0 z", VERT_BAR: "M 0 0 l -10 10 l 0 25 l 10 -10 l 0 -25 z", DIAG_BAR: "M 0 0 l 20 20 l 7.5 -7.5 l -20 -20 l -7.5 7.5 z", TWO_PART_DIAG_BAR: "M 0 0 l 12.5 12.5 l -15 0 l -10 10 l 30 0 l 10 -10 l -20 -20 l -7.5 7.5 z", HORIZ_WITH_TOP_LINE: "M 0 0 l 8.8 -8.8 l -1.2 -1.2 l -20 20 l 30 0 l 10 -10 l -27.6 0 z", HORIZ_WITH_BOTTOM_LINE: "M 0 0 l -8.8 8.8 l 1.2 1.2 l 20 -20 l -30 0 l -10 10 l 27.6 0 z", VERT_WITH_LEFT_LINE: "M 0 0 l 0 -25 l -20 20 l 1.2 1.2 l 8.8 -8.8 l 0 22.6 l 10 -10 z", VERT_WITH_RIGHT_LINE: "M 0 0 l 0 25 l 20 -20 l -1.2 -1.2 l -8.8 8.8 l 0 -22.6 l -10 10 z", CURVE_TO_LEFT: "M 0 0 l -1.15 -1.25 q -6.55 11.7 -14.4 12.25 q -7.8 0.5 -17.45 -9.75 l -7.5 7.5 q 6.55 12.05 18.7 9.55 q 12.25 -2.5 21.8 -18.3 z", CURVE_TO_RIGHT: "M 0 0 l 1.15 1.25 q 6.55 -11.7 14.4 -12.25 q 7.8 -0.5 17.45 9.75 l 7.5 -7.5 q -6.55 -12.05 -18.7 -9.55 q -12.25 2.5 -21.8 18.3 z", CURVE_TO_TOP: "M 0 0 q -0.75 -5.3 -5.4 -8.4 q -4.9 -3.3 -12.95 -3.2 l -7.5 7.5 q 14.9 0.4 18.6 8.55 q 3.75 8.2 -7.45 16.9 l 1.25 1.15 q 7.35 -5.2 10.9 -11.4 q 3.3 -5.85 2.55 -11.1 z", CURVE_TO_BOTTOM: "M 0 0 q 0.75 5.3 5.4 8.4 q 4.9 3.3 12.95 3.2 l 7.5 -7.5 q -14.9 -0.4 -18.6 -8.55 q -3.75 -8.2 7.45 -16.9 l -1.25 -1.15 q -7.35 5.2 -10.9 11.4 q -3.3 5.85 -2.55 11.1 z", CURVE_TO_BOTTOM_WITH_LINE: "M 0 0 q -3.3 5.85 -2.55 11.1 q 0.75 5.3 5.4 8.4 q 4.162 2.803 10.6 3.15 l -8.85 8.85 l 1.2 1.2 l 17.5 -17.5 q -14.9 -0.4 -18.6 -8.55 q -3.75 -8.2 7.45 -16.9 l -1.25 -1.15 q -7.35 5.2 -10.9 11.4 z", CURVE_TO_LEFT_WITH_DOT: "M 0 0 l -1.15 -1.25 q -6.55 11.7 -14.4 12.25 q -7.8 0.5 -17.45 -9.75 l -7.5 7.5 q 6.55 12.05 18.7 9.55 q 12.25 -2.5 21.8 -18.3 m -9.6 -1.25 l -7.5 -7.5 l -7.5 7.5 l 7.5 7.5 l 7.5 -7.5 z", CURVE_TO_RIGHT_WITH_DOT: "M 0 0 l 1.15 1.25 q 6.55 -11.7 14.4 -12.25 q 7.8 -0.5 17.45 9.75 l 7.5 -7.5 q -6.55 -12.05 -18.7 -9.55 q -12.25 2.5 -21.8 18.3 m 9.6 1.25 l 7.5 7.5 l 7.5 -7.5 l -7.5 -7.5 l -7.5 7.5 z", a: "M 0 0 l 7.5 7.5 l 7.5 -7.5 l -7.5 -7.5 l -7.5 7.5 z", ä: "M 0 0 l 10 -10 l -30 0 l -10 10 l 30 0 z", e: "M 0 0 l -8.8 8.8 l 1.2 1.2 l 20 -20 l -30 0 l -10 10 l 27.6 0 z", ë: "M 0 0 l 8.8 -8.8 l -1.2 -1.2 l -20 20 l 30 0 l 10 -10 l -27.6 0 z", i: "M 0 0 l 20 20 l 7.5 -7.5 l -20 -20 l -7.5 7.5 z", o: "M 0 0 q -0.75 -5.3 -5.4 -8.4 q -4.9 -3.3 -12.95 -3.2 l -7.5 7.5 q 14.9 0.4 18.6 8.55 q 3.75 8.2 -7.45 16.9 l 1.25 1.15 q 7.35 -5.2 10.9 -11.4 q 3.3 -5.85 2.55 -11.1 z", ö: "M 0 0 q 0.75 5.3 5.4 8.4 q 4.9 3.3 12.95 3.2 l 7.5 -7.5 q -14.9 -0.4 -18.6 -8.55 q -3.75 -8.2 7.45 -16.9 l -1.25 -1.15 q -7.35 5.2 -10.9 11.4 q -3.3 5.85 -2.55 11.1 z", u: "M 0 0 l 0 25 l 20 -20 l -1.2 -1.2 l -8.8 8.8 l 0 -22.6 l -10 10 z", ü: "M 0 0 l 0 -25 l -20 20 l 1.2 1.2 l 8.8 -8.8 l 0 22.6 l 10 -10 z", }); /** An object containing all handwritten diacritics. */ export const HANDWRITTEN_DIACRITICS = /* @__PURE__ */ deepFreeze({ DOT: "M 0 0 a -0.75 -0.75 0 0 0 -0.75 -0.75 a -0.75 -0.75 0 0 0 -0.75 0.75 a -0.75 -0.75 0 0 0 0.75 0.75 a -0.75 -0.75 0 0 0 0.75 -0.75", HORIZ_BAR: "M 0 0 h 20", VERT_BAR: "M 0 0 v 20", DIAG_BAR: "M 0 0 l 20 20", TWO_PART_DIAG_BAR: "M 0 0 h 20 l -12.5 -15", HORIZ_WITH_TOP_LINE: "M 0 0 h -15 a 2.5 2.5 0 0 1 0 -5", HORIZ_WITH_BOTTOM_LINE: "M 0 0 h 15 a 2.5 2.5 0 0 1 0 5", VERT_WITH_LEFT_LINE: "M 0 0 v -15 a 2.5 2.5 0 0 0 -5 0", VERT_WITH_RIGHT_LINE: "M 0 0 v 15 a 2.5 2.5 0 0 0 5 0", CURVE_TO_LEFT: "M 0 0 a 12.5 12.5 0 0 1 -20 0", CURVE_TO_RIGHT: "M 0 0 a 12.5 12.5 0 0 0 -20 0", CURVE_TO_TOP: "M 0 0 c 7.5 -7.5 3.75 -17.25 -11.25 -15", CURVE_TO_BOTTOM: "M 0 0 c -7.5 7.5 -3.75 17.25 11.25 15", CURVE_TO_BOTTOM_WITH_LINE: "M 0 0 c -7.5 7.5 -3.75 17.25 11.25 15 l -10 15", CURVE_TO_LEFT_WITH_DOT: "M 0 0 a 12.5 12.5 0 0 1 -20 0 m 9.25 -4.25 a 0.75 0.75 0 0 0 0.75 0.75 a 0.75 0.75 0 0 0 0.75 -0.75 a 0.75 0.75 0 0 0 -0.75 -0.75 a 0.75 0.75 0 0 0 -0.75 0.75", CURVE_TO_RIGHT_WITH_DOT: "M 0 0 a -12.5 -12.5 0 0 1 20 0 m -9.25 4.25 a -0.75 -0.75 0 0 0 -0.75 -0.75 a -0.75 -0.75 0 0 0 -0.75 0.75 a -0.75 -0.75 0 0 0 0.75 0.75 a -0.75 -0.75 0 0 0 0.75 -0.75", a: "M 0 0 a -0.75 -0.75 0 0 0 -0.75 -0.75 a -0.75 -0.75 0 0 0 -0.75 0.75 a -0.75 -0.75 0 0 0 0.75 0.75 a -0.75 -0.75 0 0 0 0.75 -0.75", ä: "M 0 0 h 20", e: "M 0 0 h 15 a 2.5 2.5 0 0 1 0 5", ë: "M 0 0 h -15 a 2.5 2.5 0 0 1 0 -5", i: "M 0 0 l 20 20", o: "M 0 0 c 7.5 -7.5 3.75 -17.25 -11.25 -15", ö: "M 0 0 c -7.5 7.5 -3.75 17.25 11.25 15", u: "M 0 0 v 15 a 2.5 2.5 0 0 0 5 0", ü: "M 0 0 v -15 a 2.5 2.5 0 0 0 -5 0", }); /** * Instantiates a diacritic into an SVG path. * * @param props Properties that modify the output of this `Diacritic`. * @returns An `SVGPathElement` containing the diacritic. */ export function Diacritic(props) { return (_jsx("path", { d: (props.handwritten ? HANDWRITTEN_DIACRITICS : CORE_DIACRITICS)[props.name] })); }