furifont 0.2.0 → 0.3.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 (51) hide show
  1. package/dist/cli.mjs +1 -1
  2. package/dist/client/200.html +1 -1
  3. package/dist/client/404.html +1 -1
  4. package/dist/client/_nuxt/B4Fx_Djw.js +1 -0
  5. package/dist/client/_nuxt/B7HtXrdR.js +1 -0
  6. package/dist/client/_nuxt/BJuAqPpj.js +75 -0
  7. package/dist/client/_nuxt/BT-EKmMU.js +1 -0
  8. package/dist/client/_nuxt/{D8T7CxEJ.js → BjcMHMZP.js} +1 -1
  9. package/dist/client/_nuxt/Bkx7_K1f.js +3 -0
  10. package/dist/client/_nuxt/Bzck4lmu.js +1 -0
  11. package/dist/client/_nuxt/Cax8MU2E.js +1 -0
  12. package/dist/client/_nuxt/Cj8LKW1j.js +2 -0
  13. package/dist/client/_nuxt/Cl84O_XS.js +1 -0
  14. package/dist/client/_nuxt/CmFwbX1G.js +1 -0
  15. package/dist/client/_nuxt/DAr951Yq.js +1 -0
  16. package/dist/client/_nuxt/{5JUjClMv.js → DFtcLD73.js} +2 -2
  17. package/dist/client/_nuxt/{Sgj54NgJ.js → DHMCzW9E.js} +1 -1
  18. package/dist/client/_nuxt/D_G0KgX8.js +1 -0
  19. package/dist/client/_nuxt/{B8uEzYfq.js → X45Acd-Y.js} +1 -1
  20. package/dist/client/_nuxt/builds/latest.json +1 -1
  21. package/dist/client/_nuxt/builds/meta/82c26edb-3432-469a-acfa-8475fa64227b.json +1 -0
  22. package/dist/client/_nuxt/entry.D1RJUMvH.css +1 -0
  23. package/dist/client/_nuxt/error-404.CaT3AK-0.css +1 -0
  24. package/dist/client/_nuxt/error-500.WL1uhYQu.css +1 -0
  25. package/dist/client/_nuxt/lFAKI2D3.js +1 -0
  26. package/dist/client/_nuxt/{VtV-OZNb.js → y75lAtyQ.js} +2 -2
  27. package/dist/client/customize/index.html +1 -1
  28. package/dist/client/furifont.user.js +2 -2
  29. package/dist/client/index.html +1 -1
  30. package/dist/client/reference/index.html +1 -1
  31. package/dist/client/report/index.html +1 -0
  32. package/dist/client/version.json +1 -1
  33. package/dist/{config-B9fOD9wc.mjs → config-NmS4azuQ.mjs} +1 -1
  34. package/dist/devframe.mjs +2 -2
  35. package/dist/index.d.mts +4 -0
  36. package/dist/index.mjs +2 -2
  37. package/dist/{studio-IpmE7PF6.mjs → studio-CJIk4xnE.mjs} +1 -1
  38. package/package.json +4 -4
  39. package/dist/client/_nuxt/BGvM1Idk.js +0 -2
  40. package/dist/client/_nuxt/BI2Q9Enf.js +0 -1
  41. package/dist/client/_nuxt/Bo7DzF0m.js +0 -1
  42. package/dist/client/_nuxt/Ckc75SSp.js +0 -1
  43. package/dist/client/_nuxt/DBjETv8r.js +0 -1
  44. package/dist/client/_nuxt/IB1Ryazr.js +0 -3
  45. package/dist/client/_nuxt/IYM3Ipyg.js +0 -1
  46. package/dist/client/_nuxt/OTZjk4e0.js +0 -75
  47. package/dist/client/_nuxt/OoUlbf8J.js +0 -1
  48. package/dist/client/_nuxt/builds/meta/0a20d338-7497-4d3f-82e8-9f5ae0d7be3d.json +0 -1
  49. package/dist/client/_nuxt/entry.z8A6-8bZ.css +0 -1
  50. package/dist/client/_nuxt/error-404.DqUWOYf4.css +0 -1
  51. package/dist/client/_nuxt/error-500.BYTKxx4O.css +0 -1
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a as buildFont, i as loadConfig, n as FONT_FORMATS, p as version, r as FurifontConfigSchema, t as CONFIG_FILE } from "./config-B9fOD9wc.mjs";
1
+ import { a as buildFont, i as loadConfig, n as FONT_FORMATS, p as version, r as FurifontConfigSchema, t as CONFIG_FILE } from "./config-NmS4azuQ.mjs";
2
2
  import { relative } from "node:path";
3
3
  import process from "node:process";
4
4
  import { RUBY_SCRIPTS } from "@furifont/core";
