furifont 0.4.2 → 0.5.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.
Files changed (36) hide show
  1. package/dist/cli.mjs +5 -5
  2. package/dist/client/200.html +1 -1
  3. package/dist/client/404.html +1 -1
  4. package/dist/client/_nuxt/7dpEN058.js +4 -0
  5. package/dist/client/_nuxt/B35AZ4N5.js +3 -0
  6. package/dist/client/_nuxt/{Kki0DvjP.js → BK--K-B8.js} +1 -1
  7. package/dist/client/_nuxt/{C4V-788C.js → CCKNrAp3.js} +3 -3
  8. package/dist/client/_nuxt/CFJDasU9.js +2 -0
  9. package/dist/client/_nuxt/{slpK2-vu.js → Cav8jaAI.js} +1 -1
  10. package/dist/client/_nuxt/{CAnB8eMp.js → Cvflahe0.js} +1 -1
  11. package/dist/client/_nuxt/D-bzbSL2.js +1 -0
  12. package/dist/client/_nuxt/D1B77ENm.js +1 -0
  13. package/dist/client/_nuxt/{B2JUvp84.js → DUyBBmcb.js} +1 -1
  14. package/dist/client/_nuxt/{Dg3RF8xB.js → IRGIvKlv.js} +1 -1
  15. package/dist/client/_nuxt/builds/latest.json +1 -1
  16. package/dist/client/_nuxt/builds/meta/efe0e6b4-05bd-4e0b-a04c-7ec5da4143f9.json +1 -0
  17. package/dist/client/_nuxt/entry.BSCJYv63.css +1 -0
  18. package/dist/client/customize/index.html +1 -1
  19. package/dist/client/furifont.user.js +3 -3
  20. package/dist/client/index.html +1 -1
  21. package/dist/client/reference/index.html +1 -1
  22. package/dist/client/report/index.html +1 -1
  23. package/dist/client/version.json +1 -1
  24. package/dist/{config-BHN-5b6L.mjs → config-CNDZmTlF.mjs} +19 -5
  25. package/dist/devframe.mjs +2 -2
  26. package/dist/index.d.mts +18 -2
  27. package/dist/index.mjs +2 -2
  28. package/dist/{studio-bPS1eciv.mjs → studio-JiPccKUS.mjs} +41 -1
  29. package/package.json +4 -5
  30. package/dist/client/_nuxt/BgIj0bEj.js +0 -1
  31. package/dist/client/_nuxt/BpoWIN5A.js +0 -3
  32. package/dist/client/_nuxt/CG1cMRvM.js +0 -2
  33. package/dist/client/_nuxt/CHjPDtV4.js +0 -4
  34. package/dist/client/_nuxt/builds/meta/95075385-c519-4224-af4d-f5091c1f9663.json +0 -1
  35. package/dist/client/_nuxt/entry.C1lnNdD0.css +0 -1
  36. package/dist/client/_nuxt/ez7nRQJI.js +0 -1
