tikzify 0.0.26 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tikzify",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "type": "module",
5
5
  "exports": "./src/index.ts",
6
6
  "files": [
package/src/common.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  import assert from 'assert'
2
2
  import sax from 'sax'
3
3
  import { z } from 'zod'
4
+ import { emojiMap } from './emojis'
4
5
 
5
6
  export const color = z.string().length(7)
6
7
  export const gradient = z.array(color).length(2)
7
8
 
8
- export const Emoji = z.string().max(8)
9
+ export type Emoji = z.infer<typeof Emoji>
10
+ export const Emoji = z.object(emojiMap).keyof()
9
11
 
10
12
  const langs = ['he', 'en'] as const
11
13
  export const Lang = z.enum(langs)
package/src/emojis.ts CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- export const emojiMap: Record<string, string> = {
3
+ export const emojiMap = {
4
4
  "🌸": '<g><path fill="#F4ABBA" d="M31.298 20.807c4.197-1.363 5.027-3.182 4.191-6.416-.952.308-2.105-.001-2.272-.518-.168-.513.581-1.443 1.533-1.753-1.223-3.107-2.964-4.089-7.161-2.727-1.606.522-3.238 1.492-4.655 2.635C23.582 10.327 24 8.475 24 6.786c0-4.412-1.473-5.765-4.807-5.968 0 1-.652 2-1.193 2s-1.194-1-1.194-2C13.472 1.021 12 2.374 12 6.786c0 1.689.417 3.541 1.066 5.241-1.416-1.142-3.049-2.111-4.655-2.633-4.197-1.364-5.938-.381-7.162 2.727.951.31 1.701 1.238 1.534 1.753-.167.515-1.32.826-2.271.518-.837 3.233-.005 5.052 4.19 6.415 1.606.521 3.497.697 5.314.605-1.524.994-2.95 2.247-3.943 3.613-2.594 3.57-2.197 5.53.381 7.654.588-.809 1.703-1.235 2.142-.917.438.317.378 1.511-.21 2.32 2.816 1.795 4.803 1.565 7.396-2.003.993-1.366 1.743-3.111 2.218-4.867.475 1.757 1.226 3.501 2.218 4.867 2.594 3.57 4.58 3.798 7.397 2.003-.587-.81-.649-2.002-.21-2.321.437-.317 1.553.107 2.142.917 2.577-2.123 2.973-4.083.381-7.653-.993-1.366-2.42-2.619-3.943-3.613 1.816.092 3.706-.084 5.313-.605zM18 20.337c-.162-.292-.353-.538-.588-.709-.234-.171-.528-.276-.856-.341.228-.244.403-.502.493-.778.09-.275.1-.587.059-.919.302.141.602.228.892.228s.59-.087.894-.229c-.041.332-.031.644.059.919.09.276.265.534.492.778-.327.065-.621.17-.855.341-.236.172-.428.418-.59.71z"/><g fill="#FFF"><path d="M16.795 18.685c-.12.54-.653.88-1.193.76l-5.858-1.302c-.539-.12-.879-.653-.759-1.193.12-.539.654-.879 1.193-.759l5.857 1.302c.54.12.88.653.76 1.192zm.976.218c.12-.54.654-.88 1.193-.76l5.857 1.302c.54.12.879.653.76 1.193-.12.538-.654.879-1.193.759l-5.857-1.302c-.54-.118-.88-.654-.76-1.192z"/><path d="M17.771 18.903c-.466.296-1.083.159-1.38-.308l-3.221-5.061c-.296-.466-.16-1.084.307-1.38.466-.297 1.084-.159 1.38.307l3.222 5.062c.295.466.158 1.083-.308 1.38zm.797 1.252c.466-.296 1.084-.159 1.38.307l3.223 5.062c.296.467.159 1.083-.308 1.381-.466.296-1.084.159-1.381-.307l-3.221-5.062c-.296-.466-.157-1.084.307-1.381z"/><path d="M17.988 17.927c-.539-.12-.879-.654-.759-1.193l1.302-5.857c.119-.539.652-.879 1.192-.759.54.12.879.654.759 1.193l-1.301 5.857c-.119.538-.654.879-1.193.759zm-.217.976c.539.119.879.653.759 1.192l-1.3 5.857c-.121.54-.654.88-1.194.76-.538-.12-.878-.654-.76-1.193l1.303-5.857c.119-.539.653-.879 1.192-.759z"/><path d="M17.771 18.902c-.297-.466-.159-1.083.307-1.38l5.062-3.221c.466-.296 1.084-.16 1.38.307.297.466.159 1.083-.307 1.38l-5.062 3.221c-.466.297-1.084.16-1.38-.307z"/><path d="M17.771 18.902c.296.467.159 1.084-.307 1.381l-5.062 3.222c-.466.296-1.083.16-1.381-.308-.296-.465-.159-1.083.307-1.38l5.062-3.222c.467-.296 1.085-.158 1.381.307z"/></g><path d="M22.012 25.566c.932-.592 2.168-.317 2.762.614.593.932.318 2.168-.614 2.762-.932.593-2.168.318-2.762-.614-.592-.932-.318-2.168.614-2.762zM14.55 13.841c-.932.593-2.168.319-2.761-.613-.593-.932-.318-2.168.614-2.761.932-.593 2.168-.318 2.761.613.593.932.318 2.168-.614 2.761zm1.92 10.918c1.078.241 1.758 1.31 1.52 2.388-.24 1.078-1.308 1.758-2.387 1.519-1.079-.24-1.758-1.309-1.519-2.387.239-1.079 1.308-1.758 2.386-1.52zm3.037-13.665c-1.078-.239-1.758-1.308-1.518-2.386.239-1.078 1.308-1.758 2.386-1.519 1.078.24 1.759 1.308 1.519 2.386-.241 1.079-1.309 1.758-2.387 1.519zm-6.013 10.53c.592.933.317 2.169-.614 2.763-.932.593-2.168.318-2.762-.615-.593-.931-.318-2.167.613-2.761.933-.592 2.169-.318 2.763.613zm9.339-5.943c-.593-.932-.317-2.168.614-2.761.932-.593 2.168-.318 2.761.614s.317 2.168-.613 2.761c-.933.593-2.169.318-2.762-.614zm.795 4.524c.24-1.079 1.309-1.759 2.387-1.52 1.078.24 1.758 1.309 1.519 2.387-.24 1.078-1.309 1.758-2.387 1.518-1.079-.238-1.758-1.307-1.519-2.385zm-12.69-2.821c-.24 1.079-1.308 1.758-2.386 1.519-1.078-.24-1.758-1.309-1.519-2.387.239-1.078 1.308-1.758 2.386-1.519 1.079.241 1.758 1.309 1.519 2.387z" fill="#EA596E"/><circle fill="#FFCC4D" cx="18" cy="18.818" r="4"/></g>',
5
5
  "🌼": '<g><path fill="#77B255" d="M28.938 27.441c-2.554-.89-8.111-.429-9.938 1.331V17c0-.553-.447-1-1-1s-1 .447-1 1v11.772c-1.827-1.76-7.384-2.221-9.938-1.331-.741.259 5.264 8.749 9.507 4.507.168-.168.306-.33.431-.49V35c0 .553.447 1 1 1s1-.447 1-1v-3.542c.125.16.263.322.431.49 4.243 4.242 10.248-4.248 9.507-4.507z"/><path fill="#CCD6DD" d="M12.562 25.65c-.619-.266-1.107-.837-1.378-1.513l-1.266-3.306-3.258-1.393c-1.336-.574-1.876-1.922-1.304-3.259l1.362-3.181-1.364-3.269c-.541-1.35.15-2.868 1.5-3.408l3.272-1.281 1.449-3.384C12.148.32 13.496-.22 14.833.352l3.258 1.396L21.358.382c.675-.271 1.411-.276 2.03-.011.619.265 1.114.819 1.385 1.494l1.274 3.29 3.309 1.417c1.336.572 1.875 1.921 1.305 3.258l-1.451 3.384 1.365 3.267c.541 1.35-.15 2.866-1.5 3.407l-3.271 1.281-1.363 3.183c-.572 1.336-1.922 1.877-3.258 1.305l-3.308-1.417-3.267 1.364c-.676.271-1.427.311-2.046.046z"/><path fill="#E1E8ED" d="M29.356 6.572l-3.309-1.417-.055-.143c-1.565 1.337-5.215 4.354-5.215 4.354l.007.123C20.015 8.879 19.057 8.5 18 8.5V1.709L14.833.353c-1.337-.572-2.685-.032-3.258 1.304l-1.449 3.384-.061.024 4.753 4.754c-.814.813-1.318 1.938-1.318 3.181H6.717l-1.361 3.178c-.572 1.337-.032 2.686 1.304 3.259l3.258 1.394.002.006 4.496-5.142c.822 1.09 2.115 1.805 3.584 1.805h.005c.006 1.979.015 5.273.012 6.801l3.164 1.356c1.336.572 2.686.031 3.258-1.305l1.362-3.18-5.192-4.517c1.14-.816 1.89-2.145 1.89-3.654 0-.071-.018-.137-.021-.208 1.802.182 4.951.472 6.822.642l-.092-.22L30.66 9.83c.571-1.337.031-2.686-1.304-3.258z"/><circle fill="#F4900C" cx="18" cy="13" r="5"/></g>',
6
6
  "🌺": '<g><path fill="#77B255" d="M19.602 32.329c6.509 6.506 17.254-7.669 15.72-7.669-7.669 0-22.227 1.161-15.72 7.669z"/><path fill="#77B255" d="M15.644 33.372C9.612 39.404-.07 26.263 1.352 26.263c3.81 0 9.374-.348 12.79.867 2.958 1.052 4.304 3.442 1.502 6.242z"/><path fill="#F4ABBA" d="M34.613 15.754c-.052-.901-.175-2.585-1.398-4.227-1.16-1.549-3.805-3.371-5.534-2.585.516-1.676-.264-4.125-1.191-5.49-1.179-1.736-4.262-3.843-8.146-3.026-1.754.369-4.18 2.036-4.632 3.864-1.18-1.471-4.22-1.675-6.015-1.222-2.026.511-3.154 1.777-3.739 2.461l.003-.005-.03.034-.027.033c-.583.689-1.656 1.994-1.847 4.074-.193 2.146.75 5.832 3.026 6.042.149.014.324.031.514.051-2.271.098-3.572 3.654-3.595 5.8-.022 2.102.926 3.506 1.443 4.243l-.003-.004c.008.01.019.024.025.036.007.011.02.023.026.036.523.733 1.525 2.094 3.515 2.776 1.958.669 5.553.656 6.567-1.236-.273 2.244 3.027 4.077 5.169 4.438 2.115.358 3.71-.358 4.55-.753l-.005.003c.013-.008.028-.015.041-.021l.041-.02c.838-.4 2.398-1.178 3.462-3.04.729-1.282 1.27-3.403.951-5.015l.192.127c1.826 1.224 4.63-1.119 5.705-2.938 1.044-1.761.932-4.424.932-4.436z"/><path fill="#EA596E" d="M27.542 13.542c-1.786-.997-4.874-.434-6.792.308-.266-.468-.621-.875-1.051-1.196 1.393-1.607 3.526-4.593 1.468-6.362-2.191-1.883-3.74 2.154-3.575 5.605-.068-.003-.132-.02-.201-.02-1.019 0-1.94.402-2.632 1.045-1.401-2.277-3.942-4.244-5.314-2.392-1.482 2.002 1.148 3.153 4.222 4.2-.09.329-.154.668-.154 1.025 0 .456.093.887.238 1.293-2.541.732-6.236 2.718-4.21 4.91 2.122 2.296 4.472-1.238 5.604-3.053.635.454 1.407.727 2.247.727.225 0 .441-.029.655-.066-.109 4.802 1.443 7.07 4.036 5.892 2.295-1.043-.137-5.299-1.781-7.165.316-.362.564-.779.729-1.241 7.008 2.544 8.589-2.351 6.511-3.51z"/><path fill="#BE1931" d="M17.707 17.459c-.679 0-.668-.562-.832-1.25-.532-2.233-2.381-6.308-4.601-9.163-.509-.654-.391-1.596.263-2.105.654-.508 1.596-.391 2.105.263 2.439 3.136 3.264 7.404 3.982 10.421.191.806.237 1.601-.569 1.792-.116.028-.233.042-.348.042z"/><path fill="#FFCC4D" d="M15.904 5.327c.498.684.079 1.838-.936 2.578l-.475.347c-1.016.739-2.243.785-2.741.101l-2.78-3.817c-.498-.684-.079-1.838.936-2.577l.475-.347c1.015-.739 2.242-.785 2.74-.101l2.781 3.816z"/></g>',
@@ -986,4 +986,4 @@ export const emojiMap: Record<string, string> = {
986
986
  "🕳️": '<g><path fill="#31373D" d="M18 11.001c-9.389 0-17 3.358-17 7.5s7.611 7.5 17 7.5 17-3.358 17-7.5-7.611-7.5-17-7.5z"/><path fill="#7D8B93" d="M33.871 19.284c.079-.256.129-.516.129-.783 0-1.418-1.16-2.676-3-3.699v2.778c1.083.51 2.05 1.08 2.871 1.704zM5 14.802c-1.84 1.023-3 2.281-3 3.699 0 .267.05.527.129.783C2.95 18.66 3.917 18.09 5 17.58v-2.778z"/><path fill="#CCD6DD" d="M18 12.001c-4.766 0-9.87 1.06-13 2.801v2.778c3.398-1.598 7.967-2.579 13-2.579s9.602.981 13 2.579v-2.778c-3.13-1.741-8.234-2.801-13-2.801z"/></g>',
987
987
  "✡️": '<g><path fill="#9266CC" d="M36 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V4c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v28z"/><path fill="#FFF" d="M27.152 18l3.716-6.504c.177-.31.176-.69-.003-.998C30.686 10.19 30.356 10 30 10h-7.42l-3.712-6.496c-.355-.623-1.381-.623-1.736 0L13.42 10H6c-.356 0-.686.19-.865.498-.179.308-.18.688-.003.998L8.848 18l-3.716 6.504c-.177.31-.176.689.003.998.179.309.509.498.865.498h7.42l3.712 6.496c.178.312.509.504.868.504s.69-.192.868-.504L22.58 26H30c.356 0 .686-.189.865-.498.179-.309.18-.688.003-.998L27.152 18zm1.124-6L26 15.984 23.723 12h4.553zm-3.428 6l-3.428 6h-6.84l-3.429-6 3.429-6h6.839l3.429 6zM18 6.016L20.277 10h-4.553L18 6.016zM7.723 12h4.554L10 15.985 7.723 12zm0 12L10 20.015 12.277 24H7.723zM18 29.984L15.723 26h4.553L18 29.984zM23.723 24L26 20.016 28.276 24h-4.553z"/></g>',
988
988
  "🫂": '<g><ellipse transform="rotate(-78 23.001 8)" fill="#55ACEE" cx="23" cy="8" rx="8" ry="6.75"/><path fill="#269" d="M9.724 14.687v1.579c-2.414.525-5.381 1.851-5.829 3.741C2.493 25.919 2.87 35.081 2.87 35.212v.134c0 .654.663.654 1.316.654h16.097c.653 0 1.315 0 1.315-.654V20.007c0-1.719-1.413-3.438-4.632-3.834v-1.486H9.724z"/><path fill="#55ACEE" d="M26.276 13.303v2.963c2.414.525 5.381 1.851 5.829 3.741 1.401 5.913 1.025 15.075 1.025 15.205v.134c0 .654-.663.654-1.316.654H15.717c-.653 0-1.315 0-1.315-.654V20.007c0-1.719 1.413-3.438 4.632-3.834v-1.486l7.242-1.384z"/><ellipse transform="rotate(-12 12.992 8)" fill="#269" cx="12.992" cy="8" rx="6.75" ry="8"/><path fill="#55ACEE" d="M19.092 16.088c-1.31.381-3.441.546-5.898-.382-2.593-.98-4.978-1.944-5.908-2.268-.846-.295-3.005-.033-3.486.848-.481.881-.753 2.485.437 3.659s7.458 3.491 9.23 4.533c.928.546.874 3.823.928 6.499.083 4.043 7.383-13.67 4.697-12.889z"/><path fill="#269" d="M12.233 25.283c1.331.298 3.604.811 5.999-.269 2.527-1.14 4.712-2.732 5.619-3.113.826-.347 2.571-.683 3.532.629.594.81.907 2.434-.207 3.679-1.115 1.246-5.497 3.919-8.739 4.702-2.749.664-6.967.6-8.313-.793-2.101-2.175.281-5.245 2.109-4.835zm12.758-8.048c0-1.952 1.724-3.016 3.739-3.797.835-.324 3.005-.033 3.486.848.481.881.753 2.485-.437 3.659s-6.788 2.294-6.788-.71z"/></g>',
989
- };
989
+ } as const
package/src/svg.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import assert from "assert"
2
+ import type { Emoji } from "./common"
2
3
  import { emojiMap } from "./emojis"
3
4
 
4
- export function svg(emoji: string) {
5
+ export function svg(emoji: Emoji) {
5
6
  assert(emoji in emojiMap, `Missing SVG for emoji: ${emoji}`)
6
7
  return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36">${emojiMap[emoji]}</svg>`
7
8
  }