@@ -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/IB1Ryazr.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.z8A6-8bZ.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/IB1Ryazr.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/Sgj54NgJ.js"><script type="module" src="/_nuxt/IB1Ryazr.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/OoUlbf8J.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DBjETv8r.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Bo7DzF0m.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.DqUWOYf4.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/BI2Q9Enf.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BYTKxx4O.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B8uEzYfq.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:"0a20d338-7497-4d3f-82e8-9f5ae0d7be3d",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792055149748,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/Bkx7_K1f.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.D1RJUMvH.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bkx7_K1f.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/DHMCzW9E.js"><script type="module" src="/_nuxt/Bkx7_K1f.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/D_G0KgX8.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Bzck4lmu.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DAr951Yq.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:"82c26edb-3432-469a-acfa-8475fa64227b",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792067815785,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/IB1Ryazr.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.z8A6-8bZ.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/IB1Ryazr.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/Sgj54NgJ.js"><script type="module" src="/_nuxt/IB1Ryazr.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/OoUlbf8J.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DBjETv8r.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Bo7DzF0m.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-404.DqUWOYf4.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/BI2Q9Enf.js"><link rel="prefetch" as="style" crossorigin href="/_nuxt/error-500.BYTKxx4O.css"><link rel="prefetch" as="script" crossorigin href="/_nuxt/B8uEzYfq.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:"0a20d338-7497-4d3f-82e8-9f5ae0d7be3d",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792055149748,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/Bkx7_K1f.js"}}</script><link rel="stylesheet" href="/_nuxt/entry.D1RJUMvH.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/Bkx7_K1f.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/DHMCzW9E.js"><script type="module" src="/_nuxt/Bkx7_K1f.js" crossorigin></script><link rel="prefetch" as="script" crossorigin href="/_nuxt/D_G0KgX8.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/Bzck4lmu.js"><link rel="prefetch" as="script" crossorigin href="/_nuxt/DAr951Yq.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:"82c26edb-3432-469a-acfa-8475fa64227b",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1792067815785,false]</script></body></html>
@@ -0,0 +1 @@
1
+ import{A as e,C as t,E as n,Ht as r,Y as i,at as a,j as o,t as s}from"./CkUAspOr.js";import{t as c}from"./Cl84O_XS.js";import{n as l}from"#entry";var u={class:`antialiased bg-white dark:bg-neutral-950 dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-neutral-950 tracking-wide`},d={class:`max-w-520px text-center`},f=[`textContent`],p=[`textContent`],m=[`textContent`],h={class:`flex items-center justify-center w-full`},g=[`textContent`],_=s({__name:`error-404`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:404},statusText:{type:String,default:`Page not found`},description:{type:String,default:`Sorry, the page you are looking for could not be found.`},backHome:{type:String,default:`Go back home`},backToPrevious:{type:String,default:`Go back`}},setup(s){let _=s;return l({title:`${_.status} - ${_.statusText} | ${_.appName}`,script:[{innerHTML:`(()=>{if(!(window.history.state&&window.history.state.back||document.referrer.startsWith(window.location.origin+"/")))return;const t=document.querySelector("[data-back-home]"),e=document.querySelector("[data-back-previous]");t&&e&&(e.onclick=()=>window.history.back(),t.hidden=!0,e.hidden=!1)})();`,tagPosition:`bodyClose`}],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb);--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body,button{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{-webkit-text-decoration:inherit;text-decoration:inherit}a,button{color:inherit}button{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;padding:0;text-transform:none;cursor:pointer}[type=button],button{-webkit-appearance:button;background-color:#0000;background-image:none}h1,h2,p{margin:0}[hidden]:where(:not([hidden=until-found])){display:none}`}]}),(l,_)=>{let v=c;return i(),n(`div`,u,[t(`div`,d,[t(`h1`,{class:`font-medium leading-none mb-4 sm:text-[72px] tabular-nums text-[56px]`,textContent:r(s.status)},null,8,f),t(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:r(s.statusText)},null,8,p),t(`p`,{class:`mb-4 px-2 text-md text-neutral-500`,textContent:r(s.description)},null,8,m),t(`div`,h,[o(v,{to:`/`,"data-back-home":``,class:`font-medium hover:text-[#00DC82] text-sm underline underline-offset-3`},{default:a(()=>[e(r(s.backHome),1)]),_:1}),_[0]||=e(),t(`button`,{type:`button`,"data-back-previous":``,hidden:``,class:`appearance-none bg-transparent border-0 cursor-pointer font-medium font-sans hover:text-[#00DC82] p-0 text-inherit text-sm underline underline-offset-3`,textContent:r(s.backToPrevious)},null,8,g)])])])}}},[[`__scopeId`,`data-v-f4c4608f`]]);export{_ as default};
@@ -0,0 +1 @@
1
+ import{C as e,E as t,Ht as n,N as r,Q as i,T as a,Y as o,j as s}from"./CkUAspOr.js";import{t as c}from"./DHMCzW9E.js";var l={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function u(e){return e?{lang:e?.lang??void 0,message:e?.message,abortEarly:e?.abortEarly??void 0,abortPipeEarly:e?.abortPipeEarly??void 0}:l}function d(e){let t=typeof e;return t===`string`?`"${e}"`:t===`number`||t===`bigint`||t===`boolean`?`${e}`:t===`object`||t===`function`?(e&&Object.getPrototypeOf(e)?.constructor?.name)??`null`:t}function f(e,t,n,r,i){let a=i&&`input`in i?i.input:n.value,o=i?.expected??e.expects??null,s=i?.received??d(a),c={kind:e.kind,type:e.type,input:a,expected:o,received:s,message:`Invalid ${t}: ${o?`Expected ${o} but r`:`R`}eceived ${s}`,requirement:e.requirement,path:i?.path,issues:i?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},l=e.kind===`schema`,u=i?.message??e.message??(e.reference,c.lang,void 0)??(l?(c.lang,void 0):null)??r.message??(c.lang,void 0);u!==void 0&&(c.message=typeof u==`function`?u(c):u),l&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}function p(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function m(e,t){let n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??`never`}function h(e){return e[`~standard`]={version:1,vendor:`valibot`,validate:t=>e[`~run`]({value:t},u())},e}var g=class extends Error{constructor(e){super(e[0].message),this.name=`ValiError`,this.issues=e}};function _(e,t){return{kind:`validation`,type:`check`,reference:_,async:!1,expects:null,requirement:e,message:t,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&f(this,`input`,e,t),e}}}function v(e){return{kind:`validation`,type:`empty`,reference:v,async:!1,expects:`0`,message:e,"~run"(e,t){return e.typed&&e.value.length>0&&f(this,`length`,e,t,{received:`${e.value.length}`}),e}}}function y(e){return{kind:`validation`,type:`integer`,reference:y,async:!1,expects:null,requirement:Number.isInteger,message:e,"~run"(e,t){return e.typed&&!this.requirement(e.value)&&f(this,`integer`,e,t),e}}}function b(e,t){return{kind:`validation`,type:`max_length`,reference:b,async:!1,expects:`<=${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&e.value.length>this.requirement&&f(this,`length`,e,t,{received:`${e.value.length}`}),e}}}function x(e,t){return{kind:`validation`,type:`max_value`,reference:x,async:!1,expects:`<=${e instanceof Date?e.toJSON():d(e)}`,requirement:e,message:t,"~run"(e,t){return e.typed&&!(e.value<=this.requirement)&&f(this,`value`,e,t,{received:e.value instanceof Date?e.value.toJSON():d(e.value)}),e}}}function S(e,t){return{kind:`validation`,type:`min_length`,reference:S,async:!1,expects:`>=${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&e.value.length<this.requirement&&f(this,`length`,e,t,{received:`${e.value.length}`}),e}}}function C(e,t){return{kind:`validation`,type:`min_value`,reference:C,async:!1,expects:`>=${e instanceof Date?e.toJSON():d(e)}`,requirement:e,message:t,"~run"(e,t){return e.typed&&!(e.value>=this.requirement)&&f(this,`value`,e,t,{received:e.value instanceof Date?e.value.toJSON():d(e.value)}),e}}}function w(e){return{kind:`validation`,type:`non_empty`,reference:w,async:!1,expects:`!0`,message:e,"~run"(e,t){return e.typed&&e.value.length===0&&f(this,`length`,e,t,{received:`0`}),e}}}function T(e,t){return{kind:`validation`,type:`regex`,reference:T,async:!1,expects:`${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&!this.requirement.test(e.value)&&f(this,`format`,e,t),e}}}function E(e){return{kind:`transformation`,type:`transform`,reference:E,async:!1,operation:e,"~run"(e){return e.value=this.operation(e.value),e}}}function D(){return{kind:`transformation`,type:`trim`,reference:D,async:!1,"~run"(e){return e.value=e.value.trim(),e}}}function O(e,t,n){return typeof e.fallback==`function`?e.fallback(t,n):e.fallback}function k(e,t,n){return typeof e.default==`function`?e.default(t,n):e.default}function A(e,t){return h({kind:`schema`,type:`array`,reference:A,expects:`Array`,async:!1,item:e,message:t,"~run"(e,t){let n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<n.length;r++){let i=n[r],a=this.item[`~run`]({value:i},t);if(a.issues){let o={type:`array`,origin:`value`,input:n,key:r,value:i};for(let t of a.issues)t.path?t.path.unshift(o):t.path=[o],e.issues?.push(t);if(e.issues||=a.issues,t.abortEarly){e.typed=!1;break}}a.typed||(e.typed=!1),e.value.push(a.value)}}else f(this,`type`,e,t);return e}})}function j(e){return h({kind:`schema`,type:`boolean`,reference:j,expects:`boolean`,async:!1,message:e,"~run"(e,t){return typeof e.value==`boolean`?e.typed=!0:f(this,`type`,e,t),e}})}function M(e,t){return h({kind:`schema`,type:`literal`,reference:M,expects:d(e),async:!1,literal:e,message:t,"~run"(e,t){return p(e.value,this.literal)?e.typed=!0:f(this,`type`,e,t),e}})}function N(e){return h({kind:`schema`,type:`number`,reference:N,expects:`number`,async:!1,message:e,"~run"(e,t){return typeof e.value==`number`&&!isNaN(e.value)?e.typed=!0:f(this,`type`,e,t),e}})}function P(e,t){return h({kind:`schema`,type:`object`,reference:P,expects:`Object`,async:!1,entries:e,message:t,"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let r in this.entries){let i=this.entries[r];if(r in n||(i.type===`exact_optional`||i.type===`optional`||i.type===`nullish`)&&i.default!==void 0){let a=r in n?n[r]:k(i),o=i[`~run`]({value:a},t);if(o.issues){let i={type:`object`,origin:`value`,input:n,key:r,value:a};for(let t of o.issues)t.path?t.path.unshift(i):t.path=[i],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}o.typed||(e.typed=!1),e.value[r]=o.value}else if(i.fallback!==void 0)e.value[r]=O(i);else if(i.type!==`exact_optional`&&i.type!==`optional`&&i.type!==`nullish`&&(f(this,`key`,e,t,{input:void 0,expected:`"${r}"`,path:[{type:`object`,origin:`key`,input:n,key:r,value:n[r]}]}),t.abortEarly))break}}else f(this,`type`,e,t);return e}})}function F(e,t){return h({kind:`schema`,type:`optional`,reference:F,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,"~run"(e,t){return e.value===void 0&&(this.default!==void 0&&(e.value=k(this,e,t)),e.value===void 0)?(e.typed=!0,e):this.wrapped[`~run`](e,t)}})}function I(e,t){return h({kind:`schema`,type:`picklist`,reference:I,expects:m(e.map(d),`|`),async:!1,options:e,message:t,"~run"(e,t){return this.options.includes(e.value)?e.typed=!0:f(this,`type`,e,t),e}})}function L(e){return h({kind:`schema`,type:`string`,reference:L,expects:`string`,async:!1,message:e,"~run"(e,t){return typeof e.value==`string`?e.typed=!0:f(this,`type`,e,t),e}})}function R(e,t,n){let r=e[`~run`]({value:t},u(n));if(r.issues)throw new g(r.issues);return r.value}function z(...e){return h({...e[0],pipe:e,"~run"(t,n){for(let r of e)if(r.kind!==`metadata`){if(t.issues&&(r.kind===`schema`||r.kind===`transformation`)){t.typed=!1;break}(!t.issues||!n.abortEarly&&!n.abortPipeEarly)&&(t=r[`~run`](t,n))}return t}})}function B(e,t,n){let r=e[`~run`]({value:t},u(n));return{typed:r.typed,success:!r.issues,output:r.value,issues:r.issues}}var V={class:`relative border-t border-base`},H={key:0,class:`flex items-baseline gap-3 border-b border-base px-6 py-3`},U={key:0,class:`label`},W={class:`label color-base`},G=Object.assign(r({__name:`UiSection`,props:{index:{},title:{}},setup(r){return(l,u)=>{let d=c;return o(),t(`section`,V,[s(d,{class:`-left-[6px] -top-[6px]`}),s(d,{class:`-right-[6px] -top-[6px]`}),r.title?(o(),t(`header`,H,[r.index?(o(),t(`span`,U,n(r.index),1)):a(``,!0),e(`h2`,W,n(r.title),1),i(l.$slots,`aside`)])):a(``,!0),i(l.$slots,`default`)])}}}),{__name:`UiSection`});export{D as C,E as S,I as _,v as a,B as b,b as c,C as d,w as f,R as g,F as h,_ as i,x as l,P as m,A as n,y as o,N as p,j as r,M as s,G as t,S as u,z as v,L as x,T as y};
@@ -0,0 +1,75 @@
1
+ import{B as e,C as t,E as n,Ht as r,N as i,Q as a,Vt as o,Y as s,Z as c,_ as l,ot as u,tt as d,zt as f}from"./CkUAspOr.js";import{i as p,o as m}from"./D4ezFGbh.js";var h=[{text:`今日は桜が満開
2
+ 新幹線で京都まで`,reading:`きょうはさくらがまんかい
3
+ しんかんせんできょうとまで`},{text:`東京特許許可局`,reading:`とうきょうとっきょきょかきょく`},{text:`ひさかたの
4
+ 光のどけき
5
+ 春の日に
6
+ しづ心なく
7
+ 花の散るらむ`,reading:`ひさかたの
8
+ ひかりのどけき
9
+ はるのひに
10
+ しづこころなく
11
+ はなのちるらむ`,author:`紀友則`},{text:`花さそふ
12
+ 嵐の庭の
13
+ 雪ならで
14
+ ふりゆくものは
15
+ わが身なりけり`,reading:`はなさそふ
16
+ あらしのにわの
17
+ ゆきならで
18
+ ふりゆくものは
19
+ わがみなりけり`,author:`入道前太政大臣`},{text:`いのちなき
20
+ 砂のかなしさよ
21
+ さらさらと
22
+ 握れば指の
23
+ あひだより落つ`,reading:`いのちなき
24
+ すなのかなしさよ
25
+ さらさらと
26
+ にぎればゆびの
27
+ あひだよりおつ`,author:`石川啄木`},{text:`かにかくに
28
+ 祇園はこひし
29
+ 寝るときも
30
+ 枕のしたを
31
+ 水のながるる`,reading:`かにかくに
32
+ ぎおんはこひし
33
+ ねるときも
34
+ まくらのしたを
35
+ みずのながるる`,author:`吉井勇`},{text:`この味が
36
+ いいねと君が
37
+ 言ったから
38
+ 七月六日は
39
+ サラダ記念日`,reading:`このあじが
40
+ いいねときみが
41
+ いったから
42
+ しちがつむいかは
43
+ さらだきねんび`,author:`俵万智`},{text:`柿くへば
44
+ 鐘が鳴るなり
45
+ 法隆寺`,reading:`かきくへば
46
+ かねがなるなり
47
+ ほうりゅうじ`,author:`正岡子規`},{text:`菜の花や
48
+ 月は東に
49
+ 日は西に`,reading:`なのはなや
50
+ つきはひがしに
51
+ ひはにしに`,author:`与謝蕪村`},{text:`朝顔に
52
+ つるべとられて
53
+ もらひ水`,reading:`あさがおに
54
+ つるべとられて
55
+ もらひみず`,author:`加賀千代女`},{text:`閑さや
56
+ 岩にしみ入る
57
+ 蝉の声`,reading:`しずけさや
58
+ いわにしみいる
59
+ せみのこえ`,author:`松尾芭蕉`},{text:`海を知らぬ
60
+ 少女の前に
61
+ 麦藁帽の
62
+ われは両手を
63
+ ひろげていたり`,reading:`うみをしらぬ
64
+ しょうじょのまえに
65
+ むぎわらぼうの
66
+ われはりょうてを
67
+ ひろげていたり`,author:`寺山修司`},{text:`五月雨を
68
+ 集めて早し
69
+ 最上川`,reading:`さみだれを
70
+ あつめてはやし
71
+ もがみがわ`,author:`松尾芭蕉`},{text:`我と来て
72
+ 遊べや親の
73
+ ない雀`,reading:`われときて
74
+ あそべやおやの
75
+ ないすずめ`,author:`小林一茶`}];function g(e){let t=h.filter(t=>t.text!==e);return t[Math.floor(Math.random()*t.length)]}var _=[`aria-label`],v=[`aria-checked`,`onClick`],y=Object.assign(i({__name:`UiSegmented`,props:e({options:{},label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=d(e,`modelValue`);return(i,a)=>(s(),n(`div`,{role:`radiogroup`,"aria-label":e.label,class:`inline-flex border border-strong w-fit`},[(s(!0),n(l,null,c(e.options,(e,i)=>(s(),n(`button`,{key:e.value,type:`button`,role:`radio`,"aria-checked":t.value===e.value,class:f([`focus-ring h-8 px-3 text-xs font-medium transition-colors`,[t.value===e.value?`bg-inverse color-inverse`:`color-muted hover:color-base hover:bg-hover`,i>0&&(t.value===e.value?`border-l border-inverse`:`border-l border-strong`)]]),onClick:n=>t.value=e.value},r(e.label),11,v))),128))],8,_))}}),{__name:`UiSegmented`}),b=[`min`,`max`,`step`],x=Object.assign(i({__name:`UiSlider`,props:e({min:{},max:{},step:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=d(e,`modelValue`);return(r,i)=>u((s(),n(`input`,{"onUpdate:modelValue":i[0]||=e=>t.value=e,type:`range`,min:e.min,max:e.max,step:e.step,class:`slider`,style:o({"--slider-fraction":(t.value-e.min)/(e.max-e.min)})},null,12,b)),[[m,t.value,void 0,{number:!0}]])}}),{__name:`UiSlider`}),S={class:`inline-flex cursor-pointer items-center gap-2 text-sm select-none`},C=Object.assign(i({__name:`UiToggle`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let r=d(e,`modelValue`);return(e,i)=>(s(),n(`label`,S,[u(t(`input`,{"onUpdate:modelValue":i[0]||=e=>r.value=e,type:`checkbox`,class:`peer sr-only`},null,512),[[p,r.value]]),t(`span`,{class:f([`relative h-4 w-7 border transition-colors peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 peer-focus-visible:outline-[var(--ff-fg)]`,r.value?`border-inverse bg-inverse`:`border-strong bg-base`])},[t(`span`,{class:f([`absolute top-[2px] size-[10px] transition-all`,r.value?`left-[14px] bg-base`:`left-[2px] bg-inverse`])},null,2)],2),a(e.$slots,`default`)]))}}),{__name:`UiToggle`});export{g as a,h as i,x as n,y as r,C as t};
@@ -0,0 +1 @@
1
+ import{C as e,E as t,Ht as n,N as r,Q as i,S as a,T as o,Y as s,at as c,bt as l,w as u,zt as d}from"./CkUAspOr.js";import{t as f}from"./Cl84O_XS.js";var p={class:`flex flex-col gap-1.5`},m={class:`label`},h={key:0,class:`text-xs color-muted`},g=Object.assign(r({__name:`UiField`,props:{label:{},hint:{}},setup(r){return(a,c)=>(s(),t(`label`,p,[e(`span`,m,n(r.label),1),i(a.$slots,`default`),r.hint?(s(),t(`span`,h,n(r.hint),1)):o(``,!0)]))}}),{__name:`UiField`}),_=[`href`],v=Object.assign(r({__name:`UiButton`,props:{variant:{default:`outline`},to:{},href:{},icon:{}},setup(e){let n=a(()=>[`btn-${e.variant}`,`focus-ring`]);return(r,a)=>{let p=f;return e.to?(s(),u(p,{key:0,to:e.to,class:d(l(n))},{default:c(()=>[e.icon?(s(),t(`span`,{key:0,class:d(e.icon)},null,2)):o(``,!0),i(r.$slots,`default`)]),_:3},8,[`to`,`class`])):e.href?(s(),t(`a`,{key:1,href:e.href,target:`_blank`,rel:`noopener`,class:d(l(n))},[e.icon?(s(),t(`span`,{key:0,class:d(e.icon)},null,2)):o(``,!0),i(r.$slots,`default`)],10,_)):(s(),t(`button`,{key:2,type:`button`,class:d(l(n))},[e.icon?(s(),t(`span`,{key:0,class:d(e.icon)},null,2)):o(``,!0),i(r.$slots,`default`)],2))}}}),{__name:`UiButton`});export{g as n,v as t};
@@ -1 +1 @@
1
- import{t as e}from"./VtV-OZNb.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a).catch(()=>{}))}))},s=a(o),l=e.events.on(`connection:status`,e=>{e===`connected`&&o()});return o(),()=>{n=!0,s(),l()}}export{l as setupBrowserAgentRpcBridge};
1
+ import{t as e}from"./y75lAtyQ.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a).catch(()=>{}))}))},s=a(o),l=e.events.on(`connection:status`,e=>{e===`connected`&&o()});return o(),()=>{n=!0,s(),l()}}export{l as setupBrowserAgentRpcBridge};
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Cj8LKW1j.js","./CkUAspOr.js","./y07Wd5I9.js","./D4ezFGbh.js","./DHMCzW9E.js","./B7HtXrdR.js","./CmFwbX1G.js","./BJuAqPpj.js","./BT-EKmMU.js","./Cl84O_XS.js","./lFAKI2D3.js","./Cax8MU2E.js","./DFtcLD73.js","./B4Fx_Djw.js","./error-404.CaT3AK-0.css","./X45Acd-Y.js","./error-500.WL1uhYQu.css"])))=>i.map(i=>d[i]);
2
+ import{n as e}from"./y07Wd5I9.js";import{$ as t,A as n,Bt as r,C as i,E as a,F as o,G as s,Gt as c,H as l,Ht as u,I as d,K as f,Kt as p,L as m,M as h,N as g,P as _,R as v,S as y,T as b,U as x,W as S,Wt as C,X as w,Y as T,Z as E,_ as D,at as O,bt as k,c as ee,ct as te,et as ne,f as A,ft as re,gt as ie,ht as ae,i as j,it as M,j as N,k as oe,lt as se,m as ce,mt as le,n as ue,o as P,ot as F,p as I,pt as L,r as de,rt as fe,s as pe,u as me,ut as he,v as ge,vt as _e,w as R,y as ve,yt as ye,z as be,zt as z}from"./CkUAspOr.js";import{a as xe,n as Se,r as Ce}from"./D4ezFGbh.js";import{$ as we,A as Te,B,C as Ee,Ct as De,D as Oe,E as V,F as ke,G as H,H as U,I as Ae,J as je,K as W,L as Me,M as Ne,N as Pe,O as Fe,P as Ie,Q as Le,R as Re,S as ze,St as Be,T as Ve,U as He,V as Ue,W as We,X as Ge,Y as G,Z as Ke,_ as qe,_t as Je,a as Ye,at as Xe,b as Ze,bt as Qe,c as $e,ct as K,d as et,dt as tt,et as nt,f as rt,ft as it,g as at,gt as ot,h as st,ht as ct,it as lt,j as ut,k as dt,l as q,lt as ft,m as J,mt as pt,nt as mt,o as ht,ot as gt,p as _t,pt as vt,q as yt,r as bt,rt as xt,s as St,st as Ct,t as wt,tt as Tt,u as Et,ut as Dt,v as Ot,vt as kt,w as Y,x as At,xt as jt,y as Mt,yt as Nt,z as Pt}from"./Cl84O_XS.js";import{c as Ft,f as It,i as Lt,n as Rt,r as zt,s as Bt,t as Vt}from"./DHMCzW9E.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Ht=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Ut=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Wt=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Gt(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)Kt(e);else return t}function Kt(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function qt(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Wt.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(Ht.test(e)||Ut.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,Gt)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}var Jt=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function Yt(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new Jt(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:`<no response>`}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var Xt=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function Zt(e=`GET`){return Xt.has(e.toUpperCase())}function Qt(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var $t=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),en=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function tn(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return en.test(t)?`json`:t===`text/event-stream`?`stream`:$t.has(t)||t.startsWith(`text/`)?`text`:`blob`}function nn(e,t,n,r){let i=rn(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function rn(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function an(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var on=new Set([408,409,425,429,500,502,503,504]),sn=new Set([101,204,205,304]);function cn(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!Zt(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):on.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=Yt(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:nn(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await an(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=jt(s.request,s.options.baseURL)),s.options.query&&(s.request=Be(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&Zt(s.options.method)){if(Qt(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await an(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!sn.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||tn(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||qt;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await an(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await an(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>cn({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var ln=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),un=ln.fetch?(...e)=>ln.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),dn=ln.Headers,fn=ln.AbortController,pn=cn({fetch:un,Headers:dn,AbortController:fn}),mn=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,hn=()=>mn().app,gn=()=>hn().baseURL,_n=()=>hn().buildAssetsDir,vn=(...e)=>Nt(yn(),_n(),...e),yn=(...e)=>{let t=hn(),n=t.cdnURL||t.baseURL;return e.length?Nt(n,...e):n};globalThis.__buildAssetsURL=vn,globalThis.__publicAssetsURL=yn,globalThis.$fetch||(globalThis.$fetch=pn.create({baseURL:gn()}));var bn=globalThis.$fetch;`global`in globalThis||(globalThis.global=globalThis);function xn(e,t){t.push(ee),e.vueApp.use(t);let n=!0,r=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||r()}),e.hooks.hook(`app:error`,r),e.hooks.hook(`app:suspense:resolve`,r);let i=t.push.bind(t);t.push=((t,n)=>{let r=i(t,n),a=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(a):a()},r})}function Sn(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function Cn(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>Sn(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}var wn=new Set([`link`,`style`,`script`,`noscript`]),Tn=new Set([`title`,`titleTemplate`,`script`,`style`,`noscript`]),En=new Set([`base`,`meta`,`link`,`style`,`script`,`noscript`]),Dn=new Set([`title`,`base`,`htmlAttrs`,`bodyAttrs`,`meta`,`link`,`style`,`script`,`noscript`]),On=new Set([`base`,`title`,`titleTemplate`,`bodyAttrs`,`htmlAttrs`,`templateParams`]),kn=new Set([`key`,`tagPosition`,`tagPriority`,`tagDuplicateStrategy`,`innerHTML`,`textContent`,`processTemplateParams`]),An=new Set([`templateParams`,`htmlAttrs`,`bodyAttrs`]),jn=new Set([`theme-color`,`google-site-verification`,`author`,`og:locale:alternate`,`og:image`,`og:video`,`og:audio`,`article:author`,`article:tag`,`book:author`,`book:tag`,`twitter:image`]),Mn={critical:-8,high:-1,low:2},Nn=e=>typeof e==`number`?Number.isFinite(e):e;function Pn(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function Fn(e){let t=new ce;for(let n in e||{})t.hook(n,e[n]);return t}function X(e,t,n){if(e.hooks?._hooks?.[t]?.length)return e.hooks?.callHook(t,n)}function In(e,t,n){let r=e.push,i=e;i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>Sn(i,e),i.render=()=>n(i);function a(){t.callHook(`entries:updated`,i),i._b||i.render()}return i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,a()},i.push=(n,o)=>{let s=o?.onRendered?t.hook(`dom:rendered`,o.onRendered):void 0,c=r(n,o),l=e.entries.get(c._i);return l&&(l._o=n),i.dirty=!0,a(),{_i:c._i,patch(e){c.patch(e),i.dirty=!0,a()},dispose(){s?.(),e.entries.has(c._i)&&(c.dispose(),i.invalidate())}}},i}var Ln=/^(?:viewport|description|keywords|robots)$/,Rn=[`name`,`property`,`http-equiv`];function zn(e){let t=e.indexOf(`:`);if(t===-1)return!1;let n=e.slice(t+1);return jn.has(n)||n.startsWith(`og:image:`)||n.startsWith(`og:video:`)||n.startsWith(`og:audio:`)||n.startsWith(`twitter:image:`)}function Bn(e){let{props:t,tag:n,key:r}=e;if(On.has(n))return n;if(n===`link`){if(t.rel===`canonical`)return`canonical`;if(t.rel===`alternate`&&t.hreflang)return`alternate:${t.hreflang}`}if(t.charset)return`charset`;if(n===`meta`)for(let e of Rn){let n=t[e];if(n!==void 0)return`meta:${n}${(typeof n!=`string`||!n.includes(`:`))&&!Ln.test(n)&&r?`:key:${r}`:``}`}return r?`${n}:key:${r}`:t.id?`${n}:id:${t.id}`:n===`link`&&t.rel&&t.href?`link:${t.rel}:${t.href}`:Tn.has(n)&&(e.textContent||e.innerHTML)?`${n}:content:${e.textContent||e.innerHTML}`:void 0}function Vn(e){let t=e._h||e._d||e.textContent||e.innerHTML;if(t)return t;let n=Object.keys(e.props).sort(),r=`${e.tag}:`,i=``;for(let t of n)r+=`${i}${t}:${String(e.props[t])}`,i=`,`;return r}function Hn(e,t,n){if(n===`_resolver`)return e;typeof e==`function`&&(!n||n!==`titleTemplate`&&!n.startsWith(`on`))&&(e=e());let r=t?t(n,e):e;if(Array.isArray(r)){let e;for(let n=0;n<r.length;n++){let i=Hn(r[n],t);e?e[n]=i:i!==r[n]&&(e=r.slice(0,n),e[n]=i)}return e||r}if(r?.constructor===Object){let e;for(let n in r){let i=Pn(n),a=i?void 0:Hn(r[n],t,n);if(!e&&(i||a!==r[n])){e={};for(let t in r){if(t===n)break;e[t]=r[t]}}e&&!i&&(e[n]=a)}return e||r}return r}var Un=/[\s"'<>/=\x00-\x1F\x7F]/;function Wn(e,t){let n=e===`style`,r=n?new Map:new Set,i=e=>{if(e){if(n){let t=e.indexOf(`:`);t>0&&r.set(e.slice(0,t).trim(),e.slice(t+1).trim())}else e.split(` `).forEach(e=>e&&r.add(e))}};if(typeof t==`string`)(n?t.split(`;`):[t]).forEach(i);else if(Array.isArray(t))t.forEach(i);else if(t&&typeof t==`object`)for(let e in t){let a=t[e];a&&a!==`false`&&(n?r.set(e.trim(),String(a)):i(e))}return r}function Gn(e,t){if(e.props=e.props||{},!t)return e;if(e.tag===`templateParams`)return e.props=t,e;let n=En.has(e.tag)||e.tag===`htmlAttrs`||e.tag===`bodyAttrs`;for(let r in t){if(Pn(r))continue;let i=r.startsWith(`data-`),a=n&&!kn.has(r),o=a&&!i?r.toLowerCase():r;if(a&&(!o||Un.test(o)))continue;let s=t[r];if(s===null)e.props[o]=null;else if(r===`class`||r===`style`)e.props[r]=Wn(r,s);else if(kn.has(r)){if((r===`textContent`||r===`innerHTML`)&&typeof s==`object`){let n=t.type||`application/json`;(n.endsWith(`json`)||n===`speculationrules`||n===`importmap`)&&(e.props.type=n,e[r]=JSON.stringify(s))}else e[r]=s}else if(s!==void 0){let t=String(s),n=e.tag===`meta`&&o===`content`;e.props[o]=t===`true`||t===``?i||n?t:!0:!s&&i&&t===`false`?`false`:s}}return e}function Kn(e,t){let n;return t.length&&(n=(e,n)=>{for(let r=0;r<t.length;r++)n=t[r](e,n);return n},e=n(void 0,e)),Hn(e,n)}function qn(e,t){let n=Gn({tag:e,props:{}},typeof t==`object`&&typeof t!=`function`?t:{[e===`script`||e===`noscript`||e===`style`?`innerHTML`:`textContent`]:t});if(n.key&&wn.has(n.tag)&&(n.props[`data-hid`]=n._h=n.key),n.tag===`script`&&typeof n.innerHTML==`object`&&(n.innerHTML=JSON.stringify(n.innerHTML),n.props.type=n.props.type||`application/json`),Array.isArray(n.props.content)){let e=[];for(let t of n.props.content)e.push({...n,props:{...n.props,content:t}});return e}return n}function Jn(e,t){if(Array.isArray(t))for(let n of t)e.push(n);else e.push(t)}function Yn(e,t){if(!e)return[];typeof e==`function`&&(e=e()),e=Kn(e,t);let n=[];for(let t in e){let r=e[t];if(r!==void 0){if(Array.isArray(r))for(let e of r)Jn(n,qn(t,e));else Jn(n,qn(t,r))}}return n}var Xn=/</g,Zn=/<\/script/g,Qn=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,$n=()=>100;function er(e){for(let t in e)return!1;return!0}var tr=/^tags:|:render/;function nr(e,t){let n=(t[`entries:resolve`]?.length||0)+(t[`entries:normalize`]?.length||0);if(e._h!==n){e._h=n;for(let t of e.entries.values())delete t._tags}}function rr(e){for(let t=0;t<e.length;t++){let n=e[t],r={...n.props};r.class instanceof Set&&(r.class=new Set(r.class)),r.style instanceof Map&&(r.style=new Map(r.style)),e[t]={...n,props:r}}}function ir(e,t){let n=e.tags,r=0;for(let t of e.tagMap.values())if(Array.isArray(t))for(let e of t)n[r++]=e;else n[r++]=t;n.length=r,t&&n.sort(Qn)}function ar(e){let t=!1;for(let n of e.tags.sort(Qn)){let r=n._d||Vn(n);if(!r)continue;let i=e.tagMap.get(r);if(!i)e.tagMap.set(r,n);else if((n.tagDuplicateStrategy||(An.has(n.tag)?`merge`:null)||(n.key&&n.key===i.key?`merge`:null))===`merge`){let t={...i.props};for(let e in n.props)t[e]=e===`style`?new Map([...i.props.style||new Map,...n.props[e]]):e===`class`?new Set([...i.props.class||[],...n.props[e]]):n.props[e];e.tagMap.set(r,{...n,props:t})}else n._p>>10==i._p>>10&&n.tag===`meta`&&zn(r)?(e.tagMap.set(r,Object.assign([...Array.isArray(i)?i:[i],n],n)),t=!0):(n._w===i._w?n._p>i._p:n._w<i._w)&&e.tagMap.set(r,n)}return t}function or(e,t){let n=e.tagMap.get(`title`),r=e.tagMap.get(`titleTemplate`);if(t._title=n?.textContent,!r)return;let i=r.textContent;if(t._titleTemplate=i,!i)return;let a=typeof i==`function`?i(n?.textContent):i;typeof a==`string`&&!t.plugins.has(`template-params`)&&(a=a.replace(`%s`,n?.textContent||``)),n?a===null?e.tagMap.delete(`title`):e.tagMap.set(`title`,{...n,textContent:a}):e.tagMap.set(`titleTemplate`,{...r,tag:`title`,textContent:a})}function sr(e){let t=0;for(let n of e){let{innerHTML:r,tag:i,props:a}=n;if(Dn.has(i)&&(!er(a)||Nn(r)||Nn(n.textContent))&&(i!==`meta`||Nn(a.content)||a[`http-equiv`]||a.charset)){if(i===`script`&&(r||n.textContent)){let e=String(a.type),t=e.endsWith(`json`)||e===`importmap`||e===`speculationrules`,i=e=>t?(typeof e==`string`?e:JSON.stringify(e)).replace(Xn,`\\u003C`):typeof e==`string`?e.replace(Zn,`<\\/script`):e;n={...n},r&&(n.innerHTML=i(r)),n.textContent&&(n.textContent=i(n.textContent)),n._d=Bn(n)}e[t++]=n}}return e.length=t,e}function cr(e,t){let n=t?.tagWeight??e.resolvedOptions._tagWeight??$n,r={tagMap:new Map,tags:[]},i=e.hooks?._hooks||{};nr(e,i);for(let t of e.entries.values())t._pending!==void 0&&(t.input=t._pending,delete t._pending,delete t._tags,delete t._precomputedTags);let a;(i[`entries:resolve`]?.length||i[`entries:normalize`]?.length)&&(a=[...e.entries.values()],i[`entries:resolve`]?.length&&X(e,`entries:resolve`,{entries:a,...r})),nr(e,i);for(let t of a||e.entries.values()){let a=t._tags;if(!a){if(t._precomputedTags&&n===e.resolvedOptions._tagWeight&&!i[`entries:normalize`]?.length&&!i[`entries:resolve`]?.length&&(!t.options||er(t.options)))a=t._precomputedTags;else{if(a=Yn(t.input,e.resolvedOptions.propResolvers||[]),t.options&&!er(t.options))for(let e of a)Object.assign(e,t.options);if(i[`entries:normalize`]?.length){let n={tags:a,entry:t};X(e,`entries:normalize`,n),a=n.tags}for(let e=0;e<a.length;e++){let r=a[e];r._w=n(r),r._p=(t._i<<10)+e,r._d=Bn(r),r._d||(r._h=Vn(r))}t._tags=a}}r.tags.push(...a)}for(let e in i)if(i[e]?.length&&tr.test(e)){rr(r.tags);break}let o=ar(r);return or(r,e),ir(r,o),X(e,`tags:beforeResolve`,r),X(e,`tags:resolve`,r),X(e,`tags:afterResolve`,r),sr(r.tags)}var lr=/\s+/;function ur(e={}){return t=>pr(t,e)}function dr(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function fr(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(lr))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function pr(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom;if(!n||e._du||r&&r._d===n&&!e.dirty&&!dr(e))return!1;let i=n.defaultView;e._du=!0;let a=!1;try{let o=function(e,t,n){d._s[e]=!n&&f[e]||t,delete f[e]},s=function(e,t,n,r,i,a){let s=`${e}:event:${t}`,c=d._l.get(s);if(c&&c[0]===a&&c[1]===n&&c[2]===r){o(s,c[4]);return}c?.[4]();let l=`data-${t}`,u=(e=>r.call(i,e)),f=()=>{a.removeEventListener(n,u),i.getAttribute(l)===``&&i.removeAttribute(l),d._l.get(s)?.[3]===u&&d._l.delete(s)};a.addEventListener(n,u),d._l.set(s,[a,n,r,u,f]),i.setAttribute(l,``),o(s,f,!0)},c=function({id:e,$el:t,tag:n}){if(d._e.set(e,t),!n.tag.endsWith(`Attrs`)){let r=n.textContent;r!=null&&r!==``&&(r!==t.textContent&&(t.textContent=r),o(`${e}:text`,()=>{t.textContent===r&&(t.textContent=``)},!0));let i=n.innerHTML;i!=null&&i!==``&&(i!==t.innerHTML&&(t.innerHTML=i),o(`${e}:html`,()=>{t.innerHTML===i&&(t.innerHTML=``)},!0));let a=`${e}:el`;o(a,f[a]||(()=>{t?.remove(),d._e.delete(e)}))}for(let r in n.props){let a=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof a==`function`){let o=r.slice(2);t?.dataset?.[`${r}fired`]&&a.call(t,new((i?.Event)||Event)(o)),s(e,r,o,a,t,n.tag===`bodyAttrs`&&i?i:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&a)for(let e of a){let n=`${c}:${e}`;o(n,f[n]||(()=>t.classList.remove(e))),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&a)for(let[e,n]of a){let r=`${c}:${e}`;o(r,f[r]||(()=>t.style.removeProperty(e))),t.style.setProperty(e,n)}else a!==!1&&a!==null&&(t.getAttribute(r)!==a&&t.setAttribute(r,a===!0?``:String(a)),o(c,f[c]||(()=>t.removeAttribute(r))))}},l={shouldRender:!0,tags:[]};if(X(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=r;if(u?._d!==n){if(u){for(let e in u._s)u._s[e]();for(let e in u._p)u._p[e]();u._s=u._p={},u._e.clear(),u._l.clear()}u=void 0}u?u._p=u._s:u=fr(e,n),u._s={};let d=u,f=d._p,p=[],m={};e.dirty=!1;let h=cr(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),g=[],_={};for(let e of h){let t=_[e._d]||0,r=(t?`${e._d}:${t}`:e._d)||e._h,i={tag:e,id:r,shouldRender:!0};e.tag===`meta`&&e._d&&zn(e._d)&&(_[e._d]=t+1),g.push(i),e.tag===`title`?(n.title=e.textContent,o(`title:`,()=>n.title=d._t)):(i.$el=d._e.get(r),i.$el?c(i):En.has(e.tag)&&p.push(i))}if(p.length){let e=new Set(d._e.values());for(let t of[...n.body.children,...n.head.children]){let n=t.tagName.toLowerCase();if(!En.has(n)||e.has(t))continue;let r={innerHTML:t.innerHTML};for(let e of t.getAttributeNames())r[e]=t.getAttribute(e);let i=Gn({tag:n,props:{}},r);i.key=t.getAttribute(`data-hid`)||void 0;let a=Bn(i)||Vn(i),o=a,s=1;for(;d._e.has(o);)o=`${a}:${s++}`;d._e.set(o,t)}}for(let e of p){let t=d._e.get(e.id);e.$el=t||n.createElement(e.tag.tag),c(e),t||(m[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el)}m.head&&n.head.appendChild(m.head),m.bodyOpen&&n.body.insertBefore(m.bodyOpen,n.body.firstChild),m.bodyClose&&n.body.appendChild(m.bodyClose);for(let e in f)f[e]();e._dom=d,a=!0,X(e,`dom:rendered`,{renders:g})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return a&&(e.dirty||dr(e))&&pr(e,t),a}var mr=e=>typeof e.tagPriority==`number`?e.tagPriority:100+(Mn[e.tagPriority]||0);function hr(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||ur({document:e.document}),n=In(Cn(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:mr,init:[]}),Fn(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}var gr=`usehead`;function _r(){if(m()){let e=v(gr);if(e)return e}throw Error(`useHead() was called without provide context, ensure you call it through the setup() function.`)}function vr(e){return{install(t){t.config.globalProperties.$unhead=e,t.config.globalProperties.$head=e,t.provide(gr,e)}}.install}function yr(e,t){return t&&typeof e==`function`&&(e.key=t),e}var br=/\\/g,xr=/</g,Sr=/"/g,Cr=/%\w+(?:\.\w+)?/g,wr=`%separator`;function Tr(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0)return n?(r||``).replace(br,`\\\\`).replace(xr,`\\u003C`).replace(Sr,`\\"`):r||``}function Er(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(Cr);if(!a)return e;let o=e.includes(wr);return e=e.replace(Cr,e=>{if(e===wr||!a.includes(e))return e;let n=Tr(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(wr).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var Dr=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,Or=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),kr=yr({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=Or(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=Or(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(Dr))}}}),Ar=yr({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function Z(e){return typeof e?.then==`function`}var jr=256;function Mr(e,t){if(t===e.length)return;if(t===jr){let n=Array(e.length),r=!1;for(;t<e.length;t++){let i=Q(e[t]);n[t]=i,r||=Z(i)}return r?n:void 0}let n=Q(e[t]);if(Z(n)){let r=Array(e.length);r[t]=n;for(let n=t+1;n<e.length;n++)r[n]=Q(e[n]);return r}let r=Mr(e,t+1);return r&&(r[t]=n),r}function Nr(e,t,n){if(n===t.length)return;if(n===jr){let r=Array(t.length),i=!1;for(;n<t.length;n++){let a=Q(e[t[n]]);r[n]=a,i||=Z(a)}return i?r:void 0}let r=Q(e[t[n]]);if(Z(r)){let i=Array(t.length);i[n]=r;for(let r=n+1;r<t.length;r++)i[r]=Q(e[t[r]]);return i}let i=Nr(e,t,n+1);return i&&(i[n]=r),i}function Q(e){if(typeof e==`function`)return e;if(Z(e))return Promise.resolve(e).then(Q);if(Array.isArray(e)){let t=Mr(e,0);return t?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=Nr(e,t,0);if(n)return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var Pr=yr(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=Q(a);Z(o)?(t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})):t.delete(i)}}}}},`promises`),Fr={meta:`content`,link:`href`,htmlAttrs:`lang`},Ir=[`innerHTML`,`textContent`];function Lr(e,t,n,r=!1){return typeof e==`string`&&e.includes(`%`)?Er(e,t,n,r):e}var Rr=yr(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=Lr(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=Fr[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=Lr(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of Ir)typeof e[t]==`string`&&(e[t]=Lr(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=Lr(n.textContent,e._templateParams,e._separator))}}}),`template-params`),zr=Object.assign((e,t)=>he(t)?ye(t):t,{_static:!0});function Br(e,t={}){let n=t.head||_r();return n.ssr?n.push(e||{},t):Vr(n,e,t)}function Vr(e,t,n={}){let r=te();if(r&&!r.active)return{patch(){},dispose(){},_i:-1};let i=le(!1);if(n.onRendered&&r){let e=n.onRendered;n={...n,onRendered:t=>r.run(()=>e(t))}}let a;return M(()=>{let r=i.value?{}:Hn(t,zr);a?a.patch(r):a=e.push(r,n)}),_()&&(S(()=>{a.dispose()}),s(()=>{i.value=!0}),x(()=>{i.value=!1})),a}function Hr(e={}){let t=ur(),n,r=0;return n=hr({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=vr(n),n}var Ur={disableDefaults:!0,plugins:[Ar,Pr,Rr,kr]},Wr=j({name:`nuxt:head`,enforce:`pre`,setup(e){xn(e,Hr(Ur))}}),Gr=/(:\w+)\([^)]+\)/g,Kr=/(:\w+)[?+*]/g,qr=/:\w+/g,Jr=(e,t)=>t.path.replace(Gr,`$1`).replace(Kr,`$1`).replace(qr,t=>e.params[t.slice(1)]?.toString()||``),Yr=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Jr(e.route,n));return typeof r==`function`?r(e.route):r},Xr=(e,t)=>({default:()=>e?d(ge,e===!0?{}:e,t):t});function Zr(e){return Array.isArray(e)?e:[e]}var Qr=()=>({}),$r=()=>location.protocol+`//`+location.host;function ei(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Pt(n,``)}return Pt(n,e)+r+i}function ti(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=ei(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){let{history:e}=window;e.state&&e.replaceState(U({},e.state,{scroll:st()}),``)}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),{pauseListeners:c,listen:l,destroy:d}}function ni(e,t,n,r=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:null}}function ri(e){let{history:t,location:n}=window,r={value:ei(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:$r()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){let o=U({},t.state,ni(i.value.back,e,i.value.forward,!0),n,{position:i.value.position});a(e,o,!0),Ve(o.position,!0),r.value=e}function s(e,n){let o=U({},i.value,t.state,{forward:e,scroll:st()});a(o.current,o,!0),a(e,U({},ni(r.value,e,null),{position:o.position+1},n),!1),Ve(o.position),r.value=e}return{location:r,state:i,push:s,replace:o}}function ii(e){e=ut(e);let t=ri(e),n=ti(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=U({location:``,base:e,go:r,createHref:at.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var ai={type:0,value:``},oi=/[a-zA-Z0-9_]/;function si(e){if(!e)return[[]];if(e===`/`)return[[ai]];if(!We(e))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:oi.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`)}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var ci=`[^/]+?`,li={sensitive:!1,strict:!1,start:!0,end:!0},ui=/[.+*?^${}()[\]/\\]/g;function di(e,t){let n=U({},li,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(ui,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||ci;if(u!==ci){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(H(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=H(c)?c.join(`/`):c;if(!l){if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`)}n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function fi(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function pi(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=fi(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(mi(r))return 1;if(mi(i))return-1}return i.length-r.length}function mi(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var hi={strict:!1,end:!0,sensitive:!1};function gi(e,t,n){let r=di(si(e.path),n),i=U(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function _i(e,t){let n=[],r=new Map;t=je(hi,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=yi(e);s.aliasOf=r&&r.record;let l=je(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(yi(U({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&!We(u)){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=gi(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!xi(d)&&o(e.name)),Ti(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:G}function o(e){if(Oe(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Ci(e,n);n.splice(t,0,e),e.record.name&&!xi(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw He(1,{location:e});s=i.record.name,a=U(vi(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&vi(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw He(1,{location:e,currentLocation:t});s=i.record.name,a=U({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Si(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function vi(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function yi(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:bi(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function bi(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function xi(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Si(e){return e.reduce((e,t)=>U(e,t.meta),{})}function Ci(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;pi(e,t[i])<0?r=i:n=i+1}let i=wi(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function wi(e){let t=e;for(;t=t.parent;)if(Ti(t)&&pi(e,t)===0)return t}function Ti({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ei(e){let t=v(Ke),n=v(Ge),r=y(()=>{let n=k(e.to);return t.resolve(n)}),i=y(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(Te.bind(null,i));if(o>-1)return o;let s=ji(e[t-2]);return t>1&&ji(i)===s&&a[a.length-1].path!==s?a.findIndex(Te.bind(null,e[t-2])):o}),a=y(()=>i.value>-1&&Ai(n.params,r.value.params)),o=y(()=>i.value>-1&&i.value===n.matched.length-1&&dt(n.params,r.value.params));function s(n={}){if(ki(n)){let n=t[k(e.replace)?`replace`:`push`](k(e.to)).catch(G);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:y(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Di(e){return e.length===1?e[0]:e}var Oi=g({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Ei,setup(e,{slots:t}){let n=re(Ei(e)),{options:r}=v(Ke),i=y(()=>({[Mi(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Mi(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Di(t.default(n));return e.custom?r:d(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function ki(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ai(e,t){for(let n in t){let r=t[n],i=e[n];if(H(r)){if(!H(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}else if(r!==i)return!1}return!0}function ji(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Mi=(e,t,n)=>e??t??n,Ni=g({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=v(Le),i=y(()=>e.route||r.value),a=v(nt,0),o=y(()=>{let e=k(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=y(()=>i.value.matched[o.value]);w(nt,y(()=>o.value+1)),w(yt,s),w(Le,i);let c=new Set;w(we,c);let u=le(),f=J,{app:p}=_().appContext;return fe(()=>[u.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Te(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,m=o&&o.components[a];if(!m)return Pi(n.default,{Component:m,route:r});let h=o.props[a],g=h?h===!0?r.params:typeof h==`function`?h(r):h:null,_=e=>{e.component.isUnmounted&&(o.instances[a]=null)},v=e=>l(()=>{if(f===r||i.value!==r||e.el.getRootNode()!==p._container.getRootNode())return;let t=f;f=r;for(let e of c)e(r,t)}),y=d(m,U({},g,t,{onVnodeUnmounted:_,onVnodeMounted:v,onVnodeUpdated:v,ref:u}));return Pi(n.default,{Component:y,route:r})||y}}});function Pi(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Fi=Ni;function Ii(e){let t=e.matcher||_i(e.routes,e),n=e.parseQuery||Pe,r=e.stringifyQuery||Me,i=e.history,a=B(),o=B(),s=B(),c=ie(J),u=ie(0),d=J;V&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let f=Ue.bind(null,e=>``+e),p=Ue.bind(null,Mt),m=Ue.bind(null,qe);function h(e,n){let r,i;Oe(e)?(r=t.getRecordMatcher(e),i=n):i=e;let a=t.addRoute(i,r);return u.value++,()=>{a(),u.value++}}function g(e){let n=t.getRecordMatcher(e);n&&(t.removeRoute(n),u.value++)}function _(){t.clearRoutes(),u.value++}function v(){return t.getRoutes().map(e=>e.record)}function y(e){return!!t.getRecordMatcher(e)}function b(e,a){if(u.value,typeof e==`string`){a||=e.startsWith(`/`)?J:c.value;let r=Ie(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return U(r,o,{params:m(o.params),redirectedFrom:void 0,href:s})}a=U({},a||(e.path!=null&&e.path.startsWith(`/`)&&!(`name`in e&&e.name)?J:c.value));let o;if(e.path!=null)o=U({},e,{path:Ie(n,e.path,a.path).path});else{let t=U({},e.params);for(let e in t)t[e]??delete t[e];o=U({},e,{params:p(t)}),a.params=p(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=f(m(s.params));let d=Re(r,U({},e,{hash:Ot(l),path:s.path})),h=i.createHref(d);return U({fullPath:d,hash:l,query:r===Me?Ne(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function x(e){return typeof e==`string`?Ie(n,e,c.value.path):U({},e)}function S(e,t){if(d!==e)return He(8,{from:t,to:e})}function C(e){return E(e)}function w(e){return C(U(x(e),{replace:!0}))}function T(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=x(i):{path:i},i.params={}),U({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function E(e,t){let n=d=b(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,l=T(n,i);if(l)return E(U(x(l),{state:typeof l==`object`?U({},a,l.state):a,force:o,replace:s}),t||n);let u=n;u.redirectedFrom=t;let f;return!o&&Fe(r,i,n)&&(f=He(16,{to:u,from:i}),le(i,i,!0,!1)),(f?Promise.resolve(f):ee(u,i)).catch(e=>W(e)?W(e,2)?e:ce(e):oe(e,u,i)).then(e=>{if(e){if(W(e,2))return E(U({replace:s},x(e.to),{state:typeof e.to==`object`?U({},a,e.to.state):a,force:o}),t||u)}else e=ne(u,i,!0,s,a);return te(u,i,e),e})}function D(e,t){let n=S(e,t);return n?Promise.reject(n):Promise.resolve()}function O(e){let t=F.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ee(e,t){let n,[r,i,s]=Ze(e,t);n=At(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Y(r,e,t))});let c=D.bind(null,e,t);return n.push(c),L(n).then(()=>{n=[];for(let r of a.list())n.push(Y(r,e,t));return n.push(c),L(n)}).then(()=>{n=At(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Y(r,e,t))});return n.push(c),L(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(H(r.beforeEnter))for(let i of r.beforeEnter)n.push(Y(i,e,t));else n.push(Y(r.beforeEnter,e,t))}return n.push(c),L(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=At(s,`beforeRouteEnter`,e,t,O),n.push(c),L(n))).then(()=>{n=[];for(let r of o.list())n.push(Y(r,e,t));return n.push(c),L(n)}).catch(e=>W(e,8)?e:Promise.reject(e))}function te(e,t,n){s.list().forEach(r=>O(()=>r(e,t,n)))}function ne(e,t,n,r,a){let o=S(e,t);if(o)return o;let s=t===J,l=V?history.state:{};n&&(r||s?i.replace(e.fullPath,U({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,le(e,t,n,s),ce()}let A;function re(){A||=i.listen((e,t,n)=>{if(!I.listening)return;let r=b(e),a=T(r,I.currentRoute.value);if(a){E(U(a,{replace:!0,force:!0}),r).catch(G);return}d=r;let o=c.value;V&&n.delta&&ke(Ee(o.fullPath,n.delta)),ee(r,o).catch(e=>W(e,12)?e:W(e,2)?(E(U(x(e.to),{force:!0}),r).then(e=>{W(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(G),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=ne(r,o,!1),e&&(n.delta&&!W(e,8)?i.go(-n.delta,!1):n.type===`pop`&&W(e,20)&&i.go(-1,!1)),te(r,o,e)}).catch(G)})}let j=B(),M=B(),N;function oe(e,t,n){ce(e);let r=M.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function se(){return N&&c.value!==J?Promise.resolve():new Promise((e,t)=>{j.add([e,t])})}function ce(e){return N||(N=!e,re(),j.list().forEach(([t,n])=>e?n(e):t()),j.reset()),e}function le(t,n,r,i){let{scrollBehavior:a}=e;if(!V||!a)return Promise.resolve();let o=!r&&ze(Ee(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return l().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&Ae(e)).catch(e=>t===c.value&&oe(e,t,n))}let ue=e=>i.go(e),P,F=new Set,I={currentRoute:c,listening:!0,addRoute:h,removeRoute:g,clearRoutes:_,hasRoute:y,getRoutes:v,resolve:b,options:e,push:C,replace:w,go:ue,back:()=>ue(-1),forward:()=>ue(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:M.add,isReady:se,install(e){e.component(`RouterLink`,Oi),e.component(`RouterView`,Fi),e.config.globalProperties.$router=I,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>k(c)}),V&&!P&&c.value===J&&(P=!0,C(i.location).catch(e=>{}));let t={};for(let e in J)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Ke,I),e.provide(Ge,ae(t)),e.provide(Le,c);let n=e.unmount;F.add(e),e.unmount=function(){F.delete(e),F.size<1&&(d=J,A&&A(),A=null,c.value=J,P=!1,N=!1),n()}}};function L(e){return e.reduce((e,t)=>e.then(()=>O(t)),Promise.resolve())}return I}var Li=gt(async e=>{if(!e.meta?.validate)return;let t=await Promise.resolve(e.meta.validate(e));if(t!==!0)return pt({fatal:!0,status:t&&(t.status||t.statusCode)||404,statusText:t&&(t.statusText||t.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})}),Ri=e({docsBase:c,reporters:p}),zi=`modulepreload`,Bi=function(e,t){return new URL(e,t).href},Vi={},Hi=function(e){return e.pathname.endsWith(`.css`)},Ui=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=Bi(t,n);let r=s(t),i=Hi(r);return Ui(Vi,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:zi,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Wi=bn;function Gi(e){return Qr(e)}var Ki;function qi(){let e;return e=Wi(vn(`builds/meta/${pe().app.buildId}.json`),{responseType:`json`}).then(e=>{if(!e||typeof e!=`object`||!Array.isArray(e.prerendered))throw Ri.NUXT_E5004();return e}),Ki=e,e.catch(t=>{Ki===e&&(Ki=void 0),Ri.NUXT_E5002({cause:t})}),e}function Ji(){return Ki||qi()}function Yi(e){let t=typeof e==`string`?e:e.path;try{return Gi(t)}catch(e){return Ri.NUXT_E5003({path:t,cause:e}),{}}}var Xi=[Li,gt(e=>{let t=Yi({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return it(n)?(window.location.href=n,!1):n}})],Zi={},Qi=[{name:`customize`,path:`/customize`,component:()=>$(()=>import(`./Cj8LKW1j.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]),import.meta.url)},{name:`reference`,path:`/reference`,component:()=>$(()=>import(`./lFAKI2D3.js`),__vite__mapDeps([10,1,2,3,4,5,6]),import.meta.url)},{name:`report`,path:`/report`,component:()=>$(()=>import(`./Cax8MU2E.js`),__vite__mapDeps([11,1,2,3,4,5,8,9]),import.meta.url)},{name:`index`,path:`/`,component:()=>$(()=>import(`./DFtcLD73.js`),__vite__mapDeps([12,1,2,9,3,4,5,6,7,8]),import.meta.url)}],$i=/\/(?=$|[?#])/;function ea(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),De(n,``)}let s=De(r,e),c=!n||Je(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var ta=j({name:`nuxt:router`,enforce:`pre`,async setup(e){let t=pe().app.baseURL,n=q.history?.(t)??ii(t),r=q.routes?await q.routes(Qi)??Qi:Qi,i,a=Ii({...q,scrollBehavior:(e,t,n)=>{if(t===J)i=n;else if(q.scrollBehavior){if(a.options.scrollBehavior=q.scrollBehavior,`scrollRestoration`in window.history){let e=a.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return q.scrollBehavior(e,J,i||n)}},history:n,routes:r});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(a);let o=ie(a.currentRoute.value);a.afterEach((e,t)=>{o.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>o.value});let s=ea(t,window.location,e.payload.path),c=De(window.location.pathname,t),l=ie(a.currentRoute.value),u=()=>{l.value=a.currentRoute.value};a.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;n===r?Yr({route:e,Component:{type:n}})===Yr({route:t,Component:{type:r}})&&u():e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&u()});let d={sync:u};for(let e in l.value)Object.defineProperty(d,e,{get:()=>l.value[e],enumerable:!0});e._route=ae(d),e._middleware||={global:[],named:{}};let f=Xe();a.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&f.value&&await e.runWithContext(xt),r&&await e.callHook(`page:loading:end`)}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)});try{await a.isReady()}catch(t){await mt(e,t)}let p=s===a.currentRoute.value.fullPath?a.currentRoute.value:a.resolve(s),m=a.currentRoute.value.fullPath,h=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&s.replace($i,``)!==e.payload.path.replace($i,``)&&Je(a.currentRoute.value.path,e.payload.path);u();function g(r){!e.isHydrating&&r.fullPath!==ea(t,window.location)&&n.push(r.fullPath)}a.beforeEach(t=>{if(!e.isHydrating&&Qr(t.path).noScripts)return window.location.assign(a.resolve(t.fullPath).href),!1}),a.beforeResolve(e=>{if(e.matched.length||Je(e.path,c))return;let n=new URL(jt(e.fullPath,t),window.location.href);if(n.origin===window.location.origin)return window.location.assign(n),!1});let _=e.payload.state._layout;return a.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=re(t.meta),e.isHydrating&&_&&!se(t.meta.layout)&&(t.meta.layout=_),e._processingMiddleware=!0;{let r=new Set([...Xi,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of Zr(t))r.add(e)}let i=Yi({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await Zi[i]?.().then(e=>e.default||e):i;if(!r)throw ft.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||pt({status:404,statusText:`Page Not Found: ${s}`});return await e.runWithContext(()=>lt(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return ct(i)&&i.fatal&&(await e.runWithContext(()=>lt(i)),g(t)),i}catch(n){let r=pt(n);return r.fatal&&(await e.runWithContext(()=>lt(r)),g(t)),r}}}}),a.afterEach(t=>{if(t.matched.length===0&&!f.value)return e.runWithContext(()=>lt(pt({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in p&&(p.name=void 0),a.currentRoute.value.fullPath===m){if(h){let t=a.resolve(e.payload.path);`name`in t&&(t.name=void 0),await a.replace({...t,force:!0});let n=()=>{e[`~restoreDeferredRoute`]&&(e[`~restoreDeferredRoute`]=void 0,a.currentRoute.value=a.resolve(s),u(),a.replace({...p,force:!0}).catch(()=>{}))};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await a.replace({...p,force:!0})}a.options.scrollBehavior=q.scrollBehavior}catch(t){await mt(e,t)}}),{provide:{router:a}}}}),na=j(()=>{let e=K();St(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),ra=j(e=>{let t;async function n(){let r;try{r=await Ji()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,A);try{let n=await bn(vn(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}St(()=>{t=setTimeout(n,A)})});function ia(e={}){let t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw ft.NUXT_E2010({path:t});if(n.protocol&&kt(n.protocol))throw ft.NUXT_E2002({toPath:t,protocol:n.protocol});let r={};try{r=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||r?.path!==t||r?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:t,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:P().payload.state}))}catch{}window.location.pathname===t?window.location.reload():window.location.href=t}}var aa=j({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&vt(navigator.userAgent)&&ia()})}}),oa=j({name:`nuxt:chunk-reload`,setup(e){let t=K(),n=pe(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){ia({path:Qe(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),sa=j({name:`nuxt:island-link-navigation`,setup(e){}}),ca=j({name:`nuxt:global-components`}),la={},ua=[`route`,`payload`,`island`,`hint`],da=12,fa={route:8,payload:8,island:4,hint:8};function pa(e={}){let t={...fa,...e.concurrency},n=e.total??da,r=e.canPrefetch,i=e.defer,a={route:[],payload:[],island:[],hint:[]},o=ua.map(e=>a[e]),s=new WeakSet,c=new Map,l={route:0,payload:0,island:0,hint:0},u=0,d=new Map,f=new AbortController,p=new AbortController;p.abort();function m(e){c.get(e.key)===e&&c.delete(e.key)}function h(e){m(e),Promise.resolve().then(()=>e.run(p.signal,!1)).catch(()=>{})}function g(){if(!r||r())for(;u<n;){let e=ua.find(e=>a[e].length&&l[e]<t[e]);if(!e)return;let n=a[e].shift();_(n,s.delete(n))}}function _(e,t){let n=e.scope===`app`?f:new AbortController;e.scope===`navigation`&&d.set(e,n),l[e.priority]++,u++;let r=!1,a=()=>{r||(r=!0,l[e.priority]--,u--,d.delete(e),m(e),g())};n.signal.addEventListener(`abort`,a,{once:!0});let o=()=>Promise.resolve().then(()=>e.run(n.signal,t)).then(a,a);i?i(o,t,e.priority):o()}let v=(e,t)=>t!==void 0&&e.group===t&&e.priority!==`hint`;return{schedule(e){let t=[];for(let n of Array.isArray(e)?e:[e])c.has(n.key)?h(n):(c.set(n.key,n),t.push(n));for(let e=t.length-1;e>=0;e--)a[t[e].priority].unshift(t[e]);g()},promote(e){for(let t of o){let n=[],r=[];for(let i of t)i.group===e&&s.add(i),(i.group===e?n:r).push(i);t.length=0,t.push(...n,...r)}g()},reset(e){for(let t of o)for(let n=t.length-1;n>=0;n--){let r=t[n];r.scope===`navigation`&&!v(r,e)&&(t.splice(n,1),h(r))}for(let[t,n]of[...d])v(t,e)||n.abort();g()},resume:g}}var ma=1e3;function ha(e,t,n){if(t||n===`route`)return e();let r=globalThis.scheduler;r?.postTask?r.postTask(e,{priority:`background`}).catch(()=>{}):$e(e,{timeout:ma})}function ga(e=P()){if(e._prefetch)return e._prefetch;let t=!1,n=pa({canPrefetch:()=>Ye()&&!t&&document.visibilityState!==`hidden`,defer:ha});e._prefetch=n,navigator.connection?.addEventListener?.(`change`,()=>n.resume()),document.addEventListener(`visibilitychange`,()=>n.resume());let r=e.$router;return r.beforeEach(()=>{t=!0}),r.afterEach(e=>{t=!1,n.reset(ht(e.fullPath))}),r.onError(()=>{t=!1,n.resume()}),n}var _a=j({name:`nuxt:prefetch`,setup(e){let t=K();e.hooks.hook(`app:mounted`,()=>{t.beforeEach(async e=>{let t=e?.meta?.layout;typeof t==`string`&&t in la&&await bt(la[t])})});let{schedule:n}=ga(e);e.hooks.hook(`link:prefetch`,async e=>{if(ot(e))return;let r=t.resolve(e);if(!r)return;let i=r.meta.layout,a=Zr(r.meta.middleware).filter(e=>typeof e==`string`);n({key:`route:chunks:${e}`,priority:`route`,scope:`navigation`,group:ht(e),run:e=>{if(e.aborted)return;let t=[];for(let e of a){let n=Zi[e];typeof n==`function`&&t.push(n())}return typeof i==`string`&&i in la&&t.push(bt(la[i])),Promise.all(t).catch(()=>{})}})})}}),va=j(()=>{}),ya=e({docsBase:c,reporters:p});function ba(e){let t=e||P();return t.ssrContext?.head||t.runWithContext(()=>{if(m()){let e=v(`usehead`);if(!e)throw ya.NUXT_E6001();return e}})}function xa(e,t={}){return Br(e,{head:t.head||ba(t.nuxt),...t})}var Sa=j(()=>{let e=pe().app.baseURL;xa({style:[{key:`furifont-faces`,innerHTML:Lt.map(t=>`@font-face{font-family:"${t.family}";font-display:swap;font-weight:250 900;ascent-override:88%;descent-override:12%;line-gap-override:0%;src:url("${e}${It(t,`woff2`)}") format("woff2")}`).join(`
3
+ `)}]})}),Ca=[{code:`en`,name:`English`},{code:`ja`,name:`日本語`},{code:`zh-Hans`,name:`简体中文`},{code:`zh-Hant`,name:`繁體中文`}],wa=`furifont:locale`;function Ta(e){return Ca.some(t=>t.code===e)}function Ea(e){for(let t of e.map(e=>e.toLowerCase())){if(t.startsWith(`zh`))return/-(?:tw|hk|mo|hant)\b/.test(t)?`zh-Hant`:`zh-Hans`;if(t.startsWith(`ja`))return`ja`;if(t.startsWith(`en`))return`en`}return`en`}var Da={meta:{title:`Furifont: furigana built into the font`,description:`A Japanese font that shows furigana by itself.`},nav:{demo:`Intro`,docs:`Docs`,customize:`Customize`,report:`Report`,github:`GitHub repository`,light:`Switch to light`,dark:`Switch to dark`,language:`Language`,rubyOff:`Hide the ruby`,rubyOn:`Show the ruby`},footer:{fonts:`The fonts use the {license}. They come from Source Han Sans and Source Han Serif.`,data:`The readings come from {jmdict}, {jmnedict}, {kanjidic} (EDRDG) and {furigana}. They use the CC BY-SA 4.0 license.`,code:`The tools use the MIT license.`,report:`Report a wrong reading`,source:`Source on GitHub`,made:`Made by {author}`,supported:`Supported by {vercel} and {sponsors}`,sponsors:`sponsors`},copied:`Copied`,shuffle:`Show another sample`,editable:`Sample text. You can edit it.`,scripts:{hiragana:`Hiragana`,hepburn:`Romaji`},faces:{sans:`Sans`,serif:`Serif`},hero:{title1:`Furigana,`,title2:`set by the font.`,body:`Furifont is a Japanese font that shows furigana on the font itself. With the ligatures to adopt to pronunciation of words. Works everywhere supporting custom fonts.`,download:`Download the fonts`,build:`Build your own`},notice:`Furigana might be incorrect due to the limits of fonts, so keep that in mind.`,sections:{try:`Try it`,how:`How it works`,selectors:`Choosing a reading`,download:`Download`,anyPage:`On Websites`},playground:{script:`Ruby letters`,face:`Font style`,size:`Size / {size}px`,weight:`Weight / {weight}`,ruby:`Furigana`,okurigana:`Okurigana readings`,okuriganaHint:`This requires JavaScript. Font cannot handle okurigana due to browser's limitations.`,textHint:`Click the text to edit it.`,copy:`Copy the text`},how:{build:{title:`Customized build`,body:`Furifont is compiled from a base font, Source Han Sans or Serif. A build step reads a dictionary of thousands of words and draws the ruby into new glyphs. The result is a normal font file. It needs no JavaScript and no plugin.`},ligatures:{title:`Ligatures do the work`,body:`For each word, the font holds a ligature. For example, 今日 becomes one glyph with きょう above it. The swap happens when the text is drawn, so the text itself does not change.`},longest:{title:`Longest word first`,body:`Furifont compares each group of kanji with a list of thousands of common words. It tries the longest word first. For example, it picks 日本語 before 日本. It reads 今日 as one word, きょう.`},bare:{title:`No ruby when unsure`,body:`A single kanji gets ruby only when one reading is clearly the most likely. 大人気 can be read だいにんき or おとなげ, so Furifont shows no ruby.`},okurigana:{title:`Opt-in Okurigana`,body:`Browsers shape each font script separately, so the font cannot see the kana after a kanji (which is called okurigana). We provide optional support for it through JavaScript annotation.`}},selectors:{body:`Some words have more than one common reading. Furifont shows the most common one. To choose another, put a variation selector (an invisible character) right after the first kanji. VS226 gives reading 1, VS227 gives reading 2, and so on. VS225 removes the ruby.`,lookUp:`Look up readings`,default:`Default`,reading2:`Reading 2 (VS227)`,none:`No ruby (VS225)`},downloads:{all:`Download all as zip`,family:`Family`,ruby:`Ruby`,variable:`Variable`,formats:`OTF and TTF are commonly used for installing on your computer. WOFF2 is optimized for websites. We recommend the variable fonts for the best experience. In some cases you may need the static weights for compatibility.`,buildOwn:`Or build your own font. You can choose another base font, a list with fewer or more words, other ruby letters, or other sizes.`},anyPage:{body:`You can use Furifont on any website. Lines with kanji get extra space for the ruby. If Furifont is installed on your computer, nothing downloads. If it is not, the font loads from this site.`,bookmarklet:`Bookmarklet`,bookmarkletHint:`Drag it to your bookmarks bar. On any page, click it to turn Furifont on. Click it again to turn Furifont off. Some sites, such as X and GitHub, do not let fonts load from other sites. On those sites, install Furifont on your computer.`,okurigana:`Okurigana readings`,okuriganaHint:`Picks the right reading of a kanji before its okurigana, such as 来 in 来る and 来ない.`,userscript:`Userscript`,install:`Install the userscript`,userscriptHint:`This works with Tampermonkey or Violentmonkey (browser add-ons that run small scripts). It turns Furifont on by itself on Japanese pages. It also works on sites that do not let fonts load from other sites. Its menu lets you switch to another Furifont font or turn it off.`,toast:{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`},menu:{okuriganaOn:`Okurigana readings: on`,okuriganaOff:`Okurigana readings: off`}},reference:{eyebrow:`Reference`,title:`Pick a reading`,body:`Furifont shows the most common reading of a word. To show another reading, put a variation selector (an invisible character) right after the first kanji of the word. VS226 gives reading 1, VS227 gives reading 2, and so on. After a single kanji, the selector chooses the reading of that kanji. VS225 shows the kanji with no ruby.`,search:`Search a word or kanji: 市場, 今日, 生`,searchLabel:`Search readings`,hint:`Click a reading to copy the word with its selector.`,unavailable:`The reference comes with the ready-made fonts, and it could not load here ({error}). Build the fonts with {command}, or open Customize.`,loading:`Loading`,words:`Words with several readings / {count}`,kanji:`Kanji / {count}`,copyWith:`Copy {text} with {selector}`,default:`default`},report:{eyebrow:`Report`,title:`Report a wrong reading`,body:`Did Furifont show the wrong furigana, or none where a word needs it? Tell us the words and the readings they should have. You can report several words at once. We go through the reports to fix the dictionary.`,link:`Report a wrong reading.`,sections:{words:`Words / {count}`,environment:`Where you saw it`,note:`Anything else`},word:`Word`,expected:`Correct reading`,shown:`Reading shown (optional)`,context:`Sentence (optional)`,remove:`Remove {word}`,add:`Add another word`,environment:`Environment`,environments:{playground:`The playground on this site`,website:`Another website`,desktop:`Desktop app`,mobile:`Mobile app`},family:`Font`,url:`Page address (optional)`,app:`App (optional)`,appPlaceholder:{desktop:`Word, Pages, VS Code`,mobile:`Notes, Kindle`},os:`System (optional)`,notePlaceholder:`Anything that helps, for example the browser, or why the reading is wrong.`,name:`Your name (optional)`,nameHint:`To credit you when the reading is fixed. Leave it empty to stay anonymous.`,send:`Send the report`,sending:`Sending`,sent:`Thanks for your report.`,again:`Report more words`,failed:`The report could not be sent. Try again later.`,limited:`You sent many reports in a short time. Try again in an hour.`,privacy:`We store what you enter here, the font version and your browser name. We do not store your IP address.`},docs:{install:`Install the font`,website:`Use on your website`,readings:`Choose a reading`},customize:{connecting:`Connecting to furifont dev`,title:`Customize`,offline:{eyebrow:`Customize / offline`,title:`Build your own Furifont`,body:`Customize is a tool that runs on your computer. It reads your base fonts and saves the fonts that it builds. Start it in any folder. Then this page opens with a live preview, the dictionary, and a Build button. The new fonts go in {folder}.`,needs:`You need Node 22.18 or later (a free program that runs JavaScript tools).`,run:`Start Customize in any folder`},auth:{eyebrow:`Customize / locked`,title:`Enter the code from your terminal`,body:`{command} showed a six-digit code in your terminal (the window where you started it).`,code:`Code`,failed:`That code did not work. Check the terminal and try again.`,unlock:`Unlock`},sections:{preview:`Preview`,build:`Build`,dictionary:`Dictionary`,words:`Your words`},options:{family:`Font name`,base:`Base font`,baseHint:`The font to add ruby to. Use a font to download, such as Source Han Serif JP Bold, or the path to another font file on your computer.`,script:`Ruby letters`,hiragana:`Hiragana`,katakanaOn:`Kata on`,hepburn:`Romaji`,skip:`Skip the most common words`,skipHint:`These words get no ruby, because a reader already knows them. The newspaper word list is sorted by how often the words appear, in steps of 500 words.`,words:`Then add ruby to`,wordsHint:`The next words in the list. With the word lists below, {count} words get ruby.`,jlpt:`Skip JLPT words`,jlptHint:`Words on the JLPT lists (for the Japanese-Language Proficiency Test) up to this level get no ruby. N5 is the easiest level.`,none:`None`,sources:`Also include words from`,source:{spec1:{name:`Everyday words`,hint:`JMdict "spec1": common words that the other lists miss, such as 日本.`},ichi1:{name:`Basic words`,hint:`JMdict "ichi1": the most common words from the Ichimango list (a list of basic words).`},news1:{name:`Newspaper words`,hint:`JMdict "news1": the 12,000 words that appear most often in newspapers.`},gai1:{name:`Loanwords`,hint:`JMdict "gai1": common words that Japanese borrowed from other languages.`},tatoeba:{name:`Tatoeba sentences`,hint:`Tatoeba: words that its example sentences use often, such as 留守中, even when no list above has them, and how a kanji alone reads, such as 箱.`},places:{name:`Place names`,hint:`JMnedict: stations and places. Furifont uses them where no common word matches the text.`},untagged:{name:`Unranked words`,hint:`JMdict: words that no list ranks, such as 四字熟語. Furifont uses them where nothing else matches the text. This adds about 700 KB to the font.`},"mahjong-yaku":{name:`Mahjong yaku`,hint:`Names of the scoring hands and tiles of mahjong, such as 立直. Furifont uses them where no common word matches the text.`},"jr-stations":{name:`JR stations`,hint:`Names of JR stations, such as 阿蘇, from the Desktop Tetsu list. Furifont uses them where no common word matches the text.`},yojijukugo:{name:`Four-character idioms`,hint:`JMdict: yojijukugo, such as 阿鼻叫喚. Furifont uses them where no common word matches the text.`}},isolated:`Ruby on single kanji`,share:`Single kanji: how sure`,shareHint:`A single kanji gets ruby only when one reading makes up at least this share of its uses in the dictionary. Use a number from 0.5 to 1. A higher number gives ruby to fewer kanji.`,rubyScale:`Ruby size (× kanji)`,rubyGap:`Space above kanji (em)`,squeeze:`Narrowest squeeze (× normal)`,maxWidth:`Widest ruby (em)`,reset:`Reset to defaults`,resetHint:`Go back to the settings that Customize loaded. Your words stay.`},preview:{compiling:`Making a preview`,weight:`Preview weight`,size:`Preview size`,stats:`{glyphs} glyphs / {ms} ms`},build:{words:`Words`,places:`Places`,ambiguous:`Several readings`,lone:`Single kanji`,protected:`Your changes`,glyphs:`Ruby glyphs`,rules:`Rules`,planning:`Planning`,estimate:{woff2:`≈ {size} WOFF2`,otf:`{size} OTF`},formats:`Formats`,estimating:`Estimating the size`,run:`Build font`,save:`Save settings`},dictionary:{search:`Search the dictionary: 今日, 生`,results:`{count} words`,hint:`These words have several common readings. Pin one to make it the default reading.`,noTag:`not a common word`,restore:`Restore`,remove:`Never add ruby`},custom:{placeholder:`日[に]本[ほん] or 今日[きょう]`,label:`Word to add`,add:`Add word`,added:`Added / {count}`,pinned:`Pinned / {count}`,removed:`Never given ruby / {count}`,none:`None`,takeOut:`Remove {item}`}}},Oa=Da,ka={en:async()=>Da,ja:async()=>(await $(async()=>{let{default:e}=await import(`./D_G0KgX8.js`);return{default:e}},[],import.meta.url)).default,"zh-Hans":async()=>(await $(async()=>{let{default:e}=await import(`./Bzck4lmu.js`);return{default:e}},[],import.meta.url)).default,"zh-Hant":async()=>(await $(async()=>{let{default:e}=await import(`./DAr951Yq.js`);return{default:e}},[],import.meta.url)).default},Aa=[Wr,ta,na,ra,aa,oa,sa,ca,_a,va,Sa,j(async e=>{let t=localStorage.getItem(wa),n=Ta(t)?t:Ea(navigator.languages);e.vueApp.use(Rt({legacy:!1,locale:n,fallbackLocale:`en`,messages:{en:Oa,[n]:await ka[n]()}}))})];function ja(e=_()){let t=e;t&&!t.sp&&(t.sp=[])}function Ma(){let{locale:e,availableLocales:t,setLocaleMessage:n}=zt();return y({get:()=>e.value,set:async r=>{Ta(r)&&(t.includes(r)||n(r,await ka[r]()),e.value=r,localStorage.setItem(wa,r))}})}var Na={class:`relative flex items-center`},Pa=[`aria-label`],Fa=[`value`,`lang`],Ia=Object.assign(g({__name:`AppLanguageSelect`,setup(e){let t=Ma();return(e,n)=>(T(),a(`label`,Na,[n[1]||=i(`span`,{class:`i-ph-translate pointer-events-none absolute left-2 text-sm color-muted`},null,-1),F(i(`select`,{"onUpdate:modelValue":n[0]||=e=>he(t)?t.value=e:null,"aria-label":e.$t(`nav.language`),class:`focus-ring no-ruby h-8 appearance-none rounded-none border border-base bg-base pl-7 pr-2 text-xs color-base transition-colors hover:border-strong`},[(T(!0),a(D,null,E(`LOCALES`in e?e.LOCALES:k(Ca),e=>(T(),a(`option`,{key:e.code,value:e.code,lang:e.code},u(e.name),9,Fa))),128))],8,Pa),[[xe,k(t)]])]))}}),{__name:`AppLanguageSelect`}),La=e({docsBase:c,reporters:p}),Ra=`$s`;function za(...e){let t=typeof e[e.length-1]==`string`?e.pop():void 0;typeof e[0]!=`string`&&e.unshift(t);let[n,r]=e;if(!n||typeof n!=`string`)throw La.NUXT_E7009({key:n});if(r!==void 0&&typeof r!=`function`)throw La.NUXT_E7007({type:typeof r});let i=Ra+n,a=P(),o=_e(a.payload.state,i);if(r&&(a._state[i]??={_default:r}),o.value===void 0&&r){let e=r();if(he(e))return a.payload.state[i]=e,o;o.value=e}return o}var Ba=`furifont:dark`;function Va(){let e=za(`dark-mode`,()=>{let e=localStorage.getItem(Ba);return e?e===`true`:matchMedia(`(prefers-color-scheme: dark)`).matches});M(()=>document.documentElement.classList.toggle(`dark`,e.value));function t(){e.value=!e.value,localStorage.setItem(Ba,String(e.value))}return{dark:L(e),toggle:t}}var Ha=yn(`/logo.svg`),Ua={class:`sticky top-0 z-10 border-b border-base bg-base`},Wa={class:`relative mx-auto flex h-14 max-w-6xl items-center gap-3 border-x border-base px-3 sm:gap-6 sm:px-6`},Ga=[`href`,`target`],Ka={class:`flex items-center gap-1`},qa={class:`ml-auto flex items-center gap-1`},Ja=[`href`,`aria-label`],Ya=[`aria-label`],Xa=Object.assign(g({__name:`AppHeader`,setup(e){let{dark:t,toggle:r}=Va(),o=[{to:`/`,label:`nav.demo`}];return o.push({to:`/customize`,label:`nav.customize`}),o.push({to:`/report`,label:`nav.report`,class:`hidden sm:block`}),(e,s)=>{let c=Vt,l=wt,d=Ia;return T(),a(`header`,Ua,[i(`nav`,Wa,[N(c,{class:`-bottom-[6px] -left-[6px]`}),N(c,{class:`-bottom-[6px] -right-[6px]`}),i(`a`,{href:`SITE`in e?e.SITE:k(Ft),target:k(`_blank`),class:`focus-ring flex items-center gap-2.5 font-mono text-sm font-medium`},[i(`img`,{src:Ha,alt:``,class:z([`size-6`,{invert:k(t)}]),"aria-hidden":`true`},null,2),s[1]||=i(`span`,{class:`hidden sm:inline`},`furifont`,-1)],8,Ga),i(`div`,Ka,[(T(),a(D,null,E(o,t=>N(l,{key:t.to,to:t.to,class:z([t.class,`focus-ring whitespace-nowrap px-1 py-1 font-mono text-xs uppercase tracking-[0.04em] color-muted transition-colors hover:color-base sm:px-2 sm:tracking-[0.12em]`]),"active-class":`!color-base`},{default:O(()=>[n(u(e.$t(t.label)),1)]),_:2},1032,[`to`,`class`])),64))]),i(`div`,qa,[N(d),i(`a`,{href:`REPOSITORY`in e?e.REPOSITORY:k(Bt),target:`_blank`,rel:`noopener`,class:`btn-ghost focus-ring hidden w-9 px-0 sm:inline-flex`,"aria-label":e.$t(`nav.github`)},[...s[2]||=[i(`span`,{class:`i-ph-github-logo`},null,-1)]],8,Ja),i(`button`,{type:`button`,class:`btn-ghost focus-ring w-9 px-0`,"aria-label":k(t)?e.$t(`nav.light`):e.$t(`nav.dark`),onClick:s[0]||=(...e)=>k(r)&&k(r)(...e)},[i(`span`,{class:z(k(t)?`i-ph-sun`:`i-ph-moon`)},null,2)],8,Ya)])])])}}}),{__name:`AppHeader`}),Za=(e=`RouteProvider`)=>g({name:e,props:{route:{type:Object,required:!0},vnode:Object,vnodeRef:Object,renderKey:String,trackRootNodes:Boolean,routeRecord:Object},setup(e){let t=e.renderKey,n=e.route,r={};for(let i in e.route)Object.defineProperty(r,i,{get:()=>t===e.renderKey?e.route[i]:n[i],enumerable:!0});return w(tt,ae(r)),()=>e.vnode?d(e.vnode,{ref:e.vnodeRef}):e.vnode}}),Qa=Za(),$a=new WeakMap,eo=g({name:`NuxtPage`,inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(e,{attrs:t,slots:n,expose:r}){let i=P(),a=le(),o=v(tt,null),s=new Set,c;r({pageRef:a});let u=v(Dt,null),f,p=i.deferHydration(),m=!1,h=!1,g,_=0;if(i.isHydrating){let e=i.hooks.hookOnce(`app:error`,p),t=K().beforeEach(()=>{e(),t()})}e.pageKey&&fe(()=>e.pageKey,(e,t)=>{e!==t&&i.callHook(`page:loading:start`)});let y=!1;{let e=K().beforeResolve(()=>{y=!1});S(()=>{e(),p()})}return()=>d(Fi,{name:e.name,route:e.route,...t},{default:ro(t=>{let r=to(o,t.route,t.Component),v=o&&o.matched.length===t.route.matched.length;if(!t.Component)return f&&!v&&!ao(f)?f:(p(),e.transition??t.route.meta.pageTransition??!1?_t(et([e.transition,t.route.meta.pageTransition,!1]),null).default():void 0);if(f&&u&&!ao(f)&&!u.isCurrent(t.route))return f;if(r&&o&&(!u||u?.isCurrent(o)))return(v||f)&&!ao(f)?f:null;let b=Yr(t,e.pageKey),x=no(o,t.route,t.Component);!i.isHydrating&&c===b&&!x&&l(()=>{y||(y=!0,i.callHook(`page:loading:end`))}),m&&c!==b&&h&&_++,c=b;let S=!!(e.transition??t.route.meta.pageTransition??!1),C=S&&et([e.transition,t.route.meta.pageTransition,!1,{onAfterLeave(){Et(i),i.callHook(`page:transition:finish`,t.Component)}}]),w=e.keepalive??t.route.meta.keepalive??!1,T=t.Component.type,E=T.name||T.__name;t.route.meta.keepalive&&E&&s.add(E);let D;if(s.size>0&&e.keepalive==null&&(!w||typeof w==`object`&&w&&w.include)){let e=typeof w==`object`&&w?{...w}:{},t=e.include?Array.isArray(e.include)?e.include:[e.include]:[];D={...e,include:Array.from(new Set([...t,...s]))}}else D=w;return f=_t(S&&C,Xr(D,d(ve,{key:_,suspensible:!0,onPending:()=>{m=!0,S&&rt(i),g=i.callHook(`page:start`,t.Component)},onResolve:async()=>{m=!1,h=!0,i.isHydrating&&i[`~restoreDeferredRoute`]?.();try{await l(),i._route.sync?.(),await g,await i.callHook(`page:finish`,t.Component),!y&&!x&&(y=!0,await i.callHook(`page:loading:end`))}finally{p()}}},{default:()=>{let e={key:b||void 0,vnode:n.default?io(n.default,t):t.Component,route:t.route,renderKey:b||void 0,trackRootNodes:S,vnodeRef:a,routeRecord:void 0};if(!D)return d(Qa,e);let r=T,i=$a.get(r);return i||(i=Za(E),$a.set(r,i)),d(i,e)}}))).default(),f})})}});function to(e,t,n){if(!e)return!1;let r=t.matched.findIndex(e=>e.components?.default===n?.type);if(r===-1)return!1;let i=t.matched.slice(0,r).filter(e=>e.components?.default);if(!i.length)return!1;let a=e.matched.filter(e=>e.components?.default);return i.some((e,t)=>e.components?.default!==a[t]?.components?.default)||n&&Yr({route:t,Component:n})!==Yr({route:e,Component:n})}function no(e,t,n){return e?t.matched.findIndex(e=>e.components?.default===n?.type)<t.matched.length-1:!1}function ro(e){let t=(t=>{let n=e(t);return Array.isArray(n)?n:n==null||!be(n)?[b()]:[n]});return t._n=!0,t}function io(e,t){let n=e(t);return n.length===1?d(n[0]):d(D,void 0,n)}function ao(e){return!!e&&(!!e.suspense?.isUnmounted||!!e.component?.isUnmounted)}var oo={class:`border-t border-base text-xs color-muted`},so={class:`relative mx-auto max-w-6xl border-x border-base`},co={class:`flex flex-wrap items-center justify-between gap-x-6 gap-y-3 px-6 py-5`},lo={class:`flex flex-wrap items-center gap-x-2`},uo={class:`flex flex-wrap items-center gap-x-4 gap-y-2`},fo=[`href`],po={class:`flex flex-col gap-3 border-t border-base px-6 py-5`},mo=[`href`],ho=`underline underline-offset-3 hover:color-base`,go=Object.assign(g({__name:`AppFooter`,setup(e){let r={jmdict:[`JMdict`,`https://www.edrdg.org/jmdict/j_jmdict.html`],jmnedict:[`JMnedict`,`https://www.edrdg.org/enamdict/enamdict_doc.html`],kanjidic:[`KANJIDIC2`,`https://www.edrdg.org/wiki/index.php/KANJIDIC_Project`],furigana:[`JmdictFurigana`,`https://github.com/Doublevil/JmdictFurigana`]};return(e,o)=>{let s=Vt,c=t(`i18n-t`),l=wt;return T(),a(`footer`,oo,[i(`div`,so,[N(s,{class:`-left-[6px] -top-[6px]`}),N(s,{class:`-right-[6px] -top-[6px]`}),i(`div`,co,[i(`p`,lo,[N(c,{keypath:`footer.made`,tag:`span`},{author:O(()=>[i(`a`,{class:z(ho),href:`https://github.com/antfu`,target:`_blank`,rel:`noopener`},`@antfu`)]),_:1}),o[0]||=i(`span`,{"aria-hidden":`true`},`·`,-1),N(c,{keypath:`footer.supported`,tag:`span`},{vercel:O(()=>[i(`a`,{class:z(ho),href:`https://vercel.com`,target:`_blank`,rel:`noopener`},`▲ Vercel`)]),sponsors:O(()=>[i(`a`,{class:z(ho),href:`https://github.com/sponsors/antfu`,target:`_blank`,rel:`noopener`},u(e.$t(`footer.sponsors`)),1)]),_:1})]),i(`div`,uo,[N(l,{to:`/report`,class:`inline-flex items-center gap-1.5 hover:color-base`},{default:O(()=>[o[1]||=i(`span`,{class:`i-ph-flag`},null,-1),n(` `+u(e.$t(`footer.report`)),1)]),_:1}),i(`a`,{class:`inline-flex items-center gap-1.5 hover:color-base`,href:`REPOSITORY`in e?e.REPOSITORY:k(Bt),target:`_blank`,rel:`noopener`},[o[2]||=i(`span`,{class:`i-ph-github-logo`},null,-1),n(` `+u(e.$t(`footer.source`)),1)],8,fo)])]),i(`div`,po,[N(c,{keypath:`footer.fonts`,tag:`p`},{license:O(()=>[i(`a`,{class:z(ho),href:`https://openfontlicense.org`,target:`_blank`,rel:`noopener`},`SIL Open Font License`)]),_:1}),N(c,{keypath:`footer.data`,tag:`p`},oe({_:2},[E(r,(e,t)=>({name:t,fn:O(()=>[i(`a`,{class:z(ho),href:e[1],target:`_blank`,rel:`noopener`},u(e[0]),9,mo)])}))]),1024),i(`p`,null,u(e.$t(`footer.code`)),1)])])])}}}),{__name:`AppFooter`});function _o(e,t){let n=za(e,()=>t(localStorage.getItem(e)));return y({get:()=>n.value,set:t=>{n.value=t,localStorage.setItem(e,String(t))}})}function vo(){let{t:e}=zt(),t=_o(`furifont:face`,e=>e===`serif`?`serif`:`sans`),n=_o(`furifont:script`,e=>e===`hepburn`?`hepburn`:`hiragana`);return{face:t,script:n,ruby:_o(`furifont:ruby`,e=>e!==`false`),okurigana:_o(`furifont:okurigana`,e=>e!==`false`),family:y(()=>Lt.find(e=>e.face===t.value&&e.script===n.value)),faces:y(()=>[`sans`,`serif`].map(t=>({value:t,label:e(`faces.${t}`)}))),scripts:y(()=>[`hiragana`,`hepburn`].map(t=>({value:t,label:e(`scripts.${t}`)})))}}var yo={class:`min-h-screen flex flex-col overflow-x-clip bg-base color-base`},bo={class:`mx-auto w-full max-w-6xl flex-1 border-x border-base`},xo=g({__name:`app`,setup(e){let{t,locale:n}=zt();xa({htmlAttrs:{lang:n},title:()=>t(`meta.title`),meta:[{name:`description`,content:()=>t(`meta.description`)}]});let{family:r,ruby:o}=vo();return M(()=>{let{style:e}=document.documentElement;e.setProperty(`--ff-font`,`"${r.value.family}"`),e.setProperty(`--ff-features`,o.value?`normal`:`"ss01"`)}),(e,t)=>{let n=Xa,r=eo,o=go;return T(),a(`div`,yo,[N(n),i(`main`,bo,[N(r)]),N(o)])}}}),So={__name:`nuxt-error-page`,props:{error:Object},setup(e){let t=e.error,n=Number(t.statusCode||500),i=n===404,a=t.statusMessage??(i?`Page Not Found`:`Internal Server Error`),s=t.message||t.toString(),c=h(()=>$(()=>import(`./B4Fx_Djw.js`),__vite__mapDeps([13,1,2,9,3,14]),import.meta.url)),l=h(()=>$(()=>import(`./X45Acd-Y.js`),__vite__mapDeps([15,1,2,16]),import.meta.url)),u=i?c:l;return(e,t)=>(T(),R(k(u),r(o({status:k(n),statusText:k(a),statusCode:k(n),statusMessage:k(a),description:k(s),stack:k(void 0)})),null,16))}},Co=()=>null,wo={key:0},To={__name:`nuxt-root`,setup(e){let t=P(),n=t.deferHydration();if(t.isHydrating){let e=t.hooks.hookOnce(`app:error`,n),r=K().beforeEach(()=>{e(),r()})}window.location.pathname,w(tt,Ct()),t.hooks.callHookWith(e=>e.map(e=>e()),`vue:setup`,[]);let r=Xe();function i(e,n,r){let i=t.vueApp.config.errorHandler;if(i&&!i.__nuxt_default)try{i(e,n,r)}catch(e){console.error("[nuxt] Error in `app.config.errorHandler`",e)}}return f((e,n,r)=>{if(t.hooks.callHook(`vue:error`,e,n,r)?.catch(e=>console.error("[nuxt] Error in `vue:error` hook",e)),vt(navigator.userAgent))return Tt(t,e),!1;if(ct(e)&&(e.fatal||e.unhandled))return t.runWithContext(()=>lt(e)),ja(),i(e,n,r),!1}),(e,t)=>(T(),R(ve,{onResolve:k(n)},{default:O(()=>[k(!1)?(T(),a(`div`,wo)):k(r)?(T(),R(k(So),{key:1,error:k(r)},null,8,[`error`])):k(!1)?(T(),R(k(Co),{key:2,context:k(!1)},null,8,[`context`])):k(!1)?(T(),R(ne(k(!1)),{key:3})):(T(),R(k(xo),{key:4}))]),_:1},8,[`onResolve`]))}},Eo;{let e;Eo=async function(){if(e)return e;let t=!!(window.__NUXT__?.serverRendered??document.getElementById(`__NUXT_DATA__`)?.dataset.ssr===`true`),n=t?Ce(To):Se(To),r=de({vueApp:n});async function i(e){await r.callHook(`app:error`,e),r.payload.error||=pt(e)}i.__nuxt_default=!0,n.config.errorHandler=i,r.hook(`app:suspense:resolve`,()=>{n.config.errorHandler===i&&(n.config.errorHandler=void 0)}),!t&&me.id&&r.hook(`app:suspense:resolve`,()=>{document.getElementById(me.id)?.remove()});try{await ue(r,Aa)}catch(e){i(e)}try{await r.hooks.callHook(`app:created`,n),await r.hooks.callHook(`app:beforeMount`,n),n.mount(I),await r.hooks.callHook(`app:mounted`,n),await l()}catch(e){i(e)}return n},e=Eo().catch(e=>{throw C.NUXT_E1009({cause:e}),e})}export{bn as i,xa as n,$ as r,vo as t};
@@ -0,0 +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},采用 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:`字体`,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:`无`,sources:`同时收录来自以下来源的词`,source:{spec1:{name:`日常词`,hint:`JMdict“spec1”:其他词表没有收录的常用词,如 日本。`},ichi1:{name:`基础词`,hint:`JMdict“ichi1”:“一万语”词表(基础词汇表)中最常用的词。`},news1:{name:`报纸用词`,hint:`JMdict“news1”:报纸中出现最多的 12,000 个词。`},gai1:{name:`外来语`,hint:`JMdict“gai1”:日语从其他语言借来的常用词。`},tatoeba:{name:`Tatoeba 例句`,hint:`Tatoeba:在例句中经常出现的词语,例如 留守中,即使上面的列表都没有收录;也决定单个汉字(如 箱)的读音。`},places:{name:`地名`,hint:`JMnedict:站名和地名。在没有常用词匹配的文字上使用。`},untagged:{name:`无排名词语`,hint:`JMdict:任何列表都没有排名的词语,例如 四字熟語。在没有其他内容匹配的文字上使用。会使字体增大约 700 KB。`},"mahjong-yaku":{name:`麻将役种`,hint:`麻将的役种和牌名,例如 立直。在没有常用词匹配的文字上使用。`},"jr-stations":{name:`JR 站名`,hint:`Desktop Tetsu 列表中的 JR 站名,例如 阿蘇。在没有常用词匹配的文字上使用。`},yojijukugo:{name:`四字熟语`,hint:`JMdict:四字熟语,例如 阿鼻叫喚。在没有常用词匹配的文字上使用。`}},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};
@@ -0,0 +1 @@
1
+ import{A as e,C as t,E as n,Ht as r,N as i,S as a,T as o,Y as s,Z as c,_ as l,at as u,bt as d,ft as f,j as p,mt as m,ot as h,t as g,ut as _,w as v}from"./CkUAspOr.js";import{a as y,o as b,s as x}from"./D4ezFGbh.js";import{c as S,i as C,r as ee,u as w}from"./DHMCzW9E.js";import{C as T,S as E,_ as D,a as O,c as k,f as A,h as j,m as M,n as N,t as P,u as F,v as I,x as L}from"./B7HtXrdR.js";import{i as R,t as z}from"#entry";import{n as B,t as V}from"./BT-EKmMU.js";var H=[`playground`,`website`,`desktop`,`mobile`];function U(e){return I(L(),T(),k(e))}function W(e){return I(U(e),A())}function G(e){return I(j(U(e)),E(e=>e||void 0))}var K=M({word:W(32),expected:W(64),shown:G(64),context:G(200)});M({words:I(N(K),F(1),k(20)),environment:M({type:D(H),url:G(500),app:G(100),os:G(100)}),family:W(100),version:W(32),locale:W(16),note:G(2e3),name:G(100),nickname:j(I(L(),O()))});var q={role:`status`,class:`flex flex-col items-center gap-6 px-6 py-24 text-center`},J={class:`display text-2xl font-semibold`},Y=[`onUpdate:modelValue`],X=[`onUpdate:modelValue`],Z=[`onUpdate:modelValue`],Q={class:`flex items-end gap-2 sm:col-span-3`},$=[`onUpdate:modelValue`],te=[`aria-label`,`onClick`],ne={class:`px-6 py-3`},re={class:`grid gap-4 p-6 sm:grid-cols-2`},ie=[`value`],ae={id:`report-families`},oe=[`value`],se=[`placeholder`],ce={class:`flex flex-col gap-4 p-6`},le=[`placeholder`,`aria-label`],ue={class:`flex flex-wrap items-center gap-4`},de=[`disabled`],fe={key:0,role:`alert`,class:`text-xs color-muted`},pe={class:`text-xs color-muted`},me=Object.assign(i({__name:`ReportForm`,setup(i){let g=`${S}/api/report`,{t:T,locale:E}=ee(),{family:D}=z(),O=()=>({word:``,expected:``,shown:``,context:``}),k=m([O()]),A=f({type:`playground`,url:``,app:``,os:``}),j=m(D.value.family),M=m(``),N=m(``),F=m(``),I=m(`idle`),L=a(()=>H.map(e=>({value:e,label:T(`report.environments.${e}`)})));async function U(){I.value=`sending`;let e={words:k.value,environment:A,family:j.value,version:w,locale:E.value,note:M.value,name:N.value,nickname:F.value};try{await R(g,{method:`POST`,body:e}),I.value=`sent`}catch(e){I.value=e instanceof Error&&`statusCode`in e&&e.statusCode===429?`limited`:`failed`}}function W(){k.value=[O()],M.value=``,I.value=`idle`}return(i,a)=>{let f=V,m=P,g=B;return d(I)===`sent`?(s(),v(m,{key:0},{default:u(()=>[t(`div`,q,[a[9]||=t(`span`,{class:`i-ph-check-circle-light text-7xl`,"aria-hidden":`true`},null,-1),t(`p`,J,r(i.$t(`report.sent`)),1),p(f,{icon:`i-ph-plus`,onClick:W},{default:u(()=>[e(r(i.$t(`report.again`)),1)]),_:1})])]),_:1})):(s(),n(`form`,{key:1,onSubmit:x(U,[`prevent`])},[p(m,{index:`01`,title:i.$t(`report.sections.words`,{count:d(k).length})},{default:u(()=>[(s(!0),n(l,null,c(d(k),(e,r)=>(s(),n(`div`,{key:r,class:`grid gap-4 border-b border-base p-6 sm:grid-cols-3`},[p(g,{label:i.$t(`report.word`)},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":t=>e.word=t,required:``,maxlength:`32`,lang:`ja`,placeholder:`市場`,class:`input`},null,8,Y),[[b,e.word]])]),_:2},1032,[`label`]),p(g,{label:i.$t(`report.expected`)},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":t=>e.expected=t,required:``,maxlength:`64`,lang:`ja`,placeholder:`いちば`,class:`input`},null,8,X),[[b,e.expected]])]),_:2},1032,[`label`]),p(g,{label:i.$t(`report.shown`)},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":t=>e.shown=t,maxlength:`64`,lang:`ja`,placeholder:`しじょう`,class:`input`},null,8,Z),[[b,e.shown]])]),_:2},1032,[`label`]),t(`div`,Q,[p(g,{label:i.$t(`report.context`),class:`flex-1`},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":t=>e.context=t,maxlength:`200`,lang:`ja`,placeholder:`駅前の市場で魚を買った。`,class:`input`},null,8,$),[[b,e.context]])]),_:2},1032,[`label`]),d(k).length>1?(s(),n(`button`,{key:0,type:`button`,class:`btn-ghost focus-ring w-9 shrink-0 px-0`,"aria-label":i.$t(`report.remove`,{word:e.word||r+1}),onClick:e=>d(k).splice(r,1)},[...a[10]||=[t(`span`,{class:`i-ph-trash`},null,-1)]],8,te)):o(``,!0)])]))),128)),t(`div`,ne,[p(f,{variant:`ghost`,icon:`i-ph-plus`,disabled:d(k).length>=(`MAX_REPORT_WORDS`in i?i.MAX_REPORT_WORDS:d(20)),onClick:a[0]||=e=>d(k).push(O())},{default:u(()=>[e(r(i.$t(`report.add`)),1)]),_:1},8,[`disabled`])])]),_:1},8,[`title`]),p(m,{index:`02`,title:i.$t(`report.sections.environment`)},{default:u(()=>[t(`div`,re,[p(g,{label:i.$t(`report.environment`)},{default:u(()=>[h(t(`select`,{"onUpdate:modelValue":a[1]||=e=>d(A).type=e,class:`input`},[(s(!0),n(l,null,c(d(L),e=>(s(),n(`option`,{key:e.value,value:e.value},r(e.label),9,ie))),128))],512),[[y,d(A).type]])]),_:1},8,[`label`]),p(g,{label:i.$t(`report.family`)},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":a[2]||=e=>_(j)?j.value=e:null,required:``,maxlength:`100`,list:`report-families`,class:`input`},null,512),[[b,d(j)]]),t(`datalist`,ae,[(s(!0),n(l,null,c(`FAMILIES`in i?i.FAMILIES:d(C),e=>(s(),n(`option`,{key:e.family,value:e.family},null,8,oe))),128))])]),_:1},8,[`label`]),d(A).type===`website`?(s(),v(g,{key:0,label:i.$t(`report.url`)},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":a[3]||=e=>d(A).url=e,type:`url`,maxlength:`500`,placeholder:`https://`,class:`input`},null,512),[[b,d(A).url]])]),_:1},8,[`label`])):o(``,!0),d(A).type===`desktop`||d(A).type===`mobile`?(s(),v(g,{key:1,label:i.$t(`report.app`)},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":a[4]||=e=>d(A).app=e,maxlength:`100`,placeholder:i.$t(`report.appPlaceholder.${d(A).type}`),class:`input`},null,8,se),[[b,d(A).app]])]),_:1},8,[`label`])):o(``,!0),p(g,{label:i.$t(`report.os`)},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":a[5]||=e=>d(A).os=e,maxlength:`100`,placeholder:`macOS 26, Windows 11, iOS 26`,class:`input`},null,512),[[b,d(A).os]])]),_:1},8,[`label`])])]),_:1},8,[`title`]),p(m,{index:`03`,title:i.$t(`report.sections.note`)},{default:u(()=>[t(`div`,ce,[h(t(`textarea`,{"onUpdate:modelValue":a[6]||=e=>_(M)?M.value=e:null,maxlength:`2000`,rows:`4`,placeholder:i.$t(`report.notePlaceholder`),"aria-label":i.$t(`report.sections.note`),class:`input resize-y`},null,8,le),[[b,d(M)]]),p(g,{label:i.$t(`report.name`),hint:i.$t(`report.nameHint`),class:`sm:max-w-sm`},{default:u(()=>[h(t(`input`,{"onUpdate:modelValue":a[7]||=e=>_(N)?N.value=e:null,maxlength:`100`,autocomplete:`nickname`,class:`input`},null,512),[[b,d(N)]])]),_:1},8,[`label`,`hint`]),h(t(`input`,{"onUpdate:modelValue":a[8]||=e=>_(F)?F.value=e:null,name:`nickname`,tabindex:`-1`,autocomplete:`off`,"aria-hidden":`true`,class:`sr-only`},null,512),[[b,d(F)]]),t(`div`,ue,[t(`button`,{type:`submit`,class:`btn-solid focus-ring`,disabled:d(I)===`sending`},[a[11]||=t(`span`,{class:`i-ph-paper-plane-tilt`},null,-1),e(` `+r(d(I)===`sending`?i.$t(`report.sending`):i.$t(`report.send`)),1)],8,de),d(I)===`failed`||d(I)===`limited`?(s(),n(`p`,fe,r(i.$t(`report.${d(I)}`)),1)):o(``,!0),t(`p`,pe,r(i.$t(`report.privacy`)),1)])])]),_:1},8,[`title`])],32))}}}),{__name:`ReportForm`}),he={},ge={class:`flex flex-col gap-4 px-6 py-12`},_e={class:`label`},ve={class:`display text-4xl font-semibold`},ye={class:`max-w-[60ch] text-[15px] leading-relaxed color-muted`};function be(e,i){let a=me;return s(),n(`div`,null,[t(`div`,ge,[t(`span`,_e,r(e.$t(`report.eyebrow`)),1),t(`h1`,ve,r(e.$t(`report.title`)),1),t(`p`,ye,r(e.$t(`report.body`)),1)]),p(a)])}var xe=g(he,[[`render`,be]]);export{xe as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./y75lAtyQ.js","./y07Wd5I9.js","./CkUAspOr.js","./D4ezFGbh.js","./Cl84O_XS.js","./DHMCzW9E.js","./entry.D1RJUMvH.css"])))=>i.map(i=>d[i]);
2
+ import{$ as e,A as t,B as n,C as r,E as i,Ht as a,N as o,R as s,S as c,T as l,V as u,W as d,X as f,Y as p,Z as m,_ as h,_t as g,at as _,bt as v,ft as y,gt as b,j as x,mt as S,ot as C,q as w,rt as T,s as E,tt as D,ut as O,w as k,zt as A}from"./CkUAspOr.js";import{o as j,s as M}from"./D4ezFGbh.js";import{a as N,g as P,o as F,r as I}from"./DHMCzW9E.js";import{_ as L,b as R,f as z,m as B,n as ee,t as te,u as ne,v as re,x as ie}from"./B7HtXrdR.js";import{a as V,c as ae,i as oe,o as H,s as se,t as ce}from"./CmFwbX1G.js";import{r as le}from"#entry";import{a as ue,i as de,n as U,r as fe,t as pe}from"./BJuAqPpj.js";import{n as me,t as W}from"./BT-EKmMU.js";var he={class:`grid gap-8 px-6 py-16 lg:grid-cols-2`},ge={class:`flex flex-col gap-4`},_e={class:`label`},ve={class:`display text-4xl font-semibold`},ye={class:`flex flex-col justify-center gap-5`},be={class:`text-xs color-muted`},xe={class:`flex flex-col gap-2`},Se={class:`label`},G=`npx furifont dev`,Ce=Object.assign(o({__name:`CustomizeUnavailable`,setup(t){let{copied:n,copy:o}=oe();return(t,s)=>{let c=e(`i18n-t`);return p(),i(`div`,he,[r(`div`,ge,[r(`span`,_e,a(t.$t(`customize.offline.eyebrow`)),1),r(`h1`,ve,a(t.$t(`customize.offline.title`)),1),x(c,{keypath:`customize.offline.body`,tag:`p`,class:`max-w-[52ch] text-[15px] leading-relaxed color-muted`},{folder:_(()=>[...s[1]||=[r(`code`,{class:`font-mono`},`./fonts`,-1)]]),_:1})]),r(`div`,ye,[r(`p`,be,a(t.$t(`customize.offline.needs`)),1),r(`div`,xe,[r(`span`,Se,a(t.$t(`customize.offline.run`)),1),r(`button`,{type:`button`,class:`focus-ring flex items-center justify-between gap-3 border border-strong px-4 py-3 text-left font-mono text-sm`,onClick:s[0]||=e=>v(o)(G)},[r(`span`,{class:`break-all`},`$ `+a(G)),r(`span`,{class:A([v(n)===G?`i-ph-check`:`i-ph-copy`,`shrink-0 color-muted`])},null,2)])])])])}}}),{__name:`CustomizeUnavailable`}),K=`furifont`,q=350,we=`furifont:customize:`;function Te(e,t){let n;return()=>{clearTimeout(n),n=setTimeout(e,t)}}function Ee(e){return e instanceof Error?e.message:String(e)}var J=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function Y(e,t){let n={};for(let r of new Set([...Object.keys(e),...Object.keys(t)])){let[i,a]=[e[r],t[r]];if(J(i)&&J(a)){let e=Y(i,a);Object.keys(e).length&&(n[r]=e)}else JSON.stringify(i)!==JSON.stringify(a)&&(n[r]=i??null)}return n}function De(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];r===null?delete n[e]:n[e]=J(r)&&J(t)?De(t,r):r}return n}var X=[`otf`,`woff2`],Oe=ae(B({...se.entries,base:re(ie(),z()),formats:re(ee(L(X)),ne(1))}));function ke(e,t){let n;try{n=R(Oe,De(t,JSON.parse(localStorage.getItem(e)??`{}`)))}catch{}return n?.success?n.output:(localStorage.removeItem(e),structuredClone(t))}function Ae(){let{devCustomizeBase:e}=E().public,t=S(`connecting`),n=b(),r=S({}),i=b(),a=S(de[0].text),o=y({loading:!1}),s=y({loading:!1}),c=y({running:!1,files:[]}),l=S(),u,f,p,m=0,h=0,_=0,v={},x=``;async function C(){i.value=await f.call(`report`,g(r.value)).catch(()=>i.value)}async function D(){let e=++_,t=await f.call(`estimate`,g(r.value)).catch(()=>void 0);e===_&&Object.assign(s,{size:t,loading:!1})}async function O(){let e=++m;o.loading=!0;try{let t=await f.call(`preview`,g(r.value),a.value);if(e!==m)return;let n=Uint8Array.from(atob(t.font),e=>e.charCodeAt(0)),i=new FontFace(`Furifont Preview ${e}`,n,{weight:`${F} ${N}`});await i.load(),document.fonts.add(i),p&&document.fonts.delete(p),p=i,Object.assign(o,{family:i.family,ms:t.ms,glyphs:t.stats.glyphs,variable:t.variable,error:void 0})}catch(t){e===m&&(o.error=Ee(t))}finally{e===m&&(o.loading=!1)}}let k=Te(async()=>{let e=++h;s.loading=!0,await Promise.all([C(),O()]),e===h&&D()},q);T(()=>JSON.stringify({...r.value,formats:void 0}),k),T(a,Te(O,q));function A(){let e=Y(g(r.value),v);Object.keys(e).length?localStorage.setItem(x,JSON.stringify(e)):localStorage.removeItem(x)}T(r,A,{deep:!0});async function j(){try{let{connectDevframe:e}=await le(async()=>{let{connectDevframe:e}=await import(`./y75lAtyQ.js`);return{connectDevframe:e}},__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url);u=await e(void 0),f=u.scope(K).rpc}catch{t.value=`unavailable`;return}await u.ensureTrusted(1500).catch(()=>!1)?await P():t.value=`locked`}async function M(e){return!u||!await u.requestTrustWithCode(e)?!1:(await P(),!0)}async function P(){n.value=await f.call(`state`),v=n.value.config,x=we+n.value.configPath,r.value=ke(x,v),t.value=`ready`,k()}function I(){r.value={...structuredClone(v),words:g(r.value.words)}}async function L(){Object.assign(c,{running:!0,files:[],error:void 0,step:`plan`,done:null,total:null});try{let{streamId:e}=await f.call(`build`,g(r.value));for await(let t of u.scope(K).rpc.streaming.subscribe(`build`,e))t.type===`progress`?Object.assign(c,{step:t.step,done:t.done,total:t.total}):t.type===`done`?c.files=t.files:c.error=t.message}catch(e){c.error=Ee(e)}finally{c.running=!1}}async function R(){l.value=await f.call(`save`,g(r.value)),v=structuredClone(g(r.value)),A()}function z(e){return f.call(`search`,e)}function B(e,t){let n=r.value.words??={},i=n[e]??[];n[e]=i.includes(t)?i.filter(e=>e!==t):[...i,t]}return w(j),d(()=>{p&&document.fonts.delete(p)}),{status:t,state:n,config:r,report:i,text:a,preview:o,estimate:s,build:c,savedTo:l,unlock:M,runBuild:L,save:R,reset:I,search:z,toggleWord:B}}var je=Symbol(`customize`);function Me(){let e=Ae();return f(je,e),e}function Z(){let e=s(je);if(!e)throw Error(`useCustomize() is only available inside the customize page`);return e}var Ne={class:`label`},Pe={class:`text-2xl font-semibold tracking-tight`},Fe=[`aria-label`],Ie={key:0,class:`text-sm`},Le=[`disabled`],Re=Object.assign(o({__name:`CustomizeAuth`,setup(t){let{unlock:n}=Z(),o=S(``),s=S(!1),c=S(!1);async function u(){c.value=!0,s.value=!await n(o.value.trim()),c.value=!1}return(t,n)=>{let d=e(`i18n-t`);return p(),i(`form`,{class:`mx-auto flex max-w-sm flex-col gap-4 px-6 py-24`,onSubmit:M(u,[`prevent`])},[r(`span`,Ne,a(t.$t(`customize.auth.eyebrow`)),1),r(`h1`,Pe,a(t.$t(`customize.auth.title`)),1),x(d,{keypath:`customize.auth.body`,tag:`p`,class:`text-sm color-muted`},{command:_(()=>[...n[1]||=[r(`code`,{class:`font-mono`},`furifont dev`,-1)]]),_:1}),C(r(`input`,{"onUpdate:modelValue":n[0]||=e=>O(o)?o.value=e:null,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`6`,"aria-label":t.$t(`customize.auth.code`),class:`input text-center font-mono text-xl tracking-[0.5em]`},null,8,Fe),[[j,v(o)]]),v(s)?(p(),i(`p`,Ie,a(t.$t(`customize.auth.failed`)),1)):l(``,!0),r(`button`,{type:`submit`,class:`btn-solid focus-ring`,disabled:v(c)||v(o).trim().length!==6},a(t.$t(`customize.auth.unlock`)),9,Le)],32)}}}),{__name:`CustomizeAuth`}),ze={class:`label flex justify-between gap-3`},Be={class:`color-base tabular-nums`},Ve={key:0,class:`text-xs color-muted`},He=Object.assign(o({__name:`UiRange`,props:n({label:{},display:{},hint:{},min:{},max:{},step:{},disabled:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=D(e,`modelValue`);return(n,o)=>{let s=U;return p(),i(`label`,{class:A([`flex flex-col gap-1.5`,e.disabled&&`opacity-40`])},[r(`span`,ze,[r(`span`,null,a(e.label),1),r(`span`,Be,a(e.display),1)]),x(s,{modelValue:t.value,"onUpdate:modelValue":o[0]||=e=>t.value=e,min:e.min,max:e.max,step:e.step,disabled:e.disabled},null,8,[`modelValue`,`min`,`max`,`step`,`disabled`]),e.hint?(p(),i(`span`,Ve,a(e.hint),1)):l(``,!0)],2)}}}),{__name:`UiRange`}),Ue=[`placeholder`],We=[`placeholder`],Ge={id:`customize-base-fonts`},Ke=[`value`],qe={class:`flex flex-col gap-2`},Je={class:`label mb-1.5`},Ye={class:`flex flex-wrap gap-2`},Xe=[`title`,`aria-pressed`,`onClick`],Q=500,$=48,Ze=Object.assign(o({__name:`CustomizeOptions`,setup(e){let{t:n}=I(),{config:o,state:s,report:l,reset:u}=Z(),d=c(()=>o.value.nfMin??P.plan.nfMin),f=c(()=>o.value.nfMax??P.plan.nfMax),g=c({get:()=>(d.value-1)*Q,set:e=>{let t=f.value-d.value;o.value.nfMin=e/Q+1,o.value.nfMax=Math.min($,o.value.nfMin+t)}}),y=c({get:()=>(f.value-d.value+1)*Q,set:e=>o.value.nfMax=d.value+e/Q-1}),b=c(()=>l.value&&l.value.stats.patterns-l.value.stats.places),S=c({get:()=>o.value.skipJlpt?V.indexOf(o.value.skipJlpt)+1:0,set:e=>{o.value.skipJlpt=V[e-1]}}),w=c(()=>S.value>1?`N5–${V[S.value-1]}`:V[S.value-1]),T=c({get:()=>o.value.isolated??P.plan.isolated,set:e=>o.value.isolated=e}),E=c({get:()=>o.value.isolatedMinShare??P.plan.isolatedMinShare,set:e=>o.value.isolatedMinShare=e}),D=c(()=>[`hiragana`,`katakanaOn`,`hepburn`].map(e=>({value:e,label:n(`customize.options.${e}`)}))),k=[`spec1`,`ichi1`,`news1`,`gai1`,`tatoeba`,`places`,`untagged`,...H],N=c(()=>o.value.metrics??{}),F=[{key:`rubyScale`,label:`rubyScale`,min:.2,max:.8,step:.05,digits:2},{key:`rubyGap`,label:`rubyGap`,min:0,max:.5,step:.01,digits:2},{key:`compressionFloor`,label:`squeeze`,min:.3,max:1,step:.05,digits:2},{key:`maxRubyWidth`,label:`maxWidth`,min:1,max:3,step:.1,digits:1}],L=c({get:()=>o.value.rubyScript??`hiragana`,set:e=>o.value.rubyScript=e});function R(e){return H.includes(e)}function z(e){return e===`tatoeba`?(o.value.minTatoeba??P.plan.minTatoeba)>0:R(e)?(o.value.manual??H).includes(e):e===`untagged`?o.value.untagged??P.plan.untagged:e===`places`?o.value.places??!0:(o.value.selectTags??[`spec1`]).includes(e)}function B(e){if(e===`tatoeba`){o.value.minTatoeba=z(e)?0:P.plan.minTatoeba;return}if(e===`untagged`){o.value.untagged=!z(e);return}if(R(e)){let t=o.value.manual??[...H];o.value.manual=t.includes(e)?t.filter(t=>t!==e):[...t,e];return}if(e===`places`){o.value.places=!z(e);return}let t=o.value.selectTags??[`spec1`];o.value.selectTags=t.includes(e)?t.filter(t=>t!==e):[...t,e]}return(e,n)=>{let c=me,l=fe,f=He,I=pe,R=W;return p(),i(`form`,{class:`flex flex-col gap-5 p-6`,onSubmit:n[8]||=M(()=>{},[`prevent`])},[x(c,{label:e.$t(`customize.options.family`)},{default:_(()=>[C(r(`input`,{"onUpdate:modelValue":n[0]||=e=>v(o).family=e,class:`input`,placeholder:v(P).plan.family},null,8,Ue),[[j,v(o).family]])]),_:1},8,[`label`]),x(c,{label:e.$t(`customize.options.base`),hint:e.$t(`customize.options.baseHint`)},{default:_(()=>[C(r(`input`,{"onUpdate:modelValue":n[1]||=e=>v(o).base=e,class:`input`,list:`customize-base-fonts`,placeholder:v(P).build.base},null,8,We),[[j,v(o).base]]),r(`datalist`,Ge,[(p(!0),i(h,null,m(v(s)?.baseFonts,e=>(p(),i(`option`,{key:e,value:e},null,8,Ke))),128))])]),_:1},8,[`label`,`hint`]),x(c,{label:e.$t(`customize.options.script`)},{default:_(()=>[x(l,{modelValue:v(L),"onUpdate:modelValue":n[2]||=e=>O(L)?L.value=e:null,label:e.$t(`customize.options.script`),options:v(D)},null,8,[`modelValue`,`label`,`options`])]),_:1},8,[`label`]),n[9]||=r(`div`,{class:`h-px bg-[var(--ff-line)]`},null,-1),x(f,{modelValue:v(g),"onUpdate:modelValue":n[3]||=e=>O(g)?g.value=e:null,label:e.$t(`customize.options.skip`),display:v(g)?v(g).toLocaleString(`en`):e.$t(`customize.options.none`),hint:e.$t(`customize.options.skipHint`),min:0,max:47*Q,step:Q},null,8,[`modelValue`,`label`,`display`,`hint`,`max`]),x(f,{modelValue:v(y),"onUpdate:modelValue":n[4]||=e=>O(y)?y.value=e:null,label:e.$t(`customize.options.words`),display:v(y).toLocaleString(`en`),hint:v(b)===void 0?void 0:e.$t(`customize.options.wordsHint`,{count:v(b).toLocaleString(`en`)}),min:Q,max:($-v(d)+1)*Q,step:Q},null,8,[`modelValue`,`label`,`display`,`hint`,`max`]),x(f,{modelValue:v(S),"onUpdate:modelValue":n[5]||=e=>O(S)?S.value=e:null,label:e.$t(`customize.options.jlpt`),display:v(w)??e.$t(`customize.options.none`),hint:e.$t(`customize.options.jlptHint`),min:0,max:v(V).length},null,8,[`modelValue`,`label`,`display`,`hint`,`max`]),r(`fieldset`,qe,[r(`legend`,Je,a(e.$t(`customize.options.sources`)),1),r(`div`,Ye,[(p(),i(h,null,m(k,t=>r(`button`,{key:t,type:`button`,class:A([`focus-ring border px-2 py-1 text-xs transition-colors`,z(t)?`border-inverse bg-inverse color-inverse`:`border-base color-muted hover:border-strong`]),title:e.$t(`customize.options.source.${t}.hint`),"aria-pressed":z(t),onClick:e=>B(t)},a(e.$t(`customize.options.source.${t}.name`)),11,Xe)),64))])]),x(I,{modelValue:v(T),"onUpdate:modelValue":n[6]||=e=>O(T)?T.value=e:null},{default:_(()=>[t(a(e.$t(`customize.options.isolated`)),1)]),_:1},8,[`modelValue`]),x(f,{modelValue:v(E),"onUpdate:modelValue":n[7]||=e=>O(E)?E.value=e:null,label:e.$t(`customize.options.share`),display:v(E).toFixed(2),hint:e.$t(`customize.options.shareHint`),min:.5,max:1,step:.05,disabled:!v(T)},null,8,[`modelValue`,`label`,`display`,`hint`,`disabled`]),n[10]||=r(`div`,{class:`h-px bg-[var(--ff-line)]`},null,-1),(p(),i(h,null,m(F,t=>x(f,{key:t.key,"model-value":v(N)[t.key]??v(P).plan.metrics[t.key],label:e.$t(`customize.options.${t.label}`),display:(v(N)[t.key]??v(P).plan.metrics[t.key]).toFixed(t.digits),min:t.min,max:t.max,step:t.step,"onUpdate:modelValue":e=>v(N)[t.key]=e},null,8,[`model-value`,`label`,`display`,`min`,`max`,`step`,`onUpdate:modelValue`])),64)),x(R,{variant:`ghost`,icon:`i-ph-arrow-counter-clockwise`,class:`self-start`,title:e.$t(`customize.options.resetHint`),onClick:v(u)},{default:_(()=>[t(a(e.$t(`customize.options.reset`)),1)]),_:1},8,[`title`,`onClick`])],32)}}}),{__name:`CustomizeOptions`}),Qe={class:`relative min-h-56 px-6 py-8`},$e={key:0,class:`mt-4 font-mono text-xs`},et={class:`flex flex-wrap items-center gap-4 border-t border-base px-6 py-3`},tt={class:`text-xs color-muted`},nt={class:`font-mono text-xs color-muted tabular-nums`},rt=Object.assign(o({__name:`CustomizePreview`,setup(e){let{text:t,preview:n}=Z(),o=S(32),s=S(400);return(e,c)=>{let u=W,d=ce,f=U;return p(),i(`div`,null,[r(`div`,Qe,[x(u,{variant:`ghost`,icon:`i-ph-shuffle`,class:`absolute right-3 top-3 w-9 px-0`,"aria-label":e.$t(`shuffle`),title:e.$t(`shuffle`),onClick:c[0]||=n=>t.value=(`otherSample`in e?e.otherSample:v(ue))(v(t)).text},null,8,[`aria-label`,`title`]),x(d,{text:v(t),"onUpdate:text":c[1]||=e=>O(t)?t.value=e:null,family:v(n).family,size:v(o),weight:v(s),class:A(v(n).loading&&`opacity-60`)},null,8,[`text`,`family`,`size`,`weight`,`class`]),v(n).error?(p(),i(`p`,$e,a(v(n).error),1)):l(``,!0)]),r(`div`,et,[r(`span`,tt,a(v(n).loading?e.$t(`customize.preview.compiling`):e.$t(`playground.textHint`)),1),v(n).variable?(p(),k(f,{key:0,modelValue:v(s),"onUpdate:modelValue":c[2]||=e=>O(s)?s.value=e:null,min:`MIN_WEIGHT`in e?e.MIN_WEIGHT:v(F),max:`MAX_WEIGHT`in e?e.MAX_WEIGHT:v(N),step:10,"aria-label":e.$t(`customize.preview.weight`),class:`ml-auto w-28`},null,8,[`modelValue`,`min`,`max`,`aria-label`])):l(``,!0),x(f,{modelValue:v(o),"onUpdate:modelValue":c[3]||=e=>O(o)?o.value=e:null,min:16,max:64,"aria-label":e.$t(`customize.preview.size`),class:A(v(n).variable?`w-28`:`ml-auto w-28`)},null,8,[`modelValue`,`aria-label`,`class`]),r(`span`,nt,a(v(n).ms===void 0?``:e.$t(`customize.preview.stats`,{glyphs:v(n).glyphs??0,ms:v(n).ms})),1)])])}}}),{__name:`CustomizePreview`}),it={class:`flex flex-col gap-1 px-4 py-3`},at={class:`font-mono text-xl tabular-nums`},ot={class:`label`},st=Object.assign(o({__name:`UiStat`,props:{label:{},value:{}},setup(e){return(t,n)=>(p(),i(`div`,it,[r(`span`,at,a(typeof e.value==`number`?e.value.toLocaleString(`en`):e.value),1),r(`span`,ot,a(e.label),1)]))}}),{__name:`UiStat`}),ct={class:`grid grid-cols-3 border-b border-base lg:grid-cols-7`},lt={key:0,class:`label col-span-full px-6 py-4`},ut={class:`flex flex-wrap gap-3 px-6 pt-4 font-mono text-xs color-muted tabular-nums items-center`},dt=[`aria-label`],ft=[`aria-pressed`,`disabled`,`onClick`],pt={key:0},mt={key:0},ht={key:1},gt={class:`flex flex-wrap items-center gap-3 px-6 py-4`},_t=[`disabled`],vt={key:0,class:`font-mono text-xs color-muted`},yt={key:0,class:`border-t border-base px-6 py-3 font-mono text-xs`},bt={key:1,class:`border-t border-base`},xt=[`href`],St={class:`font-mono text-xs color-muted tabular-nums`},Ct=Object.assign(o({__name:`CustomizeBuild`,setup(e){let{t:n}=I(),{config:o,report:s,estimate:d,build:f,savedTo:g,runBuild:_,save:y}=Z(),b=e=>`${(e/1024/1024).toFixed(2)} MB`,x=c(()=>o.value.formats??X);function S(e){o.value.formats=X.filter(t=>t===e?!x.value.includes(t):x.value.includes(t))}let C=c(()=>{let e=d.size;return e&&[`woff2`,`otf`].filter(e=>x.value.includes(e)).map(t=>n(`customize.build.estimate.${t}`,{size:b(e[t])})).join(` · `)}),w=c(()=>{let e=s.value?.stats;return e?[{label:n(`customize.build.words`),value:e.patterns-e.places},{label:n(`customize.build.places`),value:e.places},{label:n(`customize.build.ambiguous`),value:e.ambiguous},{label:n(`customize.build.lone`),value:e.isolated},{label:n(`customize.build.protected`),value:e.protectedAnnotated+e.protectedBare},{label:n(`customize.build.glyphs`),value:e.glyphs},{label:n(`customize.build.rules`),value:e.rules}]:[]}),T=c(()=>f.total?`${f.step} ${f.done}/${f.total}`:f.step);return(e,n)=>{let o=st;return p(),i(`div`,null,[r(`div`,ct,[(p(!0),i(h,null,m(v(w),e=>(p(),k(o,u({key:e.label},{ref_for:!0},e,{class:`border-r border-base last:border-r-0`}),null,16))),128)),v(w).length?l(``,!0):(p(),i(`span`,lt,a(e.$t(`customize.build.planning`)),1))]),r(`div`,ut,[r(`div`,{role:`group`,"aria-label":e.$t(`customize.build.formats`),class:`flex gap-2`},[(p(!0),i(h,null,m(`FONT_FORMATS`in e?e.FONT_FORMATS:v(X),e=>(p(),i(`button`,{key:e,type:`button`,class:A([`focus-ring border px-2 py-1 font-mono text-xs transition-colors disabled:cursor-not-allowed`,v(x).includes(e)?`border-strong bg-inverse color-inverse`:`border-base color-muted hover:border-strong`]),"aria-pressed":v(x).includes(e),disabled:v(f).running||v(x).length===1&&v(x).includes(e),onClick:t=>S(e)},` .`+a(e),11,ft))),128))],8,dt),v(C)||v(d).loading?(p(),i(`div`,pt,[v(C)?(p(),i(`span`,mt,a(v(C)),1)):l(``,!0),v(d).loading?(p(),i(`span`,ht,a(e.$t(`customize.build.estimating`)),1)):l(``,!0)])):l(``,!0)]),r(`div`,gt,[r(`button`,{type:`button`,class:`btn-solid focus-ring`,disabled:v(f).running,onClick:n[0]||=(...e)=>v(_)&&v(_)(...e)},[r(`span`,{class:A(v(f).running?`i-ph-circle-notch animate-spin`:`i-ph-hammer`)},null,2),t(` `+a(v(f).running?v(T):e.$t(`customize.build.run`)),1)],8,_t),r(`button`,{type:`button`,class:`btn-outline focus-ring`,onClick:n[1]||=(...e)=>v(y)&&v(y)(...e)},[n[2]||=r(`span`,{class:`i-ph-floppy-disk`},null,-1),t(` `+a(e.$t(`customize.build.save`)),1)]),v(g)?(p(),i(`span`,vt,a(v(g)),1)):l(``,!0)]),v(f).error?(p(),i(`p`,yt,a(v(f).error),1)):l(``,!0),v(f).files.length?(p(),i(`ul`,bt,[(p(!0),i(h,null,m(v(f).files,e=>(p(),i(`li`,{key:e.name,class:`flex items-center gap-4 border-b border-base px-6 py-2 last:border-b-0`},[r(`a`,{href:e.url,download:``,class:`focus-ring font-mono text-sm underline underline-offset-3`},a(e.name),9,xt),r(`span`,St,a(b(e.bytes)),1)]))),128))])):l(``,!0)])}}}),{__name:`CustomizeBuild`}),wt={class:`flex flex-col gap-2 border-b border-base p-6`},Tt=[`placeholder`,`aria-label`],Et={class:`text-xs color-muted`},Dt={class:`max-h-[32rem] overflow-y-auto`},Ot={lang:`ja`,class:`w-28 shrink-0 text-base`},kt=[`aria-pressed`,`title`,`onClick`],At=[`onClick`],jt=Object.assign(o({__name:`CustomizeWords`,setup(e){let{config:t,report:n,search:o,toggleWord:s}=Z(),l=S(``),u=b([]);T(l,async e=>{let t=e.trim(),n=t?await o(t).catch(()=>[]):[];e===l.value&&(u.value=n)});let d=c(()=>new Set(t.value.words?.pin??[])),f=c(()=>new Set(t.value.words?.remove??[])),g=c(()=>l.value.trim()?u.value:Object.entries(n.value?.ivs.words??{}).map(([e,t])=>({form:e,readings:t.map(e=>({notation:e,nf:0,priority:``}))})));return(e,t)=>(p(),i(`div`,null,[r(`div`,wt,[C(r(`input`,{"onUpdate:modelValue":t[0]||=e=>O(l)?l.value=e:null,type:`search`,lang:`ja`,placeholder:e.$t(`customize.dictionary.search`),"aria-label":e.$t(`customize.dictionary.search`),class:`input max-w-md`},null,8,Tt),[[j,v(l)]]),r(`p`,Et,a(v(l).trim()?e.$t(`customize.dictionary.results`,{count:v(u).length}):e.$t(`customize.dictionary.hint`)),1)]),r(`ul`,Dt,[(p(!0),i(h,null,m(v(g),t=>(p(),i(`li`,{key:t.form,class:A([`flex flex-wrap items-center gap-2 border-b border-base px-6 py-2`,v(f).has(t.form)&&`opacity-40`])},[r(`span`,Ot,a(t.form),1),(p(!0),i(h,null,m(t.readings,t=>(p(),i(`button`,{key:t.notation,type:`button`,lang:`ja`,class:A([`focus-ring border px-2 py-0.5 text-sm transition-colors`,v(d).has(t.notation)?`border-inverse bg-inverse color-inverse`:`border-base hover:border-strong`]),"aria-pressed":v(d).has(t.notation),title:t.priority||e.$t(`customize.dictionary.noTag`),onClick:e=>v(s)(`pin`,t.notation)},a(t.notation),11,kt))),128)),r(`button`,{type:`button`,class:`btn-ghost focus-ring ml-auto h-7 px-2 text-xs`,onClick:e=>v(s)(`remove`,t.form)},a(v(f).has(t.form)?e.$t(`customize.dictionary.restore`):e.$t(`customize.dictionary.remove`)),9,At)],2))),128))])]))}}),{__name:`CustomizeWords`}),Mt={class:`flex flex-col gap-4 p-6`},Nt=[`placeholder`,`aria-label`],Pt={type:`submit`,class:`btn-outline focus-ring shrink-0`},Ft={class:`label`},It={class:`flex flex-wrap gap-2`},Lt=[`aria-label`,`onClick`],Rt={key:0,class:`text-xs color-muted`},zt=Object.assign(o({__name:`CustomizeCustomWords`,setup(e){let{config:n,toggleWord:o}=Z(),s=S(``),u=c(()=>[{key:`add`,label:`customize.custom.added`,items:n.value.words?.add??[]},{key:`pin`,label:`customize.custom.pinned`,items:n.value.words?.pin??[]},{key:`remove`,label:`customize.custom.removed`,items:n.value.words?.remove??[]}]);function d(){/\[[^\]]+\]/.test(s.value)&&(o(`add`,s.value.trim()),s.value=``)}return(e,n)=>(p(),i(`div`,Mt,[r(`form`,{class:`flex gap-2`,onSubmit:M(d,[`prevent`])},[C(r(`input`,{"onUpdate:modelValue":n[0]||=e=>O(s)?s.value=e:null,lang:`ja`,placeholder:e.$t(`customize.custom.placeholder`),"aria-label":e.$t(`customize.custom.label`),class:`input font-mono`},null,8,Nt),[[j,v(s)]]),r(`button`,Pt,a(e.$t(`customize.custom.add`)),1)],32),(p(!0),i(h,null,m(v(u),s=>(p(),i(`div`,{key:s.key,class:`flex flex-col gap-2`},[r(`span`,Ft,a(e.$t(s.label,{count:s.items.length})),1),r(`div`,It,[(p(!0),i(h,null,m(s.items,c=>(p(),i(`button`,{key:c,type:`button`,lang:`ja`,class:`focus-ring group flex items-center gap-1.5 border border-base px-2 py-0.5 text-sm hover:border-strong`,"aria-label":e.$t(`customize.custom.takeOut`,{item:c}),onClick:e=>v(o)(s.key,c)},[t(a(c)+` `,1),n[1]||=r(`span`,{class:`i-ph-x text-xs color-muted group-hover:color-base`},null,-1)],8,Lt))),128)),s.items.length?l(``,!0):(p(),i(`span`,Rt,a(e.$t(`customize.custom.none`)),1))])]))),128))]))}}),{__name:`CustomizeCustomWords`}),Bt={key:0,class:`label px-6 py-24 text-center`},Vt={key:3,class:`grid lg:grid-cols-[340px_1fr]`},Ht={class:`border-b border-base lg:border-b-0 lg:border-r`},Ut={class:`flex items-baseline justify-between border-b border-base px-6 py-3`},Wt={class:`label color-base`},Gt={class:`font-mono text-[11px] color-muted`},Kt={class:`min-w-0`},qt=o({__name:`customize`,setup(e){let{status:t,state:n}=Me();return(e,o)=>{let s=Ce,c=Re,l=Ze,u=rt,d=te,f=Ct,m=jt,h=zt;return p(),i(`div`,null,[v(t)===`connecting`?(p(),i(`p`,Bt,a(e.$t(`customize.connecting`)),1)):v(t)===`unavailable`?(p(),k(s,{key:1})):v(t)===`locked`?(p(),k(c,{key:2})):(p(),i(`div`,Vt,[r(`aside`,Ht,[r(`div`,Ut,[r(`h1`,Wt,a(e.$t(`customize.title`)),1),r(`span`,Gt,a(v(n)?.sources.JMdict),1)]),x(l)]),r(`div`,Kt,[x(d,{index:`01`,title:e.$t(`customize.sections.preview`),class:`border-t-0 bg-base lg:sticky lg:top-14 lg:z-1 lg:border-b`},{default:_(()=>[x(u)]),_:1},8,[`title`]),x(d,{index:`02`,title:e.$t(`customize.sections.build`),class:`lg:border-t-0`},{default:_(()=>[x(f)]),_:1},8,[`title`]),x(d,{index:`03`,title:e.$t(`customize.sections.dictionary`)},{default:_(()=>[x(m)]),_:1},8,[`title`]),x(d,{index:`04`,title:e.$t(`customize.sections.words`)},{default:_(()=>[x(h)]),_:1},8,[`title`])])]))])}}});export{qt as default};
@@ -0,0 +1 @@
1
+ import{n as e}from"./y07Wd5I9.js";import{$ as t,Gt as n,I as r,Kt as i,L as a,N as o,P as s,R as c,S as l,W as u,Wt as d,a as f,bt as p,ct as m,d as ee,gt as te,mt as ne,o as h,q as re,s as g,vt as _}from"./CkUAspOr.js";import{t as ie}from"./D4ezFGbh.js";String.fromCharCode;var v=/#/g,y=/&/g,b=/\//g,ae=/=/g,x=/\+/g,S=/%5e/gi,oe=/%60/gi,se=/%7c/gi,ce=/%20/gi,le=/%2f/gi;function ue(e){return encodeURI(``+e).replace(se,`|`)}function C(e){return ue(typeof e==`string`?e:JSON.stringify(e)).replace(x,`%2B`).replace(ce,`+`).replace(v,`%23`).replace(y,`%26`).replace(oe,"`").replace(S,`^`).replace(b,`%2F`)}function w(e){return C(e).replace(ae,`%3D`)}function T(e=``){try{return decodeURIComponent(``+e)}catch{return``+e}}function de(e){return T(e.replace(le,`%252F`))}function fe(e){return T(e.replace(x,` `))}function pe(e){return T(e.replace(x,` `))}function E(e=``){let t=Object.create(null);e[0]===`?`&&(e=e.slice(1));for(let n of e.split(`&`)){let e=n.match(/([^=]+)=?(.*)/)||[];if(e.length<2)continue;let r=fe(e[1]);if(r===`__proto__`||r===`constructor`)continue;let i=pe(e[2]||``);t[r]===void 0?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]}return t}function me(e,t){return(typeof t==`number`||typeof t==`boolean`)&&(t=String(t)),t?Array.isArray(t)?t.map(t=>`${w(e)}=${C(t)}`).join(`&`):`${w(e)}=${C(t)}`:w(e)}function he(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>me(t,e[t])).filter(Boolean).join(`&`)}var ge=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,_e=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,ve=/^([/\\]\s*){2,}[^/\\]/,ye=/^[\s\0]*(blob|data|javascript|vbscript):$/i,be=/\/$|\/\?|\/#/,xe=/^\.?\//;function D(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?ge.test(e):_e.test(e)||(t.acceptRelative?ve.test(e):!1)}function Se(e){return!!e&&ye.test(e)}function Ce(e=``,t){return t?be.test(e):e.endsWith(`/`)}function O(e=``,t){if(!t)return(Ce(e)?e.slice(0,-1):e)||`/`;if(!Ce(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function we(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(Ce(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function Te(e,t){if(Oe(t)||D(e))return e;let n=O(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return k(n,e)}function Ee(e,t){if(Oe(t))return e;let n=O(t);if(!e.startsWith(n))return e;let r=e[n.length];return r&&r!==`/`&&r!==`?`?e:`/`+e.slice(n.length).replace(/^\/+/,``)}function De(e,t){let n=A(e);return n.search=he({...E(n.search),...t}),Pe(n)}function Oe(e){return!e||e===`/`}function ke(e){return e&&e!==`/`}function k(e,...t){let n=e||``;for(let e of t.filter(e=>ke(e)))if(n){let t=e.replace(xe,``);n=we(n)+t}else n=e;return n}function Ae(...e){let t=/\/(?!\/)/,n=e.filter(Boolean),r=[],i=0;for(let e of n)if(e&&e!==`/`){for(let[n,a]of e.split(t).entries())if(a&&a!==`.`){if(a===`..`){if(r.length===1&&D(r[0]))continue;r.pop(),i--}else n===1&&r[r.length-1]?.endsWith(`:/`)?r[r.length-1]+=`/`+a:(r.push(a),i++)}}let a=r.join(`/`);return i>=0?n[0]?.startsWith(`/`)&&!a.startsWith(`/`)?a=`/`+a:n[0]?.startsWith(`./`)&&!a.startsWith(`./`)&&(a=`./`+a):a=`../`.repeat(-1*i)+a,n[n.length-1]?.endsWith(`/`)&&!a.endsWith(`/`)&&(a+=`/`),a}function je(e,t){return T(O(e))===T(O(t))}var Me=Symbol.for(`ufo:protocolRelative`);function A(e=``,t){let n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){let[,e,t=``]=n;return{protocol:e.toLowerCase(),pathname:t,href:e+t,auth:``,host:``,search:``,hash:``}}if(!D(e,{acceptRelative:!0}))return t?A(t+e):Ne(e);let[,r=``,i,a=``]=e.replace(/\\/g,`/`).match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,o=``,s=``]=a.match(/([^#/?]*)(.*)?/)||[];r===`file:`&&(s=s.replace(/\/(?=[A-Za-z]:)/,``));let{pathname:c,search:l,hash:u}=Ne(s);return{protocol:r.toLowerCase(),auth:i?i.slice(0,Math.max(0,i.length-1)):``,host:o,pathname:c,search:l,hash:u,[Me]:!r}}function Ne(e=``){let[t=``,n=``,r=``]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function Pe(e){let t=e.pathname||``,n=e.search?(e.search.startsWith(`?`)?``:`?`)+e.search:``,r=e.hash||``,i=e.auth?e.auth+`@`:``,a=e.host||``;return(e.protocol||e[Me]?(e.protocol||``)+`//`:``)+i+a+t+n+r}function j(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function M(e,t,n=`.`,r){if(!j(t))return M(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:j(a)&&j(i[t])?M(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function Fe(e){return(...t)=>t.reduce((t,n)=>M(t,n,``,e),{})}var Ie=Fe();function Le(e,t){try{return t in e}catch{return!1}}var Re=class extends Error{static __h3_error__=!0;statusCode=500;fatal=!1;unhandled=!1;statusMessage;data;cause;constructor(e,t={}){super(e,t),t.cause&&!this.cause&&(this.cause=t.cause)}toJSON(){let e={message:this.message,statusCode:N(this.statusCode,500)};return this.statusMessage&&(e.statusMessage=He(this.statusMessage)),this.data!==void 0&&(e.data=this.data),e}};function ze(e){if(typeof e==`string`)return new Re(e);if(Be(e))return e;let t=new Re(e.message??e.statusMessage??``,{cause:e.cause||e});if(Le(e,`stack`))try{Object.defineProperty(t,"stack",{get(){return e.stack}})}catch{try{t.stack=e.stack}catch{}}if(e.data&&(t.data=e.data),e.statusCode?t.statusCode=N(e.statusCode,t.statusCode):e.status&&(t.statusCode=N(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){let e=t.statusMessage;He(t.statusMessage)!==e&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return e.fatal!==void 0&&(t.fatal=e.fatal),e.unhandled!==void 0&&(t.unhandled=e.unhandled),t}function Be(e){return e?.constructor?.__h3_error__===!0}var Ve=/[^\u0009\u0020-\u007E]/g;function He(e=``){return e.replace(Ve,``)}function N(e,t=200){return!e||(typeof e==`string`&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}globalThis.Headers,globalThis.Response;var Ue=`__nuxt_error`,We=e=>!!e&&typeof e==`object`&&`__nuxt_error`in e,P=e=>{if(We(e))return e;typeof e!=`string`&&e?.statusText&&(e.message??=e.statusText);let t=ze(e??{});return Object.defineProperty(t,Ue,{value:!0,configurable:!1,writable:!1}),Object.defineProperty(t,"status",{get:()=>t.statusCode,configurable:!0}),Object.defineProperty(t,"statusText",{get:()=>t.statusMessage,configurable:!0}),t},Ge=`https://a.invalid/probe/`,Ke=`https://b.invalid/probe/`;function F(e,t=Ge){try{return new URL(e,t)}catch{return null}}function I(e){return e[0]===`/`&&e[1]!==`/`&&e[1]!==`\\`}function L(e){if(!e||I(e))return!1;let t=F(e);return!!t&&t.href===F(e,Ke)?.href}function R(e){if(!e||I(e))return null;let t=F(e.replace(/[\u0000-\u001F\u007F\s]+/g,``));for(;t?.protocol===`view-source:`;)t=F(t.pathname);return t?Se(t.protocol)?t.protocol:null:``}function z(e){return R(e)===null?e:null}var qe=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function Je(e){return qe.test(e)}var Ye=Symbol(`layout-meta`),Xe=Symbol(`route`),B=e({docsBase:n,reporters:i}),V=(()=>h()?.$router);function Ze(e){let t=e;return t.parent??t.subs?.sub}function Qe(e){let t=e.scope,n=m();for(;n;){if(n===t)return!0;n=Ze(n)}return!1}var $e=(()=>{if(a()){let e=s();if(!e||Qe(e))return c(Xe,h()._route)}return h()._route});function et(e){return e}var tt=()=>{try{if(h()._processingMiddleware)return!0}catch{return!1}return!1},nt=(e,t)=>{e||=`/`;let n=typeof e==`string`||`path`in e,r=typeof e==`string`?e:`path`in e?H(e):V().resolve(e).href;if(t?.open){let e=R(r);if(e!==null)throw B.NUXT_E2002({toPath:r,protocol:e});let i=n&&!L(r)&&!r.startsWith(`#`)?k(g().app.baseURL,r):r,{target:a=`_blank`,windowFeatures:o={}}=t.open,s=[];for(let[e,t]of Object.entries(o))t!==void 0&&s.push(`${e.toLowerCase()}=${t}`);return open(i,a,s.join(`, `)),Promise.resolve()}let i=L(r),a=t?.external||i;if(a){if(!t?.external)throw B.NUXT_E2001({toPath:r});let e=R(r);if(e!==null)throw B.NUXT_E2002({toPath:r,protocol:e})}let o=tt();if(!a&&o){if(t?.replace){if(typeof e==`string`){let{pathname:t,search:n,hash:r}=A(e);return{path:t,...n&&{query:E(n)},...r&&{hash:r},replace:!0}}return{...e,replace:!0}}return e}let s=V(),c=h();if(a)return c._scope.stop(),t?.replace?location.replace(r):location.href=r,o?c.isHydrating?new Promise(()=>{}):!1:Promise.resolve();let l=typeof e==`string`?rt(e):e;return t?.replace?s.replace(l):s.push(l)};function H(e){return De(e.path||``,e.query||{})+(e.hash||``)}function rt(e){let t=A(e);return ut(de(t.pathname))+t.search+t.hash}var it=/%7C/g,at=/%5B/g,ot=/%5D/g,st=/%252F/gi,ct=/#/g,lt=/\?/g;function ut(e){return encodeURI(e).replace(it,`|`).replace(at,`[`).replace(ot,`]`).replace(ct,`%23`).replace(lt,`%3F`).replace(st,`%2F`)}var U=()=>_(h().payload,`error`),dt=e=>{let t=P(e);try{let e=U();h().hooks.callHook(`app:error`,t),e.value||=t}catch{throw t}return t},ft=(e,t)=>{let n=e.callHook(`app:error`,P(t));return d.NUXT_E1012({userAgent:navigator.userAgent,cause:t}),n},pt=async(e,t)=>{Je(navigator.userAgent)?await ft(e,t):await e.runWithContext(()=>dt(t))},mt=async(e={})=>{let t=h(),n=U();t.callHook(`app:error:cleared`,e),e.redirect&&await V().replace(e.redirect),n.value=void 0},ht=e=>e.startsWith(`/`);function gt(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function _t(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&gt(e.default)}var vt=Object.assign;function yt(e,t){let n={};for(let r in t){let i=t[r];n[r]=W(i)?i.map(e):e(i)}return n}var bt=()=>{},W=Array.isArray;function xt(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var St=Symbol(``);function G(e,t){return vt(Error(),{type:e,[St]:!0},t)}function Ct(e,t){return e instanceof Error&&St in e&&(t==null||!!(e.type&t))}var wt=Symbol(``),Tt=Symbol(``),Et=Symbol(``),Dt=Symbol(``),Ot=Symbol(``),kt=Symbol(``),At=typeof document<`u`,jt=/#/g,Mt=/&/g,Nt=/\//g,Pt=/=/g,Ft=/\?/g,It=/\+/g,Lt=/%5B/g,Rt=/%5D/g,zt=/%5E/g,Bt=/%60/g,Vt=/%7B/g,Ht=/%7C/g,Ut=/%7D/g,Wt=/%20/g;function K(e){return e==null?``:encodeURI(``+e).replace(Ht,`|`).replace(Lt,`[`).replace(Rt,`]`)}function Gt(e){return K(e).replace(Vt,`{`).replace(Ut,`}`).replace(zt,`^`)}function Kt(e){return K(e).replace(It,`%2B`).replace(Wt,`+`).replace(jt,`%23`).replace(Mt,`%26`).replace(Bt,"`").replace(Vt,`{`).replace(Ut,`}`).replace(zt,`^`)}function qt(e){return Kt(e).replace(Pt,`%3D`)}function Jt(e){return K(e).replace(jt,`%23`).replace(Ft,`%3F`)}function Yt(e){return Jt(e).replace(Nt,`%2F`)}function q(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Xt=/\/$/,Zt=e=>e.replace(Xt,``);function Qt(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=on(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:q(o)}}function $t(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function en(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function tn(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&J(t.matched[r],n.matched[i])&&nn(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function J(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function nn(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!rn(e[n],t[n]))return!1;return!0}function rn(e,t){return W(e)?an(e,t):W(t)?an(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function an(e,t){return W(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function on(e,t){if(ht(e))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`){if(s===`..`)a>1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var sn={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function cn(e){if(!e){if(At){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Zt(e)}var ln=/^[^#]+#/;function un(e,t){return e.replace(ln,`#`)+t}function dn(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var fn=()=>history.scrollRestoration===`manual`?{left:window.scrollX,top:window.scrollY}:null;function pn(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=dn(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function mn(e,t){return(history.state?history.state.position-t:-1)+e}var Y=new Map;function hn(e){Y.set(e,fn())}function gn(e){let t=Y.get(e);return Y.delete(e),t}function _n(e,t=!1){for(let n of Y.keys()){let r=parseInt(n,10);(r===e||!t&&r>e)&&Y.delete(n)}}function vn(e){return typeof e==`string`||e&&typeof e==`object`}function yn(e){return typeof e==`string`||typeof e==`symbol`}function bn(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(It,` `),i=r.indexOf(`=`),a=q(i<0?r:r.slice(0,i)),o=i<0?null:q(r.slice(i+1));if(a in t){let e=t[a];W(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function xn(e){let t=``;for(let n in e){let r=e[n];n=qt(n),r==null?r!==void 0&&(t+=(t.length?`&`:``)+n):(W(r)?r.map(e=>e&&Kt(e)):[r&&Kt(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Sn(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=W(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Cn(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function X(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(G(4,{from:n,to:t})):e instanceof Error?c(e):vn(e)?c(G(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function wn(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(t===`beforeRouteEnter`||o.instances[e]){if(gt(s)){let c=(s.__vccOpts||s)[t];c&&a.push(X(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=_t(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&X(c,n,r,o,e,i)()}))}}}return a}function Tn(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>J(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>J(e,s))||i.push(s))}return[n,r,i]}var En=(e,t)=>({default:()=>e?r(ie,e===!0?{}:e,t):t.default?.()}),Dn=/(:\w+)\([^)]+\)/g,On=/(:\w+)[?+*]/g,kn=/:\w+/g;function An(e){let t=e?.meta.key??e.path.replace(Dn,`$1`).replace(On,`$1`).replace(kn,t=>e.params[t.slice(1)]?.toString()||``);return typeof t==`function`?t(e):t}function jn(e,t){return e===t||t===sn?!1:An(e)!==An(t)||!e.matched.every((e,n)=>e.components&&e.components.default===t.matched[n]?.components?.default)}function Mn(e){return Array.isArray(e)?e:[e]}function Nn(e){let t=[];for(let n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?Mn(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?Mn(n.onBeforeLeave):void 0});return Ie(...t)}function Pn(e){e[`~transitionPromise`]||=new Promise(t=>{e[`~transitionFinish`]=t})}function Fn(e){e[`~transitionFinish`]?.(),delete e[`~transitionFinish`],delete e[`~transitionPromise`]}var In={scrollBehavior(e,t,n){let r=h(),i=V(),a=i.options?.scrollBehaviorType??`auto`;return e.path.replace(/\/$/,``)===t.path.replace(/\/$/,``)?t.hash&&!e.hash?n??{left:0,top:0}:e.hash?{el:e.hash,top:Ln(e.hash),behavior:a}:!1:(typeof e.meta.scrollToTop==`function`?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===sn?Rn(e,t,n,a):new Promise(o=>{let s=()=>{requestAnimationFrame(()=>{i.currentRoute.value.fullPath===e.fullPath?o(Rn(e,t,n,a)):o(!1)})};r.hooks.hookOnce(`page:loading:end`,()=>{let e=r[`~transitionPromise`];e?e.then(s):s()})})}};function Ln(e){try{let t=document.querySelector(e);if(t)return(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}function Rn(e,t,n,r){return n||(e.hash?{el:e.hash,top:Ln(e.hash),behavior:jn(e,t)?r:`instant`}:{left:0,top:0})}var zn={hashMode:!1,scrollBehaviorType:`auto`,sensitive:!1,...In},Z=globalThis.requestIdleCallback||(e=>{let t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),Bn=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),Vn=e=>{let t=h();t.isHydrating?t.hooks.hookOnce(`app:suspense:resolve`,()=>{Z(()=>e())}):Z(()=>e())},Hn=/2g/;function Un(){let e=navigator.connection;return!e||!e.saveData&&!Hn.test(e.effectiveType||``)}function Q(e){let{pathname:t,search:n}=new URL(e,window.location.href);return t+n}function Wn(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}function Gn(e){return Promise.all(e.map(e=>{let t=e.components?.default;return typeof t==`function`?Promise.resolve(t()).catch(()=>{}):void 0}))}function Kn(e,t){let{fullPath:n,path:r,matched:i}=t.resolve(e);if(!i.length)return;let a=f()?._prefetch;a?a.schedule({key:`route:${r}`,priority:`route`,scope:`navigation`,group:Q(n),run:e=>e.aborted?void 0:Gn(i)}):Gn(i)}var qn=(...e)=>e.find(e=>e!==void 0);function Jn(e){let n=e.componentName||`NuxtLink`;function i(e){return typeof e==`string`&&e.startsWith(`#`)}function a(t,n,r){let i=r??e.trailingSlash;if(!t||i!==`append`&&i!==`remove`)return t;if(typeof t==`string`)return $(t,i);let a=`path`in t&&t.path!==void 0?t.path:n(t).path;return{...t,name:void 0,path:$(a,i)}}function s(t){let n=V(),r=g(),o=n.options?.history?.createHref??(e=>k(r.app.baseURL,e)),s=l(()=>!!p(t.target)&&p(t.target)!==`_self`),c=l(()=>{let e=p(t.to)||p(t.href)||``;return typeof e==`string`&&L(e)}),u=l(()=>{if(p(t.external))return!0;let e=p(t.to)||p(t.href)||``;return typeof e==`object`?!1:e===``||c.value}),d=l(()=>{let e=p(t.to)||p(t.href)||``;return u.value?e:a(e,n.resolve,p(t.trailingSlash))}),f=l(()=>{let r=p(t.trailingSlash)??e.trailingSlash;if(!d.value||c.value||i(d.value)){let e=d.value;return typeof e==`string`?z(e):e}if(u.value){let e=typeof d.value==`object`&&`path`in d.value?H(d.value):d.value,t=typeof e==`object`?n.resolve(e).href:e,i=typeof t==`string`?z(t):t;return i===null?null:$(i,r)}return typeof d.value==`object`?n.resolve(d.value)?.href??null:$(I(d.value)?o(d.value):n.resolve(d.value).href,r)});return{to:d,hasTarget:s,isAbsoluteUrl:c,isExternal:u,href:f,async navigate(e){f.value!==null&&await nt(f.value,{replace:p(t.replace),external:u.value||s.value})}}}function c(e){let n=V(),r=s(e),i=t(`RouterLink`),a=i&&typeof i!=`string`?i.useLink:void 0,o=r.isExternal.value?void 0:a?.({...e,to:r.to,viewTransition:p(e.viewTransition)});return{...r,isActive:o?.isActive??l(()=>r.to.value===n.currentRoute.value.path),isExactActive:o?.isExactActive??l(()=>r.to.value===n.currentRoute.value.path),route:o?.route??l(()=>n.resolve(r.to.value))}}return o({name:n,props:{to:{type:[String,Object],required:!1},href:{type:[String,Object],required:!1},target:{type:String,required:!1},rel:{type:String,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,required:!1},exactActiveClass:{type:String,required:!1},prefetchedClass:{type:String,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,required:!1}},useLink:c,setup(n,{slots:a}){let o=V(),c=t(`RouterLink`),{to:l,href:d,navigate:f,isExternal:p,hasTarget:m,isAbsoluteUrl:ee}=s(n),g=te(!1),_=ne(null),ie=e=>{_.value=n.custom?e?.$el?.nextElementSibling:e?.$el};function v(t){return typeof n.prefetchOn==`string`?n.prefetchOn===t:n.prefetchOn?.[t]??e.prefetchOn?.[t]}function y(){return!!((n.prefetch??e.prefetch)!==!1&&n.noPrefetch!==!0&&n.target!==`_blank`&&Un())}function b(e){return!!(!g.value&&v(e)&&y())}function ae(){let e=typeof l.value==`string`?l.value:p.value?H(l.value):o.resolve(l.value).fullPath;return p.value?new URL(e,window.location.href).href:e}function x(){g.value?p.value||h()._prefetch?.promote(Q(ae())):v(`interaction`)&&S()}async function S(e=h()){if(g.value||d.value===null)return;g.value=!0;let t=ae();await Promise.all([e.hooks.callHook(`link:prefetch`,t)?.catch(()=>{}),!p.value&&!m.value&&Kn(l.value,o)])}if(!n.custom&&b(`visibility`)){let e=h(),t,n=null;re(()=>{let r=Xn();Vn(()=>{t=Z(()=>{_?.value?.tagName&&(n=r.observe(_.value,async()=>{n?.(),n=null,await S(e)}))})})}),u(()=>{t&&Bn(t),n?.(),n=null})}return()=>{let t=n.target||null,s=qn(n.noRel?``:n.rel,e.externalRelAttribute,ee.value||m.value?`noopener noreferrer`:``)||null,u=e=>({navigate:f,get route(){if(!d.value)return;let e=new URL(d.value,window.location.href);return{path:e.pathname,fullPath:e.pathname,get query(){return E(e.search)},hash:e.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:d.value}},rel:s,target:t,isExternal:p.value||m.value,isActive:!1,isExactActive:!1,...e,href:typeof e?.href==`string`?z(e.href):d.value,prefetch:S,prefetched:g.value,shouldPrefetch:b});if(!p.value&&!m.value&&!i(l.value)){let t={ref:ie,to:l.value,activeClass:n.activeClass||e.activeClass,exactActiveClass:n.exactActiveClass||e.exactActiveClass,replace:n.replace,ariaCurrentValue:n.ariaCurrentValue,custom:n.custom};return n.custom||((v(`interaction`)||g.value)&&y()&&(t.onPointerenter=x,t.onFocus=x,t.onPointerdown=x),g.value&&(t.class=n.prefetchedClass||e.prefetchedClass),t.rel=n.rel||void 0),r(c,t,n.custom&&a.default?{default:e=>a.default(u(e))}:a.default)}return n.custom?a.default?a.default(u()):null:r(`a`,{ref:_,href:d.value||null,rel:s,target:t,onClick:async e=>{if(!(p.value||m.value)){e.preventDefault();try{let e=rt(d.value??``);return await(n.replace?o.replace(e):o.push(e))}finally{if(i(l.value)){let e=l.value.slice(1),t=e;try{t=decodeURIComponent(e)}catch{}document.getElementById(t)?.focus()}}}}},a.default?.())}}})}var Yn=Jn(ee);function $(e,t){if(t!==`append`&&t!==`remove`)return e;let n=t===`append`?we:O;return D(e)&&!e.startsWith(`http`)?e:n(e,!0)}function Xn(){let e=h();if(e._observer)return e._observer;let t=null,n=new Map;return e._observer={observe:(e,r)=>(t||=new IntersectionObserver(e=>{for(let t of e){let e=n.get(t.target);(t.isIntersecting||t.intersectionRatio>0)&&e&&e()}}),n.set(e,r),t.observe(e),()=>{n.delete(e),t?.unobserve(e),n.size===0&&(t?.disconnect(),t=null)})}}export{kt as $,J as A,Cn as B,mn as C,Ee as Ct,yn as D,At as E,hn as F,W as G,vt as H,pn as I,xt as J,Ct as K,xn as L,Sn as M,bn as N,tn as O,Qt as P,Ot as Q,$t as R,gn as S,De as St,_n as T,G as U,yt as V,ht as W,Dt as X,bt as Y,Et as Z,q as _,je as _t,Un as a,U as at,Tn as b,k as bt,Z as c,V as ct,Nn as d,Xe as dt,Tt as et,Pn as f,L as ft,un as g,D as gt,fn as h,We as ht,Kn as i,dt as it,cn as j,nn as k,zn as l,B as lt,sn as m,P as mt,Xn as n,pt as nt,Q as o,et as ot,En as p,Je as pt,wt as q,Wn as r,mt as rt,Vn as s,$e as st,Yn as t,ft as tt,Fn as u,Ye as ut,Gt as v,Se as vt,X as w,wn as x,Te as xt,Yt as y,Ae as yt,en as z};
@@ -0,0 +1 @@
1
+ import{B as e,E as t,N as n,S as r,Vt as i,W as a,Y as o,bt as s,mt as c,nt as l,pt as u,rt as d,tt as f}from"./CkUAspOr.js";import{g as p,i as m}from"./DHMCzW9E.js";import{C as h,_ as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,p as E,r as D,s as O,u as k,v as A,x as j,y as M}from"./B7HtXrdR.js";var N=[`hiragana`,`katakanaOn`,`hepburn`],P=[`ichi1`,`ichi2`,`news1`,`news2`,`spec1`,`spec2`,`gai1`,`gai2`],F=[`mahjong-yaku`,`jr-stations`,`yojijukugo`],I=[`N5`,`N4`,`N3`,`N2`,`N1`],L=C({rubyScale:b(A(E(),_(.2),S(.8)),p.plan.metrics.rubyScale),rubyGap:b(A(E(),_(0),S(.5)),p.plan.metrics.rubyGap),compressionFloor:b(A(E(),_(.3),S(1)),p.plan.metrics.compressionFloor),maxRubyWidth:b(A(E(),_(1),S(3)),p.plan.metrics.maxRubyWidth)}),R=A(E(),T(),_(1),S(48));function z(e){return A(e,x(e=>e.nfMin<=e.nfMax,`nfMin must not exceed nfMax`))}var B=z(C({family:b(A(j(),h(),v(),x(e=>!/source/i.test(e),`Source is a reserved font name of the base font`)),p.plan.family),rubyScript:b(g(N),p.plan.rubyScript),nfMin:b(R,p.plan.nfMin),nfMax:b(R,p.plan.nfMax),selectTags:b(w(g(P)),()=>[...p.plan.selectTags]),minTatoeba:b(A(E(),T(),_(0)),p.plan.minTatoeba),skipJlpt:b(g(I)),places:b(D(),p.plan.places),untagged:b(D(),p.plan.untagged),manual:b(w(g(F))),isolated:b(D(),p.plan.isolated),isolatedMinShare:b(A(E(),_(.5),S(1)),p.plan.isolatedMinShare),words:b(C({add:b(w(j()),[]),remove:b(w(j()),[]),pin:b(w(j()),[])}),{}),metrics:b(L,{})}));function V(e={}){return y(B,e)}var H=A(E(),T(),_(0),S(1114111));C({version:O(1),names:C({family:j(),description:j()}),metrics:C({rubyScale:E(),rubyGap:E(),compressionFloor:E(),maxRubyWidth:E()}),codepoints:w(H),variants:w(C({name:A(j(),M(/^[A-Z_][\w.]{0,62}$/i)),base:H,selector:H})),glyphs:w(C({name:A(j(),M(/^[A-Z_][\w.]{0,62}$/i)),bases:A(w(H),k(1)),ruby:w(C({start:E(),end:E(),text:A(j(),v())}))})),fea:j(),subset:b(w(H)),smoke:w(C({text:j(),glyphs:w(j())}))});function U(){let e=c(),t;async function n(n){await navigator.clipboard?.writeText(n).then(()=>!0,()=>!1)&&(e.value=n,clearTimeout(t),t=setTimeout(()=>e.value=void 0,1200))}return{copied:u(e),copy:n}}var{rubyScale:W,rubyGap:G}=V().metrics,K=1.75,q=.88+G+W,J=1.255,Y={rubyTop:J-q,emTop:.3749999999999999,baseline:J,emBottom:1.375},X=[`aria-label`],Z=Object.assign(n({__name:`FuriText`,props:e({family:{default:()=>m[0].family},ruby:{type:Boolean,default:!0},size:{default:32},weight:{default:400},okurigana:{}},{text:{required:!0},textModifiers:{}}),emits:[`update:text`],setup(e){let n=f(e,`text`),c=r(()=>({fontFamily:`"${e.family}", sans-serif`,fontSize:`${e.size}px`,fontWeight:e.weight,lineHeight:K,fontFeatureSettings:e.ruby?`normal`:`"ss01"`}));function u(e){let t=[],n=0;for(let r of e.childNodes){let e=r.textContent.length;r instanceof HTMLElement&&t.push({at:n,length:e,salt:Number(r.dataset.salt)}),n+=e}return t}function p(e){let t=getSelection();if(!t?.rangeCount||!t.isCollapsed||!e.contains(t.anchorNode))return;let n=document.createRange();return n.selectNodeContents(e),n.setEnd(t.anchorNode,t.anchorOffset),n.toString().length}function m(e,t){let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=t;for(let e=n.nextNode();e;e=n.nextNode()){let t=e.nodeValue.length;if(r<=t){let t=document.createRange();t.setStart(e,r),t.collapse(!0),getSelection().removeAllRanges(),getSelection().addRange(t);return}r-=t}}let h=l(`el`),g,_=!1,v;function y(t,n,r=!1){let i=e.ruby&&e.okurigana?e.okurigana.find(n):[];if(!r&&t.textContent===n&&JSON.stringify(u(t))===JSON.stringify(i.map(({at:e,length:t,salt:n})=>({at:e,length:t,salt:n}))))return;let a=p(t),o=[],s=0;for(let e of i){o.push(n.slice(s,e.at));let t=document.createElement(`span`);t.textContent=n.slice(e.at,e.at+e.length),t.dataset.salt=String(e.salt),t.style.fontFeatureSettings=`"salt" ${e.salt}`,o.push(t),s=e.at+e.length}o.push(n.slice(s)),t.replaceChildren(...o.filter(e=>e!==``)),a!==void 0&&m(t,a)}d([h,n],([e,t])=>{e&&t!==g&&y(e,t,!0)},{immediate:!0}),d([()=>e.okurigana,()=>e.ruby],()=>{h.value&&y(h.value,g??n.value)});function b(){_=!0}function x(){_=!1,S()}function S(){g=h.value.innerText,n.value=g,clearTimeout(v),v=setTimeout(()=>!_&&h.value&&y(h.value,g),300)}return a(()=>clearTimeout(v)),(e,n)=>(o(),t(`p`,{ref_key:`el`,ref:h,lang:`ja`,contenteditable:`plaintext-only`,spellcheck:`false`,role:`textbox`,"aria-multiline":`true`,"aria-label":e.$t(`editable`),class:`cursor-text whitespace-pre-wrap break-words outline-1 outline-transparent outline-offset-4 transition-[outline-color] hover:outline-dashed hover:outline-[var(--ff-line)] focus:outline-dashed focus:outline-[var(--ff-fg)]`,style:i(s(c)),onInput:S,onCompositionstart:b,onCompositionend:x},null,44,X))}}),{__name:`FuriText`});export{I as a,z as c,U as i,Y as n,F as o,K as r,B as s,Z as t};