@@ -1 +1 @@
1
- var e={meta:{title:`Furifont:自带振假名的日文字体`,description:`自带振假名的日语字体。`},nav:{demo:`简介`,docs:`文档`,customize:`自定义`,report:`报告`,github:`GitHub 仓库`,light:`切换到浅色`,dark:`切换到深色`,language:`语言`,rubyOff:`隐藏振假名`,rubyOn:`显示振假名`},footer:{fonts:`字体采用{license},源自 Source Han Sans 和 Source Han Serif。`,data:`读音数据来自 {jmdict}、{jmnedict}、{kanjidic}(EDRDG)、{furigana}、{japanpost}(地名)和 {desktoptetsu}(JR 站名),采用 CC BY-SA 4.0 许可。`,code:`工具采用 MIT 许可。`,report:`报告错误读音`,source:`GitHub 上的源代码`,made:`作者:{author}`,supported:`由 {vercel} 和{sponsors}支持`,sponsors:`赞助者`},copied:`已复制`,shuffle:`换一个例句`,editable:`示例文字,可以编辑。`,scripts:{hiragana:`平假名`,hepburn:`罗马字`},faces:{sans:`黑体`,serif:`宋体`},hero:{title1:`振假名,`,title2:`交给字体。`,body:`Furifont 是一款把振假名直接显示在字体上的日语字体。它用连字(ligature)按词语的读音切换。只要支持自定义字体,哪里都能用。`,download:`下载字体`,build:`自己构建`},notice:`受字体限制,振假名可能不正确,请留意。`,sections:{try:`试一试`,how:`原理`,selectors:`选择读音`,download:`下载`,anyPage:`用于网站`},playground:{script:`振假名所用文字`,face:`字体样式`,size:`字号 / {size}px`,weight:`字重 / {weight}`,ruby:`振假名`,okurigana:`送假名读音`,okuriganaHint:`需要 JavaScript。受浏览器限制,字体无法自行处理送假名。`,textHint:`点击文字即可编辑。`,copy:`复制文本`},how:{build:{title:`定制构建`,body:`Furifont 以思源黑体或思源宋体为基础编译而成。构建时会读取包含数千个词的词典,并把振假名绘制成新的字形。得到的是普通的字体文件,不需要 JavaScript,也不需要插件。`},ligatures:{title:`由连字完成工作`,body:`字体中为每个词准备了连字。今日 会变成上方带有 きょう 的单个字形。替换发生在绘制文字时,所以文本本身不会改变。`},longest:{title:`长词优先`,body:`Furifont 把每一组汉字与几千个常用词的列表对照,先试最长的词。例如,会先选 日本語,再考虑 日本。今日 会当作一个词,读作 きょう。`},bare:{title:`拿不准就不加`,body:`只有一个汉字时,只有当某个读音明显最可能,才加振假名。大人気 可以读作 だいにんき,也可以读作 おとなげ,所以不加振假名。`},okurigana:{title:`可选的送假名支持`,body:`浏览器按字体的文字种类分别排版,所以字体看不到汉字后面的假名(称为送假名)。我们通过 JavaScript 标注,提供可选的支持。`}},selectors:{body:`有些词有多个常用读音。Furifont 显示最常见的那个。要选其他读音,就在第一个汉字后面紧跟一个变体选择器(看不见的字符)。VS226 是读音 1,VS227 是读音 2,依此类推。VS225 去掉振假名。`,lookUp:`查询读音`,default:`默认`,reading2:`读音 2(VS227)`,none:`无振假名(VS225)`},downloads:{all:`全部下载为 ZIP`,family:`字体家族`,ruby:`振假名`,variable:`可变`,formats:`OTF 和 TTF 常用于安装到电脑上。WOFF2 针对网站做了优化。我们推荐使用可变字体,体验最佳。在某些情况下,为了兼容性,你可能需要固定字重的版本。`,buildOwn:`你也可以自己制作字体。可以选择其他基础字体、词的数量、振假名所用文字或尺寸。`},anyPage:{body:`你可以在任何网站上使用 Furifont。有汉字的行会留出放振假名的空间。如果电脑上已安装 Furifont,就不用下载。否则字体会从本站加载。`,bookmarklet:`书签小工具`,bookmarkletHint:`把它拖到书签栏。在任何页面点击它,就会打开 Furifont;再点一次就会关闭。有些网站(如 X 和 GitHub)不允许加载其他网站的字体。在这些网站上,请在电脑上安装 Furifont。`,okurigana:`送假名读音`,okuriganaHint:`为送假名前的汉字选出正确的读音,例如「来る」「来ない」中的「来」。`,userscript:`用户脚本`,install:`安装用户脚本`,userscriptHint:`适用于 Tampermonkey 或 Violentmonkey(运行小脚本的浏览器扩展)。它会在日语页面自动打开 Furifont,在不允许加载其他网站字体的网站上也能用。你可以在它的菜单里切换到另一款 Furifont 字体,或将其关闭。`,toast:{message:`Furifont 无法在此页面加载字体。有些网站(如 X 和 GitHub)不允许加载其他网站的字体。在这些网站上,需要在电脑上安装 Furifont。`,download:`下载字体`,close:`关闭`,outdated:`Furifont 有新版本了。`,userscript:`更新用户脚本`,bookmarklet:`获取新的书签小工具`},menu:{okuriganaOn:`送假名读音:开`,okuriganaOff:`送假名读音:关`}},reference:{eyebrow:`参考`,title:`选择读音`,body:`Furifont 显示词最常见的读音。要显示其他读音,就在词的第一个汉字后面紧跟一个变体选择器(看不见的字符)。VS226 是读音 1,VS227 是读音 2,依此类推。单个汉字后面的选择器,选的是这个汉字的读音。VS225 显示不带振假名的汉字。`,search:`搜索词语或汉字:市場、今日、生`,searchLabel:`搜索读音`,hint:`点击读音即可复制带选择器的词语。`,unavailable:`参考表随现成字体一起提供,但这里没能加载({error})。请用 {command} 制作字体,或打开自定义。`,loading:`加载中`,words:`有多个读音的词 / {count}`,kanji:`汉字 / {count}`,copyWith:`复制带 {selector} 的「{text}」`,default:`默认`},report:{eyebrow:`报告`,title:`报告错误读音`,body:`如果 Furifont 显示了错误的假名注音,或该有注音的词没有注音,请告诉我们这些词和正确的读音。可以一次报告多个词。我们会根据报告修正词典。`,link:`报告错误读音。`,sections:{words:`词语 / {count}`,environment:`出现的位置`,note:`其他`},word:`词语`,expected:`正确读音`,shown:`显示的读音(可选)`,context:`句子(可选)`,remove:`删除 {word}`,add:`添加词语`,environment:`环境`,environments:{playground:`本站的试用区`,website:`其他网站`,desktop:`桌面应用`,mobile:`移动应用`},family:`字体`,familyAny:`(不限)`,url:`页面地址(可选)`,app:`应用(可选)`,appPlaceholder:{desktop:`Word、Pages、VS Code`,mobile:`备忘录、Kindle`},os:`系统(可选)`,notePlaceholder:`任何有帮助的信息,例如浏览器,或读音错误的原因。`,name:`你的名字(可选)`,nameHint:`修正读音时用于致谢。留空即可匿名。`,send:`发送报告`,sending:`发送中`,sent:`感谢你的报告。`,again:`继续报告`,failed:`报告发送失败,请稍后再试。`,limited:`你在短时间内发送了太多报告,请一小时后再试。`,privacy:`我们会保存你填写的内容、字体版本和浏览器名称,不会保存你的 IP 地址。`},docs:{install:`安装字体`,website:`在网站上使用`,readings:`选择读音`},customize:{connecting:`正在连接 furifont dev`,title:`自定义`,offline:{eyebrow:`自定义 / 离线`,title:`构建你自己的 Furifont`,body:`自定义是运行在你电脑上的工具。它读取基础字体,并保存制作好的字体。在任意文件夹中启动它,本页就会连接上并打开,提供实时预览、词典和构建按钮。制作好的字体保存在 {folder}。`,needs:`需要 Node 22.18 或更高版本(一个运行 JavaScript 工具的免费程序)。`,run:`在任意文件夹中启动自定义`},auth:{eyebrow:`自定义 / 已锁定`,title:`输入终端中显示的验证码`,body:`{command} 在你的终端(输入命令的窗口)中显示了一个六位数验证码。`,code:`验证码`,failed:`验证码无效,请查看终端后重试。`,unlock:`解锁`},sections:{preview:`预览`,build:`构建`,dictionary:`词典`,words:`你的词语`},options:{family:`字体名称`,base:`基础字体`,baseHint:`要加振假名的字体。可以是要下载的字体,如 Source Han Serif JP Bold,也可以是电脑上另一个字体文件的路径。`,script:`振假名所用文字`,hiragana:`平假名`,katakanaOn:`片假名`,hepburn:`罗马字`,skip:`跳过最常见的词`,skipHint:`在剩下的词中,最常见的不加振假名,因为读者已经认识。词语和单个汉字按常用程度排序,每 500 个一档。`,words:`接着加振假名的词数`,wordsHint:`接下来的词,按常用程度依次选取。共 {count} 个词加振假名。`,jlpt:`跳过 JLPT 词汇`,jlptHint:`JLPT(日本语能力测试)词表中到这个级别为止的词不加振假名。N5 是最简单的级别。`,none:`无`,all:`全部`,sources:`从以下来源选词`,source:{jmdict:{name:`JMdict 全部词语`,hint:`JMdict:所有词语,包括任何列表都没有排名的词语,例如 四字熟語。无排名的词语在没有其他内容匹配的文字上使用,会使字体增大约 700 KB。`},ichi:{name:`基础词`,hint:`JMdict“ichi1”和“ichi2”:“一万语”词表(基础词汇表)中的词。`},news:{name:`报纸用词`,hint:`JMdict“news1”和“news2”:报纸中出现最多的 24,000 个词。`},spec:{name:`日常词`,hint:`JMdict“spec1”和“spec2”:其他词表没有收录的常用词,如 日本。`},gai:{name:`外来语`,hint:`JMdict“gai1”和“gai2”:日语从其他语言借来的常用词。`},nf:{name:`报纸排名`,hint:`JMdict“nf01”至“nf48”:报纸词表中有排名的词,每 500 个词一档。`},tatoeba:{name:`Tatoeba 例句`,hint:`Tatoeba:在例句中出现三次或以上的词语,例如 留守中,即使上面的列表都没有收录。`},place:{name:`地名`,hint:`JMnedict:站名和地名。在没有常用词匹配的文字上使用。`},"mahjong-yaku":{name:`麻将役种`,hint:`麻将的役种和牌名,例如 立直。在没有常用词匹配的文字上使用。`},"jr-stations":{name:`JR 站名`,hint:`Desktop Tetsu 列表中的 JR 站名,例如 阿蘇。在没有常用词匹配的文字上使用。`},yojijukugo:{name:`四字熟语`,hint:`JMdict:四字熟语,例如 阿鼻叫喚。在没有常用词匹配的文字上使用。`},"japan-post":{name:`市区町村与町域`,hint:`日本邮政邮政编码数据中的市区町村和町域名称,例如 一宮。在没有常用词匹配的文字上使用。`}},isolated:`单个汉字也加振假名`,share:`单个汉字的把握度`,shareHint:`只有一个汉字时,只有当某个读音在词典中至少占这个比例,才加振假名。请输入 0.5 到 1 之间的数。数字越大,加振假名的汉字越少。`,rubyScale:`振假名大小(汉字的几倍)`,rubyGap:`汉字上方的间距(em)`,squeeze:`最窄压缩到(正常宽度的几倍)`,maxWidth:`振假名最大宽度(em)`,reset:`恢复默认`,resetHint:`回到自定义载入的设置。你添加的词会保留。`},preview:{compiling:`正在制作预览`,weight:`预览字重`,size:`预览字号`,stats:`{glyphs} 个字形 / {ms} ms`},build:{words:`词语`,places:`地名`,ambiguous:`多读音`,lone:`单个汉字`,protected:`你的设置`,glyphs:`振假名字形`,rules:`规则`,planning:`规划中`,estimate:{woff2:`≈ {size} WOFF2`,otf:`{size} OTF`},formats:`格式`,estimating:`正在估算大小`,run:`构建字体`,save:`保存设置`},dictionary:{search:`搜索词典:今日、生`,results:`{count} 个词`,hint:`这些词有多个常用读音。固定其中一个,它就成为默认读音。`,noTag:`不是常用词`,restore:`恢复`,remove:`不加振假名`},custom:{placeholder:`日[に]本[ほん] 或 今日[きょう]`,label:`要添加的词`,add:`添加词语`,added:`已添加 / {count}`,pinned:`已固定 / {count}`,removed:`不加振假名 / {count}`,none:`无`,takeOut:`移除 {item}`}}};export{e as default};
1
+ var e={meta:{title:`Furifont:自带振假名的日文字体`,description:`自带振假名的日语字体。`},nav:{demo:`简介`,docs:`文档`,customize:`自定义`,report:`报告`,github:`GitHub 仓库`,light:`切换到浅色`,dark:`切换到深色`,language:`语言`,rubyOff:`隐藏振假名`,rubyOn:`显示振假名`},footer:{fonts:`字体采用{license},源自 Source Han Sans 和 Source Han Serif。`,data:`读音数据来自 {jmdict}、{jmnedict}、{kanjidic}(EDRDG)、{furigana}、{japanpost}(地名)和 {desktoptetsu}(JR 站名),采用 CC BY-SA 4.0 许可。`,code:`工具采用 MIT 许可。`,report:`报告错误读音`,source:`GitHub 上的源代码`,made:`作者:{author}`,supported:`由 {vercel} 和{sponsors}支持`,sponsors:`赞助者`},copied:`已复制`,shuffle:`换一个例句`,editable:`示例文字,可以编辑。`,scripts:{hiragana:`平假名`,hepburn:`罗马字`},faces:{sans:`黑体`,serif:`宋体`},hero:{title1:`振假名,`,title2:`交给字体。`,body:`Furifont 是一款把振假名直接显示在字体上的日语字体。它用连字(ligature)按词语的读音切换。只要支持自定义字体,哪里都能用。`,download:`下载字体`,build:`自己构建`},notice:`受字体限制,振假名可能不正确,请留意。`,sections:{try:`试一试`,how:`原理`,selectors:`选择读音`,download:`下载`,anyPage:`用于网站`},playground:{script:`振假名所用文字`,face:`字体样式`,size:`字号 / {size}px`,weight:`字重 / {weight}`,ruby:`振假名`,okurigana:`送假名读音`,okuriganaHint:`需要 JavaScript。受浏览器限制,字体无法自行处理送假名。`,textHint:`点击文字即可编辑。`,copy:`复制文本`},how:{build:{title:`定制构建`,body:`Furifont 以思源黑体或思源宋体为基础编译而成。构建时会读取包含数千个词的词典,并把振假名绘制成新的字形。得到的是普通的字体文件,不需要 JavaScript,也不需要插件。`},ligatures:{title:`由连字完成工作`,body:`字体中为每个词准备了连字。今日 会变成上方带有 きょう 的单个字形。替换发生在绘制文字时,所以文本本身不会改变。`},longest:{title:`长词优先`,body:`Furifont 把每一组汉字与几千个常用词的列表对照,先试最长的词。例如,会先选 日本語,再考虑 日本。今日 会当作一个词,读作 きょう。`},bare:{title:`拿不准就不加`,body:`只有一个汉字时,只有当某个读音明显最可能,才加振假名。大人気 可以读作 だいにんき,也可以读作 おとなげ,所以不加振假名。`},okurigana:{title:`可选的送假名支持`,body:`浏览器按字体的文字种类分别排版,所以字体看不到汉字后面的假名(称为送假名)。我们通过 JavaScript 标注,提供可选的支持。`}},selectors:{body:`有些词有多个常用读音。Furifont 显示最常见的那个。要选其他读音,就在第一个汉字后面紧跟一个变体选择器(看不见的字符)。VS226 是读音 1,VS227 是读音 2,依此类推。VS225 去掉振假名。`,lookUp:`查询读音`,default:`默认`,reading2:`读音 2(VS227)`,none:`无振假名(VS225)`},downloads:{all:`全部下载为 ZIP`,family:`字体家族`,ruby:`振假名`,variable:`可变`,formats:`OTF 和 TTF 常用于安装到电脑上。WOFF2 针对网站做了优化。我们推荐使用可变字体,体验最佳。在某些情况下,为了兼容性,你可能需要固定字重的版本。`,buildOwn:`你也可以自己制作字体。可以选择其他基础字体、词的数量、振假名所用文字或尺寸。`},anyPage:{body:`你可以在任何网站上使用 Furifont。有汉字的行会留出放振假名的空间。如果电脑上已安装 Furifont,就不用下载。否则字体会从本站加载。`,bookmarklet:`书签小工具`,bookmarkletHint:`把它拖到书签栏。在任何页面点击它,就会打开 Furifont;再点一次就会关闭。有些网站(如 X 和 GitHub)不允许加载其他网站的字体。在这些网站上,请在电脑上安装 Furifont。`,okurigana:`送假名读音`,okuriganaHint:`为送假名前的汉字选出正确的读音,例如「来る」「来ない」中的「来」。`,userscript:`用户脚本`,install:`安装用户脚本`,userscriptHint:`适用于 Tampermonkey 或 Violentmonkey(运行小脚本的浏览器扩展)。它会在日语页面自动打开 Furifont,在不允许加载其他网站字体的网站上也能用。你可以在它的菜单里切换到另一款 Furifont 字体,或将其关闭。`,toast:{message:`Furifont 无法在此页面加载字体。有些网站(如 X 和 GitHub)不允许加载其他网站的字体。在这些网站上,需要在电脑上安装 Furifont。`,download:`下载字体`,close:`关闭`,outdated:`Furifont 有新版本了。`,userscript:`更新用户脚本`,bookmarklet:`获取新的书签小工具`},menu:{okuriganaOn:`送假名读音:开`,okuriganaOff:`送假名读音:关`}},reference:{eyebrow:`参考`,title:`选择读音`,body:`Furifont 显示词最常见的读音。要显示其他读音,就在词的第一个汉字后面紧跟一个变体选择器(看不见的字符)。VS226 是读音 1,VS227 是读音 2,依此类推。单个汉字后面的选择器,选的是这个汉字的读音。VS225 显示不带振假名的汉字。`,search:`搜索词语或汉字:市場、今日、生`,searchLabel:`搜索读音`,hint:`点击读音即可复制带选择器的词语。`,unavailable:`参考表随现成字体一起提供,但这里没能加载({error})。请用 {command} 制作字体,或打开自定义。`,loading:`加载中`,words:`有多个读音的词 / {count}`,kanji:`汉字 / {count}`,copyWith:`复制带 {selector} 的「{text}」`,default:`默认`},report:{eyebrow:`报告`,title:`报告错误读音`,body:`如果 Furifont 显示了错误的假名注音,或该有注音的词没有注音,请告诉我们这些词和正确的读音。可以一次报告多个词。我们会根据报告修正词典。`,link:`报告错误读音。`,sections:{words:`词语 / {count}`,environment:`出现的位置`,note:`其他`},word:`词语`,expected:`正确读音`,shown:`显示的读音(可选)`,context:`句子(可选)`,remove:`删除 {word}`,add:`添加词语`,environment:`环境`,environments:{playground:`本站的试用区`,website:`其他网站`,desktop:`桌面应用`,mobile:`移动应用`},family:`字体`,familyAny:`(不限)`,url:`页面地址(可选)`,app:`应用(可选)`,appPlaceholder:{desktop:`Word、Pages、VS Code`,mobile:`备忘录、Kindle`},os:`系统(可选)`,notePlaceholder:`任何有帮助的信息,例如浏览器,或读音错误的原因。`,name:`你的名字(可选)`,nameHint:`修正读音时用于致谢。留空即可匿名。`,send:`发送报告`,sending:`发送中`,sent:`感谢你的报告。`,again:`继续报告`,failed:`报告发送失败,请稍后再试。`,limited:`你在短时间内发送了太多报告,请一小时后再试。`,privacy:`我们会保存你填写的内容、字体版本和浏览器名称,不会保存你的 IP 地址。`},docs:{install:`安装字体`,website:`在网站上使用`,readings:`选择读音`},customize:{connecting:`正在连接 furifont dev`,title:`自定义`,offline:{eyebrow:`自定义 / 离线`,title:`构建你自己的 Furifont`,body:`自定义是运行在你电脑上的工具。它读取基础字体,并保存制作好的字体。在任意文件夹中启动它,本页就会连接上并打开,提供实时预览、词典和构建按钮。制作好的字体保存在 {folder}。`,needs:`需要 Node 22.18 或更高版本(一个运行 JavaScript 工具的免费程序)。`,run:`在任意文件夹中启动自定义`},auth:{eyebrow:`自定义 / 已锁定`,title:`输入终端中显示的验证码`,body:`{command} 在你的终端(输入命令的窗口)中显示了一个六位数验证码。`,code:`验证码`,failed:`验证码无效,请查看终端后重试。`,unlock:`解锁`},sections:{preview:`预览`,build:`构建`,overview:`概览`,dictionary:`词典`,words:`你的词语`},options:{family:`字体名称`,base:`基础字体`,baseHint:`要加振假名的字体。可以是要下载的字体,如 Source Han Serif JP Bold,也可以是电脑上另一个字体文件的路径。`,script:`振假名所用文字`,hiragana:`平假名`,katakanaOn:`片假名`,hepburn:`罗马字`,skip:`跳过最常见的词`,skipHint:`在剩下的词中,最常见的不加振假名,因为读者已经认识。词语和单个汉字按常用程度排序,每 500 个一档。`,words:`接着加振假名的词数`,wordsHint:`接下来的词,按常用程度依次选取。共 {count} 个词加振假名。`,jlpt:`跳过 JLPT 词汇`,jlptHint:`JLPT(日本语能力测试)词表中到这个级别为止的词不加振假名。N5 是最简单的级别。`,none:`无`,all:`全部`,sources:`从以下来源选词`,source:{jmdict:{name:`JMdict 全部词语`,hint:`JMdict:所有词语,包括任何列表都没有排名的词语,例如 四字熟語。无排名的词语在没有其他内容匹配的文字上使用,会使字体增大约 700 KB。`},ichi:{name:`基础词`,hint:`JMdict“ichi1”和“ichi2”:“一万语”词表(基础词汇表)中的词。`},news:{name:`报纸用词`,hint:`JMdict“news1”和“news2”:报纸中出现最多的 24,000 个词。`},spec:{name:`日常词`,hint:`JMdict“spec1”和“spec2”:其他词表没有收录的常用词,如 日本。`},gai:{name:`外来语`,hint:`JMdict“gai1”和“gai2”:日语从其他语言借来的常用词。`},nf:{name:`报纸排名`,hint:`JMdict“nf01”至“nf48”:报纸词表中有排名的词,每 500 个词一档。`},tatoeba:{name:`Tatoeba 例句`,hint:`Tatoeba:在例句中出现三次或以上的词语,例如 留守中,即使上面的列表都没有收录。`},place:{name:`地名`,hint:`JMnedict:站名和地名。在没有常用词匹配的文字上使用。`},"mahjong-yaku":{name:`麻将役种`,hint:`麻将的役种和牌名,例如 立直。在没有常用词匹配的文字上使用。`},"jr-stations":{name:`JR 站名`,hint:`Desktop Tetsu 列表中的 JR 站名,例如 阿蘇。在没有常用词匹配的文字上使用。`},yojijukugo:{name:`四字熟语`,hint:`JMdict:四字熟语,例如 阿鼻叫喚。在没有常用词匹配的文字上使用。`},"japan-post":{name:`市区町村与町域`,hint:`日本邮政邮政编码数据中的市区町村和町域名称,例如 一宮。在没有常用词匹配的文字上使用。`}},isolated:`单个汉字也加振假名`,share:`单个汉字的把握度`,shareHint:`只有一个汉字时,只有当某个读音在词典中至少占这个比例,才加振假名。请输入 0.5 到 1 之间的数。数字越大,加振假名的汉字越少。`,rubyScale:`振假名大小(汉字的几倍)`,rubyGap:`汉字上方的间距(em)`,squeeze:`最窄压缩到(正常宽度的几倍)`,maxWidth:`振假名最大宽度(em)`,reset:`恢复默认`,resetHint:`回到自定义载入的设置。你添加的词会保留。`},preview:{compiling:`正在制作预览`,weight:`预览字重`,size:`预览字号`,stats:`{glyphs} 个字形 / {ms} ms`},build:{words:`词语`,places:`地名`,ambiguous:`多读音`,lone:`单个汉字`,protected:`你的设置`,glyphs:`振假名字形`,rules:`规则`,planning:`规划中`,estimate:{woff2:`≈ {size} WOFF2`,otf:`{size} OTF`},formats:`格式`,estimating:`正在估算大小`,run:`构建字体`,save:`保存设置`},overview:{hint:`从词典的每一部分等距抽取的词语,按常用程度排序。`,randomize:`重新抽取`,skip:`已跳过`,take:`已采用`,rest:`不加注音`,count:`{count} 个词`,empty:`这里没有词语。`},dictionary:{search:`搜索词典:今日、生`,results:`{count} 个词`,hint:`这些词有多个常用读音。固定其中一个,它就成为默认读音。`,noTag:`不是常用词`,restore:`恢复`,remove:`不加振假名`},custom:{placeholder:`日[に]本[ほん] 或 今日[きょう]`,label:`要添加的词`,add:`添加词语`,added:`已添加 / {count}`,pinned:`已固定 / {count}`,removed:`不加振假名 / {count}`,none:`无`,takeOut:`移除 {item}`}}};export{e as default};
@@ -1,3 +1,3 @@
1
- import{C as e,E as t,I as n,J as r,N as i,P as a,R as o,S as s,Y as c,_ as l,b as u,ct as d,dt as f,gt as p,j as m,mt as h,q as g,rt as _,st as v,t as y,ut as b}from"./CkUAspOr.js";var x={plan:{family:`Furifont Sans`,rubyScript:`hiragana`,skip:0,isolated:!0,isolatedMinShare:.8,metrics:{rubyScale:.5,rubyGap:.05,compressionFloor:.8,maxRubyWidth:1.5}},build:{base:`Source Han Sans JP VF`,formats:[`otf`,`woff2`]}},S={fonts:[{family:`Furifont Sans`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hiragana`},{family:`Furifont Sans Romaji`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hepburn`},{family:`Furifont Serif`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hiragana`},{family:`Furifont Serif Romaji`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hepburn`}],weights:[{style:`Regular`,weight:400}],variable:{style:`VF`,weights:[250,900]},options:{take:4e4}},C=`0.4.2`,w=S.fonts.map(({family:e,face:t,rubyScript:n})=>({family:e,stem:e.replaceAll(` `,``),face:t,script:n})),T=S.weights,[E,D]=S.variable.weights,O=`https://github.com/antfu/furifont`,ee=`https://furifont.antfu.me`,te=`${O}/releases/tag/v${C}`;function ne(e){return`${O}/releases/latest/download/${e}`}function re(e,t){return`fonts/${e.stem}VF.${t}?v=${C}`}function ie(e){return`${ee}/${re(e,`woff2`)}`}function ae(e){return`${ee}/${re(e,`ivs.json`)}`}var oe=`${ee}/okurigana.json`,se=typeof window<`u`,k=(e,t=!1)=>t?Symbol.for(e):Symbol(e),ce=(e,t,n)=>le({l:e,k:t,s:n}),le=e=>JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`).replace(/\u0027/g,`\\u0027`),A=e=>typeof e==`number`&&isFinite(e),ue=e=>ye(e)===`[object Date]`,de=e=>ye(e)===`[object RegExp]`,j=e=>V(e)&&Object.keys(e).length===0,M=Object.assign,fe=Object.create,N=(e=null)=>fe(e),pe,me=()=>pe||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:N(),he=Object.prototype.hasOwnProperty;function P(e,t){return he.call(e,t)}function F(e,t){let n=e[t];return P(e,t)?n:void 0}function ge(e){return P(Object.prototype,e)}var I=Array.isArray,L=e=>typeof e==`function`,R=e=>typeof e==`string`,z=e=>typeof e==`boolean`,B=e=>typeof e==`object`&&!!e,_e=e=>B(e)&&L(e.then)&&L(e.catch),ve=Object.prototype.toString,ye=e=>ve.call(e),V=e=>ye(e)===`[object Object]`,be=e=>e==null?``:I(e)||V(e)&&e.toString===ve?JSON.stringify(e,null,2):String(e);function xe(e,t=``){return e.reduce((e,n,r)=>r===0?e+n:e+t+n,``)}function Se(e,t){typeof console<`u`&&(console.warn(`[intlify] `+e),t&&console.warn(t.stack))}function Ce(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/\//g,`&#x2F;`).replace(/=/g,`&#x3D;`)}function we(e){return e.replace(/&(?![a-z0-9#]{2,6};)/gi,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}var Te=/^javascript:/i,Ee=/^(?:href|src|action|formaction)$/i,De=/&#(?:x([0-9a-f]+)|(\d+));?/gi,Oe=/&(?:Tab|NewLine);/g,ke=/&colon;?/gi,Ae=/[\u0000-\u0020\u007f-\u009f]/g,je=/(?:^|[\s"'<>/])on\w+\s*=\s*["']?[^"'>]+["']?/i,H=/(^|[\s"'<>/])on(\w+\s*=)/gi,Me=/(?:^|[\s"'<>/])srcdoc\s*=/i,Ne=/(^|[\s"'<>/])s(rcdoc\s*=)/gi,Pe=/(^|[\s"'<>/])((?:href|src|action|formaction)\s*=\s*)([^\s"'=<>`]+)/gi;function Fe(e,t,n){let r=t||n;if(!r)return e;let i=Number.parseInt(r,t?16:10);return i<=127?String.fromCharCode(i):e}function Ie(e){let t=e.replace(De,Fe).replace(Oe,``).replace(ke,`:`).replace(Ae,``);return Te.test(t)}function Le(e){let t=/url\s*\(/gi,n=``,r=0,i;for(;(i=t.exec(e))!==null;){let a=i.index,o=t.lastIndex-1,s=o+1,c=1,l=null;for(;s<e.length;s++){let t=e[s];if(l)t===l&&(l=null);else if(t===`"`||t===`'`)l=t;else if(t===`(`)c++;else if(t===`)`&&(c--,c===0))break}if(c!==0)break;let u=e.slice(o+1,s).trim(),d=u.startsWith(`"`)&&u.endsWith(`"`)||u.startsWith(`'`)&&u.endsWith(`'`)?u.slice(1,-1).trim():u;n+=e.slice(r,a),n+=Ie(d)?`url(about:blank)`:e.slice(a,s+1),r=s+1}return n+e.slice(r)}function Re(e,t){return Ee.test(e)&&Ie(t)?`about:blank`:we(e.toLowerCase()===`style`?Le(t):t)}function ze(e){return e=e.replace(/([\w:-]+)\s*=\s*"([^"]*)"/g,(e,t,n)=>`${t}="${Re(t,n)}"`),e=e.replace(/([\w:-]+)\s*=\s*'([^']*)'/g,(e,t,n)=>`${t}='${Re(t,n)}'`),je.test(e)&&(e=e.replace(H,`$1&#111;n$2`)),Me.test(e)&&(e=e.replace(Ne,`$1&#115;$2`)),e=e.replace(Pe,(e,t,n,r)=>Ie(r)?`${t}${n}about:blank`:e),e}var Be=e=>!B(e)||I(e);function Ve(e,t){if(Be(e)||Be(t)||t===Object.prototype)throw Error(`Invalid value`);let n=[{src:e,des:t}];for(;n.length;){let{src:e,des:t}=n.pop();Object.keys(e).forEach(r=>{if(r===`__proto__`)return;let i=e[r];if(I(i)){let e=[];e.length=i.length,t[r]=e,n.push({src:i,des:e})}else B(i)?((!B(t[r])||I(t[r]))&&(t[r]=N()),n.push({src:i,des:t[r]})):t[r]=i})}}function He(e,t,n){return{line:e,column:t,offset:n}}function Ue(e,t,n){let r={start:e,end:t};return n!=null&&(r.source=n),r}var U={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16};U.EXPECTED_TOKEN,U.INVALID_TOKEN_IN_PLACEHOLDER,U.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,U.UNKNOWN_ESCAPE_SEQUENCE,U.INVALID_UNICODE_ESCAPE_SEQUENCE,U.UNBALANCED_CLOSING_BRACE,U.UNTERMINATED_CLOSING_BRACE,U.EMPTY_PLACEHOLDER,U.NOT_ALLOW_NEST_PLACEHOLDER,U.INVALID_LINKED_FORMAT,U.MUST_HAVE_MESSAGES_IN_PLURAL,U.UNEXPECTED_EMPTY_LINKED_MODIFIER,U.UNEXPECTED_EMPTY_LINKED_KEY,U.UNEXPECTED_LEXICAL_ANALYSIS,U.UNHANDLED_CODEGEN_NODE_TYPE,U.UNHANDLED_MINIFIER_NODE_TYPE;function We(e,t,n={}){let{domain:r,messages:i,args:a}=n,o=SyntaxError(String(e));return o.code=e,t&&(o.location=t),o.domain=r,o}function Ge(e){throw e}var W=` `,Ke=`\r`,G=`
1
+ import{C as e,E as t,I as n,J as r,N as i,P as a,R as o,S as s,Y as c,_ as l,b as u,ct as d,dt as f,gt as p,j as m,mt as h,q as g,rt as _,st as v,t as y,ut as b}from"./CkUAspOr.js";var x={plan:{family:`Furifont Sans`,furiganaScript:`hiragana`,skip:0,isolated:!0,isolatedMinShare:.8,metrics:{rubyScale:.5,rubyGap:.05,compressionFloor:.8,maxRubyWidth:1.5}},build:{base:`Source Han Sans JP VF`,formats:[`otf`,`woff2`]}},S={fonts:[{family:`Furifont Sans`,base:`Source Han Sans JP`,face:`sans`,furiganaScript:`hiragana`},{family:`Furifont Sans Romaji`,base:`Source Han Sans JP`,face:`sans`,furiganaScript:`hepburn`},{family:`Furifont Serif`,base:`Source Han Serif JP`,face:`serif`,furiganaScript:`hiragana`},{family:`Furifont Serif Romaji`,base:`Source Han Serif JP`,face:`serif`,furiganaScript:`hepburn`}],weights:[{style:`Regular`,weight:400}],variable:{style:`VF`,weights:[250,900]},options:{take:4e4}},C=`0.5.0`,w=S.fonts.map(({family:e,face:t,furiganaScript:n})=>({family:e,stem:e.replaceAll(` `,``),face:t,script:n})),T=S.weights,[E,D]=S.variable.weights,O=`https://github.com/antfu/furifont`,ee=`https://furifont.antfu.me`,te=`${O}/releases/tag/v${C}`;function ne(e){return`${O}/releases/latest/download/${e}`}function re(e,t){return`fonts/${e.stem}VF.${t}?v=${C}`}function ie(e){return`${ee}/${re(e,`woff2`)}`}function ae(e){return`${ee}/${re(e,`ivs.json`)}`}var oe=`${ee}/okurigana.json`,se=typeof window<`u`,k=(e,t=!1)=>t?Symbol.for(e):Symbol(e),ce=(e,t,n)=>le({l:e,k:t,s:n}),le=e=>JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`).replace(/\u0027/g,`\\u0027`),A=e=>typeof e==`number`&&isFinite(e),ue=e=>ye(e)===`[object Date]`,de=e=>ye(e)===`[object RegExp]`,j=e=>V(e)&&Object.keys(e).length===0,M=Object.assign,fe=Object.create,N=(e=null)=>fe(e),pe,me=()=>pe||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:N(),he=Object.prototype.hasOwnProperty;function P(e,t){return he.call(e,t)}function F(e,t){let n=e[t];return P(e,t)?n:void 0}function ge(e){return P(Object.prototype,e)}var I=Array.isArray,L=e=>typeof e==`function`,R=e=>typeof e==`string`,z=e=>typeof e==`boolean`,B=e=>typeof e==`object`&&!!e,_e=e=>B(e)&&L(e.then)&&L(e.catch),ve=Object.prototype.toString,ye=e=>ve.call(e),V=e=>ye(e)===`[object Object]`,be=e=>e==null?``:I(e)||V(e)&&e.toString===ve?JSON.stringify(e,null,2):String(e);function xe(e,t=``){return e.reduce((e,n,r)=>r===0?e+n:e+t+n,``)}function Se(e,t){typeof console<`u`&&(console.warn(`[intlify] `+e),t&&console.warn(t.stack))}function Ce(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/\//g,`&#x2F;`).replace(/=/g,`&#x3D;`)}function we(e){return e.replace(/&(?![a-z0-9#]{2,6};)/gi,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}var Te=/^javascript:/i,Ee=/^(?:href|src|action|formaction)$/i,De=/&#(?:x([0-9a-f]+)|(\d+));?/gi,Oe=/&(?:Tab|NewLine);/g,ke=/&colon;?/gi,Ae=/[\u0000-\u0020\u007f-\u009f]/g,je=/(?:^|[\s"'<>/])on\w+\s*=\s*["']?[^"'>]+["']?/i,H=/(^|[\s"'<>/])on(\w+\s*=)/gi,Me=/(?:^|[\s"'<>/])srcdoc\s*=/i,Ne=/(^|[\s"'<>/])s(rcdoc\s*=)/gi,Pe=/(^|[\s"'<>/])((?:href|src|action|formaction)\s*=\s*)([^\s"'=<>`]+)/gi;function Fe(e,t,n){let r=t||n;if(!r)return e;let i=Number.parseInt(r,t?16:10);return i<=127?String.fromCharCode(i):e}function Ie(e){let t=e.replace(De,Fe).replace(Oe,``).replace(ke,`:`).replace(Ae,``);return Te.test(t)}function Le(e){let t=/url\s*\(/gi,n=``,r=0,i;for(;(i=t.exec(e))!==null;){let a=i.index,o=t.lastIndex-1,s=o+1,c=1,l=null;for(;s<e.length;s++){let t=e[s];if(l)t===l&&(l=null);else if(t===`"`||t===`'`)l=t;else if(t===`(`)c++;else if(t===`)`&&(c--,c===0))break}if(c!==0)break;let u=e.slice(o+1,s).trim(),d=u.startsWith(`"`)&&u.endsWith(`"`)||u.startsWith(`'`)&&u.endsWith(`'`)?u.slice(1,-1).trim():u;n+=e.slice(r,a),n+=Ie(d)?`url(about:blank)`:e.slice(a,s+1),r=s+1}return n+e.slice(r)}function Re(e,t){return Ee.test(e)&&Ie(t)?`about:blank`:we(e.toLowerCase()===`style`?Le(t):t)}function ze(e){return e=e.replace(/([\w:-]+)\s*=\s*"([^"]*)"/g,(e,t,n)=>`${t}="${Re(t,n)}"`),e=e.replace(/([\w:-]+)\s*=\s*'([^']*)'/g,(e,t,n)=>`${t}='${Re(t,n)}'`),je.test(e)&&(e=e.replace(H,`$1&#111;n$2`)),Me.test(e)&&(e=e.replace(Ne,`$1&#115;$2`)),e=e.replace(Pe,(e,t,n,r)=>Ie(r)?`${t}${n}about:blank`:e),e}var Be=e=>!B(e)||I(e);function Ve(e,t){if(Be(e)||Be(t)||t===Object.prototype)throw Error(`Invalid value`);let n=[{src:e,des:t}];for(;n.length;){let{src:e,des:t}=n.pop();Object.keys(e).forEach(r=>{if(r===`__proto__`)return;let i=e[r];if(I(i)){let e=[];e.length=i.length,t[r]=e,n.push({src:i,des:e})}else B(i)?((!B(t[r])||I(t[r]))&&(t[r]=N()),n.push({src:i,des:t[r]})):t[r]=i})}}function He(e,t,n){return{line:e,column:t,offset:n}}function Ue(e,t,n){let r={start:e,end:t};return n!=null&&(r.source=n),r}var U={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16};U.EXPECTED_TOKEN,U.INVALID_TOKEN_IN_PLACEHOLDER,U.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,U.UNKNOWN_ESCAPE_SEQUENCE,U.INVALID_UNICODE_ESCAPE_SEQUENCE,U.UNBALANCED_CLOSING_BRACE,U.UNTERMINATED_CLOSING_BRACE,U.EMPTY_PLACEHOLDER,U.NOT_ALLOW_NEST_PLACEHOLDER,U.INVALID_LINKED_FORMAT,U.MUST_HAVE_MESSAGES_IN_PLURAL,U.UNEXPECTED_EMPTY_LINKED_MODIFIER,U.UNEXPECTED_EMPTY_LINKED_KEY,U.UNEXPECTED_LEXICAL_ANALYSIS,U.UNHANDLED_CODEGEN_NODE_TYPE,U.UNHANDLED_MINIFIER_NODE_TYPE;function We(e,t,n={}){let{domain:r,messages:i,args:a}=n,o=SyntaxError(String(e));return o.code=e,t&&(o.location=t),o.domain=r,o}function Ge(e){throw e}var W=` `,Ke=`\r`,G=`
2
2
  `,qe=`\u2028`,Je=`\u2029`;function Ye(e){let t=e,n=0,r=1,i=1,a=0,o=e=>t[e]===Ke&&t[e+1]===G,s=e=>t[e]===G,c=e=>t[e]===Je,l=e=>t[e]===qe,u=e=>o(e)||s(e)||c(e)||l(e),d=()=>n,f=()=>r,p=()=>i,m=()=>a,h=e=>o(e)||c(e)||l(e)?G:t[e],g=()=>h(n),_=()=>h(n+a);function v(){return a=0,u(n)&&(r++,i=0),o(n)&&n++,n++,i++,t[n]}function y(){return o(n+a)&&a++,a++,t[n+a]}function b(){n=0,r=1,i=1,a=0}function x(e=0){a=e}function S(){let e=n+a;for(;e!==n;)v();a=0}return{index:d,line:f,column:p,peekOffset:m,charAt:h,currentChar:g,currentPeek:_,next:v,peek:y,reset:b,resetPeek:x,skipToPeek:S}}var K=void 0,Xe=`'`,Ze=`tokenizer`;function Qe(e,t={}){let n=t.location!==!1,r=Ye(e),i=()=>r.index(),a=()=>He(r.line(),r.column(),r.index()),o=a(),s=i(),c={currentType:13,offset:s,startLoc:o,endLoc:o,lastType:13,lastOffset:s,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:``},l=()=>c,{onError:u}=t;function d(e,t,r,...i){let a=l();if(t.column+=r,t.offset+=r,u){let r=We(e,n?Ue(a.startLoc,t):null,{domain:Ze,args:i});u(r)}}function f(e,t,r){e.endLoc=a(),e.currentType=t;let i={type:t};return n&&(i.loc=Ue(e.startLoc,e.endLoc)),r!=null&&(i.value=r),i}let p=e=>f(e,13);function m(e,t){return e.currentChar()===t?(e.next(),t):(d(U.EXPECTED_TOKEN,a(),0,t),``)}function h(e){let t=``;for(;e.currentPeek()===W||e.currentPeek()===G;)t+=e.currentPeek(),e.peek();return t}function g(e){let t=h(e);return e.skipToPeek(),t}function _(e){if(e===K)return!1;let t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t===95}function v(e){if(e===K)return!1;let t=e.charCodeAt(0);return t>=48&&t<=57}function y(e,t){let{currentType:n}=t;if(n!==2)return!1;h(e);let r=_(e.currentPeek());return e.resetPeek(),r}function b(e,t){let{currentType:n}=t;if(n!==2)return!1;h(e);let r=v(e.currentPeek()===`-`?e.peek():e.currentPeek());return e.resetPeek(),r}function x(e,t){let{currentType:n}=t;if(n!==2)return!1;h(e);let r=e.currentPeek()===Xe;return e.resetPeek(),r}function S(e,t){let{currentType:n}=t;if(n!==7)return!1;h(e);let r=e.currentPeek()===`.`;return e.resetPeek(),r}function C(e,t){let{currentType:n}=t;if(n!==8)return!1;h(e);let r=_(e.currentPeek());return e.resetPeek(),r}function w(e,t){let{currentType:n}=t;if(n!==7&&n!==11)return!1;h(e);let r=e.currentPeek()===`:`;return e.resetPeek(),r}function T(e,t){let{currentType:n}=t;if(n!==9)return!1;let r=()=>{let t=e.currentPeek();return t===`{`?_(e.peek()):t===`@`||t===`|`||t===`:`||t===`.`||t===W||!t?!1:t===G?(e.peek(),r()):D(e,!1)},i=r();return e.resetPeek(),i}function E(e){h(e);let t=e.currentPeek()===`|`;return e.resetPeek(),t}function D(e,t=!0){let n=(t=!1,r=``)=>{let i=e.currentPeek();return i===`{`||i===`@`||!i?t:i===`|`?r!==W&&r!==G:i===W?(e.peek(),n(!0,W)):i!==G||(e.peek(),n(!0,G))},r=n();return t&&e.resetPeek(),r}function O(e,t){let n=e.currentChar();if(n!==K)return t(n)?(e.next(),n):null}function ee(e){let t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===95||t===36}function te(e){return O(e,ee)}function ne(e){let t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||t===95||t===36||t===45}function re(e){return O(e,ne)}function ie(e){let t=e.charCodeAt(0);return t>=48&&t<=57}function ae(e){return O(e,ie)}function oe(e){let t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function se(e){return O(e,oe)}function k(e){let t=``,n=``;for(;t=ae(e);)n+=t;return n}function ce(e){let t=``;for(;;){let n=e.currentChar();if(n===`\\`){let r=e.peek();r===`{`||r===`}`||r===`@`||r===`|`||r===`\\`?(t+=n+r,e.next(),e.next()):(e.resetPeek(),t+=n,e.next())}else if(n===`{`||n===`}`||n===`@`||n===`|`||!n)break;else if(n===W||n===G){if(D(e))t+=n,e.next();else if(E(e))break;else t+=n,e.next()}else t+=n,e.next()}return t}function le(e){g(e);let t=``,n=``;for(;t=re(e);)n+=t;let r=e.currentChar();if(r&&r!==`}`&&r!==K&&r!==W&&r!==G&&r!==` `){let t=N(e);return d(U.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,n+t),n+t}return e.currentChar()===K&&d(U.UNTERMINATED_CLOSING_BRACE,a(),0),n}function A(e){g(e);let t=``;return e.currentChar()===`-`?(e.next(),t+=`-${k(e)}`):t+=k(e),e.currentChar()===K&&d(U.UNTERMINATED_CLOSING_BRACE,a(),0),t}function ue(e){return e!==Xe&&e!==G}function de(e){g(e),m(e,`'`);let t=``,n=``;for(;t=O(e,ue);)n+=t===`\\`?j(e):t;let r=e.currentChar();return r===G||r===K?(d(U.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,a(),0),r===G&&(e.next(),m(e,`'`)),n):(m(e,`'`),n)}function j(e){let t=e.currentChar();switch(t){case`\\`:case`'`:return e.next(),`\\${t}`;case`u`:return M(e,t,4);case`U`:return M(e,t,6);default:return d(U.UNKNOWN_ESCAPE_SEQUENCE,a(),0,t),``}}function M(e,t,n){m(e,t);let r=``;for(let i=0;i<n;i++){let n=se(e);if(!n){d(U.INVALID_UNICODE_ESCAPE_SEQUENCE,a(),0,`\\${t}${r}${e.currentChar()}`);break}r+=n}return`\\${t}${r}`}function fe(e){return e!==`{`&&e!==`}`&&e!==W&&e!==G}function N(e){g(e);let t=``,n=``;for(;t=O(e,fe);)n+=t;return n}function pe(e){let t=``,n=``;for(;t=te(e);)n+=t;return n}function me(e){let t=n=>{let r=e.currentChar();return r===`{`||r===`@`||r===`|`||r===`(`||r===`)`||!r||r===W?n:(n+=r,e.next(),t(n))};return t(``)}function he(e){g(e);let t=m(e,`|`);return g(e),t}function P(e,t){let n=null;switch(e.currentChar()){case`{`:return t.braceNest>=1&&d(U.NOT_ALLOW_NEST_PLACEHOLDER,a(),0),e.next(),n=f(t,2,`{`),g(e),t.braceNest++,n;case`}`:return t.braceNest>0&&t.currentType===2&&d(U.EMPTY_PLACEHOLDER,a(),0),e.next(),n=f(t,3,`}`),t.braceNest--,t.braceNest>0&&g(e),t.inLinked&&t.braceNest===0&&(t.inLinked=!1),n;case`@`:return t.braceNest>0&&d(U.UNTERMINATED_CLOSING_BRACE,a(),0),n=F(e,t)||p(t),t.braceNest=0,n;default:{let r=!0,i=!0,o=!0;if(E(e))return t.braceNest>0&&d(U.UNTERMINATED_CLOSING_BRACE,a(),0),n=f(t,1,he(e)),t.braceNest=0,t.inLinked=!1,n;if(t.braceNest>0&&(t.currentType===4||t.currentType===5||t.currentType===6))return d(U.UNTERMINATED_CLOSING_BRACE,a(),0),t.braceNest=0,ge(e,t);if(r=y(e,t))return n=f(t,4,le(e)),g(e),n;if(i=b(e,t))return n=f(t,5,A(e)),g(e),n;if(o=x(e,t))return n=f(t,6,de(e)),g(e),n;if(!r&&!i&&!o)return n=f(t,12,N(e)),d(U.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,n.value),g(e),n;break}}return n}function F(e,t){let{currentType:n}=t,r=null,i=e.currentChar();switch((n===7||n===8||n===11||n===9)&&(i===G||i===W)&&d(U.INVALID_LINKED_FORMAT,a(),0),i){case`@`:return e.next(),r=f(t,7,`@`),t.inLinked=!0,r;case`.`:return g(e),e.next(),f(t,8,`.`);case`:`:return g(e),e.next(),f(t,9,`:`);default:return E(e)?(r=f(t,1,he(e)),t.braceNest=0,t.inLinked=!1,r):S(e,t)||w(e,t)?(g(e),F(e,t)):C(e,t)?(g(e),f(t,11,pe(e))):T(e,t)?(g(e),i===`{`?P(e,t)||r:f(t,10,me(e))):(n===7&&d(U.INVALID_LINKED_FORMAT,a(),0),t.braceNest=0,t.inLinked=!1,ge(e,t))}}function ge(e,t){let n={type:13};if(t.braceNest>0)return P(e,t)||p(t);if(t.inLinked)return F(e,t)||p(t);switch(e.currentChar()){case`{`:return P(e,t)||p(t);case`}`:return d(U.UNBALANCED_CLOSING_BRACE,a(),0),e.next(),f(t,3,`}`);case`@`:return F(e,t)||p(t);default:if(E(e))return n=f(t,1,he(e)),t.braceNest=0,t.inLinked=!1,n;if(D(e))return f(t,0,ce(e))}return n}function I(){let{currentType:e,offset:t,startLoc:n,endLoc:o}=c;return c.lastType=e,c.lastOffset=t,c.lastStartLoc=n,c.lastEndLoc=o,c.offset=i(),c.startLoc=a(),r.currentChar()===K?f(c,13):ge(r,c)}return{nextToken:I,currentOffset:i,currentPosition:a,context:l}}var $e=`parser`,et=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g,tt=/\\([\\@{}|])/g;function nt(e,t){return t}function rt(e,t,n){switch(e){case`\\\\`:return`\\`;case`\\'`:return`'`;default:{let e=parseInt(t||n,16);return e<=55295||e>=57344?String.fromCodePoint(e):`�`}}}function it(e={}){let t=e.location!==!1,{onError:n}=e;function r(e,r,i,a,...o){let s=e.currentPosition();if(s.offset+=a,s.column+=a,n){let e=We(r,t?Ue(i,s):null,{domain:$e,args:o});n(e)}}function i(e,n,r){let i={type:e};return t&&(i.start=n,i.end=n,i.loc={start:r,end:r}),i}function a(e,n,r,i){t&&(e.end=n,e.loc&&(e.loc.end=r))}function o(e,t){let n=e.context(),r=i(3,n.offset,n.startLoc);return r.value=t.replace(tt,nt),a(r,e.currentOffset(),e.currentPosition()),r}function s(e,t){let{lastOffset:n,lastStartLoc:r}=e.context(),o=i(5,n,r);return o.index=parseInt(t,10),e.nextToken(),a(o,e.currentOffset(),e.currentPosition()),o}function c(e,t){let{lastOffset:n,lastStartLoc:r}=e.context(),o=i(4,n,r);return o.key=t,e.nextToken(),a(o,e.currentOffset(),e.currentPosition()),o}function l(e,t){let{lastOffset:n,lastStartLoc:r}=e.context(),o=i(9,n,r);return o.value=t.replace(et,rt),e.nextToken(),a(o,e.currentOffset(),e.currentPosition()),o}function u(e){let t=e.nextToken(),n=e.context(),{lastOffset:o,lastStartLoc:s}=n,c=i(8,o,s);return t.type===11?(t.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,n.lastStartLoc,0,q(t)),c.value=t.value||``,a(c,e.currentOffset(),e.currentPosition()),{node:c}):(r(e,U.UNEXPECTED_EMPTY_LINKED_MODIFIER,n.lastStartLoc,0),c.value=``,a(c,o,s),{nextConsumeToken:t,node:c})}function d(e,t){let n=e.context(),r=i(7,n.offset,n.startLoc);return r.value=t,a(r,e.currentOffset(),e.currentPosition()),r}function f(e){let t=e.context(),n=i(6,t.offset,t.startLoc),o=e.nextToken();if(o.type===8){let t=u(e);n.modifier=t.node,o=t.nextConsumeToken||e.nextToken()}switch(o.type!==9&&r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(o)),o=e.nextToken(),o.type===2&&(o=e.nextToken()),o.type){case 10:o.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(o)),n.key=d(e,o.value||``);break;case 4:o.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(o)),n.key=c(e,o.value||``);break;case 5:o.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(o)),n.key=s(e,o.value||``);break;case 6:o.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(o)),n.key=l(e,o.value||``);break;default:{r(e,U.UNEXPECTED_EMPTY_LINKED_KEY,t.lastStartLoc,0);let s=e.context(),c=i(7,s.offset,s.startLoc);return c.value=``,a(c,s.offset,s.startLoc),n.key=c,a(n,s.offset,s.startLoc),{nextConsumeToken:o,node:n}}}return a(n,e.currentOffset(),e.currentPosition()),{node:n}}function p(e){let t=e.context(),n=i(2,t.currentType===1?e.currentOffset():t.offset,t.currentType===1?t.endLoc:t.startLoc);n.items=[];let u=null;do{let i=u||e.nextToken();switch(u=null,i.type){case 0:i.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(i)),n.items.push(o(e,i.value||``));break;case 5:i.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(i)),n.items.push(s(e,i.value||``));break;case 4:i.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(i)),n.items.push(c(e,i.value||``));break;case 6:i.value??r(e,U.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,0,q(i)),n.items.push(l(e,i.value||``));break;case 7:{let t=f(e);n.items.push(t.node),u=t.nextConsumeToken||null;break}}}while(t.currentType!==13&&t.currentType!==1);return a(n,t.currentType===1?t.lastOffset:e.currentOffset(),t.currentType===1?t.lastEndLoc:e.currentPosition()),n}function m(e,t,n,o){let s=e.context(),c=o.items.length===0,l=i(1,t,n);l.cases=[],l.cases.push(o);do{let t=p(e);c||=t.items.length===0,l.cases.push(t)}while(s.currentType!==13);return c&&r(e,U.MUST_HAVE_MESSAGES_IN_PLURAL,n,0),a(l,e.currentOffset(),e.currentPosition()),l}function h(e){let t=e.context(),{offset:n,startLoc:r}=t,i=p(e);return t.currentType===13?i:m(e,n,r,i)}function g(n){let o=Qe(n,M({},e)),s=o.context(),c=i(0,s.offset,s.startLoc);return t&&c.loc&&(c.loc.source=n),c.body=h(o),e.onCacheKey&&(c.cacheKey=e.onCacheKey(n)),s.currentType!==13&&r(o,U.UNEXPECTED_LEXICAL_ANALYSIS,s.lastStartLoc,0,n[s.offset]||``),a(c,o.currentOffset(),o.currentPosition()),c}return{parse:g}}function q(e){if(e.type===13)return`EOF`;let t=(e.value||``).replace(/\r?\n/gu,`\\n`);return t.length>10?t.slice(0,9)+`…`:t}function at(e,t={}){let n={ast:e,helpers:new Set};return{context:()=>n,helper:e=>(n.helpers.add(e),e)}}function ot(e,t){for(let n=0;n<e.length;n++)st(e[n],t)}function st(e,t){switch(e.type){case 1:ot(e.cases,t),t.helper(`plural`);break;case 2:ot(e.items,t);break;case 6:st(e.key,t),t.helper(`linked`),t.helper(`type`);break;case 5:t.helper(`interpolate`),t.helper(`list`);break;case 4:t.helper(`interpolate`),t.helper(`named`)}}function ct(e,t={}){let n=at(e);n.helper(`normalize`),e.body&&st(e.body,n);let r=n.context();e.helpers=Array.from(r.helpers)}function lt(e){let t=e.body;return t.type===2?ut(t):t.cases.forEach(e=>ut(e)),e}function ut(e){if(e.items.length===1){let t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{let t=[];for(let n=0;n<e.items.length;n++){let r=e.items[n];if(r.type!==3&&r.type!==9||r.value==null)break;t.push(r.value)}if(t.length===e.items.length){e.static=xe(t);for(let t=0;t<e.items.length;t++){let n=e.items[t];(n.type===3||n.type===9)&&delete n.value}}}}function dt(e){switch(e.t=e.type,e.type){case 0:{let t=e;dt(t.body),t.b=t.body,delete t.body;break}case 1:{let t=e,n=t.cases;for(let e=0;e<n.length;e++)dt(n[e]);t.c=n,delete t.cases;break}case 2:{let t=e,n=t.items;for(let e=0;e<n.length;e++)dt(n[e]);t.i=n,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{let t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{let t=e;dt(t.key),t.k=t.key,delete t.key,t.modifier&&(dt(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{let t=e;t.i=t.index,delete t.index;break}case 4:{let t=e;t.k=t.key,delete t.key;break}}delete e.type}function ft(e,t){let{filename:n,breakLineCode:r,needIndent:i}=t,a=t.location!==!1,o={filename:n,code:``,column:1,line:1,offset:0,map:void 0,breakLineCode:r,needIndent:i,indentLevel:0};a&&e.loc&&(o.source=e.loc.source);let s=()=>o;function c(e,t){o.code+=e}function l(e,t=!0){let n=t?r:``;c(i?n+` `.repeat(e):n)}function u(e=!0){let t=++o.indentLevel;e&&l(t)}function d(e=!0){let t=--o.indentLevel;e&&l(t)}function f(){l(o.indentLevel)}return{context:s,push:c,indent:u,deindent:d,newline:f,helper:e=>`_${e}`,needIndent:()=>o.needIndent}}function pt(e,t){let{helper:n}=e;e.push(`${n(`linked`)}(`),_t(e,t.key),t.modifier?(e.push(`, `),_t(e,t.modifier),e.push(`, _type`)):e.push(`, undefined, _type`),e.push(`)`)}function mt(e,t){let{helper:n,needIndent:r}=e;e.push(`${n(`normalize`)}([`),e.indent(r());let i=t.items.length;for(let n=0;n<i&&(_t(e,t.items[n]),n!==i-1);n++)e.push(`, `);e.deindent(r()),e.push(`])`)}function ht(e,t){let{helper:n,needIndent:r}=e;if(t.cases.length>1){e.push(`${n(`plural`)}([`),e.indent(r());let i=t.cases.length;for(let n=0;n<i&&(_t(e,t.cases[n]),n!==i-1);n++)e.push(`, `);e.deindent(r()),e.push(`])`)}}function gt(e,t){t.body?_t(e,t.body):e.push(`null`)}function _t(e,t){let{helper:n}=e;switch(t.type){case 0:gt(e,t);break;case 1:ht(e,t);break;case 2:mt(e,t);break;case 6:pt(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n(`interpolate`)}(${n(`list`)}(${t.index}))`,t);break;case 4:e.push(`${n(`interpolate`)}(${n(`named`)}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t)}}var vt=(e,t={})=>{let n=R(t.mode)?t.mode:`normal`,r=R(t.filename)?t.filename:`message.intl`;t.sourceMap;let i=t.breakLineCode==null?n===`arrow`?`;`:`
