@urbit-xyz/azimuth-hanzi 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-325c2f1f.js","sources":["../src/mapping.ts","../src/core.ts"],"sourcesContent":["import type { CharacterEntry } from './types';\n\n/**\n * The 256 prefix syllables and 256 suffix syllables fixed by Urbit phonotactics.\n * These arrays never change; the character assignments below them do.\n *\n * Position in the array IS the byte value. `PREFIXES[0] === 'doz'`,\n * `SUFFIXES[0] === 'zod'`, etc. The Hanzi maps below are keyed by byte for the\n * same reason: the byte is canonical, the syllable is one rendering of it,\n * the character is another.\n */\nexport const PREFIXES = [\n 'doz', 'mar', 'bin', 'wan', 'sam', 'lit', 'sig', 'hid', 'fid', 'lis', 'sog', 'dir', 'wac', 'sab', 'wis', 'sib',\n 'rig', 'sol', 'dop', 'mod', 'fog', 'lid', 'hop', 'dar', 'dor', 'lor', 'hod', 'fol', 'rin', 'tog', 'sil', 'mir',\n 'hol', 'pas', 'lac', 'rov', 'liv', 'dal', 'sat', 'lib', 'tab', 'han', 'tic', 'pid', 'tor', 'bol', 'fos', 'dot',\n 'los', 'dil', 'for', 'pil', 'ram', 'tir', 'win', 'tad', 'bic', 'dif', 'roc', 'wid', 'bis', 'das', 'mid', 'lop',\n 'ril', 'nar', 'dap', 'mol', 'san', 'loc', 'nov', 'sit', 'nid', 'tip', 'sic', 'rop', 'wit', 'nat', 'pan', 'min',\n 'rit', 'pod', 'mot', 'tam', 'tol', 'sav', 'pos', 'nap', 'nop', 'som', 'fin', 'fon', 'ban', 'mor', 'wor', 'sip',\n 'ron', 'nor', 'bot', 'wic', 'soc', 'wat', 'dol', 'mag', 'pic', 'dav', 'bid', 'bal', 'tim', 'tas', 'mal', 'lig',\n 'siv', 'tag', 'pad', 'sal', 'div', 'dac', 'tan', 'sid', 'fab', 'tar', 'mon', 'ran', 'nis', 'wol', 'mis', 'pal',\n 'las', 'dis', 'map', 'rab', 'tob', 'rol', 'lat', 'lon', 'nod', 'nav', 'fig', 'nom', 'nib', 'pag', 'sop', 'ral',\n 'bil', 'had', 'doc', 'rid', 'moc', 'pac', 'rav', 'rip', 'fal', 'tod', 'til', 'tin', 'hap', 'mic', 'fan', 'pat',\n 'tac', 'lab', 'mog', 'sim', 'son', 'pin', 'lom', 'ric', 'tap', 'fir', 'has', 'bos', 'bat', 'poc', 'hac', 'tid',\n 'hav', 'sap', 'lin', 'dib', 'hos', 'dab', 'bit', 'bar', 'rac', 'par', 'lod', 'dos', 'bor', 'toc', 'hil', 'mac',\n 'tom', 'dig', 'fil', 'fas', 'mit', 'hob', 'har', 'mig', 'hin', 'rad', 'mas', 'hal', 'rag', 'lag', 'fad', 'top',\n 'mop', 'hab', 'nil', 'nos', 'mil', 'fop', 'fam', 'dat', 'nol', 'din', 'hat', 'nac', 'ris', 'fot', 'rib', 'hoc',\n 'nim', 'lar', 'fit', 'wal', 'rap', 'sar', 'nal', 'mos', 'lan', 'don', 'dan', 'lad', 'dov', 'riv', 'bac', 'pol',\n 'lap', 'tal', 'pit', 'nam', 'bon', 'ros', 'ton', 'fod', 'pon', 'sov', 'noc', 'sor', 'lav', 'mat', 'mip', 'fip',\n] as const;\n\nexport const SUFFIXES = [\n 'zod', 'nec', 'bud', 'wes', 'sev', 'per', 'sut', 'let', 'ful', 'pen', 'syt', 'dur', 'wep', 'ser', 'wyl', 'sun',\n 'ryp', 'syx', 'dyr', 'nup', 'heb', 'peg', 'lup', 'dep', 'dys', 'put', 'lug', 'hec', 'ryt', 'tyv', 'syd', 'nex',\n 'lun', 'mep', 'lut', 'sep', 'pes', 'del', 'sul', 'ped', 'tem', 'led', 'tul', 'met', 'wen', 'byn', 'hex', 'feb',\n 'pyl', 'dul', 'het', 'mev', 'rut', 'tyl', 'wyd', 'tep', 'bes', 'dex', 'sef', 'wyc', 'bur', 'der', 'nep', 'pur',\n 'rys', 'reb', 'den', 'nut', 'sub', 'pet', 'rul', 'syn', 'reg', 'tyd', 'sup', 'sem', 'wyn', 'rec', 'meg', 'net',\n 'sec', 'mul', 'nym', 'tev', 'web', 'sum', 'mut', 'nyx', 'rex', 'teb', 'fus', 'hep', 'ben', 'mus', 'wyx', 'sym',\n 'sel', 'ruc', 'dec', 'wex', 'syr', 'wet', 'dyl', 'myn', 'mes', 'det', 'bet', 'bel', 'tux', 'tug', 'myr', 'pel',\n 'syp', 'ter', 'meb', 'set', 'dut', 'deg', 'tex', 'sur', 'fel', 'tud', 'nux', 'rux', 'ren', 'wyt', 'nub', 'med',\n 'lyt', 'dus', 'neb', 'rum', 'tyn', 'seg', 'lyx', 'pun', 'res', 'red', 'fun', 'rev', 'ref', 'mec', 'ted', 'rus',\n 'bex', 'leb', 'dux', 'ryn', 'num', 'pyx', 'ryg', 'ryx', 'fep', 'tyr', 'tus', 'tyc', 'leg', 'nem', 'fer', 'mer',\n 'ten', 'lus', 'nus', 'syl', 'tec', 'mex', 'pub', 'rym', 'tuc', 'fyl', 'lep', 'deb', 'ber', 'mug', 'hut', 'tun',\n 'byl', 'sud', 'pem', 'dev', 'lur', 'def', 'bus', 'bep', 'run', 'mel', 'pex', 'dyt', 'byt', 'typ', 'lev', 'myl',\n 'wed', 'duc', 'fur', 'fex', 'nul', 'luc', 'len', 'ner', 'lex', 'rup', 'ned', 'lec', 'ryd', 'lyd', 'fen', 'wel',\n 'nyd', 'hus', 'rel', 'rud', 'nes', 'hes', 'fet', 'des', 'ret', 'dun', 'ler', 'nyr', 'seb', 'hul', 'ryl', 'lud',\n 'rem', 'lys', 'fyn', 'wer', 'ryc', 'sug', 'nys', 'nyl', 'lyn', 'dyn', 'dem', 'lux', 'fed', 'sed', 'bec', 'mun',\n 'lyr', 'tes', 'mud', 'nyt', 'byr', 'sen', 'weg', 'fyr', 'mur', 'tel', 'rep', 'teg', 'pec', 'nel', 'nev', 'fes',\n] as const;\n\nexport type Prefix = typeof PREFIXES[number];\nexport type Suffix = typeof SUFFIXES[number];\nexport type Phoneme = Prefix | Suffix;\n\n/**\n * Per-byte entry. Tuple form to keep the mapping compact.\n * [character, pinyin, English gloss]\n * Category comes from the enclosing group key.\n */\ntype Entry = readonly [char: string, pinyin: string, gloss: string];\n\n// ===== Prefix → character mapping (keyed by byte 0-255) ======================\n// Prefixes are universal adjectives. Edit here to retune the mapping.\n// Group keys ARE the category; each byte appears in exactly one group.\n\nexport const PREFIX_GROUPS = {\n 'Colors & Light': { // bytes 0-21 (doz..lid)\n 0: ['红', 'hóng', 'red'],\n 1: ['青', 'qīng', 'azure'],\n 2: ['白', 'bái', 'white'],\n 3: ['黑', 'hēi', 'black'],\n 4: ['金', 'jīn', 'golden'],\n 5: ['银', 'yín', 'silver'],\n 6: ['紫', 'zǐ', 'purple'],\n 7: ['碧', 'bì', 'jade-green'],\n 8: ['明', 'míng', 'bright'],\n 9: ['暗', 'àn', 'dark'],\n 10: ['灿', 'càn', 'radiant'],\n 11: ['辉', 'huī', 'brilliant'],\n 12: ['彤', 'tóng', 'vermillion'],\n 13: ['玄', 'xuán', 'dark'],\n 14: ['素', 'sù', 'plain'],\n 15: ['丹', 'dān', 'cinnabar'],\n 16: ['苍', 'cāng', 'grey-blue'],\n 17: ['黛', 'dài', 'indigo'],\n 18: ['朱', 'zhū', 'scarlet'],\n 19: ['翠', 'cuì', 'emerald'],\n 20: ['皓', 'hào', 'luminous'],\n 21: ['曜', 'yào', 'blazing'],\n },\n 'Size & Scale': { // bytes 22-49 (hop..dil)\n 22: ['大', 'dà', 'great'],\n 23: ['小', 'xiǎo', 'small'],\n 24: ['辽', 'liáo', 'vast'],\n 25: ['深', 'shēn', 'deep'],\n 26: ['高', 'gāo', 'high'],\n 27: ['远', 'yuǎn', 'far'],\n 28: ['长', 'cháng', 'long'],\n 29: ['阔', 'kuò', 'broad'],\n 30: ['宏', 'hóng', 'grand'],\n 31: ['纤', 'xiān', 'minute'],\n 32: ['浩', 'hào', 'immense'],\n 33: ['渺', 'miǎo', 'boundless'],\n 34: ['巍', 'wēi', 'towering'],\n 35: ['峻', 'jùn', 'lofty'],\n 36: ['广', 'guǎng', 'extensive'],\n 37: ['厚', 'hòu', 'thick'],\n 38: ['薄', 'báo', 'thin'],\n 39: ['细', 'xì', 'fine'],\n 40: ['粗', 'cū', 'coarse'],\n 41: ['满', 'mǎn', 'full'],\n 42: ['空', 'kōng', 'empty'],\n 43: ['虚', 'xū', 'hollow'],\n 44: ['实', 'shí', 'solid'],\n 45: ['疏', 'shū', 'sparse'],\n 46: ['密', 'mì', 'dense'],\n 47: ['窄', 'zhǎi', 'narrow'],\n 48: ['宽', 'kuān', 'wide'],\n 49: ['无', 'wú', 'boundless'],\n },\n 'Texture & Sensation': { // bytes 50-75 (for..rop)\n 50: ['柔', 'róu', 'soft'],\n 51: ['刚', 'gāng', 'hard'],\n 52: ['温', 'wēn', 'warm'],\n 53: ['凉', 'liáng', 'cool'],\n 54: ['寒', 'hán', 'cold'],\n 55: ['暖', 'nuǎn', 'warm'],\n 56: ['滑', 'huá', 'smooth'],\n 57: ['涩', 'sè', 'rough'],\n 58: ['脆', 'cuì', 'crisp'],\n 59: ['韧', 'rèn', 'supple'],\n 60: ['润', 'rùn', 'moist'],\n 61: ['燥', 'zào', 'dry'],\n 62: ['轻', 'qīng', 'light'],\n 63: ['重', 'zhòng', 'heavy'],\n 64: ['香', 'xiāng', 'fragrant'],\n 65: ['馥', 'fù', 'aromatic'],\n 66: ['清', 'qīng', 'fresh'],\n 67: ['浓', 'nóng', 'rich'],\n 68: ['淡', 'dàn', 'faint'],\n 69: ['烈', 'liè', 'intense'],\n 70: ['醇', 'chún', 'mellow'],\n 71: ['涓', 'juān', 'trickling'],\n 72: ['澈', 'chè', 'clear'],\n 73: ['浊', 'zhuó', 'murky'],\n 74: ['莹', 'yíng', 'lustrous'],\n 75: ['晶', 'jīng', 'crystalline'],\n },\n 'Age & Permanence': { // bytes 76-99 (wit..wic)\n 76: ['古', 'gǔ', 'ancient'],\n 77: ['新', 'xīn', 'new'],\n 78: ['永', 'yǒng', 'eternal'],\n 79: ['恒', 'héng', 'constant'],\n 80: ['久', 'jiǔ', 'lasting'],\n 81: ['暂', 'zàn', 'transient'],\n 82: ['初', 'chū', 'first'],\n 83: ['终', 'zhōng', 'final'],\n 84: ['昔', 'xī', 'past'],\n 85: ['今', 'jīn', 'present'],\n 86: ['幼', 'yòu', 'young'],\n 87: ['老', 'lǎo', 'old'],\n 88: ['稚', 'zhì', 'tender'],\n 89: ['耄', 'mào', 'aged'],\n 90: ['旧', 'jiù', 'former'],\n 91: ['鲜', 'xiān', 'fresh'],\n 92: ['残', 'cán', 'remnant'],\n 93: ['全', 'quán', 'whole'],\n 94: ['半', 'bàn', 'half'],\n 95: ['始', 'shǐ', 'beginning'],\n 96: ['末', 'mò', 'ending'],\n 97: ['元', 'yuán', 'original'],\n 98: ['本', 'běn', 'original'],\n 99: ['真', 'zhēn', 'true'],\n },\n 'Emotional Tone': { // bytes 100-129 (soc..dis)\n 100: ['恬', 'tián', 'serene'],\n 101: ['暴', 'bào', 'fierce'],\n 102: ['婉', 'wǎn', 'gentle'],\n 103: ['狂', 'kuáng', 'wild'],\n 104: ['安', 'ān', 'calm'],\n 105: ['乱', 'luàn', 'chaotic'],\n 106: ['宁', 'níng', 'peaceful'],\n 107: ['悲', 'bēi', 'sorrowful'],\n 108: ['欢', 'huān', 'joyful'],\n 109: ['怒', 'nù', 'wrathful'],\n 110: ['哀', 'āi', 'mournful'],\n 111: ['乐', 'lè', 'happy'],\n 112: ['忧', 'yōu', 'melancholy'],\n 113: ['喜', 'xǐ', 'delighted'],\n 114: ['惊', 'jīng', 'startled'],\n 115: ['惧', 'jù', 'fearful'],\n 116: ['慕', 'mù', 'longing'],\n 117: ['恋', 'liàn', 'devoted'],\n 118: ['傲', 'ào', 'proud'],\n 119: ['谦', 'qiān', 'humble'],\n 120: ['勇', 'yǒng', 'brave'],\n 121: ['怯', 'qiè', 'timid'],\n 122: ['坚', 'jiān', 'resolute'],\n 123: ['绵', 'mián', 'tender'],\n 124: ['猛', 'měng', 'fierce'],\n 125: ['静', 'jìng', 'secluded'],\n 126: ['闲', 'xián', 'leisurely'],\n 127: ['逸', 'yì', 'carefree'],\n 128: ['倦', 'juàn', 'weary'],\n 129: ['醒', 'xǐng', 'alert'],\n },\n 'Virtues & Character': { // bytes 130-159 (map..pat)\n 130: ['仁', 'rén', 'benevolent'],\n 131: ['义', 'yì', 'righteous'],\n 132: ['礼', 'lǐ', 'courteous'],\n 133: ['智', 'zhì', 'wise'],\n 134: ['信', 'xìn', 'trustworthy'],\n 135: ['忠', 'zhōng', 'loyal'],\n 136: ['孝', 'xiào', 'filial'],\n 137: ['廉', 'lián', 'incorrupt'],\n 138: ['耻', 'chǐ', 'honorable'],\n 139: ['慎', 'shèn', 'prudent'],\n 140: ['敬', 'jìng', 'reverent'],\n 141: ['诚', 'chéng', 'sincere'],\n 142: ['笃', 'dǔ', 'devoted'],\n 143: ['睿', 'ruì', 'sagacious'],\n 144: ['哲', 'zhé', 'philosophical'],\n 145: ['纯', 'chún', 'pure'],\n 146: ['毅', 'yì', 'resolute'],\n 147: ['贤', 'xián', 'virtuous'],\n 148: ['善', 'shàn', 'good'],\n 149: ['美', 'měi', 'beautiful'],\n 150: ['德', 'dé', 'virtuous'],\n 151: ['正', 'zhèng', 'upright'],\n 152: ['直', 'zhí', 'honest'],\n 153: ['公', 'gōng', 'fair'],\n 154: ['晰', 'xī', 'clear'],\n 155: ['达', 'dá', 'enlightened'],\n 156: ['通', 'tōng', 'understanding'],\n 157: ['博', 'bó', 'learned'],\n 158: ['儒', 'rú', 'refined'],\n 159: ['卓', 'zhuó', 'distinguished'],\n },\n 'Beauty & Refinement': { // bytes 160-183 (tac..bar)\n 160: ['雅', 'yǎ', 'elegant'],\n 161: ['秀', 'xiù', 'graceful'],\n 162: ['丽', 'lì', 'beautiful'],\n 163: ['妙', 'miào', 'exquisite'],\n 164: ['华', 'huá', 'splendid'],\n 165: ['瑰', 'guī', 'magnificent'],\n 166: ['绮', 'qǐ', 'gorgeous'],\n 167: ['艳', 'yàn', 'dazzling'],\n 168: ['媚', 'mèi', 'charming'],\n 169: ['娴', 'xián', 'refined'],\n 170: ['曼', 'màn', 'gracious'],\n 171: ['端', 'duān', 'dignified'],\n 172: ['庄', 'zhuāng', 'stately'],\n 173: ['典', 'diǎn', 'classic'],\n 174: ['朴', 'pǔ', 'simple'],\n 175: ['简', 'jiǎn', 'plain'],\n 176: ['淳', 'chún', 'unspoiled'],\n 177: ['俊', 'jùn', 'handsome'],\n 178: ['飘', 'piāo', 'elegant'],\n 179: ['灵', 'líng', 'ethereal'],\n 180: ['奇', 'qí', 'wondrous'],\n 181: ['异', 'yì', 'unique'],\n 182: ['殊', 'shū', 'special'],\n 183: ['绝', 'jué', 'peerless'],\n },\n 'Intensity & Clarity': { // bytes 184-207 (rac..top)\n 184: ['剧', 'jù', 'intense'],\n 185: ['微', 'wēi', 'faint'],\n 186: ['稠', 'chóu', 'dense'],\n 187: ['稀', 'xī', 'sparse'],\n 188: ['亮', 'liàng', 'clear'],\n 189: ['昧', 'mèi', 'dim'],\n 190: ['锐', 'ruì', 'sharp'],\n 191: ['钝', 'dùn', 'dull'],\n 192: ['显', 'xiǎn', 'vivid'],\n 193: ['隐', 'yǐn', 'hidden'],\n 194: ['透', 'tòu', 'transparent'],\n 195: ['朦', 'méng', 'hazy'],\n 196: ['耀', 'yào', 'dazzling'],\n 197: ['暧', 'ài', 'dim'],\n 198: ['盛', 'shèng', 'flourishing'],\n 199: ['衰', 'shuāi', 'fading'],\n 200: ['旺', 'wàng', 'thriving'],\n 201: ['枯', 'kū', 'withered'],\n 202: ['荣', 'róng', 'glorious'],\n 203: ['凋', 'diāo', 'wilted'],\n 204: ['茂', 'mào', 'lush'],\n 205: ['萎', 'wěi', 'withering'],\n 206: ['焕', 'huàn', 'radiant'],\n 207: ['黯', 'àn', 'shadowy'],\n },\n 'Rarity & Wonder': { // bytes 208-231 (mop..mos)\n 208: ['珍', 'zhēn', 'rare'],\n 209: ['怪', 'guài', 'strange'],\n 210: ['幽', 'yōu', 'mysterious'],\n 211: ['巧', 'qiǎo', 'wondrous'],\n 212: ['圣', 'shèng', 'sacred'],\n 213: ['神', 'shén', 'divine'],\n 214: ['仙', 'xiān', 'immortal'],\n 215: ['慧', 'huì', 'spiritual'],\n 216: ['幻', 'huàn', 'illusory'],\n 217: ['梦', 'mèng', 'dreamlike'],\n 218: ['魔', 'mó', 'magical'],\n 219: ['祥', 'xiáng', 'auspicious'],\n 220: ['瑞', 'ruì', 'propitious'],\n 221: ['吉', 'jí', 'fortunate'],\n 222: ['福', 'fú', 'blessed'],\n 223: ['禅', 'chán', 'zen'],\n 224: ['道', 'dào', 'enlightened'],\n 225: ['奥', 'ào', 'arcane'],\n 226: ['秘', 'mì', 'secret'],\n 227: ['藏', 'cáng', 'hidden'],\n 228: ['僻', 'pì', 'secluded'],\n 229: ['冥', 'míng', 'profound'],\n 230: ['邃', 'suì', 'abstruse'],\n 231: ['蕴', 'yùn', 'mysterious'],\n },\n 'State & Condition': { // bytes 232-255 (lan..fip)\n 232: ['动', 'dòng', 'moving'],\n 233: ['定', 'dìng', 'still'],\n 234: ['流', 'liú', 'flowing'],\n 235: ['凝', 'níng', 'frozen'],\n 236: ['散', 'sàn', 'scattered'],\n 237: ['聚', 'jù', 'gathered'],\n 238: ['起', 'qǐ', 'rising'],\n 239: ['落', 'luò', 'falling'],\n 240: ['浮', 'fú', 'floating'],\n 241: ['沉', 'chén', 'sinking'],\n 242: ['飞', 'fēi', 'flying'],\n 243: ['栖', 'qī', 'resting'],\n 244: ['觉', 'jué', 'awakened'],\n 245: ['眠', 'mián', 'sleeping'],\n 246: ['生', 'shēng', 'living'],\n 247: ['逝', 'shì', 'passing'],\n 248: ['兴', 'xīng', 'flourishing'],\n 249: ['干', 'gān', 'withered'],\n 250: ['盈', 'yíng', 'full'],\n 251: ['亏', 'kuī', 'waning'],\n 252: ['升', 'shēng', 'ascending'],\n 253: ['降', 'jiàng', 'descending'],\n 254: ['开', 'kāi', 'opening'],\n 255: ['合', 'hé', 'closing'],\n },\n} as const satisfies Record<string, Record<number, Entry>>;\n\n// ===== Suffix → character mapping (keyed by byte 0-255) ======================\n// Suffixes are universal nouns. Edit here to retune the mapping.\n\nexport const SUFFIX_GROUPS = {\n 'Flora & Botanicals': { // bytes 0-27 (zod..hec)\n 0: ['松', 'sōng', 'pine'],\n 1: ['竹', 'zhú', 'bamboo'],\n 2: ['梅', 'méi', 'plum blossom'],\n 3: ['兰', 'lán', 'orchid'],\n 4: ['菊', 'jú', 'chrysanthemum'],\n 5: ['莲', 'lián', 'lotus'],\n 6: ['柳', 'liǔ', 'willow'],\n 7: ['桃', 'táo', 'peach'],\n 8: ['荷', 'hé', 'lotus leaf'],\n 9: ['杏', 'xìng', 'apricot'],\n 10: ['桂', 'guì', 'osmanthus'],\n 11: ['椿', 'chūn', 'toon tree'],\n 12: ['柏', 'bǎi', 'cypress'],\n 13: ['杉', 'shān', 'fir'],\n 14: ['槐', 'huái', 'scholar tree'],\n 15: ['榆', 'yú', 'elm'],\n 16: ['枫', 'fēng', 'maple'],\n 17: ['藤', 'téng', 'vine'],\n 18: ['苔', 'tái', 'moss'],\n 19: ['蕨', 'jué', 'fern'],\n 20: ['茗', 'míng', 'tea leaf'],\n 21: ['芝', 'zhī', 'lingzhi'],\n 22: ['萍', 'píng', 'duckweed'],\n 23: ['蒿', 'hāo', 'artemisia'],\n 24: ['蓼', 'liǎo', 'knotweed'],\n 25: ['薇', 'wēi', 'fern frond'],\n 26: ['芦', 'lú', 'reed'],\n 27: ['蓑', 'suō', 'rush'],\n },\n 'Gems & Minerals': { // bytes 28-51 (ryt..mev)\n 28: ['瑾', 'jǐn', 'fine jade'],\n 29: ['瑜', 'yú', 'jade luster'],\n 30: ['琼', 'qióng', 'jasper'],\n 31: ['璧', 'bì', 'jade disc'],\n 32: ['琳', 'lín', 'beautiful jade'],\n 33: ['瑶', 'yáo', 'precious jade'],\n 34: ['珩', 'héng', 'jade pendant'],\n 35: ['珏', 'jué', 'paired jade'],\n 36: ['琅', 'láng', 'jade-like stone'],\n 37: ['珂', 'kē', 'white jade'],\n 38: ['璞', 'pú', 'uncut jade'],\n 39: ['璜', 'huáng', 'half-ring jade'],\n 40: ['珉', 'mín', 'jade-like stone'],\n 41: ['珈', 'jiā', 'jade ornament'],\n 42: ['玮', 'wěi', 'rare jade'],\n 43: ['瑁', 'mào', 'tortoiseshell'],\n 44: ['珊', 'shān', 'coral'],\n 45: ['瑚', 'hú', 'coral gem'],\n 46: ['玛', 'mǎ', 'agate'],\n 47: ['瑙', 'nǎo', 'chalcedony'],\n 48: ['珣', 'xún', 'fine jade'],\n 49: ['钻', 'zuàn', 'diamond'],\n 50: ['琥', 'hǔ', 'amber'],\n 51: ['珀', 'pò', 'amber gem'],\n },\n 'Celestial Forms': { // bytes 52-77 (rut..rec)\n 52: ['星', 'xīng', 'star'],\n 53: ['月', 'yuè', 'moon'],\n 54: ['日', 'rì', 'sun'],\n 55: ['云', 'yún', 'cloud'],\n 56: ['霞', 'xiá', 'sunset glow'],\n 57: ['虹', 'hóng', 'rainbow'],\n 58: ['霓', 'ní', 'secondary rainbow'],\n 59: ['露', 'lù', 'dew'],\n 60: ['霜', 'shuāng', 'frost'],\n 61: ['雪', 'xuě', 'snow'],\n 62: ['雾', 'wù', 'fog'],\n 63: ['岚', 'lán', 'mountain mist'],\n 64: ['霭', 'ǎi', 'haze'],\n 65: ['霰', 'xiàn', 'sleet'],\n 66: ['雹', 'báo', 'hail'],\n 67: ['霏', 'fēi', 'falling snow'],\n 68: ['烟', 'yān', 'mist'],\n 69: ['辰', 'chén', 'celestial body'],\n 70: ['宿', 'xiù', 'constellation'],\n 71: ['斗', 'dǒu', 'dipper'],\n 72: ['极', 'jí', 'pole star'],\n 73: ['霄', 'xiāo', 'sky'],\n 74: ['穹', 'qióng', 'firmament'],\n 75: ['昊', 'hào', 'vast sky'],\n 76: ['旻', 'mín', 'autumn sky'],\n 77: ['曦', 'xī', 'sunlight'],\n },\n 'Winged Creatures': { // bytes 78-99 (meg..wex)\n 78: ['莺', 'yīng', 'oriole'],\n 79: ['雀', 'què', 'sparrow'],\n 80: ['鹂', 'lí', 'oriole'],\n 81: ['鸥', 'ōu', 'gull'],\n 82: ['鸾', 'luán', 'mythic bird'],\n 83: ['鸢', 'yuān', 'kite'],\n 84: ['鹊', 'què', 'magpie'],\n 85: ['鸽', 'gē', 'dove'],\n 86: ['鹃', 'juān', 'cuckoo'],\n 87: ['鹄', 'hú', 'swan'],\n 88: ['鹤', 'hè', 'crane'],\n 89: ['蝶', 'dié', 'butterfly'],\n 90: ['蛾', 'é', 'moth'],\n 91: ['蝉', 'chán', 'cicada'],\n 92: ['萤', 'yíng', 'firefly'],\n 93: ['蜂', 'fēng', 'bee'],\n 94: ['蚕', 'cán', 'silkworm'],\n 95: ['蟋', 'xī', 'cricket'],\n 96: ['螳', 'táng', 'mantis'],\n 97: ['蜻', 'qīng', 'dragonfly'],\n 98: ['蜓', 'tíng', 'damselfly'],\n 99: ['燕', 'yàn', 'swallow'],\n },\n 'Water Forms': { // bytes 100-121 (syr..tud)\n 100: ['波', 'bō', 'wave'],\n 101: ['涛', 'tāo', 'billows'],\n 102: ['澜', 'lán', 'ripples'],\n 103: ['浪', 'làng', 'waves'],\n 104: ['漪', 'yī', 'ripple'],\n 105: ['湍', 'tuān', 'rapids'],\n 106: ['溟', 'míng', 'dark sea'],\n 107: ['沧', 'cāng', 'ocean'],\n 108: ['瀚', 'hàn', 'vast water'],\n 109: ['汐', 'xī', 'tide'],\n 110: ['潮', 'cháo', 'tidal wave'],\n 111: ['泉', 'quán', 'spring'],\n 112: ['溪', 'xī', 'brook'],\n 113: ['涧', 'jiàn', 'mountain stream'],\n 114: ['潭', 'tán', 'pool'],\n 115: ['渊', 'yuān', 'abyss'],\n 116: ['渚', 'zhǔ', 'islet'],\n 117: ['浦', 'pǔ', 'riverbank'],\n 118: ['汀', 'tīng', 'sandbar'],\n 119: ['洄', 'huí', 'whirlpool'],\n 120: ['漩', 'xuán', 'vortex'],\n 121: ['濑', 'lài', 'shoals'],\n },\n 'Textiles & Threads': { // bytes 122-141 (nux..mec)\n 122: ['绫', 'líng', 'damask silk'],\n 123: ['罗', 'luó', 'gauze silk'],\n 124: ['绸', 'chóu', 'silk'],\n 125: ['缎', 'duàn', 'satin'],\n 126: ['锦', 'jǐn', 'brocade'],\n 127: ['绣', 'xiù', 'embroidery'],\n 128: ['纱', 'shā', 'gauze'],\n 129: ['帛', 'bó', 'silk fabric'],\n 130: ['纬', 'wěi', 'weft'],\n 131: ['绢', 'juàn', 'thin silk'],\n 132: ['绪', 'xù', 'silk thread'],\n 133: ['缕', 'lǚ', 'thread'],\n 134: ['纶', 'lún', 'silk cord'],\n 135: ['绳', 'shéng', 'rope'],\n 136: ['缨', 'yīng', 'tassel'],\n 137: ['络', 'luò', 'net'],\n 138: ['纹', 'wén', 'pattern'],\n 139: ['绯', 'fēi', 'crimson silk'],\n 140: ['缃', 'xiāng', 'yellow silk'],\n 141: ['绦', 'tāo', 'silk ribbon'],\n },\n 'Literature & Arts': { // bytes 142-165 (ted..mex)\n 142: ['诗', 'shī', 'poem'],\n 143: ['词', 'cí', 'verse'],\n 144: ['赋', 'fù', 'rhapsody'],\n 145: ['曲', 'qǔ', 'melody'],\n 146: ['谣', 'yáo', 'ballad'],\n 147: ['歌', 'gē', 'song'],\n 148: ['赞', 'zàn', 'hymn'],\n 149: ['铭', 'míng', 'inscription'],\n 150: ['志', 'zhì', 'record'],\n 151: ['传', 'zhuàn', 'biography'],\n 152: ['笺', 'jiān', 'letter paper'],\n 153: ['札', 'zhá', 'note'],\n 154: ['牍', 'dú', 'tablet'],\n 155: ['牒', 'dié', 'bamboo slip'],\n 156: ['册', 'cè', 'volume'],\n 157: ['卷', 'juàn', 'scroll'],\n 158: ['帙', 'zhì', 'book case'],\n 159: ['墨', 'mò', 'ink'],\n 160: ['砚', 'yàn', 'inkstone'],\n 161: ['笔', 'bǐ', 'brush'],\n 162: ['纸', 'zhǐ', 'paper'],\n 163: ['章', 'zhāng', 'chapter'],\n 164: ['篇', 'piān', 'essay'],\n 165: ['句', 'jù', 'phrase'],\n },\n 'Light & Shadow': { // bytes 166-187 (pub..dyt)\n 166: ['曙', 'shǔ', 'dawn'],\n 167: ['晖', 'huī', 'sunlight'],\n 168: ['晕', 'yùn', 'halo'],\n 169: ['光', 'guāng', 'radiance'],\n 170: ['晃', 'huǎng', 'gleam'],\n 171: ['晔', 'yè', 'splendor'],\n 172: ['晟', 'shèng', 'brightness'],\n 173: ['晨', 'chén', 'morning'],\n 174: ['暮', 'mù', 'dusk'],\n 175: ['暝', 'míng', 'twilight'],\n 176: ['宵', 'xiāo', 'night'],\n 177: ['昏', 'hūn', 'dusk'],\n 178: ['晓', 'xiǎo', 'daybreak'],\n 179: ['旭', 'xù', 'sunrise'],\n 180: ['影', 'yǐng', 'shadow'],\n 181: ['彩', 'cǎi', 'color'],\n 182: ['晴', 'qíng', 'clear sky'],\n 183: ['映', 'yìng', 'reflection'],\n 184: ['照', 'zhào', 'illumination'],\n 185: ['焰', 'yàn', 'flame'],\n 186: ['烛', 'zhú', 'candle'],\n 187: ['灯', 'dēng', 'lamp'],\n },\n 'Sound & Echo': { // bytes 188-205 (byt..lyd)\n 188: ['韵', 'yùn', 'rhyme'],\n 189: ['音', 'yīn', 'sound'],\n 190: ['律', 'lǜ', 'rhythm'],\n 191: ['调', 'diào', 'tone'],\n 192: ['弦', 'xián', 'string'],\n 193: ['簧', 'huáng', 'reed'],\n 194: ['磬', 'qìng', 'chime stone'],\n 195: ['铃', 'líng', 'bell'],\n 196: ['箫', 'xiāo', 'flute'],\n 197: ['筝', 'zhēng', 'zither'],\n 198: ['鼓', 'gǔ', 'drum'],\n 199: ['钹', 'bó', 'cymbal'],\n 200: ['笙', 'shēng', 'mouth organ'],\n 201: ['埙', 'xūn', 'ocarina'],\n 202: ['琴', 'qín', 'lute'],\n 203: ['瑟', 'sè', 'zither'],\n 204: ['钟', 'zhōng', 'bell'],\n 205: ['磐', 'pán', 'stone chime'],\n },\n 'Essence & Spirit': { // bytes 206-229 (fen..sug)\n 206: ['魂', 'hún', 'soul'],\n 207: ['魄', 'pò', 'spirit'],\n 208: ['气', 'qì', 'vital force'],\n 209: ['息', 'xī', 'breath'],\n 210: ['君', 'jūn', 'noble spirit'],\n 211: ['侠', 'xiá', 'hero'],\n 212: ['师', 'shī', 'master'],\n 213: ['者', 'zhě', 'one who'],\n 214: ['悟', 'wù', 'zen'],\n 215: ['理', 'lǐ', 'the way'],\n 216: ['行', 'xíng', 'virtue'],\n 217: ['心', 'xīn', 'heart'],\n 218: ['愿', 'yuàn', 'will'],\n 219: ['念', 'niàn', 'thought'],\n 220: ['意', 'yì', 'intent'],\n 221: ['情', 'qíng', 'feeling'],\n 222: ['性', 'xìng', 'nature'],\n 223: ['命', 'mìng', 'destiny'],\n 224: ['缘', 'yuán', 'fate'],\n 225: ['佑', 'yòu', 'blessing'],\n 226: ['禄', 'lù', 'fortune'],\n 227: ['寿', 'shòu', 'longevity'],\n 228: ['庆', 'qìng', 'auspice'],\n 229: ['兆', 'zhào', 'omen'],\n },\n 'Nature Parts': { // bytes 230-255 (nys..fes)\n 230: ['峰', 'fēng', 'peak'],\n 231: ['岳', 'yuè', 'mountain'],\n 232: ['岭', 'lǐng', 'ridge'],\n 233: ['崖', 'yá', 'cliff'],\n 234: ['壑', 'hè', 'ravine'],\n 235: ['谷', 'gǔ', 'valley'],\n 236: ['林', 'lín', 'forest'],\n 237: ['丛', 'cóng', 'grove'],\n 238: ['野', 'yě', 'wilderness'],\n 239: ['原', 'yuán', 'plain'],\n 240: ['坪', 'píng', 'meadow'],\n 241: ['畔', 'pàn', 'shore'],\n 242: ['滨', 'bīn', 'waterside'],\n 243: ['洲', 'zhōu', 'islet'],\n 244: ['屿', 'yǔ', 'isle'],\n 245: ['礁', 'jiāo', 'reef'],\n 246: ['岩', 'yán', 'rock'],\n 247: ['石', 'shí', 'stone'],\n 248: ['砂', 'shā', 'sand'],\n 249: ['土', 'tǔ', 'earth'],\n 250: ['尘', 'chén', 'dust'],\n 251: ['埃', 'āi', 'fine dust'],\n 252: ['泥', 'ní', 'clay'],\n 253: ['沙', 'shā', 'sand'],\n 254: ['洞', 'dòng', 'cave'],\n 255: ['穴', 'xué', 'grotto'],\n },\n} as const satisfies Record<string, Record<number, Entry>>;\n\n// ===== Derived indices and lookups ===========================================\n\n/**\n * Flatten the byte-keyed group structure into a phoneme-keyed map. Asserts that\n * every byte 0..N appears exactly once (catches drops, duplicates, out-of-range\n * keys at module load time, before tests).\n */\nfunction flattenByteGroups(\n groups: Record<string, Record<number, Entry>>,\n phonemes: readonly string[]\n): Record<string, CharacterEntry> {\n const out: Record<string, CharacterEntry> = {};\n const seenBytes = new Set<number>();\n\n for (const [category, entries] of Object.entries(groups)) {\n for (const [byteStr, tuple] of Object.entries(entries)) {\n const byte = Number(byteStr);\n if (!Number.isInteger(byte) || byte < 0 || byte >= phonemes.length) {\n throw new Error(`Invalid byte key ${byteStr} in category ${category}`);\n }\n if (seenBytes.has(byte)) {\n throw new Error(`Duplicate byte ${byte} (already assigned before category ${category})`);\n }\n seenBytes.add(byte);\n const [character, pinyin, meaning] = tuple;\n out[phonemes[byte]] = { character, pinyin, meaning, category };\n }\n }\n\n if (seenBytes.size !== phonemes.length) {\n const missing: number[] = [];\n for (let i = 0; i < phonemes.length; i++) {\n if (!seenBytes.has(i)) missing.push(i);\n }\n throw new Error(`Missing bytes: ${missing.join(', ')}`);\n }\n\n return out;\n}\n\nexport const PREFIX_CHARACTERS = flattenByteGroups(PREFIX_GROUPS, PREFIXES) as Record<Prefix, CharacterEntry>;\nexport const SUFFIX_CHARACTERS = flattenByteGroups(SUFFIX_GROUPS, SUFFIXES) as Record<Suffix, CharacterEntry>;\n\nexport const PREFIX_INDEX: Record<string, string> = Object.fromEntries(\n Object.entries(PREFIX_CHARACTERS).map(([k, v]) => [k, v.character])\n);\n\nexport const SUFFIX_INDEX: Record<string, string> = Object.fromEntries(\n Object.entries(SUFFIX_CHARACTERS).map(([k, v]) => [k, v.character])\n);\n\nexport const PHONEME_INDEX: Record<string, string> = {\n ...PREFIX_INDEX,\n ...SUFFIX_INDEX,\n};\n\nexport function isPrefix(phoneme: string): boolean {\n return phoneme in PREFIX_INDEX;\n}\n\nexport function isSuffix(phoneme: string): boolean {\n return phoneme in SUFFIX_INDEX;\n}\n\nexport function getCharacter(phoneme: string): string | undefined {\n return PHONEME_INDEX[phoneme];\n}\n","import memoize from 'lodash.memoize';\nimport { Config, ParsedPoint, PointType } from './types';\nimport { PHONEME_INDEX, isPrefix, isSuffix } from './mapping';\n\ntype Space = NonNullable<Config['space']>;\ntype Position = { x: number; y: number };\n\nconst DEFAULTS = {\n background: '#000',\n foreground: '#FFF',\n size: 128,\n space: 'default' as Space,\n fontWeight: 400,\n fontFamily: 'Noto Sans SC, Noto Sans TC, Microsoft YaHei, SimHei, sans-serif',\n} as const;\n\ntype ResolvedConfig = Required<Config>;\n\nfunction withDefaults(config: Config): ResolvedConfig {\n return { ...DEFAULTS, ...config };\n}\n\nconst POINT_TYPES: Record<number, PointType> = {\n 1: 'galaxy',\n 2: 'star',\n 4: 'planet',\n 8: 'moon',\n};\n\n/**\n * Split a string into equal-sized substrings.\n */\nfunction chunkStr(str: string, size: number): string[] {\n return str.match(new RegExp(`.{1,${size}}`, 'g')) ?? [];\n}\n\n/**\n * Normalize a point name by removing the sigil prefix, hyphens, and casing.\n * @example deSig('~sampel-palnet') => 'sampelpalnet'\n */\nexport function deSig(point: string): string {\n return point.replace(/[\\^~-]/g, '').toLowerCase();\n}\n\n/**\n * Parse a point name into phonemes and characters.\n */\nexport function parsePoint(point: string): ParsedPoint {\n if (!point) throw new Error('Point name is required');\n\n const cleaned = deSig(point);\n const phonemes = chunkStr(cleaned, 3);\n\n const type = POINT_TYPES[phonemes.length];\n if (!type) {\n throw new Error(\n `Invalid point name length: ${phonemes.length} phonemes. Expected 1 (galaxy), 2 (star), 4 (planet), or 8 (moon).`\n );\n }\n\n for (const phoneme of phonemes) {\n if (!isPrefix(phoneme) && !isSuffix(phoneme)) {\n throw new Error(`Invalid phoneme: '${phoneme}' is not a valid Urbit syllable.`);\n }\n }\n\n const characters = phonemes.map((p) => PHONEME_INDEX[p]);\n\n return {\n point,\n phonemes,\n type,\n characters,\n hanziName: characters.join(''),\n };\n}\n\n// ---- Layout table ----------------------------------------------------------\n// Each cell controls font scale and character positions for one\n// (point type, space) combination. All values are relative to `size`, so\n// changing a magic number here is the only edit a contributor needs to make\n// to retune layout.\n\ntype LayoutSpec = {\n fontScale: number;\n /** Height scale relative to `size`; defaults to 1. */\n heightScale?: number;\n positions: (size: number, height: number) => Position[];\n};\n\nconst centeredOne = (s: number): Position[] => [{ x: s / 2, y: s / 2 }];\n\nconst starPair = (s: number, h: number, inset: number): Position[] => [\n { x: s * inset, y: h / 2 },\n { x: s * (1 - inset), y: h / 2 },\n];\n\nconst planetGrid = (s: number, offset: number): Position[] => {\n const c = s / 2;\n const d = s * offset;\n return [\n { x: c - d, y: c - d },\n { x: c + d, y: c - d },\n { x: c - d, y: c + d },\n { x: c + d, y: c + d },\n ];\n};\n\nconst moonGrid = (s: number): Position[] => {\n const c = s / 2;\n const xOffsets = [-0.375, -0.125, 0.125, 0.375];\n const yOffsets = [-0.25, 0.25];\n const positions: Position[] = [];\n for (const yo of yOffsets) {\n for (const xo of xOffsets) {\n positions.push({ x: c + s * xo, y: c + s * yo });\n }\n }\n return positions;\n};\n\nconst LAYOUTS: Record<PointType, Record<Space, LayoutSpec>> = {\n galaxy: {\n none: { fontScale: 0.8, positions: centeredOne },\n default: { fontScale: 0.6, positions: centeredOne },\n large: { fontScale: 0.4, positions: centeredOne },\n },\n star: {\n none: { fontScale: 0.45, heightScale: 0.5, positions: (s, h) => starPair(s, h, 0.25) },\n default: { fontScale: 0.35, positions: (s, h) => starPair(s, h, 0.3) },\n large: { fontScale: 0.25, positions: (s, h) => starPair(s, h, 0.3) },\n },\n planet: {\n none: { fontScale: 0.4, positions: (s) => planetGrid(s, 0.25) },\n default: { fontScale: 0.28, positions: (s) => planetGrid(s, 0.27) },\n large: { fontScale: 0.2, positions: (s) => planetGrid(s, 0.3) },\n },\n moon: {\n none: { fontScale: 0.2, positions: (s) => moonGrid(s) },\n default: { fontScale: 0.15, positions: (s) => moonGrid(s) },\n large: { fontScale: 0.12, positions: (s) => moonGrid(s) },\n },\n};\n\n/**\n * Generate an SVG sigil for a point using Chinese characters.\n */\nfunction hanziSigil(config: Config): string {\n const { point, background, foreground, size, space, fontWeight, fontFamily } = withDefaults(config);\n const { characters, type } = parsePoint(point);\n\n const spec = LAYOUTS[type][space];\n const width = size;\n const height = size * (spec.heightScale ?? 1);\n const fontSize = size * spec.fontScale;\n const positions = spec.positions(size, height);\n\n const textElements = characters.map((char, i) => {\n const { x, y } = positions[i];\n return `<text\n x=\"${x}\"\n y=\"${y}\"\n font-family=\"${fontFamily}\"\n font-size=\"${fontSize}\"\n font-weight=\"${fontWeight}\"\n fill=\"${foreground}\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n >${char}</text>`;\n }).join('\\n ');\n\n return `<svg\n style=\"display: block;\"\n width=\"${width}\"\n height=\"${height}\"\n viewBox=\"0 0 ${width} ${height}\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <rect fill=\"${background}\" width=\"${width}\" height=\"${height}\" x=\"0\" y=\"0\" />\n ${textElements}\n</svg>`;\n}\n\nfunction createCacheKey(config: Config): string {\n const c = withDefaults(config);\n return `${c.point}|${c.size}|${c.background}|${c.foreground}|${c.space}|${c.fontWeight}|${c.fontFamily}`;\n}\n\ntype MemoizedHanziSigil = ((config: Config) => string) & {\n cache: { clear?: () => void };\n};\n\nconst memoizedHanziSigil: MemoizedHanziSigil = memoize(\n (config: Config) => hanziSigil(config),\n createCacheKey\n);\n\nexport default hanziSigil;\nexport { hanziSigil, memoizedHanziSigil };\n"],"names":["PREFIXES","SUFFIXES","PREFIX_GROUPS","SUFFIX_GROUPS","flattenByteGroups","groups","phonemes","out","seenBytes","Set","_i","_Object$entries","Object","entries","length","_Object$entries$_i","category","_i2","_Object$entries2","_Object$entries2$_i","byteStr","tuple","byte","Number","isInteger","Error","has","add","character","pinyin","meaning","size","missing","i","push","join","PREFIX_CHARACTERS","SUFFIX_CHARACTERS","PREFIX_INDEX","fromEntries","map","_ref","k","v","SUFFIX_INDEX","_ref2","PHONEME_INDEX","_extends","isPrefix","phoneme","isSuffix","getCharacter","DEFAULTS","background","foreground","space","fontWeight","fontFamily","withDefaults","config","POINT_TYPES","chunkStr","str","_str$match","match","RegExp","deSig","point","replace","toLowerCase","parsePoint","cleaned","type","_iterator","_createForOfIteratorHelperLoose","_step","done","value","characters","p","hanziName","centeredOne","s","x","y","starPair","h","inset","planetGrid","offset","c","d","moonGrid","xOffsets","yOffsets","positions","_yOffsets","yo","_iterator2","_step2","xo","LAYOUTS","galaxy","none","fontScale","large","star","heightScale","planet","moon","hanziSigil","_spec$heightScale","_withDefaults","_parsePoint","spec","width","height","fontSize","textElements","char","_positions$i","createCacheKey","memoizedHanziSigil","memoize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;;;AAQG;AACUA,IAAAA,QAAQ,GAAG,CACtB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EACtG;AAEGC,IAAAA,QAAQ,GAAG,CACtB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAC9G,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,E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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var n=require("lodash.memoize");function e(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t<e;t++)r[t]=n[t];return r}function t(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,s(r.key),r)}}function r(n,t){var r="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(r)return(r=r.call(n)).next.bind(r);if(Array.isArray(n)||(r=function(n,t){if(n){if("string"==typeof n)return e(n,t);var r={}.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(n,t):void 0}}(n))||t&&n&&"number"==typeof n.length){r&&(n=r);var i=0;return function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(){return i=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},i.apply(null,arguments)}function o(n){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},o(n)}function a(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(n){}return(a=function(){return!!n})()}function l(n,e){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,e){return n.__proto__=e,n},l(n,e)}function s(n){var e=function(n){if("object"!=typeof n||!n)return n;var e=n[Symbol.toPrimitive];if(void 0!==e){var t=e.call(n,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"==typeof e?e:e+""}function u(n){var e="function"==typeof Map?new Map:void 0;return u=function(n){if(null===n||!function(n){try{return-1!==Function.toString.call(n).indexOf("[native code]")}catch(e){return"function"==typeof n}}(n))return n;if("function"!=typeof n)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(n))return e.get(n);e.set(n,t)}function t(){return function(n,e,t){if(a())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var i=new(n.bind.apply(n,r));return t&&l(i,t.prototype),i}(n,arguments,o(this).constructor)}return t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),l(t,n)},u(n)}var d=["doz","mar","bin","wan","sam","lit","sig","hid","fid","lis","sog","dir","wac","sab","wis","sib","rig","sol","dop","mod","fog","lid","hop","dar","dor","lor","hod","fol","rin","tog","sil","mir","hol","pas","lac","rov","liv","dal","sat","lib","tab","han","tic","pid","tor","bol","fos","dot","los","dil","for","pil","ram","tir","win","tad","bic","dif","roc","wid","bis","das","mid","lop","ril","nar","dap","mol","san","loc","nov","sit","nid","tip","sic","rop","wit","nat","pan","min","rit","pod","mot","tam","tol","sav","pos","nap","nop","som","fin","fon","ban","mor","wor","sip","ron","nor","bot","wic","soc","wat","dol","mag","pic","dav","bid","bal","tim","tas","mal","lig","siv","tag","pad","sal","div","dac","tan","sid","fab","tar","mon","ran","nis","wol","mis","pal","las","dis","map","rab","tob","rol","lat","lon","nod","nav","fig","nom","nib","pag","sop","ral","bil","had","doc","rid","moc","pac","rav","rip","fal","tod","til","tin","hap","mic","fan","pat","tac","lab","mog","sim","son","pin","lom","ric","tap","fir","has","bos","bat","poc","hac","tid","hav","sap","lin","dib","hos","dab","bit","bar","rac","par","lod","dos","bor","toc","hil","mac","tom","dig","fil","fas","mit","hob","har","mig","hin","rad","mas","hal","rag","lag","fad","top","mop","hab","nil","nos","mil","fop","fam","dat","nol","din","hat","nac","ris","fot","rib","hoc","nim","lar","fit","wal","rap","sar","nal","mos","lan","don","dan","lad","dov","riv","bac","pol","lap","tal","pit","nam","bon","ros","ton","fod","pon","sov","noc","sor","lav","mat","mip","fip"],c=["zod","nec","bud","wes","sev","per","sut","let","ful","pen","syt","dur","wep","ser","wyl","sun","ryp","syx","dyr","nup","heb","peg","lup","dep","dys","put","lug","hec","ryt","tyv","syd","nex","lun","mep","lut","sep","pes","del","sul","ped","tem","led","tul","met","wen","byn","hex","feb","pyl","dul","het","mev","rut","tyl","wyd","tep","bes","dex","sef","wyc","bur","der","nep","pur","rys","reb","den","nut","sub","pet","rul","syn","reg","tyd","sup","sem","wyn","rec","meg","net","sec","mul","nym","tev","web","sum","mut","nyx","rex","teb","fus","hep","ben","mus","wyx","sym","sel","ruc","dec","wex","syr","wet","dyl","myn","mes","det","bet","bel","tux","tug","myr","pel","syp","ter","meb","set","dut","deg","tex","sur","fel","tud","nux","rux","ren","wyt","nub","med","lyt","dus","neb","rum","tyn","seg","lyx","pun","res","red","fun","rev","ref","mec","ted","rus","bex","leb","dux","ryn","num","pyx","ryg","ryx","fep","tyr","tus","tyc","leg","nem","fer","mer","ten","lus","nus","syl","tec","mex","pub","rym","tuc","fyl","lep","deb","ber","mug","hut","tun","byl","sud","pem","dev","lur","def","bus","bep","run","mel","pex","dyt","byt","typ","lev","myl","wed","duc","fur","fex","nul","luc","len","ner","lex","rup","ned","lec","ryd","lyd","fen","wel","nyd","hus","rel","rud","nes","hes","fet","des","ret","dun","ler","nyr","seb","hul","ryl","lud","rem","lys","fyn","wer","ryc","sug","nys","nyl","lyn","dyn","dem","lux","fed","sed","bec","mun","lyr","tes","mud","nyt","byr","sen","weg","fyr","mur","tel","rep","teg","pec","nel","nev","fes"],g={"Colors & Light":{0:["红","hóng","red"],1:["青","qīng","azure"],2:["白","bái","white"],3:["黑","hēi","black"],4:["金","jīn","golden"],5:["银","yín","silver"],6:["紫","zǐ","purple"],7:["碧","bì","jade-green"],8:["明","míng","bright"],9:["暗","àn","dark"],10:["灿","càn","radiant"],11:["辉","huī","brilliant"],12:["彤","tóng","vermillion"],13:["玄","xuán","dark"],14:["素","sù","plain"],15:["丹","dān","cinnabar"],16:["苍","cāng","grey-blue"],17:["黛","dài","indigo"],18:["朱","zhū","scarlet"],19:["翠","cuì","emerald"],20:["皓","hào","luminous"],21:["曜","yào","blazing"]},"Size & Scale":{22:["大","dà","great"],23:["小","xiǎo","small"],24:["辽","liáo","vast"],25:["深","shēn","deep"],26:["高","gāo","high"],27:["远","yuǎn","far"],28:["长","cháng","long"],29:["阔","kuò","broad"],30:["宏","hóng","grand"],31:["纤","xiān","minute"],32:["浩","hào","immense"],33:["渺","miǎo","boundless"],34:["巍","wēi","towering"],35:["峻","jùn","lofty"],36:["广","guǎng","extensive"],37:["厚","hòu","thick"],38:["薄","báo","thin"],39:["细","xì","fine"],40:["粗","cū","coarse"],41:["满","mǎn","full"],42:["空","kōng","empty"],43:["虚","xū","hollow"],44:["实","shí","solid"],45:["疏","shū","sparse"],46:["密","mì","dense"],47:["窄","zhǎi","narrow"],48:["宽","kuān","wide"],49:["无","wú","boundless"]},"Texture & Sensation":{50:["柔","róu","soft"],51:["刚","gāng","hard"],52:["温","wēn","warm"],53:["凉","liáng","cool"],54:["寒","hán","cold"],55:["暖","nuǎn","warm"],56:["滑","huá","smooth"],57:["涩","sè","rough"],58:["脆","cuì","crisp"],59:["韧","rèn","supple"],60:["润","rùn","moist"],61:["燥","zào","dry"],62:["轻","qīng","light"],63:["重","zhòng","heavy"],64:["香","xiāng","fragrant"],65:["馥","fù","aromatic"],66:["清","qīng","fresh"],67:["浓","nóng","rich"],68:["淡","dàn","faint"],69:["烈","liè","intense"],70:["醇","chún","mellow"],71:["涓","juān","trickling"],72:["澈","chè","clear"],73:["浊","zhuó","murky"],74:["莹","yíng","lustrous"],75:["晶","jīng","crystalline"]},"Age & Permanence":{76:["古","gǔ","ancient"],77:["新","xīn","new"],78:["永","yǒng","eternal"],79:["恒","héng","constant"],80:["久","jiǔ","lasting"],81:["暂","zàn","transient"],82:["初","chū","first"],83:["终","zhōng","final"],84:["昔","xī","past"],85:["今","jīn","present"],86:["幼","yòu","young"],87:["老","lǎo","old"],88:["稚","zhì","tender"],89:["耄","mào","aged"],90:["旧","jiù","former"],91:["鲜","xiān","fresh"],92:["残","cán","remnant"],93:["全","quán","whole"],94:["半","bàn","half"],95:["始","shǐ","beginning"],96:["末","mò","ending"],97:["元","yuán","original"],98:["本","běn","original"],99:["真","zhēn","true"]},"Emotional Tone":{100:["恬","tián","serene"],101:["暴","bào","fierce"],102:["婉","wǎn","gentle"],103:["狂","kuáng","wild"],104:["安","ān","calm"],105:["乱","luàn","chaotic"],106:["宁","níng","peaceful"],107:["悲","bēi","sorrowful"],108:["欢","huān","joyful"],109:["怒","nù","wrathful"],110:["哀","āi","mournful"],111:["乐","lè","happy"],112:["忧","yōu","melancholy"],113:["喜","xǐ","delighted"],114:["惊","jīng","startled"],115:["惧","jù","fearful"],116:["慕","mù","longing"],117:["恋","liàn","devoted"],118:["傲","ào","proud"],119:["谦","qiān","humble"],120:["勇","yǒng","brave"],121:["怯","qiè","timid"],122:["坚","jiān","resolute"],123:["绵","mián","tender"],124:["猛","měng","fierce"],125:["静","jìng","secluded"],126:["闲","xián","leisurely"],127:["逸","yì","carefree"],128:["倦","juàn","weary"],129:["醒","xǐng","alert"]},"Virtues & Character":{130:["仁","rén","benevolent"],131:["义","yì","righteous"],132:["礼","lǐ","courteous"],133:["智","zhì","wise"],134:["信","xìn","trustworthy"],135:["忠","zhōng","loyal"],136:["孝","xiào","filial"],137:["廉","lián","incorrupt"],138:["耻","chǐ","honorable"],139:["慎","shèn","prudent"],140:["敬","jìng","reverent"],141:["诚","chéng","sincere"],142:["笃","dǔ","devoted"],143:["睿","ruì","sagacious"],144:["哲","zhé","philosophical"],145:["纯","chún","pure"],146:["毅","yì","resolute"],147:["贤","xián","virtuous"],148:["善","shàn","good"],149:["美","měi","beautiful"],150:["德","dé","virtuous"],151:["正","zhèng","upright"],152:["直","zhí","honest"],153:["公","gōng","fair"],154:["晰","xī","clear"],155:["达","dá","enlightened"],156:["通","tōng","understanding"],157:["博","bó","learned"],158:["儒","rú","refined"],159:["卓","zhuó","distinguished"]},"Beauty & Refinement":{160:["雅","yǎ","elegant"],161:["秀","xiù","graceful"],162:["丽","lì","beautiful"],163:["妙","miào","exquisite"],164:["华","huá","splendid"],165:["瑰","guī","magnificent"],166:["绮","qǐ","gorgeous"],167:["艳","yàn","dazzling"],168:["媚","mèi","charming"],169:["娴","xián","refined"],170:["曼","màn","gracious"],171:["端","duān","dignified"],172:["庄","zhuāng","stately"],173:["典","diǎn","classic"],174:["朴","pǔ","simple"],175:["简","jiǎn","plain"],176:["淳","chún","unspoiled"],177:["俊","jùn","handsome"],178:["飘","piāo","elegant"],179:["灵","líng","ethereal"],180:["奇","qí","wondrous"],181:["异","yì","unique"],182:["殊","shū","special"],183:["绝","jué","peerless"]},"Intensity & Clarity":{184:["剧","jù","intense"],185:["微","wēi","faint"],186:["稠","chóu","dense"],187:["稀","xī","sparse"],188:["亮","liàng","clear"],189:["昧","mèi","dim"],190:["锐","ruì","sharp"],191:["钝","dùn","dull"],192:["显","xiǎn","vivid"],193:["隐","yǐn","hidden"],194:["透","tòu","transparent"],195:["朦","méng","hazy"],196:["耀","yào","dazzling"],197:["暧","ài","dim"],198:["盛","shèng","flourishing"],199:["衰","shuāi","fading"],200:["旺","wàng","thriving"],201:["枯","kū","withered"],202:["荣","róng","glorious"],203:["凋","diāo","wilted"],204:["茂","mào","lush"],205:["萎","wěi","withering"],206:["焕","huàn","radiant"],207:["黯","àn","shadowy"]},"Rarity & Wonder":{208:["珍","zhēn","rare"],209:["怪","guài","strange"],210:["幽","yōu","mysterious"],211:["巧","qiǎo","wondrous"],212:["圣","shèng","sacred"],213:["神","shén","divine"],214:["仙","xiān","immortal"],215:["慧","huì","spiritual"],216:["幻","huàn","illusory"],217:["梦","mèng","dreamlike"],218:["魔","mó","magical"],219:["祥","xiáng","auspicious"],220:["瑞","ruì","propitious"],221:["吉","jí","fortunate"],222:["福","fú","blessed"],223:["禅","chán","zen"],224:["道","dào","enlightened"],225:["奥","ào","arcane"],226:["秘","mì","secret"],227:["藏","cáng","hidden"],228:["僻","pì","secluded"],229:["冥","míng","profound"],230:["邃","suì","abstruse"],231:["蕴","yùn","mysterious"]},"State & Condition":{232:["动","dòng","moving"],233:["定","dìng","still"],234:["流","liú","flowing"],235:["凝","níng","frozen"],236:["散","sàn","scattered"],237:["聚","jù","gathered"],238:["起","qǐ","rising"],239:["落","luò","falling"],240:["浮","fú","floating"],241:["沉","chén","sinking"],242:["飞","fēi","flying"],243:["栖","qī","resting"],244:["觉","jué","awakened"],245:["眠","mián","sleeping"],246:["生","shēng","living"],247:["逝","shì","passing"],248:["兴","xīng","flourishing"],249:["干","gān","withered"],250:["盈","yíng","full"],251:["亏","kuī","waning"],252:["升","shēng","ascending"],253:["降","jiàng","descending"],254:["开","kāi","opening"],255:["合","hé","closing"]}},h={"Flora & Botanicals":{0:["松","sōng","pine"],1:["竹","zhú","bamboo"],2:["梅","méi","plum blossom"],3:["兰","lán","orchid"],4:["菊","jú","chrysanthemum"],5:["莲","lián","lotus"],6:["柳","liǔ","willow"],7:["桃","táo","peach"],8:["荷","hé","lotus leaf"],9:["杏","xìng","apricot"],10:["桂","guì","osmanthus"],11:["椿","chūn","toon tree"],12:["柏","bǎi","cypress"],13:["杉","shān","fir"],14:["槐","huái","scholar tree"],15:["榆","yú","elm"],16:["枫","fēng","maple"],17:["藤","téng","vine"],18:["苔","tái","moss"],19:["蕨","jué","fern"],20:["茗","míng","tea leaf"],21:["芝","zhī","lingzhi"],22:["萍","píng","duckweed"],23:["蒿","hāo","artemisia"],24:["蓼","liǎo","knotweed"],25:["薇","wēi","fern frond"],26:["芦","lú","reed"],27:["蓑","suō","rush"]},"Gems & Minerals":{28:["瑾","jǐn","fine jade"],29:["瑜","yú","jade luster"],30:["琼","qióng","jasper"],31:["璧","bì","jade disc"],32:["琳","lín","beautiful jade"],33:["瑶","yáo","precious jade"],34:["珩","héng","jade pendant"],35:["珏","jué","paired jade"],36:["琅","láng","jade-like stone"],37:["珂","kē","white jade"],38:["璞","pú","uncut jade"],39:["璜","huáng","half-ring jade"],40:["珉","mín","jade-like stone"],41:["珈","jiā","jade ornament"],42:["玮","wěi","rare jade"],43:["瑁","mào","tortoiseshell"],44:["珊","shān","coral"],45:["瑚","hú","coral gem"],46:["玛","mǎ","agate"],47:["瑙","nǎo","chalcedony"],48:["珣","xún","fine jade"],49:["钻","zuàn","diamond"],50:["琥","hǔ","amber"],51:["珀","pò","amber gem"]},"Celestial Forms":{52:["星","xīng","star"],53:["月","yuè","moon"],54:["日","rì","sun"],55:["云","yún","cloud"],56:["霞","xiá","sunset glow"],57:["虹","hóng","rainbow"],58:["霓","ní","secondary rainbow"],59:["露","lù","dew"],60:["霜","shuāng","frost"],61:["雪","xuě","snow"],62:["雾","wù","fog"],63:["岚","lán","mountain mist"],64:["霭","ǎi","haze"],65:["霰","xiàn","sleet"],66:["雹","báo","hail"],67:["霏","fēi","falling snow"],68:["烟","yān","mist"],69:["辰","chén","celestial body"],70:["宿","xiù","constellation"],71:["斗","dǒu","dipper"],72:["极","jí","pole star"],73:["霄","xiāo","sky"],74:["穹","qióng","firmament"],75:["昊","hào","vast sky"],76:["旻","mín","autumn sky"],77:["曦","xī","sunlight"]},"Winged Creatures":{78:["莺","yīng","oriole"],79:["雀","què","sparrow"],80:["鹂","lí","oriole"],81:["鸥","ōu","gull"],82:["鸾","luán","mythic bird"],83:["鸢","yuān","kite"],84:["鹊","què","magpie"],85:["鸽","gē","dove"],86:["鹃","juān","cuckoo"],87:["鹄","hú","swan"],88:["鹤","hè","crane"],89:["蝶","dié","butterfly"],90:["蛾","é","moth"],91:["蝉","chán","cicada"],92:["萤","yíng","firefly"],93:["蜂","fēng","bee"],94:["蚕","cán","silkworm"],95:["蟋","xī","cricket"],96:["螳","táng","mantis"],97:["蜻","qīng","dragonfly"],98:["蜓","tíng","damselfly"],99:["燕","yàn","swallow"]},"Water Forms":{100:["波","bō","wave"],101:["涛","tāo","billows"],102:["澜","lán","ripples"],103:["浪","làng","waves"],104:["漪","yī","ripple"],105:["湍","tuān","rapids"],106:["溟","míng","dark sea"],107:["沧","cāng","ocean"],108:["瀚","hàn","vast water"],109:["汐","xī","tide"],110:["潮","cháo","tidal wave"],111:["泉","quán","spring"],112:["溪","xī","brook"],113:["涧","jiàn","mountain stream"],114:["潭","tán","pool"],115:["渊","yuān","abyss"],116:["渚","zhǔ","islet"],117:["浦","pǔ","riverbank"],118:["汀","tīng","sandbar"],119:["洄","huí","whirlpool"],120:["漩","xuán","vortex"],121:["濑","lài","shoals"]},"Textiles & Threads":{122:["绫","líng","damask silk"],123:["罗","luó","gauze silk"],124:["绸","chóu","silk"],125:["缎","duàn","satin"],126:["锦","jǐn","brocade"],127:["绣","xiù","embroidery"],128:["纱","shā","gauze"],129:["帛","bó","silk fabric"],130:["纬","wěi","weft"],131:["绢","juàn","thin silk"],132:["绪","xù","silk thread"],133:["缕","lǚ","thread"],134:["纶","lún","silk cord"],135:["绳","shéng","rope"],136:["缨","yīng","tassel"],137:["络","luò","net"],138:["纹","wén","pattern"],139:["绯","fēi","crimson silk"],140:["缃","xiāng","yellow silk"],141:["绦","tāo","silk ribbon"]},"Literature & Arts":{142:["诗","shī","poem"],143:["词","cí","verse"],144:["赋","fù","rhapsody"],145:["曲","qǔ","melody"],146:["谣","yáo","ballad"],147:["歌","gē","song"],148:["赞","zàn","hymn"],149:["铭","míng","inscription"],150:["志","zhì","record"],151:["传","zhuàn","biography"],152:["笺","jiān","letter paper"],153:["札","zhá","note"],154:["牍","dú","tablet"],155:["牒","dié","bamboo slip"],156:["册","cè","volume"],157:["卷","juàn","scroll"],158:["帙","zhì","book case"],159:["墨","mò","ink"],160:["砚","yàn","inkstone"],161:["笔","bǐ","brush"],162:["纸","zhǐ","paper"],163:["章","zhāng","chapter"],164:["篇","piān","essay"],165:["句","jù","phrase"]},"Light & Shadow":{166:["曙","shǔ","dawn"],167:["晖","huī","sunlight"],168:["晕","yùn","halo"],169:["光","guāng","radiance"],170:["晃","huǎng","gleam"],171:["晔","yè","splendor"],172:["晟","shèng","brightness"],173:["晨","chén","morning"],174:["暮","mù","dusk"],175:["暝","míng","twilight"],176:["宵","xiāo","night"],177:["昏","hūn","dusk"],178:["晓","xiǎo","daybreak"],179:["旭","xù","sunrise"],180:["影","yǐng","shadow"],181:["彩","cǎi","color"],182:["晴","qíng","clear sky"],183:["映","yìng","reflection"],184:["照","zhào","illumination"],185:["焰","yàn","flame"],186:["烛","zhú","candle"],187:["灯","dēng","lamp"]},"Sound & Echo":{188:["韵","yùn","rhyme"],189:["音","yīn","sound"],190:["律","lǜ","rhythm"],191:["调","diào","tone"],192:["弦","xián","string"],193:["簧","huáng","reed"],194:["磬","qìng","chime stone"],195:["铃","líng","bell"],196:["箫","xiāo","flute"],197:["筝","zhēng","zither"],198:["鼓","gǔ","drum"],199:["钹","bó","cymbal"],200:["笙","shēng","mouth organ"],201:["埙","xūn","ocarina"],202:["琴","qín","lute"],203:["瑟","sè","zither"],204:["钟","zhōng","bell"],205:["磐","pán","stone chime"]},"Essence & Spirit":{206:["魂","hún","soul"],207:["魄","pò","spirit"],208:["气","qì","vital force"],209:["息","xī","breath"],210:["君","jūn","noble spirit"],211:["侠","xiá","hero"],212:["师","shī","master"],213:["者","zhě","one who"],214:["悟","wù","zen"],215:["理","lǐ","the way"],216:["行","xíng","virtue"],217:["心","xīn","heart"],218:["愿","yuàn","will"],219:["念","niàn","thought"],220:["意","yì","intent"],221:["情","qíng","feeling"],222:["性","xìng","nature"],223:["命","mìng","destiny"],224:["缘","yuán","fate"],225:["佑","yòu","blessing"],226:["禄","lù","fortune"],227:["寿","shòu","longevity"],228:["庆","qìng","auspice"],229:["兆","zhào","omen"]},"Nature Parts":{230:["峰","fēng","peak"],231:["岳","yuè","mountain"],232:["岭","lǐng","ridge"],233:["崖","yá","cliff"],234:["壑","hè","ravine"],235:["谷","gǔ","valley"],236:["林","lín","forest"],237:["丛","cóng","grove"],238:["野","yě","wilderness"],239:["原","yuán","plain"],240:["坪","píng","meadow"],241:["畔","pàn","shore"],242:["滨","bīn","waterside"],243:["洲","zhōu","islet"],244:["屿","yǔ","isle"],245:["礁","jiāo","reef"],246:["岩","yán","rock"],247:["石","shí","stone"],248:["砂","shā","sand"],249:["土","tǔ","earth"],250:["尘","chén","dust"],251:["埃","āi","fine dust"],252:["泥","ní","clay"],253:["沙","shā","sand"],254:["洞","dòng","cave"],255:["穴","xué","grotto"]}};function p(n,e){for(var t={},r=new Set,i=0,o=Object.entries(n);i<o.length;i++)for(var a=o[i],l=a[0],s=0,u=Object.entries(a[1]);s<u.length;s++){var d=u[s],c=d[0],g=d[1],h=Number(c);if(!Number.isInteger(h)||h<0||h>=e.length)throw new Error("Invalid byte key "+c+" in category "+l);if(r.has(h))throw new Error("Duplicate byte "+h+" (already assigned before category "+l+")");r.add(h),t[e[h]]={character:g[0],pinyin:g[1],meaning:g[2],category:l}}if(r.size!==e.length){for(var p=[],f=0;f<e.length;f++)r.has(f)||p.push(f);throw new Error("Missing bytes: "+p.join(", "))}return t}var f=p(g,d),m=p(h,c),y=Object.fromEntries(Object.entries(f).map(function(n){return[n[0],n[1].character]})),b=Object.fromEntries(Object.entries(m).map(function(n){return[n[0],n[1].character]})),w=i({},y,b);function x(n){return n in y}function v(n){return n in b}var j={background:"#000",foreground:"#FFF",size:128,space:"default",fontWeight:400,fontFamily:"Noto Sans SC, Noto Sans TC, Microsoft YaHei, SimHei, sans-serif"};function z(n){return i({},j,n)}var k={1:"galaxy",2:"star",4:"planet",8:"moon"};function S(n){return n.replace(/[\^~-]/g,"").toLowerCase()}function E(n){if(!n)throw new Error("Point name is required");var e,t=null!=(e=S(n).match(new RegExp(".{1,3}","g")))?e:[],i=k[t.length];if(!i)throw new Error("Invalid point name length: "+t.length+" phonemes. Expected 1 (galaxy), 2 (star), 4 (planet), or 8 (moon).");for(var o,a=r(t);!(o=a()).done;){var l=o.value;if(!x(l)&&!v(l))throw new Error("Invalid phoneme: '"+l+"' is not a valid Urbit syllable.")}var s=t.map(function(n){return w[n]});return{point:n,phonemes:t,type:i,characters:s,hanziName:s.join("")}}var O=function(n){return[{x:n/2,y:n/2}]},q=function(n,e,t){return[{x:n*t,y:e/2},{x:n*(1-t),y:e/2}]},F=function(n,e){var t=n/2,r=n*e;return[{x:t-r,y:t-r},{x:t+r,y:t-r},{x:t-r,y:t+r},{x:t+r,y:t+r}]},P=function(n){for(var e=n/2,t=[-.375,-.125,.125,.375],i=[],o=0,a=[-.25,.25];o<a.length;o++)for(var l,s=a[o],u=r(t);!(l=u()).done;)i.push({x:e+n*l.value,y:e+n*s});return i},I={galaxy:{none:{fontScale:.8,positions:O},default:{fontScale:.6,positions:O},large:{fontScale:.4,positions:O}},star:{none:{fontScale:.45,heightScale:.5,positions:function(n,e){return q(n,e,.25)}},default:{fontScale:.35,positions:function(n,e){return q(n,e,.3)}},large:{fontScale:.25,positions:function(n,e){return q(n,e,.3)}}},planet:{none:{fontScale:.4,positions:function(n){return F(n,.25)}},default:{fontScale:.28,positions:function(n){return F(n,.27)}},large:{fontScale:.2,positions:function(n){return F(n,.3)}}},moon:{none:{fontScale:.2,positions:function(n){return P(n)}},default:{fontScale:.15,positions:function(n){return P(n)}},large:{fontScale:.12,positions:function(n){return P(n)}}}};function _(n){var e,t=z(n),r=t.background,i=t.foreground,o=t.size,a=t.space,l=t.fontWeight,s=t.fontFamily,u=E(t.point),d=u.characters,c=I[u.type][a],g=o,h=o*(null!=(e=c.heightScale)?e:1),p=o*c.fontScale,f=c.positions(o,h);return'<svg\n style="display: block;"\n width="'+g+'"\n height="'+h+'"\n viewBox="0 0 '+g+" "+h+'"\n version="1.1"\n xmlns="http://www.w3.org/2000/svg"\n>\n <rect fill="'+r+'" width="'+g+'" height="'+h+'" x="0" y="0" />\n '+d.map(function(n,e){var t=f[e];return'<text\n x="'+t.x+'"\n y="'+t.y+'"\n font-family="'+s+'"\n font-size="'+p+'"\n font-weight="'+l+'"\n fill="'+i+'"\n text-anchor="middle"\n dominant-baseline="central"\n >'+n+"</text>"}).join("\n ")+"\n</svg>"}function C(n){var e=z(n);return e.point+"|"+e.size+"|"+e.background+"|"+e.foreground+"|"+e.space+"|"+e.fontWeight+"|"+e.fontFamily}var R=n(function(n){return _(n)},C);exports.PHONEME_INDEX=w,exports.PREFIXES=d,exports.PREFIX_CHARACTERS=f,exports.PREFIX_GROUPS=g,exports.PREFIX_INDEX=y,exports.SUFFIXES=c,exports.SUFFIX_CHARACTERS=m,exports.SUFFIX_GROUPS=h,exports.SUFFIX_INDEX=b,exports._createClass=function(n,e,r){return e&&t(n.prototype,e),r&&t(n,r),Object.defineProperty(n,"prototype",{writable:!1}),n},exports._inheritsLoose=function(n,e){n.prototype=Object.create(e.prototype),n.prototype.constructor=n,l(n,e)},exports._wrapNativeSuper=u,exports.deSig=S,exports.getCharacter=function(n){return w[n]},exports.hanziSigil=_,exports.isPrefix=x,exports.isSuffix=v,exports.memoizedHanziSigil=R,exports.parsePoint=E;
2
+ //# sourceMappingURL=core-7919ab70.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-7919ab70.js","sources":["../src/mapping.ts","../src/core.ts"],"sourcesContent":["import type { CharacterEntry } from './types';\n\n/**\n * The 256 prefix syllables and 256 suffix syllables fixed by Urbit phonotactics.\n * These arrays never change; the character assignments below them do.\n *\n * Position in the array IS the byte value. `PREFIXES[0] === 'doz'`,\n * `SUFFIXES[0] === 'zod'`, etc. The Hanzi maps below are keyed by byte for the\n * same reason: the byte is canonical, the syllable is one rendering of it,\n * the character is another.\n */\nexport const PREFIXES = [\n 'doz', 'mar', 'bin', 'wan', 'sam', 'lit', 'sig', 'hid', 'fid', 'lis', 'sog', 'dir', 'wac', 'sab', 'wis', 'sib',\n 'rig', 'sol', 'dop', 'mod', 'fog', 'lid', 'hop', 'dar', 'dor', 'lor', 'hod', 'fol', 'rin', 'tog', 'sil', 'mir',\n 'hol', 'pas', 'lac', 'rov', 'liv', 'dal', 'sat', 'lib', 'tab', 'han', 'tic', 'pid', 'tor', 'bol', 'fos', 'dot',\n 'los', 'dil', 'for', 'pil', 'ram', 'tir', 'win', 'tad', 'bic', 'dif', 'roc', 'wid', 'bis', 'das', 'mid', 'lop',\n 'ril', 'nar', 'dap', 'mol', 'san', 'loc', 'nov', 'sit', 'nid', 'tip', 'sic', 'rop', 'wit', 'nat', 'pan', 'min',\n 'rit', 'pod', 'mot', 'tam', 'tol', 'sav', 'pos', 'nap', 'nop', 'som', 'fin', 'fon', 'ban', 'mor', 'wor', 'sip',\n 'ron', 'nor', 'bot', 'wic', 'soc', 'wat', 'dol', 'mag', 'pic', 'dav', 'bid', 'bal', 'tim', 'tas', 'mal', 'lig',\n 'siv', 'tag', 'pad', 'sal', 'div', 'dac', 'tan', 'sid', 'fab', 'tar', 'mon', 'ran', 'nis', 'wol', 'mis', 'pal',\n 'las', 'dis', 'map', 'rab', 'tob', 'rol', 'lat', 'lon', 'nod', 'nav', 'fig', 'nom', 'nib', 'pag', 'sop', 'ral',\n 'bil', 'had', 'doc', 'rid', 'moc', 'pac', 'rav', 'rip', 'fal', 'tod', 'til', 'tin', 'hap', 'mic', 'fan', 'pat',\n 'tac', 'lab', 'mog', 'sim', 'son', 'pin', 'lom', 'ric', 'tap', 'fir', 'has', 'bos', 'bat', 'poc', 'hac', 'tid',\n 'hav', 'sap', 'lin', 'dib', 'hos', 'dab', 'bit', 'bar', 'rac', 'par', 'lod', 'dos', 'bor', 'toc', 'hil', 'mac',\n 'tom', 'dig', 'fil', 'fas', 'mit', 'hob', 'har', 'mig', 'hin', 'rad', 'mas', 'hal', 'rag', 'lag', 'fad', 'top',\n 'mop', 'hab', 'nil', 'nos', 'mil', 'fop', 'fam', 'dat', 'nol', 'din', 'hat', 'nac', 'ris', 'fot', 'rib', 'hoc',\n 'nim', 'lar', 'fit', 'wal', 'rap', 'sar', 'nal', 'mos', 'lan', 'don', 'dan', 'lad', 'dov', 'riv', 'bac', 'pol',\n 'lap', 'tal', 'pit', 'nam', 'bon', 'ros', 'ton', 'fod', 'pon', 'sov', 'noc', 'sor', 'lav', 'mat', 'mip', 'fip',\n] as const;\n\nexport const SUFFIXES = [\n 'zod', 'nec', 'bud', 'wes', 'sev', 'per', 'sut', 'let', 'ful', 'pen', 'syt', 'dur', 'wep', 'ser', 'wyl', 'sun',\n 'ryp', 'syx', 'dyr', 'nup', 'heb', 'peg', 'lup', 'dep', 'dys', 'put', 'lug', 'hec', 'ryt', 'tyv', 'syd', 'nex',\n 'lun', 'mep', 'lut', 'sep', 'pes', 'del', 'sul', 'ped', 'tem', 'led', 'tul', 'met', 'wen', 'byn', 'hex', 'feb',\n 'pyl', 'dul', 'het', 'mev', 'rut', 'tyl', 'wyd', 'tep', 'bes', 'dex', 'sef', 'wyc', 'bur', 'der', 'nep', 'pur',\n 'rys', 'reb', 'den', 'nut', 'sub', 'pet', 'rul', 'syn', 'reg', 'tyd', 'sup', 'sem', 'wyn', 'rec', 'meg', 'net',\n 'sec', 'mul', 'nym', 'tev', 'web', 'sum', 'mut', 'nyx', 'rex', 'teb', 'fus', 'hep', 'ben', 'mus', 'wyx', 'sym',\n 'sel', 'ruc', 'dec', 'wex', 'syr', 'wet', 'dyl', 'myn', 'mes', 'det', 'bet', 'bel', 'tux', 'tug', 'myr', 'pel',\n 'syp', 'ter', 'meb', 'set', 'dut', 'deg', 'tex', 'sur', 'fel', 'tud', 'nux', 'rux', 'ren', 'wyt', 'nub', 'med',\n 'lyt', 'dus', 'neb', 'rum', 'tyn', 'seg', 'lyx', 'pun', 'res', 'red', 'fun', 'rev', 'ref', 'mec', 'ted', 'rus',\n 'bex', 'leb', 'dux', 'ryn', 'num', 'pyx', 'ryg', 'ryx', 'fep', 'tyr', 'tus', 'tyc', 'leg', 'nem', 'fer', 'mer',\n 'ten', 'lus', 'nus', 'syl', 'tec', 'mex', 'pub', 'rym', 'tuc', 'fyl', 'lep', 'deb', 'ber', 'mug', 'hut', 'tun',\n 'byl', 'sud', 'pem', 'dev', 'lur', 'def', 'bus', 'bep', 'run', 'mel', 'pex', 'dyt', 'byt', 'typ', 'lev', 'myl',\n 'wed', 'duc', 'fur', 'fex', 'nul', 'luc', 'len', 'ner', 'lex', 'rup', 'ned', 'lec', 'ryd', 'lyd', 'fen', 'wel',\n 'nyd', 'hus', 'rel', 'rud', 'nes', 'hes', 'fet', 'des', 'ret', 'dun', 'ler', 'nyr', 'seb', 'hul', 'ryl', 'lud',\n 'rem', 'lys', 'fyn', 'wer', 'ryc', 'sug', 'nys', 'nyl', 'lyn', 'dyn', 'dem', 'lux', 'fed', 'sed', 'bec', 'mun',\n 'lyr', 'tes', 'mud', 'nyt', 'byr', 'sen', 'weg', 'fyr', 'mur', 'tel', 'rep', 'teg', 'pec', 'nel', 'nev', 'fes',\n] as const;\n\nexport type Prefix = typeof PREFIXES[number];\nexport type Suffix = typeof SUFFIXES[number];\nexport type Phoneme = Prefix | Suffix;\n\n/**\n * Per-byte entry. Tuple form to keep the mapping compact.\n * [character, pinyin, English gloss]\n * Category comes from the enclosing group key.\n */\ntype Entry = readonly [char: string, pinyin: string, gloss: string];\n\n// ===== Prefix → character mapping (keyed by byte 0-255) ======================\n// Prefixes are universal adjectives. Edit here to retune the mapping.\n// Group keys ARE the category; each byte appears in exactly one group.\n\nexport const PREFIX_GROUPS = {\n 'Colors & Light': { // bytes 0-21 (doz..lid)\n 0: ['红', 'hóng', 'red'],\n 1: ['青', 'qīng', 'azure'],\n 2: ['白', 'bái', 'white'],\n 3: ['黑', 'hēi', 'black'],\n 4: ['金', 'jīn', 'golden'],\n 5: ['银', 'yín', 'silver'],\n 6: ['紫', 'zǐ', 'purple'],\n 7: ['碧', 'bì', 'jade-green'],\n 8: ['明', 'míng', 'bright'],\n 9: ['暗', 'àn', 'dark'],\n 10: ['灿', 'càn', 'radiant'],\n 11: ['辉', 'huī', 'brilliant'],\n 12: ['彤', 'tóng', 'vermillion'],\n 13: ['玄', 'xuán', 'dark'],\n 14: ['素', 'sù', 'plain'],\n 15: ['丹', 'dān', 'cinnabar'],\n 16: ['苍', 'cāng', 'grey-blue'],\n 17: ['黛', 'dài', 'indigo'],\n 18: ['朱', 'zhū', 'scarlet'],\n 19: ['翠', 'cuì', 'emerald'],\n 20: ['皓', 'hào', 'luminous'],\n 21: ['曜', 'yào', 'blazing'],\n },\n 'Size & Scale': { // bytes 22-49 (hop..dil)\n 22: ['大', 'dà', 'great'],\n 23: ['小', 'xiǎo', 'small'],\n 24: ['辽', 'liáo', 'vast'],\n 25: ['深', 'shēn', 'deep'],\n 26: ['高', 'gāo', 'high'],\n 27: ['远', 'yuǎn', 'far'],\n 28: ['长', 'cháng', 'long'],\n 29: ['阔', 'kuò', 'broad'],\n 30: ['宏', 'hóng', 'grand'],\n 31: ['纤', 'xiān', 'minute'],\n 32: ['浩', 'hào', 'immense'],\n 33: ['渺', 'miǎo', 'boundless'],\n 34: ['巍', 'wēi', 'towering'],\n 35: ['峻', 'jùn', 'lofty'],\n 36: ['广', 'guǎng', 'extensive'],\n 37: ['厚', 'hòu', 'thick'],\n 38: ['薄', 'báo', 'thin'],\n 39: ['细', 'xì', 'fine'],\n 40: ['粗', 'cū', 'coarse'],\n 41: ['满', 'mǎn', 'full'],\n 42: ['空', 'kōng', 'empty'],\n 43: ['虚', 'xū', 'hollow'],\n 44: ['实', 'shí', 'solid'],\n 45: ['疏', 'shū', 'sparse'],\n 46: ['密', 'mì', 'dense'],\n 47: ['窄', 'zhǎi', 'narrow'],\n 48: ['宽', 'kuān', 'wide'],\n 49: ['无', 'wú', 'boundless'],\n },\n 'Texture & Sensation': { // bytes 50-75 (for..rop)\n 50: ['柔', 'róu', 'soft'],\n 51: ['刚', 'gāng', 'hard'],\n 52: ['温', 'wēn', 'warm'],\n 53: ['凉', 'liáng', 'cool'],\n 54: ['寒', 'hán', 'cold'],\n 55: ['暖', 'nuǎn', 'warm'],\n 56: ['滑', 'huá', 'smooth'],\n 57: ['涩', 'sè', 'rough'],\n 58: ['脆', 'cuì', 'crisp'],\n 59: ['韧', 'rèn', 'supple'],\n 60: ['润', 'rùn', 'moist'],\n 61: ['燥', 'zào', 'dry'],\n 62: ['轻', 'qīng', 'light'],\n 63: ['重', 'zhòng', 'heavy'],\n 64: ['香', 'xiāng', 'fragrant'],\n 65: ['馥', 'fù', 'aromatic'],\n 66: ['清', 'qīng', 'fresh'],\n 67: ['浓', 'nóng', 'rich'],\n 68: ['淡', 'dàn', 'faint'],\n 69: ['烈', 'liè', 'intense'],\n 70: ['醇', 'chún', 'mellow'],\n 71: ['涓', 'juān', 'trickling'],\n 72: ['澈', 'chè', 'clear'],\n 73: ['浊', 'zhuó', 'murky'],\n 74: ['莹', 'yíng', 'lustrous'],\n 75: ['晶', 'jīng', 'crystalline'],\n },\n 'Age & Permanence': { // bytes 76-99 (wit..wic)\n 76: ['古', 'gǔ', 'ancient'],\n 77: ['新', 'xīn', 'new'],\n 78: ['永', 'yǒng', 'eternal'],\n 79: ['恒', 'héng', 'constant'],\n 80: ['久', 'jiǔ', 'lasting'],\n 81: ['暂', 'zàn', 'transient'],\n 82: ['初', 'chū', 'first'],\n 83: ['终', 'zhōng', 'final'],\n 84: ['昔', 'xī', 'past'],\n 85: ['今', 'jīn', 'present'],\n 86: ['幼', 'yòu', 'young'],\n 87: ['老', 'lǎo', 'old'],\n 88: ['稚', 'zhì', 'tender'],\n 89: ['耄', 'mào', 'aged'],\n 90: ['旧', 'jiù', 'former'],\n 91: ['鲜', 'xiān', 'fresh'],\n 92: ['残', 'cán', 'remnant'],\n 93: ['全', 'quán', 'whole'],\n 94: ['半', 'bàn', 'half'],\n 95: ['始', 'shǐ', 'beginning'],\n 96: ['末', 'mò', 'ending'],\n 97: ['元', 'yuán', 'original'],\n 98: ['本', 'běn', 'original'],\n 99: ['真', 'zhēn', 'true'],\n },\n 'Emotional Tone': { // bytes 100-129 (soc..dis)\n 100: ['恬', 'tián', 'serene'],\n 101: ['暴', 'bào', 'fierce'],\n 102: ['婉', 'wǎn', 'gentle'],\n 103: ['狂', 'kuáng', 'wild'],\n 104: ['安', 'ān', 'calm'],\n 105: ['乱', 'luàn', 'chaotic'],\n 106: ['宁', 'níng', 'peaceful'],\n 107: ['悲', 'bēi', 'sorrowful'],\n 108: ['欢', 'huān', 'joyful'],\n 109: ['怒', 'nù', 'wrathful'],\n 110: ['哀', 'āi', 'mournful'],\n 111: ['乐', 'lè', 'happy'],\n 112: ['忧', 'yōu', 'melancholy'],\n 113: ['喜', 'xǐ', 'delighted'],\n 114: ['惊', 'jīng', 'startled'],\n 115: ['惧', 'jù', 'fearful'],\n 116: ['慕', 'mù', 'longing'],\n 117: ['恋', 'liàn', 'devoted'],\n 118: ['傲', 'ào', 'proud'],\n 119: ['谦', 'qiān', 'humble'],\n 120: ['勇', 'yǒng', 'brave'],\n 121: ['怯', 'qiè', 'timid'],\n 122: ['坚', 'jiān', 'resolute'],\n 123: ['绵', 'mián', 'tender'],\n 124: ['猛', 'měng', 'fierce'],\n 125: ['静', 'jìng', 'secluded'],\n 126: ['闲', 'xián', 'leisurely'],\n 127: ['逸', 'yì', 'carefree'],\n 128: ['倦', 'juàn', 'weary'],\n 129: ['醒', 'xǐng', 'alert'],\n },\n 'Virtues & Character': { // bytes 130-159 (map..pat)\n 130: ['仁', 'rén', 'benevolent'],\n 131: ['义', 'yì', 'righteous'],\n 132: ['礼', 'lǐ', 'courteous'],\n 133: ['智', 'zhì', 'wise'],\n 134: ['信', 'xìn', 'trustworthy'],\n 135: ['忠', 'zhōng', 'loyal'],\n 136: ['孝', 'xiào', 'filial'],\n 137: ['廉', 'lián', 'incorrupt'],\n 138: ['耻', 'chǐ', 'honorable'],\n 139: ['慎', 'shèn', 'prudent'],\n 140: ['敬', 'jìng', 'reverent'],\n 141: ['诚', 'chéng', 'sincere'],\n 142: ['笃', 'dǔ', 'devoted'],\n 143: ['睿', 'ruì', 'sagacious'],\n 144: ['哲', 'zhé', 'philosophical'],\n 145: ['纯', 'chún', 'pure'],\n 146: ['毅', 'yì', 'resolute'],\n 147: ['贤', 'xián', 'virtuous'],\n 148: ['善', 'shàn', 'good'],\n 149: ['美', 'měi', 'beautiful'],\n 150: ['德', 'dé', 'virtuous'],\n 151: ['正', 'zhèng', 'upright'],\n 152: ['直', 'zhí', 'honest'],\n 153: ['公', 'gōng', 'fair'],\n 154: ['晰', 'xī', 'clear'],\n 155: ['达', 'dá', 'enlightened'],\n 156: ['通', 'tōng', 'understanding'],\n 157: ['博', 'bó', 'learned'],\n 158: ['儒', 'rú', 'refined'],\n 159: ['卓', 'zhuó', 'distinguished'],\n },\n 'Beauty & Refinement': { // bytes 160-183 (tac..bar)\n 160: ['雅', 'yǎ', 'elegant'],\n 161: ['秀', 'xiù', 'graceful'],\n 162: ['丽', 'lì', 'beautiful'],\n 163: ['妙', 'miào', 'exquisite'],\n 164: ['华', 'huá', 'splendid'],\n 165: ['瑰', 'guī', 'magnificent'],\n 166: ['绮', 'qǐ', 'gorgeous'],\n 167: ['艳', 'yàn', 'dazzling'],\n 168: ['媚', 'mèi', 'charming'],\n 169: ['娴', 'xián', 'refined'],\n 170: ['曼', 'màn', 'gracious'],\n 171: ['端', 'duān', 'dignified'],\n 172: ['庄', 'zhuāng', 'stately'],\n 173: ['典', 'diǎn', 'classic'],\n 174: ['朴', 'pǔ', 'simple'],\n 175: ['简', 'jiǎn', 'plain'],\n 176: ['淳', 'chún', 'unspoiled'],\n 177: ['俊', 'jùn', 'handsome'],\n 178: ['飘', 'piāo', 'elegant'],\n 179: ['灵', 'líng', 'ethereal'],\n 180: ['奇', 'qí', 'wondrous'],\n 181: ['异', 'yì', 'unique'],\n 182: ['殊', 'shū', 'special'],\n 183: ['绝', 'jué', 'peerless'],\n },\n 'Intensity & Clarity': { // bytes 184-207 (rac..top)\n 184: ['剧', 'jù', 'intense'],\n 185: ['微', 'wēi', 'faint'],\n 186: ['稠', 'chóu', 'dense'],\n 187: ['稀', 'xī', 'sparse'],\n 188: ['亮', 'liàng', 'clear'],\n 189: ['昧', 'mèi', 'dim'],\n 190: ['锐', 'ruì', 'sharp'],\n 191: ['钝', 'dùn', 'dull'],\n 192: ['显', 'xiǎn', 'vivid'],\n 193: ['隐', 'yǐn', 'hidden'],\n 194: ['透', 'tòu', 'transparent'],\n 195: ['朦', 'méng', 'hazy'],\n 196: ['耀', 'yào', 'dazzling'],\n 197: ['暧', 'ài', 'dim'],\n 198: ['盛', 'shèng', 'flourishing'],\n 199: ['衰', 'shuāi', 'fading'],\n 200: ['旺', 'wàng', 'thriving'],\n 201: ['枯', 'kū', 'withered'],\n 202: ['荣', 'róng', 'glorious'],\n 203: ['凋', 'diāo', 'wilted'],\n 204: ['茂', 'mào', 'lush'],\n 205: ['萎', 'wěi', 'withering'],\n 206: ['焕', 'huàn', 'radiant'],\n 207: ['黯', 'àn', 'shadowy'],\n },\n 'Rarity & Wonder': { // bytes 208-231 (mop..mos)\n 208: ['珍', 'zhēn', 'rare'],\n 209: ['怪', 'guài', 'strange'],\n 210: ['幽', 'yōu', 'mysterious'],\n 211: ['巧', 'qiǎo', 'wondrous'],\n 212: ['圣', 'shèng', 'sacred'],\n 213: ['神', 'shén', 'divine'],\n 214: ['仙', 'xiān', 'immortal'],\n 215: ['慧', 'huì', 'spiritual'],\n 216: ['幻', 'huàn', 'illusory'],\n 217: ['梦', 'mèng', 'dreamlike'],\n 218: ['魔', 'mó', 'magical'],\n 219: ['祥', 'xiáng', 'auspicious'],\n 220: ['瑞', 'ruì', 'propitious'],\n 221: ['吉', 'jí', 'fortunate'],\n 222: ['福', 'fú', 'blessed'],\n 223: ['禅', 'chán', 'zen'],\n 224: ['道', 'dào', 'enlightened'],\n 225: ['奥', 'ào', 'arcane'],\n 226: ['秘', 'mì', 'secret'],\n 227: ['藏', 'cáng', 'hidden'],\n 228: ['僻', 'pì', 'secluded'],\n 229: ['冥', 'míng', 'profound'],\n 230: ['邃', 'suì', 'abstruse'],\n 231: ['蕴', 'yùn', 'mysterious'],\n },\n 'State & Condition': { // bytes 232-255 (lan..fip)\n 232: ['动', 'dòng', 'moving'],\n 233: ['定', 'dìng', 'still'],\n 234: ['流', 'liú', 'flowing'],\n 235: ['凝', 'níng', 'frozen'],\n 236: ['散', 'sàn', 'scattered'],\n 237: ['聚', 'jù', 'gathered'],\n 238: ['起', 'qǐ', 'rising'],\n 239: ['落', 'luò', 'falling'],\n 240: ['浮', 'fú', 'floating'],\n 241: ['沉', 'chén', 'sinking'],\n 242: ['飞', 'fēi', 'flying'],\n 243: ['栖', 'qī', 'resting'],\n 244: ['觉', 'jué', 'awakened'],\n 245: ['眠', 'mián', 'sleeping'],\n 246: ['生', 'shēng', 'living'],\n 247: ['逝', 'shì', 'passing'],\n 248: ['兴', 'xīng', 'flourishing'],\n 249: ['干', 'gān', 'withered'],\n 250: ['盈', 'yíng', 'full'],\n 251: ['亏', 'kuī', 'waning'],\n 252: ['升', 'shēng', 'ascending'],\n 253: ['降', 'jiàng', 'descending'],\n 254: ['开', 'kāi', 'opening'],\n 255: ['合', 'hé', 'closing'],\n },\n} as const satisfies Record<string, Record<number, Entry>>;\n\n// ===== Suffix → character mapping (keyed by byte 0-255) ======================\n// Suffixes are universal nouns. Edit here to retune the mapping.\n\nexport const SUFFIX_GROUPS = {\n 'Flora & Botanicals': { // bytes 0-27 (zod..hec)\n 0: ['松', 'sōng', 'pine'],\n 1: ['竹', 'zhú', 'bamboo'],\n 2: ['梅', 'méi', 'plum blossom'],\n 3: ['兰', 'lán', 'orchid'],\n 4: ['菊', 'jú', 'chrysanthemum'],\n 5: ['莲', 'lián', 'lotus'],\n 6: ['柳', 'liǔ', 'willow'],\n 7: ['桃', 'táo', 'peach'],\n 8: ['荷', 'hé', 'lotus leaf'],\n 9: ['杏', 'xìng', 'apricot'],\n 10: ['桂', 'guì', 'osmanthus'],\n 11: ['椿', 'chūn', 'toon tree'],\n 12: ['柏', 'bǎi', 'cypress'],\n 13: ['杉', 'shān', 'fir'],\n 14: ['槐', 'huái', 'scholar tree'],\n 15: ['榆', 'yú', 'elm'],\n 16: ['枫', 'fēng', 'maple'],\n 17: ['藤', 'téng', 'vine'],\n 18: ['苔', 'tái', 'moss'],\n 19: ['蕨', 'jué', 'fern'],\n 20: ['茗', 'míng', 'tea leaf'],\n 21: ['芝', 'zhī', 'lingzhi'],\n 22: ['萍', 'píng', 'duckweed'],\n 23: ['蒿', 'hāo', 'artemisia'],\n 24: ['蓼', 'liǎo', 'knotweed'],\n 25: ['薇', 'wēi', 'fern frond'],\n 26: ['芦', 'lú', 'reed'],\n 27: ['蓑', 'suō', 'rush'],\n },\n 'Gems & Minerals': { // bytes 28-51 (ryt..mev)\n 28: ['瑾', 'jǐn', 'fine jade'],\n 29: ['瑜', 'yú', 'jade luster'],\n 30: ['琼', 'qióng', 'jasper'],\n 31: ['璧', 'bì', 'jade disc'],\n 32: ['琳', 'lín', 'beautiful jade'],\n 33: ['瑶', 'yáo', 'precious jade'],\n 34: ['珩', 'héng', 'jade pendant'],\n 35: ['珏', 'jué', 'paired jade'],\n 36: ['琅', 'láng', 'jade-like stone'],\n 37: ['珂', 'kē', 'white jade'],\n 38: ['璞', 'pú', 'uncut jade'],\n 39: ['璜', 'huáng', 'half-ring jade'],\n 40: ['珉', 'mín', 'jade-like stone'],\n 41: ['珈', 'jiā', 'jade ornament'],\n 42: ['玮', 'wěi', 'rare jade'],\n 43: ['瑁', 'mào', 'tortoiseshell'],\n 44: ['珊', 'shān', 'coral'],\n 45: ['瑚', 'hú', 'coral gem'],\n 46: ['玛', 'mǎ', 'agate'],\n 47: ['瑙', 'nǎo', 'chalcedony'],\n 48: ['珣', 'xún', 'fine jade'],\n 49: ['钻', 'zuàn', 'diamond'],\n 50: ['琥', 'hǔ', 'amber'],\n 51: ['珀', 'pò', 'amber gem'],\n },\n 'Celestial Forms': { // bytes 52-77 (rut..rec)\n 52: ['星', 'xīng', 'star'],\n 53: ['月', 'yuè', 'moon'],\n 54: ['日', 'rì', 'sun'],\n 55: ['云', 'yún', 'cloud'],\n 56: ['霞', 'xiá', 'sunset glow'],\n 57: ['虹', 'hóng', 'rainbow'],\n 58: ['霓', 'ní', 'secondary rainbow'],\n 59: ['露', 'lù', 'dew'],\n 60: ['霜', 'shuāng', 'frost'],\n 61: ['雪', 'xuě', 'snow'],\n 62: ['雾', 'wù', 'fog'],\n 63: ['岚', 'lán', 'mountain mist'],\n 64: ['霭', 'ǎi', 'haze'],\n 65: ['霰', 'xiàn', 'sleet'],\n 66: ['雹', 'báo', 'hail'],\n 67: ['霏', 'fēi', 'falling snow'],\n 68: ['烟', 'yān', 'mist'],\n 69: ['辰', 'chén', 'celestial body'],\n 70: ['宿', 'xiù', 'constellation'],\n 71: ['斗', 'dǒu', 'dipper'],\n 72: ['极', 'jí', 'pole star'],\n 73: ['霄', 'xiāo', 'sky'],\n 74: ['穹', 'qióng', 'firmament'],\n 75: ['昊', 'hào', 'vast sky'],\n 76: ['旻', 'mín', 'autumn sky'],\n 77: ['曦', 'xī', 'sunlight'],\n },\n 'Winged Creatures': { // bytes 78-99 (meg..wex)\n 78: ['莺', 'yīng', 'oriole'],\n 79: ['雀', 'què', 'sparrow'],\n 80: ['鹂', 'lí', 'oriole'],\n 81: ['鸥', 'ōu', 'gull'],\n 82: ['鸾', 'luán', 'mythic bird'],\n 83: ['鸢', 'yuān', 'kite'],\n 84: ['鹊', 'què', 'magpie'],\n 85: ['鸽', 'gē', 'dove'],\n 86: ['鹃', 'juān', 'cuckoo'],\n 87: ['鹄', 'hú', 'swan'],\n 88: ['鹤', 'hè', 'crane'],\n 89: ['蝶', 'dié', 'butterfly'],\n 90: ['蛾', 'é', 'moth'],\n 91: ['蝉', 'chán', 'cicada'],\n 92: ['萤', 'yíng', 'firefly'],\n 93: ['蜂', 'fēng', 'bee'],\n 94: ['蚕', 'cán', 'silkworm'],\n 95: ['蟋', 'xī', 'cricket'],\n 96: ['螳', 'táng', 'mantis'],\n 97: ['蜻', 'qīng', 'dragonfly'],\n 98: ['蜓', 'tíng', 'damselfly'],\n 99: ['燕', 'yàn', 'swallow'],\n },\n 'Water Forms': { // bytes 100-121 (syr..tud)\n 100: ['波', 'bō', 'wave'],\n 101: ['涛', 'tāo', 'billows'],\n 102: ['澜', 'lán', 'ripples'],\n 103: ['浪', 'làng', 'waves'],\n 104: ['漪', 'yī', 'ripple'],\n 105: ['湍', 'tuān', 'rapids'],\n 106: ['溟', 'míng', 'dark sea'],\n 107: ['沧', 'cāng', 'ocean'],\n 108: ['瀚', 'hàn', 'vast water'],\n 109: ['汐', 'xī', 'tide'],\n 110: ['潮', 'cháo', 'tidal wave'],\n 111: ['泉', 'quán', 'spring'],\n 112: ['溪', 'xī', 'brook'],\n 113: ['涧', 'jiàn', 'mountain stream'],\n 114: ['潭', 'tán', 'pool'],\n 115: ['渊', 'yuān', 'abyss'],\n 116: ['渚', 'zhǔ', 'islet'],\n 117: ['浦', 'pǔ', 'riverbank'],\n 118: ['汀', 'tīng', 'sandbar'],\n 119: ['洄', 'huí', 'whirlpool'],\n 120: ['漩', 'xuán', 'vortex'],\n 121: ['濑', 'lài', 'shoals'],\n },\n 'Textiles & Threads': { // bytes 122-141 (nux..mec)\n 122: ['绫', 'líng', 'damask silk'],\n 123: ['罗', 'luó', 'gauze silk'],\n 124: ['绸', 'chóu', 'silk'],\n 125: ['缎', 'duàn', 'satin'],\n 126: ['锦', 'jǐn', 'brocade'],\n 127: ['绣', 'xiù', 'embroidery'],\n 128: ['纱', 'shā', 'gauze'],\n 129: ['帛', 'bó', 'silk fabric'],\n 130: ['纬', 'wěi', 'weft'],\n 131: ['绢', 'juàn', 'thin silk'],\n 132: ['绪', 'xù', 'silk thread'],\n 133: ['缕', 'lǚ', 'thread'],\n 134: ['纶', 'lún', 'silk cord'],\n 135: ['绳', 'shéng', 'rope'],\n 136: ['缨', 'yīng', 'tassel'],\n 137: ['络', 'luò', 'net'],\n 138: ['纹', 'wén', 'pattern'],\n 139: ['绯', 'fēi', 'crimson silk'],\n 140: ['缃', 'xiāng', 'yellow silk'],\n 141: ['绦', 'tāo', 'silk ribbon'],\n },\n 'Literature & Arts': { // bytes 142-165 (ted..mex)\n 142: ['诗', 'shī', 'poem'],\n 143: ['词', 'cí', 'verse'],\n 144: ['赋', 'fù', 'rhapsody'],\n 145: ['曲', 'qǔ', 'melody'],\n 146: ['谣', 'yáo', 'ballad'],\n 147: ['歌', 'gē', 'song'],\n 148: ['赞', 'zàn', 'hymn'],\n 149: ['铭', 'míng', 'inscription'],\n 150: ['志', 'zhì', 'record'],\n 151: ['传', 'zhuàn', 'biography'],\n 152: ['笺', 'jiān', 'letter paper'],\n 153: ['札', 'zhá', 'note'],\n 154: ['牍', 'dú', 'tablet'],\n 155: ['牒', 'dié', 'bamboo slip'],\n 156: ['册', 'cè', 'volume'],\n 157: ['卷', 'juàn', 'scroll'],\n 158: ['帙', 'zhì', 'book case'],\n 159: ['墨', 'mò', 'ink'],\n 160: ['砚', 'yàn', 'inkstone'],\n 161: ['笔', 'bǐ', 'brush'],\n 162: ['纸', 'zhǐ', 'paper'],\n 163: ['章', 'zhāng', 'chapter'],\n 164: ['篇', 'piān', 'essay'],\n 165: ['句', 'jù', 'phrase'],\n },\n 'Light & Shadow': { // bytes 166-187 (pub..dyt)\n 166: ['曙', 'shǔ', 'dawn'],\n 167: ['晖', 'huī', 'sunlight'],\n 168: ['晕', 'yùn', 'halo'],\n 169: ['光', 'guāng', 'radiance'],\n 170: ['晃', 'huǎng', 'gleam'],\n 171: ['晔', 'yè', 'splendor'],\n 172: ['晟', 'shèng', 'brightness'],\n 173: ['晨', 'chén', 'morning'],\n 174: ['暮', 'mù', 'dusk'],\n 175: ['暝', 'míng', 'twilight'],\n 176: ['宵', 'xiāo', 'night'],\n 177: ['昏', 'hūn', 'dusk'],\n 178: ['晓', 'xiǎo', 'daybreak'],\n 179: ['旭', 'xù', 'sunrise'],\n 180: ['影', 'yǐng', 'shadow'],\n 181: ['彩', 'cǎi', 'color'],\n 182: ['晴', 'qíng', 'clear sky'],\n 183: ['映', 'yìng', 'reflection'],\n 184: ['照', 'zhào', 'illumination'],\n 185: ['焰', 'yàn', 'flame'],\n 186: ['烛', 'zhú', 'candle'],\n 187: ['灯', 'dēng', 'lamp'],\n },\n 'Sound & Echo': { // bytes 188-205 (byt..lyd)\n 188: ['韵', 'yùn', 'rhyme'],\n 189: ['音', 'yīn', 'sound'],\n 190: ['律', 'lǜ', 'rhythm'],\n 191: ['调', 'diào', 'tone'],\n 192: ['弦', 'xián', 'string'],\n 193: ['簧', 'huáng', 'reed'],\n 194: ['磬', 'qìng', 'chime stone'],\n 195: ['铃', 'líng', 'bell'],\n 196: ['箫', 'xiāo', 'flute'],\n 197: ['筝', 'zhēng', 'zither'],\n 198: ['鼓', 'gǔ', 'drum'],\n 199: ['钹', 'bó', 'cymbal'],\n 200: ['笙', 'shēng', 'mouth organ'],\n 201: ['埙', 'xūn', 'ocarina'],\n 202: ['琴', 'qín', 'lute'],\n 203: ['瑟', 'sè', 'zither'],\n 204: ['钟', 'zhōng', 'bell'],\n 205: ['磐', 'pán', 'stone chime'],\n },\n 'Essence & Spirit': { // bytes 206-229 (fen..sug)\n 206: ['魂', 'hún', 'soul'],\n 207: ['魄', 'pò', 'spirit'],\n 208: ['气', 'qì', 'vital force'],\n 209: ['息', 'xī', 'breath'],\n 210: ['君', 'jūn', 'noble spirit'],\n 211: ['侠', 'xiá', 'hero'],\n 212: ['师', 'shī', 'master'],\n 213: ['者', 'zhě', 'one who'],\n 214: ['悟', 'wù', 'zen'],\n 215: ['理', 'lǐ', 'the way'],\n 216: ['行', 'xíng', 'virtue'],\n 217: ['心', 'xīn', 'heart'],\n 218: ['愿', 'yuàn', 'will'],\n 219: ['念', 'niàn', 'thought'],\n 220: ['意', 'yì', 'intent'],\n 221: ['情', 'qíng', 'feeling'],\n 222: ['性', 'xìng', 'nature'],\n 223: ['命', 'mìng', 'destiny'],\n 224: ['缘', 'yuán', 'fate'],\n 225: ['佑', 'yòu', 'blessing'],\n 226: ['禄', 'lù', 'fortune'],\n 227: ['寿', 'shòu', 'longevity'],\n 228: ['庆', 'qìng', 'auspice'],\n 229: ['兆', 'zhào', 'omen'],\n },\n 'Nature Parts': { // bytes 230-255 (nys..fes)\n 230: ['峰', 'fēng', 'peak'],\n 231: ['岳', 'yuè', 'mountain'],\n 232: ['岭', 'lǐng', 'ridge'],\n 233: ['崖', 'yá', 'cliff'],\n 234: ['壑', 'hè', 'ravine'],\n 235: ['谷', 'gǔ', 'valley'],\n 236: ['林', 'lín', 'forest'],\n 237: ['丛', 'cóng', 'grove'],\n 238: ['野', 'yě', 'wilderness'],\n 239: ['原', 'yuán', 'plain'],\n 240: ['坪', 'píng', 'meadow'],\n 241: ['畔', 'pàn', 'shore'],\n 242: ['滨', 'bīn', 'waterside'],\n 243: ['洲', 'zhōu', 'islet'],\n 244: ['屿', 'yǔ', 'isle'],\n 245: ['礁', 'jiāo', 'reef'],\n 246: ['岩', 'yán', 'rock'],\n 247: ['石', 'shí', 'stone'],\n 248: ['砂', 'shā', 'sand'],\n 249: ['土', 'tǔ', 'earth'],\n 250: ['尘', 'chén', 'dust'],\n 251: ['埃', 'āi', 'fine dust'],\n 252: ['泥', 'ní', 'clay'],\n 253: ['沙', 'shā', 'sand'],\n 254: ['洞', 'dòng', 'cave'],\n 255: ['穴', 'xué', 'grotto'],\n },\n} as const satisfies Record<string, Record<number, Entry>>;\n\n// ===== Derived indices and lookups ===========================================\n\n/**\n * Flatten the byte-keyed group structure into a phoneme-keyed map. Asserts that\n * every byte 0..N appears exactly once (catches drops, duplicates, out-of-range\n * keys at module load time, before tests).\n */\nfunction flattenByteGroups(\n groups: Record<string, Record<number, Entry>>,\n phonemes: readonly string[]\n): Record<string, CharacterEntry> {\n const out: Record<string, CharacterEntry> = {};\n const seenBytes = new Set<number>();\n\n for (const [category, entries] of Object.entries(groups)) {\n for (const [byteStr, tuple] of Object.entries(entries)) {\n const byte = Number(byteStr);\n if (!Number.isInteger(byte) || byte < 0 || byte >= phonemes.length) {\n throw new Error(`Invalid byte key ${byteStr} in category ${category}`);\n }\n if (seenBytes.has(byte)) {\n throw new Error(`Duplicate byte ${byte} (already assigned before category ${category})`);\n }\n seenBytes.add(byte);\n const [character, pinyin, meaning] = tuple;\n out[phonemes[byte]] = { character, pinyin, meaning, category };\n }\n }\n\n if (seenBytes.size !== phonemes.length) {\n const missing: number[] = [];\n for (let i = 0; i < phonemes.length; i++) {\n if (!seenBytes.has(i)) missing.push(i);\n }\n throw new Error(`Missing bytes: ${missing.join(', ')}`);\n }\n\n return out;\n}\n\nexport const PREFIX_CHARACTERS = flattenByteGroups(PREFIX_GROUPS, PREFIXES) as Record<Prefix, CharacterEntry>;\nexport const SUFFIX_CHARACTERS = flattenByteGroups(SUFFIX_GROUPS, SUFFIXES) as Record<Suffix, CharacterEntry>;\n\nexport const PREFIX_INDEX: Record<string, string> = Object.fromEntries(\n Object.entries(PREFIX_CHARACTERS).map(([k, v]) => [k, v.character])\n);\n\nexport const SUFFIX_INDEX: Record<string, string> = Object.fromEntries(\n Object.entries(SUFFIX_CHARACTERS).map(([k, v]) => [k, v.character])\n);\n\nexport const PHONEME_INDEX: Record<string, string> = {\n ...PREFIX_INDEX,\n ...SUFFIX_INDEX,\n};\n\nexport function isPrefix(phoneme: string): boolean {\n return phoneme in PREFIX_INDEX;\n}\n\nexport function isSuffix(phoneme: string): boolean {\n return phoneme in SUFFIX_INDEX;\n}\n\nexport function getCharacter(phoneme: string): string | undefined {\n return PHONEME_INDEX[phoneme];\n}\n","import memoize from 'lodash.memoize';\nimport { Config, ParsedPoint, PointType } from './types';\nimport { PHONEME_INDEX, isPrefix, isSuffix } from './mapping';\n\ntype Space = NonNullable<Config['space']>;\ntype Position = { x: number; y: number };\n\nconst DEFAULTS = {\n background: '#000',\n foreground: '#FFF',\n size: 128,\n space: 'default' as Space,\n fontWeight: 400,\n fontFamily: 'Noto Sans SC, Noto Sans TC, Microsoft YaHei, SimHei, sans-serif',\n} as const;\n\ntype ResolvedConfig = Required<Config>;\n\nfunction withDefaults(config: Config): ResolvedConfig {\n return { ...DEFAULTS, ...config };\n}\n\nconst POINT_TYPES: Record<number, PointType> = {\n 1: 'galaxy',\n 2: 'star',\n 4: 'planet',\n 8: 'moon',\n};\n\n/**\n * Split a string into equal-sized substrings.\n */\nfunction chunkStr(str: string, size: number): string[] {\n return str.match(new RegExp(`.{1,${size}}`, 'g')) ?? [];\n}\n\n/**\n * Normalize a point name by removing the sigil prefix, hyphens, and casing.\n * @example deSig('~sampel-palnet') => 'sampelpalnet'\n */\nexport function deSig(point: string): string {\n return point.replace(/[\\^~-]/g, '').toLowerCase();\n}\n\n/**\n * Parse a point name into phonemes and characters.\n */\nexport function parsePoint(point: string): ParsedPoint {\n if (!point) throw new Error('Point name is required');\n\n const cleaned = deSig(point);\n const phonemes = chunkStr(cleaned, 3);\n\n const type = POINT_TYPES[phonemes.length];\n if (!type) {\n throw new Error(\n `Invalid point name length: ${phonemes.length} phonemes. Expected 1 (galaxy), 2 (star), 4 (planet), or 8 (moon).`\n );\n }\n\n for (const phoneme of phonemes) {\n if (!isPrefix(phoneme) && !isSuffix(phoneme)) {\n throw new Error(`Invalid phoneme: '${phoneme}' is not a valid Urbit syllable.`);\n }\n }\n\n const characters = phonemes.map((p) => PHONEME_INDEX[p]);\n\n return {\n point,\n phonemes,\n type,\n characters,\n hanziName: characters.join(''),\n };\n}\n\n// ---- Layout table ----------------------------------------------------------\n// Each cell controls font scale and character positions for one\n// (point type, space) combination. All values are relative to `size`, so\n// changing a magic number here is the only edit a contributor needs to make\n// to retune layout.\n\ntype LayoutSpec = {\n fontScale: number;\n /** Height scale relative to `size`; defaults to 1. */\n heightScale?: number;\n positions: (size: number, height: number) => Position[];\n};\n\nconst centeredOne = (s: number): Position[] => [{ x: s / 2, y: s / 2 }];\n\nconst starPair = (s: number, h: number, inset: number): Position[] => [\n { x: s * inset, y: h / 2 },\n { x: s * (1 - inset), y: h / 2 },\n];\n\nconst planetGrid = (s: number, offset: number): Position[] => {\n const c = s / 2;\n const d = s * offset;\n return [\n { x: c - d, y: c - d },\n { x: c + d, y: c - d },\n { x: c - d, y: c + d },\n { x: c + d, y: c + d },\n ];\n};\n\nconst moonGrid = (s: number): Position[] => {\n const c = s / 2;\n const xOffsets = [-0.375, -0.125, 0.125, 0.375];\n const yOffsets = [-0.25, 0.25];\n const positions: Position[] = [];\n for (const yo of yOffsets) {\n for (const xo of xOffsets) {\n positions.push({ x: c + s * xo, y: c + s * yo });\n }\n }\n return positions;\n};\n\nconst LAYOUTS: Record<PointType, Record<Space, LayoutSpec>> = {\n galaxy: {\n none: { fontScale: 0.8, positions: centeredOne },\n default: { fontScale: 0.6, positions: centeredOne },\n large: { fontScale: 0.4, positions: centeredOne },\n },\n star: {\n none: { fontScale: 0.45, heightScale: 0.5, positions: (s, h) => starPair(s, h, 0.25) },\n default: { fontScale: 0.35, positions: (s, h) => starPair(s, h, 0.3) },\n large: { fontScale: 0.25, positions: (s, h) => starPair(s, h, 0.3) },\n },\n planet: {\n none: { fontScale: 0.4, positions: (s) => planetGrid(s, 0.25) },\n default: { fontScale: 0.28, positions: (s) => planetGrid(s, 0.27) },\n large: { fontScale: 0.2, positions: (s) => planetGrid(s, 0.3) },\n },\n moon: {\n none: { fontScale: 0.2, positions: (s) => moonGrid(s) },\n default: { fontScale: 0.15, positions: (s) => moonGrid(s) },\n large: { fontScale: 0.12, positions: (s) => moonGrid(s) },\n },\n};\n\n/**\n * Generate an SVG sigil for a point using Chinese characters.\n */\nfunction hanziSigil(config: Config): string {\n const { point, background, foreground, size, space, fontWeight, fontFamily } = withDefaults(config);\n const { characters, type } = parsePoint(point);\n\n const spec = LAYOUTS[type][space];\n const width = size;\n const height = size * (spec.heightScale ?? 1);\n const fontSize = size * spec.fontScale;\n const positions = spec.positions(size, height);\n\n const textElements = characters.map((char, i) => {\n const { x, y } = positions[i];\n return `<text\n x=\"${x}\"\n y=\"${y}\"\n font-family=\"${fontFamily}\"\n font-size=\"${fontSize}\"\n font-weight=\"${fontWeight}\"\n fill=\"${foreground}\"\n text-anchor=\"middle\"\n dominant-baseline=\"central\"\n >${char}</text>`;\n }).join('\\n ');\n\n return `<svg\n style=\"display: block;\"\n width=\"${width}\"\n height=\"${height}\"\n viewBox=\"0 0 ${width} ${height}\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <rect fill=\"${background}\" width=\"${width}\" height=\"${height}\" x=\"0\" y=\"0\" />\n ${textElements}\n</svg>`;\n}\n\nfunction createCacheKey(config: Config): string {\n const c = withDefaults(config);\n return `${c.point}|${c.size}|${c.background}|${c.foreground}|${c.space}|${c.fontWeight}|${c.fontFamily}`;\n}\n\ntype MemoizedHanziSigil = ((config: Config) => string) & {\n cache: { clear?: () => void };\n};\n\nconst memoizedHanziSigil: MemoizedHanziSigil = memoize(\n (config: Config) => hanziSigil(config),\n createCacheKey\n);\n\nexport default hanziSigil;\nexport { hanziSigil, memoizedHanziSigil };\n"],"names":["PREFIXES","SUFFIXES","PREFIX_GROUPS","SUFFIX_GROUPS","flattenByteGroups","groups","phonemes","out","seenBytes","Set","_i","_Object$entries","Object","entries","length","_Object$entries$_i","category","_i2","_Object$entries2","_Object$entries2$_i","byteStr","tuple","byte","Number","isInteger","Error","has","add","character","pinyin","meaning","size","missing","i","push","join","PREFIX_CHARACTERS","SUFFIX_CHARACTERS","PREFIX_INDEX","fromEntries","map","_ref","SUFFIX_INDEX","_ref2","PHONEME_INDEX","_extends","isPrefix","phoneme","isSuffix","DEFAULTS","background","foreground","space","fontWeight","fontFamily","withDefaults","config","POINT_TYPES","deSig","point","replace","toLowerCase","parsePoint","_str$match","match","RegExp","type","_step","_iterator","_createForOfIteratorHelperLoose","done","value","characters","p","hanziName","centeredOne","s","x","y","starPair","h","inset","planetGrid","offset","c","d","moonGrid","xOffsets","positions","_yOffsets","_step2","yo","_iterator2","LAYOUTS","galaxy","none","fontScale","default","large","star","heightScale","planet","moon","hanziSigil","_spec$heightScale","_withDefaults","_parsePoint","spec","width","height","fontSize","char","_positions$i","createCacheKey","memoizedHanziSigil","memoize"],"mappings":"ykFAWaA,IAAAA,EAAW,CACtB,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAG9FC,EAAW,CACtB,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACzG,MAAO,MAAO,MAAO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"}