3
3
  `:t.breakLineCode,a=t.needIndent?t.needIndent:n!==`arrow`,o=e.helpers||[],s=ft(e,{filename:r,breakLineCode:i,needIndent:a});s.push(n===`normal`?`function __msg__ (ctx) {`:`(ctx) => {`),s.indent(a),o.length>0&&(s.push(`const { ${xe(o.map(e=>`${e}: _${e}`),`, `)} } = ctx`),s.newline()),s.push(`return `),_t(s,e),s.deindent(a),s.push(`}`),delete e.helpers;let{code:c,map:l}=s.context();return{ast:e,code:c,map:l?l.toJSON():void 0}};function yt(e,t={}){let n=M({},t),r=!!n.jit,i=!!n.minify,a=n.optimize==null||n.optimize,o=it(n).parse(e);return r?(a&&lt(o),i&&dt(o),{ast:o,code:``}):(ct(o,n),vt(o,n))}function bt(){typeof __INTLIFY_DROP_MESSAGE_COMPILER__!=`boolean`&&(me().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function xt(e){return B(e)&&jt(e)===0&&(P(e,`b`)||P(e,`body`))}var St=[`b`,`body`];function Ct(e){return Rt(e,St)}var wt=[`c`,`cases`];function Tt(e){return Rt(e,wt,[])}var Et=[`s`,`static`];function Dt(e){return Rt(e,Et)}var Ot=[`i`,`items`];function kt(e){return Rt(e,Ot,[])}var At=[`t`,`type`];function jt(e){return Rt(e,At)}var Mt=[`v`,`value`];function Nt(e,t){let n=Rt(e,Mt);if(n!=null)return n;throw Bt(t)}var Pt=[`m`,`modifier`];function Ft(e){return Rt(e,Pt)}var It=[`k`,`key`];function Lt(e){let t=Rt(e,It);if(t)return t;throw Bt(6)}function Rt(e,t,n){for(let n=0;n<t.length;n++){let r=t[n];if(P(e,r)&&e[r]!=null)return e[r]}return n}var zt=[...St,...wt,...Et,...Ot,...It,...Pt,...Mt,...At];function Bt(e){return Error(`unhandled node type: ${e}`)}function Vt(e){return t=>Ht(t,e)}function Ht(e,t){let n=Ct(t);if(n==null)throw Bt(0);if(jt(n)===1){let t=Tt(n);return e.plural(t.reduce((t,n)=>[...t,Ut(e,n)],[]))}return Ut(e,n)}function Ut(e,t){let n=Dt(t);if(n!=null)return e.type===`text`?n:e.normalize([n]);{let n=kt(t).reduce((t,n)=>[...t,Wt(e,n)],[]);return e.normalize(n)}}function Wt(e,t){let n=jt(t);switch(n){case 3:return Nt(t,n);case 9:return Nt(t,n);case 4:{let r=t;if(P(r,`k`)&&r.k)return e.interpolate(e.named(r.k));if(P(r,`key`)&&r.key)return e.interpolate(e.named(r.key));throw Bt(n)}case 5:{let r=t;if(P(r,`i`)&&A(r.i))return e.interpolate(e.list(r.i));if(P(r,`index`)&&A(r.index))return e.interpolate(e.list(r.index));throw Bt(n)}case 6:{let n=t,r=Ft(n),i=Lt(n);return e.linked(Wt(e,i),r?Wt(e,r):void 0,e.type)}case 7:return Nt(t,n);case 8:return Nt(t,n);default:throw Error(`unhandled node on format message part: ${n}`)}}var Gt=e=>e,Kt=N();function qt(e,t={}){let n=!1,r=t.onError||Ge;return t.onError=e=>{n=!0,r(e)},{...yt(e,t),detectError:n}}function Jt(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&R(e)){z(t.warnHtmlMessage)&&t.warnHtmlMessage;let n=(t.onCacheKey||Gt)(e),r=Kt[n];if(r)return r;let{ast:i,detectError:a}=qt(e,{...t,location:!1,jit:!0}),o=Vt(i);return a?o:Kt[n]=o}{let t=e.cacheKey;return t?Kt[t]||(Kt[t]=Vt(e)):Vt(e)}}var J={INVALID_ARGUMENT:17,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_NON_STRING_MESSAGE:20,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23};function Y(e){return We(e,null,void 0)}J.INVALID_ARGUMENT,J.INVALID_DATE_ARGUMENT,J.INVALID_ISO_DATE_ARGUMENT,J.NOT_SUPPORT_NON_STRING_MESSAGE,J.NOT_SUPPORT_LOCALE_PROMISE_VALUE,J.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION,J.NOT_SUPPORT_LOCALE_TYPE;function Yt(e,t){return t.locale==null?Zt(e.locale):Zt(t.locale)}var Xt;function Zt(e){if(R(e))return e;if(L(e)){if(e.resolvedOnce&&Xt!=null)return Xt;if(e.constructor.name===`Function`){let t=e();if(_e(t))throw Y(J.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Xt=t}throw Y(J.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}throw Y(J.NOT_SUPPORT_LOCALE_TYPE)}function Qt(e,t,n){return[...new Set([n,...I(t)?t:B(t)?Object.keys(t).filter(e=>e!=="default"):R(t)?[t]:[n]])]}function $t(e,t,n){let r=R(n)?n:mn,i=e,a;B(t)?(i.__localeChainObjectCache||=new WeakMap,a=i.__localeChainObjectCache.get(t),a||(a=new Map,i.__localeChainObjectCache.set(t,a))):(i.__localeChainCache||=new Map,a=i.__localeChainCache.get(t),a||(a=new Map,i.__localeChainCache.set(t,a)));let o=a.get(r);if(o)return o;let s=[],c=[n];for(;I(c);)c=en(s,c,t);let l=I(t)||!V(t)?t:t.default?t.default:null;return c=R(l)?[l]:l,I(c)&&en(s,c,!1),a.set(r,s),s}function en(e,t,n){let r=!0;for(let i=0;i<t.length&&z(r);i++){let a=t[i];R(a)&&(r=tn(e,t[i],n))}return r}function tn(e,t,n){let r,i=t.split(`-`);do r=nn(e,i.join(`-`),n),i.splice(-1,1);while(i.length&&r===!0);return r}function nn(e,t,n){let r=!1;if(!e.includes(t)&&(r=!0,t)){r=t[t.length-1]!==`!`;let i=t.replace(/!/g,``);e.push(i),(I(n)||V(n))&&n[i]&&(r=n[i])}return r}var X=[];X[0]={w:[0],i:[3,0],"[":[4],o:[7]},X[1]={w:[1],".":[2],"[":[4],o:[7]},X[2]={w:[2],i:[3,0],0:[3,0]},X[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},X[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},X[5]={"'":[4,0],o:8,l:[5,0]},X[6]={'"':[4,0],o:8,l:[6,0]};var rn=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function an(e){return rn.test(e)}function on(e){let t=e.charCodeAt(0);return t===e.charCodeAt(e.length-1)&&(t===34||t===39)?e.slice(1,-1):e}function sn(e){if(e==null)return`o`;switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return`i`;case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return`w`}return`i`}function cn(e){let t=e.trim();return e.charAt(0)===`0`&&isNaN(parseInt(e))?!1:an(t)?on(t):`*`+t}function ln(e){let t=[],n=-1,r=0,i=0,a,o,s,c,l,u,d,f=[];f[0]=()=>{o===void 0?o=s:o+=s},f[1]=()=>{o!==void 0&&(t.push(o),o=void 0)},f[2]=()=>{f[0](),i++},f[3]=()=>{if(i>0)i--,r=4,f[0]();else{if(i=0,o===void 0||(o=cn(o),o===!1))return!1;f[1]()}};function p(){let t=e[n+1];if(r===5&&t===`'`||r===6&&t===`"`)return n++,s=`\\`+t,f[0](),!0}for(;r!==null;)if(n++,a=e[n],!(a===`\\`&&p())){if(c=sn(a),d=X[r],l=d[c]||d.l||8,l===8||(r=l[0],l[1]!==void 0&&(u=f[l[1]],u&&(s=a,u()===!1))))return;if(r===7)return t}}var un=new Map;function dn(e,t){return B(e)?e[t]:null}function fn(e,t){if(!B(e))return null;let n=un.get(t);if(n||(n=ln(t),n&&un.set(t,n)),!n)return null;let r=n.length,i=e,a=0;for(;a<r;){let e=n[a];if(zt.includes(e)&&xt(i)||!B(i)||!P(i,e))return null;let t=i[e];if(t===void 0||L(i))return null;i=t,a++}return i}var Z={NOT_FOUND_KEY:1,FALLBACK_TO_TRANSLATE:2,CANNOT_FORMAT_NUMBER:3,FALLBACK_TO_NUMBER_FORMAT:4,CANNOT_FORMAT_DATE:5,FALLBACK_TO_DATE_FORMAT:6,EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:7,INVALID_NUMBER_ARGUMENT:8,INVALID_DATE_ARGUMENT:9};Z.NOT_FOUND_KEY,Z.FALLBACK_TO_TRANSLATE,Z.CANNOT_FORMAT_NUMBER,Z.FALLBACK_TO_NUMBER_FORMAT,Z.CANNOT_FORMAT_DATE,Z.FALLBACK_TO_DATE_FORMAT,Z.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER,Z.INVALID_NUMBER_ARGUMENT,Z.INVALID_DATE_ARGUMENT;var pn=`11.4.14`,mn=`en-US`,hn=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function gn(){return{upper:(e,t)=>t===`text`&&R(e)?e.toUpperCase():t===`vnode`&&B(e)&&`__v_isVNode`in e?e.children.toUpperCase():e,lower:(e,t)=>t===`text`&&R(e)?e.toLowerCase():t===`vnode`&&B(e)&&`__v_isVNode`in e?e.children.toLowerCase():e,capitalize:(e,t)=>t===`text`&&R(e)?hn(e):t===`vnode`&&B(e)&&`__v_isVNode`in e?hn(e.children):e}}var _n;function vn(e){_n=e}var yn;function bn(e){yn=e}var xn;function Sn(e){xn=e}var Cn=null,wn=e=>{Cn=e},Tn=()=>Cn,En=0;function Dn(e={}){let t=L(e.onWarn)?e.onWarn:Se,n=R(e.version)?e.version:pn,r=R(e.locale)||L(e.locale)?e.locale:mn,i=L(r)?mn:r,a=I(e.fallbackLocale)||V(e.fallbackLocale)||R(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:i,o=V(e.messages)?e.messages:On(i),s=V(e.datetimeFormats)?e.datetimeFormats:On(i),c=V(e.numberFormats)?e.numberFormats:On(i),l=M(N(),e.modifiers,gn()),u=e.pluralRules||N(),d=L(e.missing)?e.missing:null,f=z(e.missingWarn)||de(e.missingWarn)?e.missingWarn:!0,p=z(e.fallbackWarn)||de(e.fallbackWarn)?e.fallbackWarn:!0,m=!!e.fallbackFormat,h=!!e.unresolving,g=L(e.postTranslation)?e.postTranslation:null,_=V(e.processor)?e.processor:null,v=!z(e.warnHtmlMessage)||e.warnHtmlMessage,y=!!e.escapeParameter,b=L(e.messageCompiler)?e.messageCompiler:_n,x=L(e.messageResolver)?e.messageResolver:yn||dn,S=L(e.localeFallbacker)?e.localeFallbacker:xn||Qt,C=B(e.fallbackContext)?e.fallbackContext:void 0,w=e,T=B(w.__datetimeFormatters)?w.__datetimeFormatters:new Map,E=B(w.__numberFormatters)?w.__numberFormatters:new Map,D=B(w.__meta)?w.__meta:{};En++;let O={version:n,cid:En,locale:r,fallbackLocale:a,messages:o,modifiers:l,pluralRules:u,missing:d,missingWarn:f,fallbackWarn:p,fallbackFormat:m,unresolving:h,postTranslation:g,processor:_,warnHtmlMessage:v,escapeParameter:y,messageCompiler:b,messageResolver:x,localeFallbacker:S,fallbackContext:C,onWarn:t,__meta:D};return O.datetimeFormats=s,O.numberFormats=c,O.__datetimeFormatters=T,O.__numberFormatters=E,O}var On=e=>({[e]:N()});function kn(e,t,n,r,i){let{missing:a,onWarn:o}=e;if(a!==null){let r=a(e,n,t,i);return R(r)?r:t}return t}function An(e,t){let n=e;B(t)?n.__localeChainObjectCache?.delete(t):n.__localeChainCache?.delete(t)}function jn(e,t,n){An(e,n),e.fallbackContext&&An(e.fallbackContext,n),e.localeFallbacker(e,n,t)}function Mn(e,t){return e!==t&&e.split(`-`)[0]===t.split(`-`)[0]}function Nn(e,t){let n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;r<t.length;r++)if(Mn(e,t[r]))return!0;return!1}function Pn(e,t,n,r,i,a,o){let{fallbackLocale:s,localeFallbacker:c,onWarn:l}=e,u=c(e,s,n);for(let n=0;n<u.length;n++){let a=u[n],s=(r[a]||{})[t];if(V(s)&&R(a))return a;kn(e,t,a,i,o)}return null}function Fn(e,t,n){let r=`${e}__${t}`;return V(n)&&!j(n)&&(r=`${r}__${JSON.stringify(n)}`),r}function In(e,t,n){for(let r in n){let n=`${t}__${r}`;for(let t of e.keys())(t===n||t.startsWith(`${n}__`))&&e.delete(t)}}function Ln(e,t,n,r){let[,i,a,o]=e,s=n;return R(i)?t.key=i:V(i)&&Object.keys(i).forEach(e=>{r.includes(e)?s[e]=i[e]:t[e]=i[e]}),R(a)?t.locale=a:V(a)&&(s=a),V(o)&&(s=o),s}var Rn=typeof Intl<`u`;Rn&&Intl.DateTimeFormat,Rn&&Intl.NumberFormat;function zn(e,...t){let{datetimeFormats:n,unresolving:r,onWarn:i}=e,{__datetimeFormatters:a}=e;if(!R(t[0])&&!ue(t[0])&&!A(t[0]))return``;let[o,s,c,l]=Vn(...t),u=z(c.missingWarn)?c.missingWarn:e.missingWarn,d=z(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=!!c.part,p=Yt(e,c);if(!R(o)||o===``){let e=new Intl.DateTimeFormat(p.replace(/!/g,``),l);return f?e.formatToParts(s):e.format(s)}let m=Pn(e,o,p,n,u,d,`datetime format`);if(!R(m))return r?-1:o;let h=n[m][o],g=Fn(m,o,l),_=a.get(g);return _||(_=new Intl.DateTimeFormat(m,M({},h,l)),a.set(g,_)),f?_.formatToParts(s):_.format(s)}var Bn=[`localeMatcher`,`weekday`,`era`,`year`,`month`,`day`,`hour`,`minute`,`second`,`timeZoneName`,`formatMatcher`,`hour12`,`timeZone`,`dateStyle`,`timeStyle`,`calendar`,`dayPeriod`,`numberingSystem`,`hourCycle`,`fractionalSecondDigits`];function Vn(...e){let[t]=e,n=N(),r=N(),i;if(R(t)){let e=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!e)throw Y(J.INVALID_ISO_DATE_ARGUMENT);let n=e[3]?e[3].trim().startsWith(`T`)?`${e[1].trim()}${e[3].trim()}`:`${e[1].trim()}T${e[3].trim()}`:e[1].trim();i=new Date(n);try{i.toISOString()}catch{throw Y(J.INVALID_ISO_DATE_ARGUMENT)}}else if(ue(t)){if(isNaN(t.getTime()))throw Y(J.INVALID_DATE_ARGUMENT);i=t}else if(A(t))i=t;else throw Y(J.INVALID_ARGUMENT);let a=Ln(e,n,r,Bn);return[n.key||``,i,n,a]}function Hn(e,t,n){In(e.__datetimeFormatters,t,n)}function Un(e,...t){let{numberFormats:n,unresolving:r,onWarn:i}=e,{__numberFormatters:a}=e;if(!A(t[0]))return``;let[o,s,c,l]=Gn(...t),u=z(c.missingWarn)?c.missingWarn:e.missingWarn,d=z(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=!!c.part,p=Yt(e,c);if(!R(o)||o===``){let e=new Intl.NumberFormat(p.replace(/!/g,``),l);return f?e.formatToParts(s):e.format(s)}let m=Pn(e,o,p,n,u,d,`number format`);if(!R(m))return r?-1:o;let h=n[m][o],g=Fn(m,o,l),_=a.get(g);return _||(_=new Intl.NumberFormat(m,M({},h,l)),a.set(g,_)),f?_.formatToParts(s):_.format(s)}var Wn=[`localeMatcher`,`style`,`currency`,`currencyDisplay`,`currencySign`,`useGrouping`,`minimumIntegerDigits`,`minimumFractionDigits`,`maximumFractionDigits`,`minimumSignificantDigits`,`maximumSignificantDigits`,`compactDisplay`,`notation`,`signDisplay`,`unit`,`unitDisplay`,`roundingMode`,`roundingPriority`,`roundingIncrement`,`trailingZeroDisplay`];function Gn(...e){let[t]=e,n=N(),r=N();if(!A(t))throw Y(J.INVALID_ARGUMENT);let i=t,a=Ln(e,n,r,Wn);return[n.key||``,i,n,a]}function Kn(e,t,n){In(e.__numberFormatters,t,n)}var qn=e=>e,Jn=e=>``,Yn=`text`,Xn=e=>e.length===0?``:xe(e),Zn=be;function Qn(e,t){return e=Math.abs(e),t===2?e===1?0:1:Math.min(e,2)}function $n(e){let t=A(e.pluralIndex)?e.pluralIndex:-1;return A(e.named?.count)?e.named.count:A(e.named?.n)?e.named.n:t}function er(e={}){let t=e.locale,n=$n(e),r=R(t)&&L(e.pluralRules?.[t])?e.pluralRules[t]:Qn,i=r===Qn?void 0:Qn,a=e=>e[r(n,e.length,i)],o=e.list||[],s=e=>o[e],c=e.named||N();A(e.pluralIndex)&&(c.count||=e.pluralIndex,c.n||=e.pluralIndex);let l=e=>c[e];function u(t,n){return(L(e.messages)?e.messages(t,!!n):B(e.messages)?e.messages[t]:!1)||(e.parent?e.parent.message(t):Jn)}let d=t=>e.modifiers?e.modifiers[t]:qn,f=L(e.processor?.normalize)?e.processor.normalize:Xn,p=L(e.processor?.interpolate)?e.processor.interpolate:Zn,m={list:s,named:l,plural:a,linked:(e,...t)=>{let[n,r]=t,i=`text`,a=``;t.length===1?B(n)?(a=n.modifier||a,i=n.type||i):R(n)&&(a=n||a):t.length===2&&(R(n)&&(a=n||a),R(r)&&(i=r||i));let o=u(e,!0)(m),s=o===``||o===void 0?e:o,c=i===`vnode`&&I(s)&&a?s[0]:s;return a?d(a)(c,i):c},message:u,type:R(e.processor?.type)?e.processor.type:Yn,interpolate:p,normalize:f,values:M(N(),o,c)};return m}var tr=()=>``,nr=e=>L(e),rr=e=>R(e)||xt(e)||nr(e);function ir(e,...t){let{fallbackFormat:n,postTranslation:r,unresolving:i,messageCompiler:a,fallbackLocale:o,messages:s}=e,[c,l]=lr(...t),u=z(l.missingWarn)?l.missingWarn:e.missingWarn,d=z(l.fallbackWarn)?l.fallbackWarn:e.fallbackWarn,f=z(l.escapeParameter)?l.escapeParameter:e.escapeParameter,p=!!l.resolvedMessage,m=R(l.default)||z(l.default)?z(l.default)?a?c:()=>c:l.default:n?a?c:()=>c:null,h=n||m!=null&&(R(m)||L(m)),g=Yt(e,l);f&&ar(l);let[_,v,y]=p?[c,g,s[g]||N()]:or(e,c,g,o,d,u),b=_,x=c;if(!p&&!rr(b)&&h&&(b=m,x=b),!p&&(!rr(b)||!R(v)))return i?-1:c;let S=!1,C=nr(b)?b:sr(e,c,v,b,x,()=>{S=!0});if(S)return b;let w=cr(e,C,er(dr(e,v,y,l))),T=r?r(w,c):w;return f&&R(T)&&(T=ze(T)),T}function ar(e){if(I(e.list)&&(e.list=e.list.map(e=>R(e)?Ce(e):e)),B(e.named)){let t=e.named,n=N();for(let e of Object.keys(t)){let r=t[e];n[e]=R(r)?Ce(r):r}e.named=n}}function or(e,t,n,r,i,a){let{messages:o,onWarn:s,messageResolver:c,localeFallbacker:l}=e,u=l(e,r,n),d=N(),f,p=null;for(let n=0;n<u.length&&(f=u[n],d=o[f]||N(),(p=c(d,t))===null&&(p=d[t]),!rr(p));n++)if(!Nn(f,u)){let n=kn(e,t,f,a,`translate`);n!==t&&(p=n)}return[p,f,d]}function sr(e,t,n,r,i,a){let{messageCompiler:o,warnHtmlMessage:s}=e;if(nr(r)){let e=r;return e.locale=e.locale||n,e.key=e.key||t,e}if(o==null){let e=(()=>r);return e.locale=n,e.key=t,e}let c=o(r,ur(e,n,i,r,s,a));return c.locale=n,c.key=t,c.source=r,c}function cr(e,t,n){return t(n)}function lr(...e){let[t,n,r]=e,i=N();if(!R(t)&&!A(t)&&!nr(t)&&!xt(t))throw Y(J.INVALID_ARGUMENT);let a=A(t)?String(t):(nr(t),t);return A(n)?i.plural=n:R(n)?i.default=n:V(n)&&!j(n)?i.named=n:I(n)&&(i.list=n),A(r)?i.plural=r:R(r)?i.default=r:V(r)&&M(i,r),[a,i]}function ur(e,t,n,r,i,a){return{locale:t,key:n,warnHtmlMessage:i,onError:e=>{throw a&&a(e),e},onCacheKey:e=>ce(t,n,e)}}function dr(e,t,n,r){let{modifiers:i,pluralRules:a,messageResolver:o,fallbackLocale:s,fallbackWarn:c,missingWarn:l,fallbackContext:u}=e,d={locale:t,modifiers:i,pluralRules:a,messages:(r,i)=>{let a=o(n,r);if(a==null&&(u||i)){let[n,,i]=or(u||e,r,t,s,c,l);a=n??o(i,r)}if(R(a)||xt(a)){let n=!1,i=sr(e,r,t,a,r,()=>{n=!0});return n?tr:i}return nr(a)?a:tr}};return e.processor&&(d.processor=e.processor),r.list&&(d.list=r.list),r.named&&(d.named=r.named),A(r.plural)&&(d.pluralIndex=r.plural),d}bt();var fr=`11.4.14`;function pr(){typeof __INTLIFY_DROP_MESSAGE_COMPILER__!=`boolean`&&(me().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}var Q={UNEXPECTED_RETURN_TYPE:24,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:30,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32,NOT_COMPATIBLE_LEGACY_VUE_I18N:33,NOT_AVAILABLE_COMPOSITION_IN_LEGACY:34};function $(e,...t){return We(e,null,void 0)}Q.UNEXPECTED_RETURN_TYPE,Q.INVALID_ARGUMENT,Q.MUST_BE_CALL_SETUP_TOP,Q.NOT_INSTALLED,Q.UNEXPECTED_ERROR,Q.REQUIRED_VALUE,Q.INVALID_VALUE,Q.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN,Q.NOT_INSTALLED_WITH_PROVIDE,Q.NOT_COMPATIBLE_LEGACY_VUE_I18N,Q.NOT_AVAILABLE_COMPOSITION_IN_LEGACY;var mr=k(`__translateVNode`),hr=k(`__datetimeParts`),gr=k(`__numberParts`),_r=k(`__setPluralRules`);k(`__intlifyMeta`);var vr=k(`__injectWithOption`),yr=k(`__dispose`),br={FALLBACK_TO_ROOT:10,NOT_FOUND_PARENT_SCOPE:11,IGNORE_OBJ_FLATTEN:12,DEPRECATE_LEGACY_MODE:13,DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE:14,DUPLICATE_USE_I18N_CALLING:15,IGNORE_UNSAFE_LOCALE:16};br.FALLBACK_TO_ROOT,br.NOT_FOUND_PARENT_SCOPE,br.IGNORE_OBJ_FLATTEN,br.DEPRECATE_LEGACY_MODE,br.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE,br.DUPLICATE_USE_I18N_CALLING,br.IGNORE_UNSAFE_LOCALE;var xr=null;{let e=me().__VUE_INSTANCE_SETTERS__;I(e)&&e.push(e=>{xr=e})}function Sr(e){return!!ge(e)}function Cr(e){if(!B(e)||xt(e))return e;for(let t in e)if(P(e,t)){if(!t.includes(`.`))B(e[t])&&Cr(e[t]);else{let n=t.split(`.`),r=n.length-1,i=e,a=!1;for(let e=0;e<r;e++){if(n[e]===`__proto__`)throw Error(`unsafe key: ${n[e]}`);if(n[e]in i||(i[n[e]]=N()),!B(i[n[e]])){a=!0;break}i=i[n[e]]}if(a||(xt(i)?zt.includes(n[r])||delete e[t]:(i[n[r]]=e[t],delete e[t])),!xt(i)){let e=i[n[r]];B(e)&&Cr(e)}}}return e}function wr(e,t){let{messages:n,__i18n:r,messageResolver:i,flatJson:a}=t,o=V(n)?n:I(r)?N():{[e]:N()};if(I(r)&&r.forEach(e=>{if(`locale`in e&&`resource`in e){let{locale:t,resource:n}=e;if(t){if(Sr(t))return;o[t]=F(o,t)||N(),Ve(n,o[t])}else Ve(n,o)}else R(e)&&Ve(JSON.parse(e),o)}),i==null&&a)for(let e in o)P(o,e)&&Cr(o[e]);return o}function Tr(e){return e.type}function Er(e,t,n){let r=B(t.messages)?t.messages:N();`__i18nGlobal`in n&&(r=wr(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));let i=Object.keys(r);if(i.length&&i.forEach(t=>{e.mergeLocaleMessage(t,r[t])}),B(t.datetimeFormats)){let n=Object.keys(t.datetimeFormats);n.length&&n.forEach(n=>{e.mergeDateTimeFormat(n,t.datetimeFormats[n])})}if(B(t.numberFormats)){let n=Object.keys(t.numberFormats);n.length&&n.forEach(n=>{e.mergeNumberFormat(n,t.numberFormats[n])})}}function Dr(e){return m(u,null,e,0)}function Or(){return xr??a()}var kr=()=>[],Ar=()=>!1,jr=0;function Mr(e){return((t,n,r,i)=>e(n,r,Or()||void 0,i))}function Nr(e={}){let{__root:t,__injectWithOption:n}=e,r=t===void 0,i=e.flatJson,a=se?h:p,o=!z(e.inheritLocale)||e.inheritLocale,c=a(t&&o?t.locale.value:R(e.locale)?e.locale:mn),l=a(t&&o?t.fallbackLocale.value:R(e.fallbackLocale)||I(e.fallbackLocale)||V(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),u=a(wr(c.value,e)),d=a(V(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),f=a(V(e.numberFormats)?e.numberFormats:{[c.value]:{}}),m=t?t.missingWarn:z(e.missingWarn)||de(e.missingWarn)?e.missingWarn:!0,g=t?t.fallbackWarn:z(e.fallbackWarn)||de(e.fallbackWarn)?e.fallbackWarn:!0,v=t?t.fallbackRoot:!z(e.fallbackRoot)||e.fallbackRoot,y=!!e.fallbackFormat,b=L(e.missing)?e.missing:null,x=L(e.missing)?Mr(e.missing):null,S=L(e.postTranslation)?e.postTranslation:null,C=t?t.warnHtmlMessage:!z(e.warnHtmlMessage)||e.warnHtmlMessage,w=!!e.escapeParameter,T=t?t.modifiers:V(e.modifiers)?e.modifiers:{},E=e.pluralRules||t&&t.pluralRules,D;D=(()=>{r&&wn(null);let t={version:fr,locale:c.value,fallbackLocale:l.value,messages:u.value,modifiers:T,pluralRules:E,missing:x===null?void 0:x,missingWarn:m,fallbackWarn:g,fallbackFormat:y,unresolving:!0,postTranslation:S===null?void 0:S,warnHtmlMessage:C,escapeParameter:w,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:`vue`}};t.datetimeFormats=d.value,t.numberFormats=f.value;let n=Dn(t);return r&&wn(n),n})(),jn(D,c.value,l.value);function O(){return[c.value,l.value,u.value,d.value,f.value]}let ee=s({get:()=>c.value,set:e=>{D.locale=e,c.value=e}});function te(e){r||(D.fallbackContext=Tn());try{return e()}finally{r||(D.fallbackContext=void 0)}}function ne(e){te(()=>jn(D,c.value,e))}let re=s({get:()=>l.value,set:e=>{l.value=e,D.fallbackLocale=l.value,ne(l.value)}}),ie=s(()=>u.value),ae=s(()=>d.value),oe=s(()=>f.value);function k(){return L(S)?S:null}function ce(e){S=e,D.postTranslation=e}function le(){return b}function ue(e){e!==null&&(x=Mr(e)),b=e,D.missing=x}let j=(e,n,r,i,a,o)=>{O();let s;try{s=te(()=>e(D))}finally{}if(r!==`translate exists`&&A(s)&&s===-1||r===`translate exists`&&!s){let[e,r]=n();return t&&v?i(t):a(e)}if(o(s))return s;throw $(Q.UNEXPECTED_RETURN_TYPE)};function fe(...e){return j(t=>Reflect.apply(ir,null,[t,...e]),()=>lr(...e),`translate`,t=>Reflect.apply(t.t,t,[...e]),e=>e,e=>R(e))}function N(...e){let[t,n,r]=e;if(r&&!B(r))throw $(Q.INVALID_ARGUMENT);return fe(t,n,M({resolvedMessage:!0},r||{}))}function pe(...e){return j(t=>Reflect.apply(zn,null,[t,...e]),()=>Vn(...e),`datetime format`,t=>Reflect.apply(t.d,t,[...e]),()=>``,e=>R(e)||I(e))}function me(...e){return j(t=>Reflect.apply(Un,null,[t,...e]),()=>Gn(...e),`number format`,t=>Reflect.apply(t.n,t,[...e]),()=>``,e=>R(e)||I(e))}function he(e){return e.map(e=>R(e)||A(e)||z(e)?Dr(String(e)):e)}let P={normalize:he,interpolate:e=>e,type:`vnode`};function ge(...e){return j(t=>{let n,r=t;try{r.processor=P,n=Reflect.apply(ir,null,[r,...e])}finally{r.processor=null}return n},()=>lr(...e),`translate`,t=>t[mr](...e),e=>[Dr(e)],e=>I(e))}function _e(...e){return j(t=>Reflect.apply(Un,null,[t,...e]),()=>Gn(...e),`number format`,t=>t[gr](...e),kr,e=>R(e)||I(e))}function ve(...e){return j(t=>Reflect.apply(zn,null,[t,...e]),()=>Vn(...e),`datetime format`,t=>t[hr](...e),kr,e=>R(e)||I(e))}function ye(e){E=e,D.pluralRules=E}function be(e,t){return j(()=>{if(!e)return!1;let n=R(t)?t:c.value,r=R(t)?[n]:$t(D,l.value,n);for(let t=0;t<r.length;t++){let n=Ce(r[t]),i=D.messageResolver(n,e);if(i===null&&(i=n[e]),rr(i))return!0}return!1},()=>[e],`translate exists`,n=>Reflect.apply(n.te,n,[e,t]),Ar,e=>z(e))}function xe(e){let t=null,n=$t(D,l.value,c.value);for(let r=0;r<n.length;r++){let i=F(u.value,n[r])||{},a=D.messageResolver(i,e);if(a!=null){t=a;break}}return t}function Se(e){return xe(e)??(t&&t.tm(e)||{})}function Ce(e){return F(u.value,e)||{}}function we(e,t){Sr(e)||(i&&Cr(t),u.value[e]=t,D.messages=u.value)}function Te(e,t){Sr(e)||(u.value[e]=F(u.value,e)||{},i&&Cr(t),Ve(t,u.value[e]),D.messages=u.value)}function Ee(e){return F(d.value,e)||{}}function De(e,t){Sr(e)||(d.value[e]=t,D.datetimeFormats=d.value,Hn(D,e,t))}function Oe(e,t){Sr(e)||(d.value[e]=M(F(d.value,e)||{},t),D.datetimeFormats=d.value,Hn(D,e,t))}function ke(e){return F(f.value,e)||{}}function Ae(e,t){Sr(e)||(f.value[e]=t,D.numberFormats=f.value,Kn(D,e,t))}function je(e,t){Sr(e)||(f.value[e]=M(F(f.value,e)||{},t),D.numberFormats=f.value,Kn(D,e,t))}jr++,_(l,()=>ne(l.value),{deep:!0,flush:`sync`}),t&&se&&(_(t.locale,e=>{o&&(c.value=e,D.locale=e,jn(D,c.value,l.value))}),_(t.fallbackLocale,e=>{o&&(l.value=e,D.fallbackLocale=l.value,jn(D,c.value,l.value))}));let H={id:jr,locale:ee,fallbackLocale:re,get inheritLocale(){return o},set inheritLocale(e){o=e,e&&t&&(ee.value=t.locale.value,re.value=t.fallbackLocale.value)},get availableLocales(){return Object.keys(u.value).sort()},messages:ie,get modifiers(){return T},get pluralRules(){return E||{}},get isGlobal(){return r},get missingWarn(){return m},set missingWarn(e){m=e,D.missingWarn=m},get fallbackWarn(){return g},set fallbackWarn(e){g=e,D.fallbackWarn=g},get fallbackRoot(){return v},set fallbackRoot(e){v=e},get fallbackFormat(){return y},set fallbackFormat(e){y=e,D.fallbackFormat=y},get warnHtmlMessage(){return C},set warnHtmlMessage(e){C=e,D.warnHtmlMessage=e},get escapeParameter(){return w},set escapeParameter(e){w=e,D.escapeParameter=e},t:fe,getLocaleMessage:Ce,setLocaleMessage:we,mergeLocaleMessage:Te,getPostTranslationHandler:k,setPostTranslationHandler:ce,getMissingHandler:le,setMissingHandler:ue,[_r]:ye};return H.datetimeFormats=ae,H.numberFormats=oe,H.rt=N,H.te=be,H.tm=Se,H.d=pe,H.n=me,H.getDateTimeFormat=Ee,H.setDateTimeFormat=De,H.mergeDateTimeFormat=Oe,H.getNumberFormat=ke,H.setNumberFormat=Ae,H.mergeNumberFormat=je,H[vr]=n,H[mr]=ge,H[hr]=ve,H[gr]=_e,H}var Pr={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e===`parent`||e===`global`,default:`parent`},i18n:{type:Object}};function Fr({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((e,t)=>[...e,...t.type===l?t.children:[t]],[]):t.reduce((t,n)=>{let r=e[n];return r&&(t[n]=r()),t},N())}function Ir(){return l}var Lr=i({name:`i18n-t`,props:M({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>A(e)||!isNaN(e)}},Pr),setup(e,t){let{slots:r,attrs:i}=t,a=e.i18n||Jr({useScope:e.scope,__useComponent:!0});return()=>{let o=()=>{let n=Object.keys(r).filter(e=>e[0]!==`_`),i=N();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=R(e.plural)?+e.plural:e.plural);let o=Fr(t,n);return a[mr](e.keypath,o,i)},s=M(N(),i),c=R(e.tag)||B(e.tag)?e.tag:Ir();return B(c)?n(c,s,{default:o}):n(c,s,o())}}});function Rr(e){return I(e)&&!R(e[0])}function zr(e,t,r,i){let{slots:a,attrs:o}=t;return()=>{let t=()=>{let t={part:!0},n=N();e.locale&&(t.locale=e.locale),R(e.format)?t.key=e.format:B(e.format)&&(R(e.format.key)&&(t.key=e.format.key),n=Object.keys(e.format).reduce((t,n)=>r.includes(n)?M(N(),t,{[n]:e.format[n]}):t,N()));let o=i(e.value,t,n),s=[t.key];return I(o)?s=o.map((e,t)=>{let n=a[e.type],r=n?n({[e.type]:e.value,index:t,parts:o}):[e.value];return Rr(r)&&(r[0].key=`${e.type}-${t}`),r}):R(o)&&(s=[o]),s},s=M(N(),o),c=R(e.tag)||B(e.tag)?e.tag:Ir();return B(c)?n(c,s,{default:t}):n(c,s,t())}}var Br=i({name:`i18n-n`,props:M({value:{type:Number,required:!0},format:{type:[String,Object]}},Pr),setup(e,t){let n=e.i18n||Jr({useScope:e.scope,__useComponent:!0});return zr(e,t,Wn,(...e)=>n[gr](...e))}});function Vr(e,t){let n=e;if(e.mode===`composition`)return n.__getInstance(t)||e.global;{let r=n.__getInstance(t);return r==null?e.global.__composer:r.__composer}}function Hr(e){let t=t=>{let{instance:n,value:r}=t;if(!n||!n.$)throw $(Q.UNEXPECTED_ERROR);let i=Vr(e,n.$),a=Ur(r);return[Reflect.apply(i.t,i,[...Wr(a)]),i]};return{created:(e,n)=>{let[r,i]=t(n);se&&(e.__i18nWatcher=_(i.locale,()=>{n.instance&&n.instance.$forceUpdate()})),e.__composer=i,e.textContent=r},unmounted:e=>{se&&e.__i18nWatcher&&(e.__i18nWatcher(),e.__i18nWatcher=void 0,delete e.__i18nWatcher),e.__composer&&(e.__composer=void 0,delete e.__composer)},beforeUpdate:(e,{value:t})=>{if(e.__composer){let n=e.__composer,r=Ur(t);e.textContent=Reflect.apply(n.t,n,[...Wr(r)])}},getSSRProps:e=>{let[n]=t(e);return{textContent:n}}}}function Ur(e){if(R(e))return{path:e};if(V(e)){if(!(`path`in e))throw $(Q.REQUIRED_VALUE,`path`);return e}throw $(Q.INVALID_VALUE)}function Wr(e){let{path:t,locale:n,args:r,choice:i,plural:a}=e,o={},s=r||{};return R(n)&&(o.locale=n),A(i)&&(o.plural=i),A(a)&&(o.plural=a),[t,s,o]}function Gr(e,t,...n){let r=V(n[0])?n[0]:{};(!z(r.globalInstall)||r.globalInstall)&&([Lr.name,`I18nT`].forEach(t=>e.component(t,Lr)),[Br.name,`I18nN`].forEach(t=>e.component(t,Br)),[ai.name,`I18nD`].forEach(t=>e.component(t,ai))),e.directive(`t`,Hr(t))}var Kr=k(`global-vue-i18n`);function qr(e={}){let t=!z(e.globalInjection)||e.globalInjection,n=new Map,[r,i]=Yr(e,!1),a=k(``);function o(e){return n.get(e)||null}function s(e,t){n.set(e,t)}function c(e){n.delete(e)}let l={get mode(){return`composition`},async install(e,...n){if(e.__VUE_I18N_SYMBOL__=a,e.provide(e.__VUE_I18N_SYMBOL__,l),V(n[0])){let e=n[0];l.__composerExtend=e.__composerExtend,l.__vueI18nExtend=e.__vueI18nExtend}let r=null;t&&(r=ii(e,l.global)),Gr(e,l,...n);let i=e.unmount;e.unmount=()=>{r&&r(),l.dispose(),i()}},get global(){return i},dispose(){r.stop()},__instances:n,__getInstance:o,__setInstance:s,__deleteInstance:c};return l}function Jr(e={}){let t=Or();if(t==null)throw $(Q.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw $(Q.NOT_INSTALLED);let n=Xr(t),r=Qr(n),i=Tr(t),a=Zr(e,i);if(a===`global`)return Er(r,e,i),r;if(a===`parent`){let i=$r(n,t,e.__useComponent);return i??=r,i}if(a===`isolated`){if(n.mode!==`composition`)throw $(Q.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);let i=n,a=M({},e);a.__root=$r(n,t)||r;let o=Nr(a);return i.__composerExtend&&(o[yr]=i.__composerExtend(o)),d()&&f(()=>{let e=o[yr];e&&(e(),delete o[yr])}),o}let o=n,s=o.__getInstance(t);if(s==null){let n=M({},e);`__i18n`in i&&(n.__i18n=i.__i18n),r&&(n.__root=r),s=Nr(n),o.__composerExtend&&(s[yr]=o.__composerExtend(s)),ti(o,t,s),o.__setInstance(t,s)}return s}function Yr(e,t){let n=v(),r=n.run(()=>Nr(e));if(r==null)throw $(Q.UNEXPECTED_ERROR);return[n,r]}function Xr(e){let t=o(e.isCE?Kr:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw $(e.isCE?Q.NOT_INSTALLED_WITH_PROVIDE:Q.UNEXPECTED_ERROR);return t}function Zr(e,t){return j(e)?`__i18n`in t?`local`:`global`:e.useScope?e.useScope:`local`}function Qr(e){return e.mode===`composition`?e.global:e.global.__composer}function $r(e,t,n=!1){let r=null,i=t.root,a=ei(t,n);for(;a!=null;){let t=e;if(e.mode===`composition`&&(r=t.__getInstance(a)),r!=null||i===a)break;a=a.parent}return r}function ei(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function ti(e,t,n){g(()=>{},t),r(()=>{let r=n;e.__deleteInstance(t);let i=r[yr];i&&(i(),delete r[yr])},t)}var ni=[`locale`,`fallbackLocale`,`availableLocales`],ri=[`t`,`rt`,`d`,`n`,`tm`,`te`];function ii(e,t){let n=Object.create(null);return ni.forEach(e=>{let r=Object.getOwnPropertyDescriptor(t,e);if(!r)throw $(Q.UNEXPECTED_ERROR);let i=b(r.value)?{get(){return r.value.value},set(e){r.value.value=e}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,e,i)}),e.config.globalProperties.$i18n=n,ri.forEach(n=>{let r=Object.getOwnPropertyDescriptor(t,n);if(!r||!r.value)throw $(Q.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${n}`,r)}),()=>{delete e.config.globalProperties.$i18n,ri.forEach(t=>{delete e.config.globalProperties[`$${t}`]})}}var ai=i({name:`i18n-d`,props:M({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Pr),setup(e,t){let n=e.i18n||Jr({useScope:e.scope,__useComponent:!0});return zr(e,t,Bn,(...e)=>n[hr](...e))}});pr(),vn(Jt),bn(fn),Sn($t);var oi={},si={class:`pointer-events-none absolute z-1 size-[11px] color-base`,viewBox:`0 0 11 11`,"aria-hidden":`true`};function ci(n,r){return c(),t(`svg`,si,[...r[0]||=[e(`path`,{d:`M5.5 0v11M0 5.5h11`,stroke:`currentColor`,"stroke-width":`1`},null,-1)]])}var li=Object.assign(y(oi,[[`render`,ci]]),{__name:`UiCross`});export{x as _,D as a,O as c,C as d,T as f,ae as g,ie as h,w as i,ee as l,ne as m,qr as n,E as o,re as p,Jr as r,te as s,li as t,oe as u};
@@ -1 +1 @@
1
- {"id":"95075385-c519-4224-af4d-f5091c1f9663","timestamp":1792114626267}
1
+ {"id":"efe0e6b4-05bd-4e0b-a04c-7ec5da4143f9","timestamp":1792121881958}
@@ -0,0 +1 @@
1
+ {"id":"efe0e6b4-05bd-4e0b-a04c-7ec5da4143f9","timestamp":1792121881958,"prerendered":[]}
@@ -0,0 +1 @@
1
+ :root{--ff-bg:#fff;--ff-fg:#0a0a0a;--ff-muted:#0a0a0a9e;--ff-faint:#0a0a0a59;--ff-line:#0a0a0a1f;--ff-line-strong:#0a0a0a66;--ff-hover:#0a0a0a0d;--ff-lh:1;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark{--ff-bg:#0a0a0a;--ff-fg:#fafafa;--ff-muted:#fafafa9e;--ff-faint:#fafafa59;--ff-line:#fafafa2b;--ff-line-strong:#fafafa66;--ff-hover:#fafafa12;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{scrollbar-gutter:stable;line-height:calc(1.5 * var(--ff-lh))}:lang(ja){--ff-lh:1.3}body,html{background:var(--ff-bg);color:var(--ff-fg)}body{-webkit-font-smoothing:antialiased}:lang(ja) body{font-family:var(--ff-font),ui-sans-serif,system-ui,sans-serif;font-feature-settings:var(--ff-features)}::selection{background:var(--ff-fg);color:var(--ff-bg)}.display{letter-spacing:-.045em;text-wrap:balance;line-height:.95}:lang(ja) .display,:lang(zh) .display{letter-spacing:0;word-break:auto-phrase}:lang(ja) .display{line-height:1.8}.hero-title{font-size:calc(clamp(2.75rem,6vw,4.75rem))}:lang(ja) .hero-title,:lang(zh) .hero-title{font-size:calc(clamp(2.25rem,4.4vw,3.5rem))}rt{-webkit-user-select:none;user-select:none}@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--un-bg-opacity:100%;--un-border-opacity:100%;--un-outline-opacity:100%;--un-outline-style:solid;--un-text-opacity:100%}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-outline-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}@property --un-blur{syntax:"*";inherits:false}@property --un-brightness{syntax:"*";inherits:false}@property --un-contrast{syntax:"*";inherits:false}@property --un-drop-shadow{syntax:"*";inherits:false}@property --un-grayscale{syntax:"*";inherits:false}@property --un-hue-rotate{syntax:"*";inherits:false}@property --un-invert{syntax:"*";inherits:false}@property --un-saturate{syntax:"*";inherits:false}@property --un-sepia{syntax:"*";inherits:false}@property --un-numeric-figure{syntax:"*";inherits:false}@property --un-numeric-fraction{syntax:"*";inherits:false}@property --un-numeric-spacing{syntax:"*";inherits:false}@property --un-ordinal{syntax:"*";inherits:false}@property --un-slashed-zero{syntax:"*";inherits:false}:host,:root{--spacing:.25rem;--colors-amber-DEFAULT:oklch(82.8% .189 84.429);--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--fontWeight-semibold:600;--default-transition-timingFunction:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--container-md:28rem;--container-6xl:72rem;--container-sm:24rem;--tracking-tight:-.025em;--fontWeight-normal:400;--fontWeight-medium:500;--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--tracking-wide:.025em;--radius-none:0;--colors-white:#fff;--colors-neutral-950:oklch(14.5% 0 0);--colors-neutral-500:oklch(55.6% 0 0);--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--text-base-fontSize:1rem;--text-base-lineHeight:1.5rem;--text-4xl-fontSize:2.25rem;--text-4xl-lineHeight:2.5rem;--text-7xl-fontSize:4.5rem;--text-7xl-lineHeight:1;--text-2xl-fontSize:1.5rem;--text-2xl-lineHeight:2rem;--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--text-xl-fontSize:1.25rem;--text-xl-lineHeight:1.75rem;--leading-none:1;--text-3xl-fontSize:1.875rem;--text-3xl-lineHeight:2.25rem;--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-monoFont-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}.resize-y,textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}.i-ph-arrow-counter-clockwise{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M224%20128a96%2096%200%200%201-94.71%2096H128a95.38%2095.38%200%200%201-65.9-26.2%208%208%200%200%201%2011-11.63%2080%2080%200%201%200-1.67-114.78%203%203%200%200%201-.26.25L44.59%2096H72a8%208%200%200%201%200%2016H24a8%208%200%200%201-8-8V56a8%208%200%200%201%2016%200v29.8L60.25%2060A96%2096%200%200%201%20224%20128%22%2F%3E%3C%2Fsvg%3E)}.i-ph-arrow-counter-clockwise,.i-ph-bookmark-simple,.i-ph-caret-right-bold,.i-ph-check,.i-ph-check-circle-light,.i-ph-circle-notch,.i-ph-copy,.i-ph-download-simple,.i-ph-flag,.i-ph-floppy-disk,.i-ph-github-logo,.i-ph-hammer,.i-ph-list-magnifying-glass,.i-ph-moon,.i-ph-paper-plane-tilt,.i-ph-plus,.i-ph-puzzle-piece,.i-ph-shuffle,.i-ph-sliders-horizontal,.i-ph-sun,.i-ph-translate,.i-ph-trash,.i-ph-warning,.i-ph-x{-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.15em;height:1.15em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-bookmark-simple{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M184%2032H72a16%2016%200%200%200-16%2016v176a8%208%200%200%200%2012.24%206.78L128%20193.43l59.77%2037.35A8%208%200%200%200%20200%20224V48a16%2016%200%200%200-16-16m0%20177.57-51.77-32.35a8%208%200%200%200-8.48%200L72%20209.57V48h112Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-caret-right-bold{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22m184.49%20136.49-80%2080a12%2012%200%200%201-17-17L159%20128%2087.51%2056.49a12%2012%200%201%201%2017-17l80%2080a12%2012%200%200%201-.02%2017%22%2F%3E%3C%2Fsvg%3E)}.i-ph-check{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22m229.66%2077.66-128%20128a8%208%200%200%201-11.32%200l-56-56a8%208%200%200%201%2011.32-11.32L96%20188.69%20218.34%2066.34a8%208%200%200%201%2011.32%2011.32%22%2F%3E%3C%2Fsvg%3E)}.i-ph-check-circle-light{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M172.24%2099.76a6%206%200%200%201%200%208.48l-56%2056a6%206%200%200%201-8.48%200l-24-24a6%206%200%200%201%208.48-8.48L112%20151.51l51.76-51.75a6%206%200%200%201%208.48%200M230%20128A102%20102%200%201%201%20128%2026a102.12%20102.12%200%200%201%20102%20102m-12%200a90%2090%200%201%200-90%2090%2090.1%2090.1%200%200%200%2090-90%22%2F%3E%3C%2Fsvg%3E)}.i-ph-circle-notch{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M232%20128a104%20104%200%200%201-208%200c0-41%2023.81-78.36%2060.66-95.27a8%208%200%200%201%206.68%2014.54C60.15%2061.59%2040%2093.27%2040%20128a88%2088%200%200%200%20176%200c0-34.73-20.15-66.41-51.34-80.73a8%208%200%200%201%206.68-14.54C208.19%2049.64%20232%2087%20232%20128%22%2F%3E%3C%2Fsvg%3E)}.i-ph-copy{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M216%2032H88a8%208%200%200%200-8%208v40H40a8%208%200%200%200-8%208v128a8%208%200%200%200%208%208h128a8%208%200%200%200%208-8v-40h40a8%208%200%200%200%208-8V40a8%208%200%200%200-8-8m-56%20176H48V96h112Zm48-48h-32V88a8%208%200%200%200-8-8H96V48h112Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-download-simple{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M224%20144v64a8%208%200%200%201-8%208H40a8%208%200%200%201-8-8v-64a8%208%200%200%201%2016%200v56h160v-56a8%208%200%200%201%2016%200m-101.66%205.66a8%208%200%200%200%2011.32%200l40-40a8%208%200%200%200-11.32-11.32L136%20124.69V32a8%208%200%200%200-16%200v92.69L93.66%2098.34a8%208%200%200%200-11.32%2011.32Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-flag{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M42.76%2050A8%208%200%200%200%2040%2056v168a8%208%200%200%200%2016%200v-44.23c26.79-21.16%2049.87-9.75%2076.45%203.41%2016.4%208.11%2034.06%2016.85%2053%2016.85%2013.93%200%2028.54-4.75%2043.82-18a8%208%200%200%200%202.76-6V56a8%208%200%200%200-13.27-6c-28%2024.23-51.72%2012.49-79.21-1.12C111.07%2034.76%2078.78%2018.79%2042.76%2050M216%20172.25c-26.79%2021.16-49.87%209.74-76.45-3.41-25-12.35-52.81-26.13-83.55-8.4V59.79c26.79-21.16%2049.87-9.75%2076.45%203.4%2025%2012.35%2052.82%2026.13%2083.55%208.4Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-floppy-disk{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M219.31%2072%20184%2036.69A15.86%2015.86%200%200%200%20172.69%2032H48a16%2016%200%200%200-16%2016v160a16%2016%200%200%200%2016%2016h160a16%2016%200%200%200%2016-16V83.31A15.86%2015.86%200%200%200%20219.31%2072M168%20208H88v-56h80Zm40%200h-24v-56a16%2016%200%200%200-16-16H88a16%2016%200%200%200-16%2016v56H48V48h124.69L208%2083.31ZM160%2072a8%208%200%200%201-8%208H96a8%208%200%200%201%200-16h56a8%208%200%200%201%208%208%22%2F%3E%3C%2Fsvg%3E)}.i-ph-github-logo{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M208.31%2075.68A59.78%2059.78%200%200%200%20202.93%2028a8%208%200%200%200-6.93-4%2059.75%2059.75%200%200%200-48%2024h-24a59.75%2059.75%200%200%200-48-24%208%208%200%200%200-6.93%204%2059.78%2059.78%200%200%200-5.38%2047.68A58.14%2058.14%200%200%200%2056%20104v8a56.06%2056.06%200%200%200%2048.44%2055.47A39.8%2039.8%200%200%200%2096%20192v8H72a24%2024%200%200%201-24-24%2040%2040%200%200%200-40-40%208%208%200%200%200%200%2016%2024%2024%200%200%201%2024%2024%2040%2040%200%200%200%2040%2040h24v16a8%208%200%200%200%2016%200v-40a24%2024%200%200%201%2048%200v40a8%208%200%200%200%2016%200v-40a39.8%2039.8%200%200%200-8.44-24.53A56.06%2056.06%200%200%200%20216%20112v-8a58.14%2058.14%200%200%200-7.69-28.32M200%20112a40%2040%200%200%201-40%2040h-48a40%2040%200%200%201-40-40v-8a41.74%2041.74%200%200%201%206.9-22.48%208%208%200%200%200%201.1-7.69%2043.8%2043.8%200%200%201%20.79-33.58%2043.88%2043.88%200%200%201%2032.32%2020.06%208%208%200%200%200%206.71%203.69h32.35a8%208%200%200%200%206.74-3.69%2043.87%2043.87%200%200%201%2032.32-20.06%2043.8%2043.8%200%200%201%20.77%2033.58%208.09%208.09%200%200%200%201%207.65%2041.7%2041.7%200%200%201%207%2022.52Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-hammer{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22m251.34%20112-67.46-67.92a96.1%2096.1%200%200%200-135.77%200l-.09.09L34.25%2058.4a8%208%200%200%200%2011.49%2011.13l13.73-14.18a80%2080%200%200%201%2018.71-13.9L124.68%2088l-96%2096a16%2016%200%200%200%200%2022.63l20.69%2020.69a16%2016%200%200%200%2022.63%200l96-96%2014.34%2014.34L200%20163.3a16%2016%200%200%200%2022.63%200l28.69-28.69a16%2016%200%200%200%20.02-22.61M60.68%20216%2040%20195.31l68-68L128.68%20148Zm101.66-101.68L140%20136.67%20119.31%20116l22.35-22.35a8%208%200%200%200%200-11.32L94.32%2035a80%2080%200%200%201%2078.23%2020.41l44.22%2044.51L188%20128.66l-14.34-14.34a8%208%200%200%200-11.32%200m49%2037.66-12-12L228%20111.25l12%2012Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-list-magnifying-glass{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M32%2064a8%208%200%200%201%208-8h176a8%208%200%200%201%200%2016H40a8%208%200%200%201-8-8m8%2072h72a8%208%200%200%200%200-16H40a8%208%200%200%200%200%2016m88%2048H40a8%208%200%200%200%200%2016h88a8%208%200%200%200%200-16m109.66%2013.66a8%208%200%200%201-11.32%200L206%20177.36A40%2040%200%201%201%20217.36%20166l20.3%2020.3a8%208%200%200%201%200%2011.36M184%20168a24%2024%200%201%200-24-24%2024%2024%200%200%200%2024%2024%22%2F%3E%3C%2Fsvg%3E)}.i-ph-moon{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M233.54%20142.23a8%208%200%200%200-8-2%2088.08%2088.08%200%200%201-109.8-109.8%208%208%200%200%200-10-10%20104.84%20104.84%200%200%200-52.91%2037A104%20104%200%200%200%20136%20224a103.1%20103.1%200%200%200%2062.52-20.88%20104.84%20104.84%200%200%200%2037-52.91%208%208%200%200%200-1.98-7.98m-44.64%2048.11A88%2088%200%200%201%2065.66%2067.11a89%2089%200%200%201%2031.4-26A106%20106%200%200%200%2096%2056a104.11%20104.11%200%200%200%20104%20104%20106%20106%200%200%200%2014.92-1.06%2089%2089%200%200%201-26.02%2031.4%22%2F%3E%3C%2Fsvg%3E)}.i-ph-paper-plane-tilt{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M227.32%2028.68a16%2016%200%200%200-15.66-4.08h-.15L19.57%2082.84a16%2016%200%200%200-2.49%2029.8L102%20154l41.3%2084.87a15.86%2015.86%200%200%200%2014.44%209.13q.69%200%201.38-.06a15.88%2015.88%200%200%200%2014-11.51l58.2-191.94v-.15a16%2016%200%200%200-4-15.66m-69.49%20203.17-.05.14v-.07l-40.06-82.3%2048-48a8%208%200%200%200-11.31-11.31l-48%2048-82.33-40.06h-.07.14L216%2040Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-plus{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M224%20128a8%208%200%200%201-8%208h-80v80a8%208%200%200%201-16%200v-80H40a8%208%200%200%201%200-16h80V40a8%208%200%200%201%2016%200v80h80a8%208%200%200%201%208%208%22%2F%3E%3C%2Fsvg%3E)}.i-ph-puzzle-piece{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M220.27%20158.54a8%208%200%200%200-7.7-.46%2020%2020%200%201%201%200-36.16%208%208%200%200%200%2011.43-7.23V72a16%2016%200%200%200-16-16h-36.22a35%2035%200%200%200%20.22-4%2036.1%2036.1%200%200%200-11.36-26.24%2036%2036%200%200%200-60.55%2023.62%2036.6%2036.6%200%200%200%20.14%206.62H64a16%2016%200%200%200-16%2016v32.22a35%2035%200%200%200-4-.22%2036.12%2036.12%200%200%200-26.24%2011.36%2035.7%2035.7%200%200%200-9.69%2027%2036.08%2036.08%200%200%200%2033.31%2033.6%2035.7%2035.7%200%200%200%206.62-.14V208a16%2016%200%200%200%2016%2016h144a16%2016%200%200%200%2016-16v-42.69a8%208%200%200%200-3.73-6.77M208%20208H64v-42.69a8%208%200%200%200-11.43-7.23%2020%2020%200%201%201%200-36.16A8%208%200%200%200%2064%20114.69V72h46.69a8%208%200%200%200%207.23-11.43%2020%2020%200%201%201%2036.16%200A8%208%200%200%200%20161.31%2072H208v32.23a35.7%2035.7%200%200%200-6.62-.14A36%2036%200%200%200%20204%20176a35%2035%200%200%200%204-.22Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-shuffle{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M237.66%20178.34a8%208%200%200%201%200%2011.32l-24%2024a8%208%200%200%201-11.32-11.32L212.69%20192h-11.75a72.12%2072.12%200%200%201-58.59-30.15l-41.72-58.4A56.1%2056.1%200%200%200%2055.06%2080H32a8%208%200%200%201%200-16h23.06a72.12%2072.12%200%200%201%2058.59%2030.15l41.72%2058.4A56.1%2056.1%200%200%200%20200.94%20176h11.75l-10.35-10.34a8%208%200%200%201%2011.32-11.32ZM143%20107a8%208%200%200%200%2011.16-1.86l1.2-1.67A56.1%2056.1%200%200%201%20200.94%2080h11.75l-10.35%2010.34a8%208%200%200%200%2011.32%2011.32l24-24a8%208%200%200%200%200-11.32l-24-24a8%208%200%200%200-11.32%2011.32L212.69%2064h-11.75a72.12%2072.12%200%200%200-58.59%2030.15l-1.2%201.67A8%208%200%200%200%20143%20107m-30%2042a8%208%200%200%200-11.16%201.86l-1.2%201.67A56.1%2056.1%200%200%201%2055.06%20176H32a8%208%200%200%200%200%2016h23.06a72.12%2072.12%200%200%200%2058.59-30.15l1.2-1.67A8%208%200%200%200%20113%20149%22%2F%3E%3C%2Fsvg%3E)}.i-ph-sliders-horizontal{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M40%2088h33a32%2032%200%200%200%2062%200h81a8%208%200%200%200%200-16h-81a32%2032%200%200%200-62%200H40a8%208%200%200%200%200%2016m64-24a16%2016%200%201%201-16%2016%2016%2016%200%200%201%2016-16m112%20104h-17a32%2032%200%200%200-62%200H40a8%208%200%200%200%200%2016h97a32%2032%200%200%200%2062%200h17a8%208%200%200%200%200-16m-48%2024a16%2016%200%201%201%2016-16%2016%2016%200%200%201-16%2016%22%2F%3E%3C%2Fsvg%3E)}.i-ph-sun{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M120%2040V16a8%208%200%200%201%2016%200v24a8%208%200%200%201-16%200m72%2088a64%2064%200%201%201-64-64%2064.07%2064.07%200%200%201%2064%2064m-16%200a48%2048%200%201%200-48%2048%2048.05%2048.05%200%200%200%2048-48M58.34%2069.66a8%208%200%200%200%2011.32-11.32l-16-16a8%208%200%200%200-11.32%2011.32Zm0%20116.68-16%2016a8%208%200%200%200%2011.32%2011.32l16-16a8%208%200%200%200-11.32-11.32M192%2072a8%208%200%200%200%205.66-2.34l16-16a8%208%200%200%200-11.32-11.32l-16%2016A8%208%200%200%200%20192%2072m5.66%20114.34a8%208%200%200%200-11.32%2011.32l16%2016a8%208%200%200%200%2011.32-11.32ZM48%20128a8%208%200%200%200-8-8H16a8%208%200%200%200%200%2016h24a8%208%200%200%200%208-8m80%2080a8%208%200%200%200-8%208v24a8%208%200%200%200%2016%200v-24a8%208%200%200%200-8-8m112-88h-24a8%208%200%200%200%200%2016h24a8%208%200%200%200%200-16%22%2F%3E%3C%2Fsvg%3E)}.i-ph-translate{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22m247.15%20212.42-56-112a8%208%200%200%200-14.31%200l-21.71%2043.43A88%2088%200%200%201%20108%20126.93%20103.65%20103.65%200%200%200%20135.69%2064H160a8%208%200%200%200%200-16h-56V32a8%208%200%200%200-16%200v16H32a8%208%200%200%200%200%2016h87.63A87.76%2087.76%200%200%201%2096%20116.35a87.7%2087.7%200%200%201-19-31%208%208%200%201%200-15.08%205.34A103.6%20103.6%200%200%200%2084%20127a87.55%2087.55%200%200%201-52%2017%208%208%200%200%200%200%2016%20103.46%20103.46%200%200%200%2064-22.08%20104.2%20104.2%200%200%200%2051.44%2021.31l-26.6%2053.19a8%208%200%200%200%2014.31%207.16L148.94%20192h70.11l13.79%2027.58A8%208%200%200%200%20240%20224a8%208%200%200%200%207.15-11.58M156.94%20176%20184%20121.89%20211.05%20176Z%22%2F%3E%3C%2Fsvg%3E)}.i-ph-trash{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M216%2048h-40v-8a24%2024%200%200%200-24-24h-48a24%2024%200%200%200-24%2024v8H40a8%208%200%200%200%200%2016h8v144a16%2016%200%200%200%2016%2016h128a16%2016%200%200%200%2016-16V64h8a8%208%200%200%200%200-16M96%2040a8%208%200%200%201%208-8h48a8%208%200%200%201%208%208v8H96Zm96%20168H64V64h128Zm-80-104v64a8%208%200%200%201-16%200v-64a8%208%200%200%201%2016%200m48%200v64a8%208%200%200%201-16%200v-64a8%208%200%200%201%2016%200%22%2F%3E%3C%2Fsvg%3E)}.i-ph-warning{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M236.8%20188.09%20149.35%2036.22a24.76%2024.76%200%200%200-42.7%200L19.2%20188.09a23.51%2023.51%200%200%200%200%2023.72A24.35%2024.35%200%200%200%2040.55%20224h174.9a24.35%2024.35%200%200%200%2021.33-12.19%2023.51%2023.51%200%200%200%20.02-23.72m-13.87%2015.71a8.5%208.5%200%200%201-7.48%204.2H40.55a8.5%208.5%200%200%201-7.48-4.2%207.59%207.59%200%200%201%200-7.72l87.45-151.87a8.75%208.75%200%200%201%2015%200l87.45%20151.87a7.59%207.59%200%200%201-.04%207.72M120%20144v-40a8%208%200%200%201%2016%200v40a8%208%200%200%201-16%200m20%2036a12%2012%200%201%201-12-12%2012%2012%200%200%201%2012%2012%22%2F%3E%3C%2Fsvg%3E)}.i-ph-x{--un-icon:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221.15em%22%20height%3D%221.15em%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M205.66%20194.34a8%208%200%200%201-11.32%2011.32L128%20139.31l-66.34%2066.35a8%208%200%200%201-11.32-11.32L116.69%20128%2050.34%2061.66a8%208%200%200%201%2011.32-11.32L128%20116.69l66.34-66.35a8%208%200%200%201%2011.32%2011.32L139.31%20128Z%22%2F%3E%3C%2Fsvg%3E)}.btn-ghost{color:color-mix(in oklab,var(--ff-muted) var(--un-text-opacity),transparent);border-color:#0000}.btn-ghost,.btn-outline{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight));--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 4);gap:calc(var(--spacing) * 2);height:calc(var(--spacing) * 9);-webkit-user-select:none;user-select:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));--un-duration:.15s;border-width:1px;justify-content:center;align-items:center;transition-duration:.15s;display:inline-flex}.btn-outline{color:color-mix(in oklab,var(--ff-fg) var(--un-text-opacity),transparent);border-color:color-mix(in oklab,var(--ff-line-strong) var(--un-border-opacity),transparent)}.btn-solid{color:color-mix(in oklab,var(--ff-bg) var(--un-text-opacity),transparent);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 4);border-color:color-mix(in oklab,var(--ff-fg) var(--un-border-opacity),transparent);background-color:color-mix(in oklab,var(--ff-fg) var(--un-bg-opacity),transparent);gap:calc(var(--spacing) * 2);height:calc(var(--spacing) * 9);-webkit-user-select:none;user-select:none;transition-duration:var(--un-duration,var(--default-transition-duration));--un-duration:.15s;justify-content:center;align-items:center;transition-duration:.15s;display:inline-flex}.btn-solid,.input{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));border-width:1px}.input{color:color-mix(in oklab,var(--ff-fg) var(--un-text-opacity),transparent);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);--un-outline-style:none;border-color:color-mix(in oklab,var(--ff-line) var(--un-border-opacity),transparent);border-radius:var(--radius-none);width:100%;transition-duration:var(--un-duration,var(--default-transition-duration));font-feature-settings:"ss01";background-color:#0000;outline-style:none;line-height:1}.\!color-base{color:color-mix(in oklab,var(--ff-fg) var(--un-text-opacity),transparent)!important}.color-base,.group:hover .group-hover\:color-base{color:color-mix(in oklab,var(--ff-fg) var(--un-text-opacity),transparent)}.color-inverse{color:color-mix(in oklab,var(--ff-bg) var(--un-text-opacity),transparent)}.color-muted,.label{color:color-mix(in oklab,var(--ff-muted) var(--un-text-opacity),transparent)}.label{--un-tracking:.12em;letter-spacing:.12em;font-size:11px;font-family:var(--font-mono);text-transform:uppercase;line-height:calc(1.45 * var(--ff-lh))}.btn-ghost:hover{color:color-mix(in oklab,var(--ff-fg) var(--un-text-opacity),transparent);background-color:color-mix(in oklab,var(--ff-hover) var(--un-bg-opacity),transparent)}.btn-outline:hover{color:color-mix(in oklab,var(--ff-bg) var(--un-text-opacity),transparent);border-color:color-mix(in oklab,var(--ff-fg) var(--un-border-opacity),transparent);background-color:color-mix(in oklab,var(--ff-fg) var(--un-bg-opacity),transparent)}.hover\:color-base:hover{color:color-mix(in oklab,var(--ff-fg) var(--un-text-opacity),transparent)}.hover\:color-muted:hover{color:color-mix(in oklab,var(--ff-muted) var(--un-text-opacity),transparent)}.input::placeholder{color:color-mix(in oklab,var(--ff-faint) var(--un-text-opacity),transparent)}.slider::-webkit-slider-thumb{appearance:none;border-width:1px;border-color:color-mix(in oklab,var(--ff-line-strong) var(--un-border-opacity),transparent);--un-border-style:solid;background-color:color-mix(in oklab,var(--ff-bg) var(--un-bg-opacity),transparent);width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5);box-sizing:border-box;border-style:solid;margin-top:-5px}.slider{appearance:none;height:calc(var(--spacing) * 3.5);cursor:pointer;background-color:#0000;width:100%}.slider:focus-visible{outline-style:var(--un-outline-style);outline-width:2px;outline-color:color-mix(in oklab,var(--ff-fg) var(--un-outline-opacity),transparent);outline-offset:2px}.slider::-moz-range-thumb{border-radius:var(--radius-none);background-color:color-mix(in oklab,var(--ff-bg) var(--un-bg-opacity),transparent);width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.slider::-moz-range-thumb{border-width:1px;border-color:color-mix(in oklab,var(--ff-line-strong) var(--un-border-opacity),transparent);--un-border-style:solid;box-sizing:border-box;border-style:solid}.slider::-moz-range-track{border-width:1px;border-color:color-mix(in oklab,var(--ff-line-strong) var(--un-border-opacity),transparent);--un-border-style:solid;box-sizing:border-box;border-style:solid}.slider::-moz-range-track{height:calc(var(--spacing) * 1.5)}.slider::-webkit-slider-runnable-track{border-width:1px;border-color:color-mix(in oklab,var(--ff-line-strong) var(--un-border-opacity),transparent);--un-border-style:solid;height:calc(var(--spacing) * 1.5);background:linear-gradient(var(--ff-fg),var(--ff-fg)) 0 0/calc(7px + var(--slider-fraction) * (100% - 14px)) 100% no-repeat;box-sizing:border-box;border-style:solid}.border-base{border-color:color-mix(in oklab,var(--ff-line) var(--un-border-opacity),transparent)}.border-inverse{border-color:color-mix(in oklab,var(--ff-fg) var(--un-border-opacity),transparent)}.border-strong,.hover\:border-strong:hover{border-color:color-mix(in oklab,var(--ff-line-strong) var(--un-border-opacity),transparent)}.input:focus{border-color:color-mix(in oklab,var(--ff-fg) var(--un-border-opacity),transparent)}.bg-base{background-color:color-mix(in oklab,var(--ff-bg) var(--un-bg-opacity),transparent)}.bg-inverse{background-color:color-mix(in oklab,var(--ff-fg) var(--un-bg-opacity),transparent)}.slider::-moz-range-progress{background-color:color-mix(in oklab,var(--ff-fg) var(--un-bg-opacity),transparent);height:calc(var(--spacing) * 1.5)}.hover\:bg-hover:hover{background-color:color-mix(in oklab,var(--ff-hover) var(--un-bg-opacity),transparent)}.btn-solid:hover{opacity:.85}.btn-ghost:disabled,.btn-outline:disabled,.btn-solid:disabled{opacity:.4;cursor:not-allowed}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.text-2xl{font-size:var(--text-2xl-fontSize);line-height:var(--un-leading,var(--text-2xl-lineHeight))}.text-4xl{font-size:var(--text-4xl-fontSize);line-height:var(--un-leading,var(--text-4xl-lineHeight))}.text-7xl{font-size:var(--text-7xl-fontSize);line-height:var(--un-leading,var(--text-7xl-lineHeight))}.text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading,var(--text-base-lineHeight))}.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.text-xl{font-size:var(--text-xl-fontSize);line-height:var(--un-leading,var(--text-xl-lineHeight))}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.dark .dark\:text-white{color:color-mix(in srgb,var(--colors-white) var(--un-text-opacity),transparent)}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.text-\[56px\]{font-size:56px}.text-amber{color:color-mix(in srgb,var(--colors-amber-DEFAULT) var(--un-text-opacity),transparent)}.text-neutral-500{color:color-mix(in srgb,var(--colors-neutral-500) var(--un-text-opacity),transparent)}.text-neutral-950{color:color-mix(in srgb,var(--colors-neutral-950) var(--un-text-opacity),transparent)}.hover\:text-\[\#00DC82\]:hover{color:color-mix(in oklab,#00dc82 var(--un-text-opacity),transparent)}.hover\:color-inherit:hover,.text-inherit{color:inherit}.tracking-\[0\.04em\]{--un-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.5em\]{--un-tracking:.5em;letter-spacing:.5em}.tracking-tight{--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--un-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.font-mono{font-family:var(--font-mono)}.font-normal{--un-font-weight:var(--fontWeight-normal);font-weight:var(--fontWeight-normal)}.font-sans{font-family:var(--font-sans)}.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold)}.mx-auto{margin-inline:auto}.-mb-px{margin-bottom:-1px}.-mr-px{margin-right:-1px}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.ms{margin-inline-start:calc(var(--spacing) * 4)}.mt-4{margin-top:calc(var(--spacing) * 4)}.p-0{padding:calc(var(--spacing) * 0)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px,.px-4{padding-inline:calc(var(--spacing) * 4)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1{padding-inline:calc(var(--spacing))}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing))}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.appearance-none{appearance:none}.outline,.outline-1{outline-style:var(--un-outline-style);outline-width:1px}.outline-transparent{outline-color:#0000}.focus-within\:outline-\[var\(--ff-fg\)\]:focus-within{outline-color:color-mix(in oklab,var(--ff-fg) var(--un-outline-opacity),transparent)}.focus-within\:outline-2:focus-within{outline-style:var(--un-outline-style);outline-width:2px}.hover\:outline-\[var\(--ff-line\)\]:hover{outline-color:color-mix(in oklab,var(--ff-line) var(--un-outline-opacity),transparent)}.focus\:outline-\[var\(--ff-fg\)\]:focus,.peer:focus-visible~.peer-focus-visible\:outline-\[var\(--ff-fg\)\]{outline-color:color-mix(in oklab,var(--ff-fg) var(--un-outline-opacity),transparent)}.peer:focus-visible~.peer-focus-visible\:outline-2{outline-style:var(--un-outline-style);outline-width:2px}.outline-offset-4{outline-offset:4px}.focus-within\:outline-offset-2:focus-within,.peer:focus-visible~.peer-focus-visible\:outline-offset-2{outline-offset:2px}.outline-none{--un-outline-style:none;outline-style:none}.focus\:outline-dashed:focus,.hover\:outline-dashed:hover{--un-outline-style:dashed;outline-style:dashed}.border{border-width:1px}.border-x{border-inline-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-0{border-width:0}.border-t-0{border-top-width:0}.last\:border-b-0:last-child{border-bottom-width:0}.last\:border-r-0:last-child{border-right-width:0}.rounded-none{border-radius:var(--radius-none)}.bg-\[var\(--ff-line\)\]{background-color:color-mix(in oklab,var(--ff-line) var(--un-bg-opacity),transparent)}.bg-amber\:5{background-color:color-mix(in srgb,var(--colors-amber-DEFAULT) 5%,transparent)}.bg-transparent{background-color:#0000}.bg-white{background-color:color-mix(in srgb,var(--colors-white) var(--un-bg-opacity),transparent)}.dark .dark\:bg-neutral-950{background-color:color-mix(in srgb,var(--colors-neutral-950) var(--un-bg-opacity),transparent)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-3{text-underline-offset:3px}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.flex-auto{flex:auto}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:calc(var(--spacing))}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-x-2{-moz-column-gap:calc(var(--spacing) * 2);column-gap:calc(var(--spacing) * 2)}.gap-x-4{-moz-column-gap:calc(var(--spacing) * 4);column-gap:calc(var(--spacing) * 4)}.gap-x-6{-moz-column-gap:calc(var(--spacing) * 6);column-gap:calc(var(--spacing) * 6)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.grid{display:grid}.col-span-full{grid-column:1/-1}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.size-\[10px\]{width:10px;height:10px}.size-\[11px\]{width:11px;height:11px}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-full{width:100%;height:100%}.h-14{height:calc(var(--spacing) * 14)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-px{height:1px}.h1{height:calc(var(--spacing))}.h2{height:calc(var(--spacing) * 2)}.h3{height:calc(var(--spacing) * 3)}.max-h-\[32rem\]{max-height:32rem}.max-w-\[46ch\]{max-width:46ch}.max-w-\[52ch\]{max-width:52ch}.max-w-\[60ch\]{max-width:60ch}.max-w-520px{max-width:520px}.max-w-6xl{max-width:var(--container-6xl)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-h-56{min-height:calc(var(--spacing) * 56)}.min-h-72{min-height:calc(var(--spacing) * 72)}.min-h-screen{min-height:100vh}.min-w-0{min-width:calc(var(--spacing) * 0)}.w-28{width:calc(var(--spacing) * 28)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-fit{width:fit-content}.w-full{width:100%}.hidden{display:none}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.pointer-events-none{pointer-events:none}.select-none{-webkit-user-select:none;user-select:none}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.ws-pre-line{white-space:pre-line}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.focus-ring:focus{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow),var(--un-inset-ring-shadow),var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.rotate-90{rotate:90deg}.transition-\[outline-color\]{transition-property:outline-color}.transition-\[outline-color\],.transition-all,.transition-colors,.transition-transform{transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.transition-all{transition-property:all}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to}.transition-transform{transition-property:transform,translate,scale,rotate}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.self-start{align-self:flex-start}.self-center{align-self:center}.-inset-\[100vmax\]{inset:-100vmax}.inset-0{inset:calc(var(--spacing) * 0)}.-bottom-\[6px\]{bottom:-6px}.-left-\[6px\]{left:-6px}.-right-\[6px\]{right:-6px}.-top-\[6px\]{top:-6px}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-\[14px\]{left:14px}.left-\[2px\]{left:2px}.left-4{left:calc(var(--spacing) * 4)}.right-3{right:calc(var(--spacing) * 3)}.top-\[2px\]{top:2px}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.place-content-center{place-content:center}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-z-1{z-index:-1}.z-1{z-index:1}.z-10{z-index:10}.overflow-hidden{overflow:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.animate-spin{animation:1s linear infinite spin}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.isolate{isolation:isolate}.invert{--un-invert:invert(100%);filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal,) var(--un-slashed-zero,) var(--un-numeric-figure,) var(--un-numeric-spacing,) var(--un-numeric-fraction,)}.no-ruby{font-feature-settings:"ss01";line-height:1}.lh-1\.625{line-height:calc(1.625 * var(--ff-lh))}@supports (color:color-mix(in lab,red,red)){.dark .dark\:text-white{color:color-mix(in oklab,var(--colors-white) var(--un-text-opacity),transparent)}.text-amber{color:color-mix(in oklab,var(--colors-amber-DEFAULT) var(--un-text-opacity),transparent)}.text-neutral-500{color:color-mix(in oklab,var(--colors-neutral-500) var(--un-text-opacity),transparent)}.text-neutral-950{color:color-mix(in oklab,var(--colors-neutral-950) var(--un-text-opacity),transparent)}.bg-amber\:5{background-color:color-mix(in oklab,var(--colors-amber-DEFAULT) 5%,transparent)}.bg-white{background-color:color-mix(in oklab,var(--colors-white) var(--un-bg-opacity),transparent)}.dark .dark\:bg-neutral-950{background-color:color-mix(in oklab,var(--colors-neutral-950) var(--un-bg-opacity),transparent)}}@media (width>=40rem){.sm\:text-3xl{font-size:var(--text-3xl-fontSize);line-height:var(--un-leading,var(--text-3xl-lineHeight))}.sm\:text-\[72px\]{font-size:72px}.sm\:tracking-\[0\.12em\]{--un-tracking:.12em;letter-spacing:.12em}.sm\:px-2{padding-inline:calc(var(--spacing) * 2)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:border-r{border-right-width:1px}.sm\:border-b-0{border-bottom-width:0}.sm\:inline-flex{display:inline-flex}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:inline{display:inline}.sm\:block{display:block}}@media (width>=64rem){.lg\:py-24{padding-block:calc(var(--spacing) * 24)}.lg\:border-b{border-bottom-width:1px}.lg\:border-r{border-right-width:1px}.lg\:border-b-0{border-bottom-width:0}.lg\:border-t-0{border-top-width:0}.lg\:last\:border-r-0:last-child{border-right-width:0}.lg\:grid-cols-\[340px_1fr\]{grid-template-columns:340px 1fr}.lg\:grid-cols-\[5fr_4fr\]{grid-template-columns:5fr 4fr}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:top-14{top:calc(var(--spacing) * 14)}.lg\:sticky{position:sticky}.lg\:z-1{z-index:1}}
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629471,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CCKNrAp3.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.BSCJYv63.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CCKNrAp3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/IRGIvKlv.js"><script type="module" src="/_nuxt/CCKNrAp3.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/7dpEN058.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DUyBBmcb.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/BK--K-B8.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"efe0e6b4-05bd-4e0b-a04c-7ec5da4143f9",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792121885209,false]</script></body></html>
@@ -1,7 +1,7 @@
1
1
  // ==UserScript==
2
2
  // @name Furifont
3
3
  // @namespace https://furifont.antfu.me
4
- // @version 0.4.2
4
+ // @version 0.5.0
5
5
  // @description Furigana on any page: Furifont turns on by itself on Japanese pages, and the menu switches family, turns it off, or turns okurigana readings (来る, 来ない) off.
6
6
  // @homepageURL https://furifont.antfu.me
7
7
  // @downloadURL https://furifont.antfu.me/furifont.user.js
@@ -16,7 +16,7 @@
16
16
  // ==/UserScript==
17
17
 
18
18
  (() => {
19
- var Furifont=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t={fonts:[{family:`Furifont Sans`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hiragana`},{family:`Furifont Sans Romaji`,base:`Source Han Sans JP`,face:`sans`,rubyScript:`hepburn`},{family:`Furifont Serif`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hiragana`},{family:`Furifont Serif Romaji`,base:`Source Han Serif JP`,face:`serif`,rubyScript:`hepburn`}],weights:[{style:`Regular`,weight:400}],variable:{style:`VF`,weights:[250,900]},options:{take:4e4}},n={base:12290,selector:65024},r=`U+2E80-2FDF,U+3000-30FF,U+3190-319F,U+31F0-31FF,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE00-FE0F,U+FF00-FFEF,U+20000-3FFFF,U+E0100-E01EF`,i=/[\p{sc=Han}\p{sc=Hiragana}\p{sc=Katakana}]/u;function a(e){return(e.match(/\s*(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[^,]+)/g)??[]).map(e=>e.trim()).filter(Boolean)}function o(e){return e.replace(/^(["'])(.*)\1$/,`$2`)}let s=/mono|courier|consol|menlo|monaco|等幅/i;function c(e){let t=e.map(o);return t.some(e=>e===`monospace`||e===`ui-monospace`)||s.test(t[0]??``)}async function l({family:e,url:n,fetchFont:i}){let a=(t,n=`400`)=>new FontFace(e,t,{unicodeRange:r,weight:n}).load().catch(()=>void 0),o=await Promise.all(t.weights.map(({style:t,weight:n})=>a(`local("${e} ${t}")${n===400?`,local("${e}")`:``}`,String(n)))),s=t.variable.weights.join(` `),c=o.some(Boolean)?o:[await(i?i(n).then(e=>a(e,s),()=>void 0):a(`url("${n}")`,s))];for(let e of c)e&&document.fonts.add(e);return c.some(Boolean)}function u(e){let t=/* @__PURE__ */ new Map,n=/(?<!\p{sc=Han})\p{sc=Han}+(?=\p{sc=Hiragana})/gu,r=n=>{if(!t.has(n)){let r=/* @__PURE__ */ new Map;for(let[t,i]of Object.entries(e.pairs[n]??{}))for(let e of i)r.set(e,t||null);t.set(n,r.size?{reading:r,longest:Math.max(...[...r.keys()].map(e=>e.length))}:void 0)}return t.get(n)},i=(t,n)=>{let r=t.length>[...t][0].length,i=(r?e.words[t]?.map(e=>[...e.matchAll(/\[([^\]]*)\]/g)].map(e=>e[1]).join(``)):e.readings[t])?.indexOf(n)??-1;return i>=+!!r&&i<15&&e.lone[t]!==n?i+1:0};return{find:e=>{let t=[];for(let{0:a,index:o}of e.matchAll(n)){let n=r(a),s=e.slice(o+a.length,o+a.length+(n?.longest??0)),c;for(let e=s.length;e>0&&c===void 0;e--)c=n?.reading.get(s.slice(0,e));let l=c?i(a,c):0;c&&l&&t.push({at:o,length:a.length,reading:c,salt:l})}return t},saltOf:i}}let d=/* @__PURE__ */ new Map;function f(e,t){let n=d.get(e);return n||(n=(t?t(e):fetch(e).then(t=>t.ok?t.text():Promise.reject(Error(e)))).then(JSON.parse),n.catch(()=>d.delete(e)),d.set(e,n)),n}async function p({readings:e,pairs:t,fetchText:n}){try{let[r,i]=await Promise.all([f(e,n),f(t,n)]);return r.salt===!0?u({pairs:i,readings:r.kanji,words:r.words,lone:r.lone}):void 0}catch{return}}function m(e,t){return{href:new URL(`/#downloads`,e).href,text:t.download}}function h(e,t,n){document.querySelector(`furifont-toast`)?.remove();let r=document.createElement(`furifont-toast`),i=r.attachShadow({mode:`open`}),a=new CSSStyleSheet;a.replaceSync(`:host{all:initial}div{position:fixed;z-index:2147483647;right:16px;bottom:16px;display:flex;gap:16px;align-items:start;max-width:360px;padding:12px 16px;border:1px solid #fafafa2b;background:#0a0a0a;color:#fafafa;font:14px/1.5 system-ui,sans-serif}p{margin:0}a{color:inherit;margin-right:12px}button{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}`),i.adoptedStyleSheets=[a];let o=document.createElement(`p`);o.append(e,` `,...t.map(({href:e,text:t})=>Object.assign(document.createElement(`a`),{href:e,target:`_blank`,rel:`noopener`,textContent:t})));let s=Object.assign(document.createElement(`button`),{ariaLabel:n,textContent:`×`,onclick:()=>r.remove()}),c=Object.assign(document.createElement(`div`),{role:`alert`});c.append(o,s),i.append(c),document.body.append(r),setTimeout(()=>r.remove(),1e4)}function g(e){let[t=0,n=0,r=0]=e.split(`.`).map(Number);return t*1e3+n*100+r}function _(e){let t=document.createElement(`canvas`).getContext(`2d`);return t.font=`1000px "${e}"`,Math.round(t.measureText(String.fromCodePoint(n.base,n.selector)).width)-2e3}async function v({family:e,url:t,toast:n},r){let i=new URL(`/version.json`,t).href,a;try{a=g(JSON.parse(await(r.fetchText?r.fetchText(i):fetch(i).then(e=>e.text()))).version)}catch{return}let o=[...g(r.version)<a?[r]:[],..._(e)<a?[m(t,n)]:[]];o.length&&h(n.outdated,o,n.close)}function y(e){let t=[];for(let n of e.filter(e=>e.isConnected)){let e=document.createTreeWalker(n,NodeFilter.SHOW_TEXT);for(let n=e.currentNode;n;n=e.nextNode())n.nodeType===Node.TEXT_NODE&&n.parentElement&&t.push(n)}return t}function b(e){let t=new Set(y(e).filter(e=>i.test(e.nodeValue??``)).map(e=>e.parentElement));for(let n of e){if(n.nodeType!==Node.ELEMENT_NODE)continue;let e=n;e.matches(`input,textarea`)&&t.add(e);for(let n of e.querySelectorAll(`input,textarea`))t.add(n)}return t}function x(e){let t=new CSSStyleSheet,n=[],r,i=0,s=()=>{for(let e of document.querySelectorAll(`[data-furifont-reading]`)){let t=r?r.saltOf(e.textContent??``,e.dataset.furifontReading):0;t?e.dataset.furifontSalt=String(t):delete e.dataset.furifontSalt}},l=e=>{if(!r)return;let t=y(e).filter(e=>/\p{sc=Han}\p{sc=Hiragana}/u.test(e.nodeValue??``)&&!e.parentElement.closest(`script,style,textarea,noscript,ruby,[contenteditable]:not([contenteditable=false]),[data-furifont-reading]`));for(let e of t)for(let{at:t,length:n,reading:i,salt:a}of r.find(e.nodeValue??``).reverse()){let r=t?e.splitText(t):e;r.length>n&&r.splitText(n);let o=document.createElement(`span`);o.dataset.furifontReading=i,o.dataset.furifontSalt=String(a),r.replaceWith(o),o.append(r)}},u={dispose:()=>{},sheet:t,family:e,restyle:()=>{let e=Array.from({length:15},(e,t)=>`[data-furifont-salt="${t+1}"]{font-feature-settings:"salt" ${t+1}!important}`).join(``),r=n.map((e,t)=>`[data-furifont="${t}"]{font-family:"${u.family}",${e}!important}`).join(``);t.replaceSync(`${r}[data-furifont-tight]{line-height:normal!important}ruby,ruby *{font-feature-settings:"ss01"!important}${e}`)},okurigana:e=>{let n=++i;r=void 0,s(),e&&!t.disabled&&p(e).then(e=>{n===i&&e&&(r=e,s(),l([document.body]))})}},d=e=>{let t=[...b(e)].filter(e=>!e.hasAttribute(`data-furifont`)).map(e=>{let{fontFamily:t,lineHeight:n,fontSize:r}=getComputedStyle(e),i=a(t);return o(i[0]??``)===u.family&&i.shift(),{element:e,stack:i,tight:Number.parseFloat(n)<1.6*Number.parseFloat(r)}}).filter(({stack:e})=>e.length&&!c(e)),r=n.length;for(let{element:e,stack:r,tight:i}of t){let t=r.join(`,`),a=n.includes(t)?n.indexOf(t):n.push(t)-1;e.setAttribute(`data-furifont`,String(a)),i&&e.setAttribute(`data-furifont-tight`,``)}n.length>r&&u.restyle()},f=new MutationObserver(e=>{let t=e.flatMap(e=>e.type===`characterData`?[e.target]:[...e.addedNodes]);d(t),l(t)});return u.dispose=()=>{f.disconnect(),i++,r=void 0,document.adoptedStyleSheets=document.adoptedStyleSheets.filter(e=>e!==t);for(let e of document.querySelectorAll(`[data-furifont],[data-furifont-tight]`))e.removeAttribute(`data-furifont`),e.removeAttribute(`data-furifont-tight`);for(let e of document.querySelectorAll(`[data-furifont-reading]`))e.replaceWith(...e.childNodes);window.furifont===u&&delete window.furifont},window.furifont=u,document.adoptedStyleSheets=[...document.adoptedStyleSheets,t],d([document.body]),f.observe(document.body,{childList:!0,characterData:!0,subtree:!0}),u}async function S(e){let{family:t,url:n,toast:r,okurigana:i,update:a}=e,o=window.furifont;o?.family===t?(o.sheet.disabled=!o.sheet.disabled,o.sheet.disabled||o.okurigana(i)):(o??=x(t),o.family=t,o.restyle(),o.sheet.disabled=!1,await l(e)?(o.okurigana(i),a&&await v(e,a)):(o.sheet.disabled=!0,o.family=``,h(r.message,[m(n,r)],r.close)))}return e.JAPANESE=i,e.UNICODE_RANGE=r,e.createOkuriganaReader=u,e.isMonospace=c,e.loadFurifont=l,e.loadOkuriganaReader=p,e.parseFontStack=a,e.showToast=h,e.toggleFurifont=S,e})({});
19
+ var Furifont=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t={fonts:[{family:`Furifont Sans`,base:`Source Han Sans JP`,face:`sans`,furiganaScript:`hiragana`},{family:`Furifont Sans Romaji`,base:`Source Han Sans JP`,face:`sans`,furiganaScript:`hepburn`},{family:`Furifont Serif`,base:`Source Han Serif JP`,face:`serif`,furiganaScript:`hiragana`},{family:`Furifont Serif Romaji`,base:`Source Han Serif JP`,face:`serif`,furiganaScript:`hepburn`}],weights:[{style:`Regular`,weight:400}],variable:{style:`VF`,weights:[250,900]},options:{take:4e4}},n={base:12290,selector:65024},r=`U+2E80-2FDF,U+3000-30FF,U+3190-319F,U+31F0-31FF,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE00-FE0F,U+FF00-FFEF,U+20000-3FFFF,U+E0100-E01EF`,i=/[\p{sc=Han}\p{sc=Hiragana}\p{sc=Katakana}]/u;function a(e){return(e.match(/\s*(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[^,]+)/g)??[]).map(e=>e.trim()).filter(Boolean)}function o(e){return e.replace(/^(["'])(.*)\1$/,`$2`)}let s=/mono|courier|consol|menlo|monaco|等幅/i;function c(e){let t=e.map(o);return t.some(e=>e===`monospace`||e===`ui-monospace`)||s.test(t[0]??``)}async function l({family:e,url:n,fetchFont:i}){let a=(t,n=`400`)=>new FontFace(e,t,{unicodeRange:r,weight:n}).load().catch(()=>void 0),o=await Promise.all(t.weights.map(({style:t,weight:n})=>a(`local("${e} ${t}")${n===400?`,local("${e}")`:``}`,String(n)))),s=t.variable.weights.join(` `),c=o.some(Boolean)?o:[await(i?i(n).then(e=>a(e,s),()=>void 0):a(`url("${n}")`,s))];for(let e of c)e&&document.fonts.add(e);return c.some(Boolean)}function u(e){let t=/* @__PURE__ */ new Map,n=/(?<!\p{sc=Han})\p{sc=Han}+(?=\p{sc=Hiragana})/gu,r=n=>{if(!t.has(n)){let r=/* @__PURE__ */ new Map;for(let[t,i]of Object.entries(e.pairs[n]??{}))for(let e of i)r.set(e,t||null);t.set(n,r.size?{reading:r,longest:Math.max(...[...r.keys()].map(e=>e.length))}:void 0)}return t.get(n)},i=(t,n)=>{let r=t.length>[...t][0].length,i=(r?e.words[t]?.map(e=>[...e.matchAll(/\[([^\]]*)\]/g)].map(e=>e[1]).join(``)):e.readings[t])?.indexOf(n)??-1;return i>=+!!r&&i<15&&e.lone[t]!==n?i+1:0};return{find:e=>{let t=[];for(let{0:a,index:o}of e.matchAll(n)){let n=r(a),s=e.slice(o+a.length,o+a.length+(n?.longest??0)),c;for(let e=s.length;e>0&&c===void 0;e--)c=n?.reading.get(s.slice(0,e));let l=c?i(a,c):0;c&&l&&t.push({at:o,length:a.length,reading:c,salt:l})}return t},saltOf:i}}let d=/* @__PURE__ */ new Map;function f(e,t){let n=d.get(e);return n||(n=(t?t(e):fetch(e).then(t=>t.ok?t.text():Promise.reject(Error(e)))).then(JSON.parse),n.catch(()=>d.delete(e)),d.set(e,n)),n}async function p({readings:e,pairs:t,fetchText:n}){try{let[r,i]=await Promise.all([f(e,n),f(t,n)]);return r.salt===!0?u({pairs:i,readings:r.kanji,words:r.words,lone:r.lone}):void 0}catch{return}}function m(e,t){return{href:new URL(`/#downloads`,e).href,text:t.download}}function h(e,t,n){document.querySelector(`furifont-toast`)?.remove();let r=document.createElement(`furifont-toast`),i=r.attachShadow({mode:`open`}),a=new CSSStyleSheet;a.replaceSync(`:host{all:initial}div{position:fixed;z-index:2147483647;right:16px;bottom:16px;display:flex;gap:16px;align-items:start;max-width:360px;padding:12px 16px;border:1px solid #fafafa2b;background:#0a0a0a;color:#fafafa;font:14px/1.5 system-ui,sans-serif}p{margin:0}a{color:inherit;margin-right:12px}button{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}`),i.adoptedStyleSheets=[a];let o=document.createElement(`p`);o.append(e,` `,...t.map(({href:e,text:t})=>Object.assign(document.createElement(`a`),{href:e,target:`_blank`,rel:`noopener`,textContent:t})));let s=Object.assign(document.createElement(`button`),{ariaLabel:n,textContent:`×`,onclick:()=>r.remove()}),c=Object.assign(document.createElement(`div`),{role:`alert`});c.append(o,s),i.append(c),document.body.append(r),setTimeout(()=>r.remove(),1e4)}function g(e){let[t=0,n=0,r=0]=e.split(`.`).map(Number);return t*1e3+n*100+r}function _(e){let t=document.createElement(`canvas`).getContext(`2d`);return t.font=`1000px "${e}"`,Math.round(t.measureText(String.fromCodePoint(n.base,n.selector)).width)-2e3}async function v({family:e,url:t,toast:n},r){let i=new URL(`/version.json`,t).href,a;try{a=g(JSON.parse(await(r.fetchText?r.fetchText(i):fetch(i).then(e=>e.text()))).version)}catch{return}let o=[...g(r.version)<a?[r]:[],..._(e)<a?[m(t,n)]:[]];o.length&&h(n.outdated,o,n.close)}function y(e){let t=[];for(let n of e.filter(e=>e.isConnected)){let e=document.createTreeWalker(n,NodeFilter.SHOW_TEXT);for(let n=e.currentNode;n;n=e.nextNode())n.nodeType===Node.TEXT_NODE&&n.parentElement&&t.push(n)}return t}function b(e){let t=new Set(y(e).filter(e=>i.test(e.nodeValue??``)).map(e=>e.parentElement));for(let n of e){if(n.nodeType!==Node.ELEMENT_NODE)continue;let e=n;e.matches(`input,textarea`)&&t.add(e);for(let n of e.querySelectorAll(`input,textarea`))t.add(n)}return t}function x(e){let t=new CSSStyleSheet,n=[],r,i=0,s=()=>{for(let e of document.querySelectorAll(`[data-furifont-reading]`)){let t=r?r.saltOf(e.textContent??``,e.dataset.furifontReading):0;t?e.dataset.furifontSalt=String(t):delete e.dataset.furifontSalt}},l=e=>{if(!r)return;let t=y(e).filter(e=>/\p{sc=Han}\p{sc=Hiragana}/u.test(e.nodeValue??``)&&!e.parentElement.closest(`script,style,textarea,noscript,ruby,[contenteditable]:not([contenteditable=false]),[data-furifont-reading]`));for(let e of t)for(let{at:t,length:n,reading:i,salt:a}of r.find(e.nodeValue??``).reverse()){let r=t?e.splitText(t):e;r.length>n&&r.splitText(n);let o=document.createElement(`span`);o.dataset.furifontReading=i,o.dataset.furifontSalt=String(a),r.replaceWith(o),o.append(r)}},u={dispose:()=>{},sheet:t,family:e,restyle:()=>{let e=Array.from({length:15},(e,t)=>`[data-furifont-salt="${t+1}"]{font-feature-settings:"salt" ${t+1}!important}`).join(``),r=n.map((e,t)=>`[data-furifont="${t}"]{font-family:"${u.family}",${e}!important}`).join(``);t.replaceSync(`${r}[data-furifont-tight]{line-height:normal!important}ruby,ruby *{font-feature-settings:"ss01"!important}${e}`)},okurigana:e=>{let n=++i;r=void 0,s(),e&&!t.disabled&&p(e).then(e=>{n===i&&e&&(r=e,s(),l([document.body]))})}},d=e=>{let t=[...b(e)].filter(e=>!e.hasAttribute(`data-furifont`)).map(e=>{let{fontFamily:t,lineHeight:n,fontSize:r}=getComputedStyle(e),i=a(t);return o(i[0]??``)===u.family&&i.shift(),{element:e,stack:i,tight:Number.parseFloat(n)<1.6*Number.parseFloat(r)}}).filter(({stack:e})=>e.length&&!c(e)),r=n.length;for(let{element:e,stack:r,tight:i}of t){let t=r.join(`,`),a=n.includes(t)?n.indexOf(t):n.push(t)-1;e.setAttribute(`data-furifont`,String(a)),i&&e.setAttribute(`data-furifont-tight`,``)}n.length>r&&u.restyle()},f=new MutationObserver(e=>{let t=e.flatMap(e=>e.type===`characterData`?[e.target]:[...e.addedNodes]);d(t),l(t)});return u.dispose=()=>{f.disconnect(),i++,r=void 0,document.adoptedStyleSheets=document.adoptedStyleSheets.filter(e=>e!==t);for(let e of document.querySelectorAll(`[data-furifont],[data-furifont-tight]`))e.removeAttribute(`data-furifont`),e.removeAttribute(`data-furifont-tight`);for(let e of document.querySelectorAll(`[data-furifont-reading]`))e.replaceWith(...e.childNodes);window.furifont===u&&delete window.furifont},window.furifont=u,document.adoptedStyleSheets=[...document.adoptedStyleSheets,t],d([document.body]),f.observe(document.body,{childList:!0,characterData:!0,subtree:!0}),u}async function S(e){let{family:t,url:n,toast:r,okurigana:i,update:a}=e,o=window.furifont;o?.family===t?(o.sheet.disabled=!o.sheet.disabled,o.sheet.disabled||o.okurigana(i)):(o??=x(t),o.family=t,o.restyle(),o.sheet.disabled=!1,await l(e)?(o.okurigana(i),a&&await v(e,a)):(o.sheet.disabled=!0,o.family=``,h(r.message,[m(n,r)],r.close)))}return e.JAPANESE=i,e.UNICODE_RANGE=r,e.createOkuriganaReader=u,e.isMonospace=c,e.loadFurifont=l,e.loadOkuriganaReader=p,e.parseFontStack=a,e.showToast=h,e.toggleFurifont=S,e})({});
20
20
  ;(function start(manager, toggle, fonts, pairs, script, toasts, menus, detect) {
21
21
  var _a;
22
22
  const locale = detect(navigator.languages);
@@ -55,7 +55,7 @@ var Furifont=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Mod
55
55
  registerOkurigana();
56
56
  if (/^ja(?:-|$)/i.test(document.documentElement.lang))
57
57
  toggle({ ...options(saved), update: update() });
58
- })({ getValue: GM_getValue, setValue: GM_setValue, registerMenuCommand: GM_registerMenuCommand, xmlHttpRequest: GM_xmlhttpRequest }, Furifont.toggleFurifont, [{"family":"Furifont Sans","url":"https://furifont.antfu.me/fonts/FurifontSansVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSansVF.ivs.json?v=0.4.2"},{"family":"Furifont Sans Romaji","url":"https://furifont.antfu.me/fonts/FurifontSansRomajiVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSansRomajiVF.ivs.json?v=0.4.2"},{"family":"Furifont Serif","url":"https://furifont.antfu.me/fonts/FurifontSerifVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSerifVF.ivs.json?v=0.4.2"},{"family":"Furifont Serif Romaji","url":"https://furifont.antfu.me/fonts/FurifontSerifRomajiVF.woff2?v=0.4.2","readings":"https://furifont.antfu.me/fonts/FurifontSerifRomajiVF.ivs.json?v=0.4.2"}], "https://furifont.antfu.me/okurigana.json", {"version":"0.4.2","href":"https://furifont.antfu.me/furifont.user.js"}, {"en":{"message":"Furifont could not load its font on this page. Some sites, such as X and GitHub, do not let fonts load from other sites. On those sites, you must install Furifont on your computer.","download":"Download the fonts","close":"Close","outdated":"A newer version of Furifont is out.","userscript":"Update the userscript","bookmarklet":"Get the new bookmarklet"},"ja":{"message":"このページでは Furifont のフォントを読み込めませんでした。X や GitHub のように、他のサイトのフォントを読み込めないサイトがあります。そのようなサイトでは、パソコンに Furifont をインストールする必要があります。","download":"フォントをダウンロード","close":"閉じる","outdated":"Furifont の新しいバージョンがあります。","userscript":"ユーザースクリプトを更新","bookmarklet":"新しいブックマークレットを入手"},"zh-Hans":{"message":"Furifont 无法在此页面加载字体。有些网站(如 X 和 GitHub)不允许加载其他网站的字体。在这些网站上,需要在电脑上安装 Furifont。","download":"下载字体","close":"关闭","outdated":"Furifont 有新版本了。","userscript":"更新用户脚本","bookmarklet":"获取新的书签小工具"},"zh-Hant":{"message":"Furifont 無法在此頁面載入字型。有些網站(如 X 和 GitHub)不允許載入其他網站的字型。在這些網站上,需要在電腦上安裝 Furifont。","download":"下載字型","close":"關閉","outdated":"Furifont 有新版本了。","userscript":"更新使用者腳本","bookmarklet":"取得新的書籤小工具"}}, {"en":{"okuriganaOn":"Okurigana readings: on","okuriganaOff":"Okurigana readings: off"},"ja":{"okuriganaOn":"送り仮名の読み:オン","okuriganaOff":"送り仮名の読み:オフ"},"zh-Hans":{"okuriganaOn":"送假名读音:开","okuriganaOff":"送假名读音:关"},"zh-Hant":{"okuriganaOn":"送假名讀音:開","okuriganaOff":"送假名讀音:關"}}, function detectLocale(languages) {
58
+ })({ getValue: GM_getValue, setValue: GM_setValue, registerMenuCommand: GM_registerMenuCommand, xmlHttpRequest: GM_xmlhttpRequest }, Furifont.toggleFurifont, [{"family":"Furifont Sans","url":"https://furifont.antfu.me/fonts/FurifontSansVF.woff2?v=0.5.0","readings":"https://furifont.antfu.me/fonts/FurifontSansVF.ivs.json?v=0.5.0"},{"family":"Furifont Sans Romaji","url":"https://furifont.antfu.me/fonts/FurifontSansRomajiVF.woff2?v=0.5.0","readings":"https://furifont.antfu.me/fonts/FurifontSansRomajiVF.ivs.json?v=0.5.0"},{"family":"Furifont Serif","url":"https://furifont.antfu.me/fonts/FurifontSerifVF.woff2?v=0.5.0","readings":"https://furifont.antfu.me/fonts/FurifontSerifVF.ivs.json?v=0.5.0"},{"family":"Furifont Serif Romaji","url":"https://furifont.antfu.me/fonts/FurifontSerifRomajiVF.woff2?v=0.5.0","readings":"https://furifont.antfu.me/fonts/FurifontSerifRomajiVF.ivs.json?v=0.5.0"}], "https://furifont.antfu.me/okurigana.json", {"version":"0.5.0","href":"https://furifont.antfu.me/furifont.user.js"}, {"en":{"message":"Furifont could not load its font on this page. Some sites, such as X and GitHub, do not let fonts load from other sites. On those sites, you must install Furifont on your computer.","download":"Download the fonts","close":"Close","outdated":"A newer version of Furifont is out.","userscript":"Update the userscript","bookmarklet":"Get the new bookmarklet"},"ja":{"message":"このページでは Furifont のフォントを読み込めませんでした。X や GitHub のように、他のサイトのフォントを読み込めないサイトがあります。そのようなサイトでは、パソコンに Furifont をインストールする必要があります。","download":"フォントをダウンロード","close":"閉じる","outdated":"Furifont の新しいバージョンがあります。","userscript":"ユーザースクリプトを更新","bookmarklet":"新しいブックマークレットを入手"},"zh-Hans":{"message":"Furifont 无法在此页面加载字体。有些网站(如 X 和 GitHub)不允许加载其他网站的字体。在这些网站上,需要在电脑上安装 Furifont。","download":"下载字体","close":"关闭","outdated":"Furifont 有新版本了。","userscript":"更新用户脚本","bookmarklet":"获取新的书签小工具"},"zh-Hant":{"message":"Furifont 無法在此頁面載入字型。有些網站(如 X 和 GitHub)不允許載入其他網站的字型。在這些網站上,需要在電腦上安裝 Furifont。","download":"下載字型","close":"關閉","outdated":"Furifont 有新版本了。","userscript":"更新使用者腳本","bookmarklet":"取得新的書籤小工具"}}, {"en":{"okuriganaOn":"Okurigana readings: on","okuriganaOff":"Okurigana readings: off"},"ja":{"okuriganaOn":"送り仮名の読み:オン","okuriganaOff":"送り仮名の読み:オフ"},"zh-Hans":{"okuriganaOn":"送假名读音:开","okuriganaOff":"送假名读音:关"},"zh-Hant":{"okuriganaOn":"送假名讀音:開","okuriganaOff":"送假名讀音:關"}}, function detectLocale(languages) {
59
59
  for (const tag of languages.map((l) => l.toLowerCase())) {
60
60
  if (tag.startsWith("zh"))
61
61
  return /-(?:tw|hk|mo|hant)\b/.test(tag) ? "zh-Hant" : "zh-Hans";
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629473,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CCKNrAp3.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.BSCJYv63.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CCKNrAp3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/IRGIvKlv.js"><script type="module" src="/_nuxt/CCKNrAp3.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/7dpEN058.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DUyBBmcb.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/BK--K-B8.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"efe0e6b4-05bd-4e0b-a04c-7ec5da4143f9",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792121885211,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629472,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CCKNrAp3.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.BSCJYv63.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CCKNrAp3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/IRGIvKlv.js"><script type="module" src="/_nuxt/CCKNrAp3.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/7dpEN058.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DUyBBmcb.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/BK--K-B8.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"efe0e6b4-05bd-4e0b-a04c-7ec5da4143f9",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792121885210,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/C4V-788C.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.C1lnNdD0.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/C4V-788C.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dg3RF8xB.js"><script type="module" src="/_nuxt/C4V-788C.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/CHjPDtV4.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B2JUvp84.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Kki0DvjP.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"95075385-c519-4224-af4d-f5091c1f9663",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792114629472,false]</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Furifont: furigana built into the font</title><script type="importmap">{"imports":{"#entry":"/_nuxt/CCKNrAp3.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.BSCJYv63.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CCKNrAp3.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/y07Wd5I9.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/CkUAspOr.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/D4ezFGbh.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Cl84O_XS.js"><link rel="modulepreload" as="script" crossorigin href="/_nuxt/IRGIvKlv.js"><script type="module" src="/_nuxt/CCKNrAp3.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/7dpEN058.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DUyBBmcb.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/BK--K-B8.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.CaT3AK-0.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B4Fx_Djw.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.WL1uhYQu.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/X45Acd-Y.js"><meta name="description" content="A Japanese font that shows furigana by itself."><meta property="og:type" content="website"><meta property="og:url" content="https://furifont.antfu.me"><meta property="og:title" content="Furifont: furigana built into the font"><meta property="og:description" content="A Japanese font that shows furigana by itself."><meta property="og:image" content="https://furifont.antfu.me/og.png"><meta property="og:image:width" content="2400"><meta property="og:image:height" content="1260"><meta property="og:image:alt" content="Furifont: furigana built into the font"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Furifont: furigana built into the font"><meta name="twitter:description" content="A Japanese font that shows furigana by itself."><meta name="twitter:image" content="https://furifont.antfu.me/og.png"><link rel="icon" type="image/svg+xml" href="favicon.svg"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{devCustomizeBase:"/__furifont/"},app:{baseURL:"/",buildId:"efe0e6b4-05bd-4e0b-a04c-7ec5da4143f9",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792121885210,false]</script></body></html>
@@ -1 +1 @@
1
- {"version":"0.4.2"}
1
+ {"version":"0.5.0"}
@@ -10,7 +10,7 @@ import { randomUUID } from "node:crypto";
10
10
  import * as v from "valibot";
11
11
  //#region package.json
12
12
  var name = "furifont";
13
- var version = "0.4.2";
13
+ var version = "0.5.0";
14
14
  var description = "Build Japanese fonts that show furigana by themselves, from the command line or a local studio";
15
15
  var homepage = "https://github.com/antfu/furifont#readme";
16
16
  //#endregion
@@ -58,17 +58,31 @@ const coverages = /* @__PURE__ */ new Map();
58
58
  function getDictionary() {
59
59
  return dictionary ??= loadDictionary();
60
60
  }
61
- /** Plans a font for `config`; with `previewText`, only what that text needs. */
62
- async function planWithBase(config, cwd, previewText) {
61
+ /** The planner, and the base font's path with the codepoints it draws. */
62
+ async function plannerFor(config, cwd) {
63
63
  planner ??= getDictionary().then(createFontPlanner);
64
64
  const base = await resolveBase(config.base, cwd);
65
65
  let coverage = coverages.get(base);
66
66
  if (!coverage) coverages.set(base, coverage = readFile(base).then((font) => new Set(readFontInfo(font).codepoints)));
67
67
  return {
68
- ...(await planner)(config, await coverage, previewText),
68
+ plan: await planner,
69
+ base,
70
+ coverage: await coverage
71
+ };
72
+ }
73
+ /** Plans a font for `config`; with `previewText`, only what that text needs. */
74
+ async function planWithBase(config, cwd, previewText) {
75
+ const { plan, base, coverage } = await plannerFor(config, cwd);
76
+ return {
77
+ ...plan(config, coverage, previewText),
69
78
  base
70
79
  };
71
80
  }
81
+ /** Every word of the dictionary, most common first, as `config` skips, takes or leaves it. */
82
+ async function bucketWords(config, cwd) {
83
+ const { plan, coverage } = await plannerFor(config, cwd);
84
+ return plan.wordBuckets(config, coverage);
85
+ }
72
86
  /** `<Family>-<Style>`, or a variable font's `<Family>`: its one file has every style. */
73
87
  function fileStem(config, { style, variable }) {
74
88
  const family = config.family.replaceAll(" ", "");
@@ -178,4 +192,4 @@ async function loadConfig(cwd, path = CONFIG_FILE) {
178
192
  return result.output;
179
193
  }
180
194
  //#endregion
181
- export { buildFont as a, planWithBase as c, homepage as d, name as f, loadConfig as i, previewFont as l, FONT_FORMATS as n, estimateFont as o, version as p, FurifontConfigSchema as r, getDictionary as s, CONFIG_FILE as t, description as u };
195
+ export { bucketWords as a, getDictionary as c, description as d, homepage as f, loadConfig as i, planWithBase as l, version as m, FONT_FORMATS as n, buildFont as o, name as p, FurifontConfigSchema as r, estimateFont as s, CONFIG_FILE as t, previewFont as u };
package/dist/devframe.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { d as homepage, f as name, p as version, u as description } from "./config-BHN-5b6L.mjs";
2
- import { n as STUDIO_ID, r as setupStudio } from "./studio-bPS1eciv.mjs";
1
+ import { d as description, f as homepage, m as version, p as name } from "./config-CNDZmTlF.mjs";
2
+ import { n as STUDIO_ID, r as setupStudio } from "./studio-JiPccKUS.mjs";
3
3
  import { defineDevframe } from "devframe";
4
4
  import { fileURLToPath } from "node:url";
5
5
  //#region src/devframe.ts