glotfile 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +234 -0
  3. package/bin/glotfile.js +7 -0
  4. package/dist/server/cli.js +5172 -0
  5. package/dist/server/server.js +3936 -0
  6. package/dist/ui/assets/ad-B18i8NGa.svg +150 -0
  7. package/dist/ui/assets/ae-CZRtWSox.svg +6 -0
  8. package/dist/ui/assets/af-C77Rf6cE.svg +81 -0
  9. package/dist/ui/assets/ag-C8MykuG2.svg +14 -0
  10. package/dist/ui/assets/ai-Dmedkf4v.svg +29 -0
  11. package/dist/ui/assets/al-10QRkakw.svg +5 -0
  12. package/dist/ui/assets/am-DMt4_dd4.svg +5 -0
  13. package/dist/ui/assets/ao-tXuRa6vm.svg +13 -0
  14. package/dist/ui/assets/aq-CF5jO-0h.svg +5 -0
  15. package/dist/ui/assets/ar-Be8Ju1cG.svg +32 -0
  16. package/dist/ui/assets/arab-C4CYPgyC.svg +109 -0
  17. package/dist/ui/assets/as-Dekqy8Of.svg +72 -0
  18. package/dist/ui/assets/asean-WMtZ-US_.svg +13 -0
  19. package/dist/ui/assets/at-DGA_6m5E.svg +4 -0
  20. package/dist/ui/assets/au-DAHDIuPI.svg +8 -0
  21. package/dist/ui/assets/aw-W0PWLK5p.svg +186 -0
  22. package/dist/ui/assets/ax-DvLIy84U.svg +18 -0
  23. package/dist/ui/assets/az-Bk-bYNxy.svg +8 -0
  24. package/dist/ui/assets/ba-WdDiSMvP.svg +12 -0
  25. package/dist/ui/assets/bb-DJxbaxmT.svg +6 -0
  26. package/dist/ui/assets/bd-BF9t1-60.svg +4 -0
  27. package/dist/ui/assets/be-CLLkK3PN.svg +7 -0
  28. package/dist/ui/assets/bf-YclsoDuF.svg +7 -0
  29. package/dist/ui/assets/bg-GUQenraa.svg +5 -0
  30. package/dist/ui/assets/bh-BQqEGq6F.svg +4 -0
  31. package/dist/ui/assets/bi-CRmKY6RQ.svg +15 -0
  32. package/dist/ui/assets/bj-14PhO9bM.svg +14 -0
  33. package/dist/ui/assets/bl-4CI2YcwX.svg +5 -0
  34. package/dist/ui/assets/bm-BeYgB2z9.svg +97 -0
  35. package/dist/ui/assets/bn-B6T3O78g.svg +36 -0
  36. package/dist/ui/assets/bo-CcUiMqkJ.svg +673 -0
  37. package/dist/ui/assets/bq-BYpdxEeT.svg +5 -0
  38. package/dist/ui/assets/br-Cu5YU29T.svg +45 -0
  39. package/dist/ui/assets/bs-7Gd_oriM.svg +13 -0
  40. package/dist/ui/assets/bt-BTo4qm10.svg +89 -0
  41. package/dist/ui/assets/bv-wM9JLv4R.svg +13 -0
  42. package/dist/ui/assets/bw-n5ZaAnGL.svg +7 -0
  43. package/dist/ui/assets/by-C621sBpd.svg +18 -0
  44. package/dist/ui/assets/bz-BCKHR4_q.svg +145 -0
  45. package/dist/ui/assets/ca-PYUrLVUV.svg +4 -0
  46. package/dist/ui/assets/cc-BNT6Xjzk.svg +19 -0
  47. package/dist/ui/assets/cd-BGclsrP6.svg +5 -0
  48. package/dist/ui/assets/cefta-2dDBYygd.svg +13 -0
  49. package/dist/ui/assets/cf-DRetLmp-.svg +15 -0
  50. package/dist/ui/assets/cg-CwIyG6SE.svg +12 -0
  51. package/dist/ui/assets/ch-sfriZoF1.svg +9 -0
  52. package/dist/ui/assets/ci-C8Q8IYTn.svg +7 -0
  53. package/dist/ui/assets/ck-DfXMUOTo.svg +9 -0
  54. package/dist/ui/assets/cl-BgYYb4qP.svg +13 -0
  55. package/dist/ui/assets/cm-D4yjdmKT.svg +15 -0
  56. package/dist/ui/assets/cn-DifnnI3t.svg +11 -0
  57. package/dist/ui/assets/co-DV591zMm.svg +7 -0
  58. package/dist/ui/assets/cp-K_ay05Q_.svg +7 -0
  59. package/dist/ui/assets/cr-BlYVN-_Q.svg +7 -0
  60. package/dist/ui/assets/cu-L6XVZNgo.svg +13 -0
  61. package/dist/ui/assets/cv-CPsfcOfk.svg +13 -0
  62. package/dist/ui/assets/cw-BbrnximR.svg +14 -0
  63. package/dist/ui/assets/cx-DpYD6n6U.svg +15 -0
  64. package/dist/ui/assets/cy-bZuP8hmf.svg +6 -0
  65. package/dist/ui/assets/cz-WWBC5Aeb.svg +5 -0
  66. package/dist/ui/assets/de-B-2o-4Z9.svg +5 -0
  67. package/dist/ui/assets/dg-CJPJrjiZ.svg +130 -0
  68. package/dist/ui/assets/dj-hp_BwbmO.svg +13 -0
  69. package/dist/ui/assets/dk-DmS9BCZB.svg +5 -0
  70. package/dist/ui/assets/dm-Cbhezfe1.svg +152 -0
  71. package/dist/ui/assets/do-B86d445t.svg +121 -0
  72. package/dist/ui/assets/dz-Dytc1TFu.svg +5 -0
  73. package/dist/ui/assets/eac-CwGQsyAM.svg +48 -0
  74. package/dist/ui/assets/ec-CaVOFQ3t.svg +138 -0
  75. package/dist/ui/assets/ee-DufrxGIR.svg +5 -0
  76. package/dist/ui/assets/eg-YC70hswZ.svg +38 -0
  77. package/dist/ui/assets/eh-0awM4TVj.svg +16 -0
  78. package/dist/ui/assets/er-X83uml6t.svg +8 -0
  79. package/dist/ui/assets/es-ct-CVyhLp7O.svg +4 -0
  80. package/dist/ui/assets/es-d5m8M5h8.svg +544 -0
  81. package/dist/ui/assets/es-ga-D9xG2hYr.svg +187 -0
  82. package/dist/ui/assets/es-pv-CO3NM2SE.svg +5 -0
  83. package/dist/ui/assets/et-DwdlzOIx.svg +14 -0
  84. package/dist/ui/assets/eu-Brdgz8ab.svg +28 -0
  85. package/dist/ui/assets/fi-DWUIkfjL.svg +5 -0
  86. package/dist/ui/assets/fj-DEAVMg38.svg +120 -0
  87. package/dist/ui/assets/fk-nuUF_Ak3.svg +90 -0
  88. package/dist/ui/assets/fm-B4Z83GL0.svg +11 -0
  89. package/dist/ui/assets/fo-DFjwyWur.svg +12 -0
  90. package/dist/ui/assets/fr-DVvUyOqI.svg +5 -0
  91. package/dist/ui/assets/ga-BklUhLH_.svg +7 -0
  92. package/dist/ui/assets/gb-DTXiLQoe.svg +7 -0
  93. package/dist/ui/assets/gb-eng-C8iDhGHN.svg +5 -0
  94. package/dist/ui/assets/gb-nir-D4gikpNq.svg +132 -0
  95. package/dist/ui/assets/gb-sct-fW5q01ek.svg +4 -0
  96. package/dist/ui/assets/gb-wls-Bxz9hxvX.svg +9 -0
  97. package/dist/ui/assets/gd-CO-whzUe.svg +27 -0
  98. package/dist/ui/assets/ge-B2RiL-Ih.svg +6 -0
  99. package/dist/ui/assets/gf-DWl5zcw0.svg +5 -0
  100. package/dist/ui/assets/gg-jdOQS2nU.svg +9 -0
  101. package/dist/ui/assets/gh-r3LP_X7q.svg +6 -0
  102. package/dist/ui/assets/gi-BJKE9SzW.svg +32 -0
  103. package/dist/ui/assets/gl-CHaBnMib.svg +4 -0
  104. package/dist/ui/assets/gm-Bu99atwn.svg +14 -0
  105. package/dist/ui/assets/gn-1dJNy9oQ.svg +7 -0
  106. package/dist/ui/assets/gp-DNyt_wTA.svg +5 -0
  107. package/dist/ui/assets/gq-Cag8QTk2.svg +23 -0
  108. package/dist/ui/assets/gr-C5PU0p9p.svg +16 -0
  109. package/dist/ui/assets/gs-DiiNa0F5.svg +133 -0
  110. package/dist/ui/assets/gt-CJo5DI-7.svg +204 -0
  111. package/dist/ui/assets/gu-Di1JYREk.svg +19 -0
  112. package/dist/ui/assets/gw-D249VY33.svg +13 -0
  113. package/dist/ui/assets/gy-CcVYUM2E.svg +9 -0
  114. package/dist/ui/assets/hk-CUNIaSX0.svg +8 -0
  115. package/dist/ui/assets/hm-Dh6t_Tj3.svg +8 -0
  116. package/dist/ui/assets/hn-CRjyS_bm.svg +18 -0
  117. package/dist/ui/assets/hr-fzLfaANM.svg +58 -0
  118. package/dist/ui/assets/ht-DIMg4gti.svg +116 -0
  119. package/dist/ui/assets/hu-7Q5wwIIi.svg +7 -0
  120. package/dist/ui/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
  121. package/dist/ui/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
  122. package/dist/ui/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
  123. package/dist/ui/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
  124. package/dist/ui/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
  125. package/dist/ui/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
  126. package/dist/ui/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
  127. package/dist/ui/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
  128. package/dist/ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  129. package/dist/ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  130. package/dist/ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  131. package/dist/ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  132. package/dist/ui/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
  133. package/dist/ui/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
  134. package/dist/ui/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
  135. package/dist/ui/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
  136. package/dist/ui/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
  137. package/dist/ui/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
  138. package/dist/ui/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
  139. package/dist/ui/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
  140. package/dist/ui/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff +0 -0
  141. package/dist/ui/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2 +0 -0
  142. package/dist/ui/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff +0 -0
  143. package/dist/ui/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2 +0 -0
  144. package/dist/ui/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2 +0 -0
  145. package/dist/ui/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff +0 -0
  146. package/dist/ui/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff +0 -0
  147. package/dist/ui/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2 +0 -0
  148. package/dist/ui/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2 +0 -0
  149. package/dist/ui/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff +0 -0
  150. package/dist/ui/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff +0 -0
  151. package/dist/ui/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2 +0 -0
  152. package/dist/ui/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff +0 -0
  153. package/dist/ui/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2 +0 -0
  154. package/dist/ui/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff +0 -0
  155. package/dist/ui/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2 +0 -0
  156. package/dist/ui/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff +0 -0
  157. package/dist/ui/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2 +0 -0
  158. package/dist/ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  159. package/dist/ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  160. package/dist/ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  161. package/dist/ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  162. package/dist/ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  163. package/dist/ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  164. package/dist/ui/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2 +0 -0
  165. package/dist/ui/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff +0 -0
  166. package/dist/ui/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff +0 -0
  167. package/dist/ui/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2 +0 -0
  168. package/dist/ui/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff +0 -0
  169. package/dist/ui/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2 +0 -0
  170. package/dist/ui/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2 +0 -0
  171. package/dist/ui/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff +0 -0
  172. package/dist/ui/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff +0 -0
  173. package/dist/ui/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2 +0 -0
  174. package/dist/ui/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff +0 -0
  175. package/dist/ui/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2 +0 -0
  176. package/dist/ui/assets/ic-CSo4d8tH.svg +7 -0
  177. package/dist/ui/assets/id-DiSP6Fmm.svg +4 -0
  178. package/dist/ui/assets/ie-ChAXClx3.svg +7 -0
  179. package/dist/ui/assets/il-_56OEGLa.svg +14 -0
  180. package/dist/ui/assets/im--VPIqfkF.svg +36 -0
  181. package/dist/ui/assets/in-Cdwu6Bq7.svg +25 -0
  182. package/dist/ui/assets/index-BqcYDTXL.css +1 -0
  183. package/dist/ui/assets/index-DK-AGskd.js +1805 -0
  184. package/dist/ui/assets/io-13HOfeJD.svg +130 -0
  185. package/dist/ui/assets/iq-Dp8HDzo2.svg +10 -0
  186. package/dist/ui/assets/ir-cCIgaNf6.svg +219 -0
  187. package/dist/ui/assets/is-CZjefTNV.svg +12 -0
  188. package/dist/ui/assets/it-Br7q0Zh6.svg +7 -0
  189. package/dist/ui/assets/je-DyWbhIiC.svg +62 -0
  190. package/dist/ui/assets/jm-CItSr3iX.svg +8 -0
  191. package/dist/ui/assets/jo-BAF1FGbm.svg +16 -0
  192. package/dist/ui/assets/jp-BIMmfxpO.svg +11 -0
  193. package/dist/ui/assets/ke-C8foqndp.svg +23 -0
  194. package/dist/ui/assets/kg-B0FsxZiL.svg +4 -0
  195. package/dist/ui/assets/kh-BeWfuE30.svg +61 -0
  196. package/dist/ui/assets/ki-p_fAQGbS.svg +36 -0
  197. package/dist/ui/assets/km-B5tqtGG7.svg +16 -0
  198. package/dist/ui/assets/kn-DVPxDkNY.svg +14 -0
  199. package/dist/ui/assets/kp-CrDKzoxe.svg +15 -0
  200. package/dist/ui/assets/kr-BCXH1Hao.svg +24 -0
  201. package/dist/ui/assets/kw-fSBzmd30.svg +13 -0
  202. package/dist/ui/assets/ky-Dpsu1myA.svg +103 -0
  203. package/dist/ui/assets/kz-CwKXYZ8s.svg +36 -0
  204. package/dist/ui/assets/la-CuJflhIW.svg +12 -0
  205. package/dist/ui/assets/lb-BSjpYEoo.svg +15 -0
  206. package/dist/ui/assets/lc-CNvab8Ae.svg +8 -0
  207. package/dist/ui/assets/li-CHdhvNcr.svg +43 -0
  208. package/dist/ui/assets/lk-DUkgV9Tq.svg +22 -0
  209. package/dist/ui/assets/lr-B84vu3Ds.svg +14 -0
  210. package/dist/ui/assets/ls-5Xk3Mxq5.svg +8 -0
  211. package/dist/ui/assets/lt-DoukV-Sm.svg +7 -0
  212. package/dist/ui/assets/lu-DOI02Msy.svg +5 -0
  213. package/dist/ui/assets/lv-C-KfY8Yc.svg +6 -0
  214. package/dist/ui/assets/ly-BWpTK3ux.svg +13 -0
  215. package/dist/ui/assets/ma-BTRNTRUj.svg +4 -0
  216. package/dist/ui/assets/mc-PK078JHl.svg +6 -0
  217. package/dist/ui/assets/md-DRlxvNwm.svg +70 -0
  218. package/dist/ui/assets/me-Cv4Gwqah.svg +116 -0
  219. package/dist/ui/assets/mf-BaAGWwAq.svg +5 -0
  220. package/dist/ui/assets/mg-C168LHXW.svg +7 -0
  221. package/dist/ui/assets/mh-gxuIp6Wk.svg +7 -0
  222. package/dist/ui/assets/mk-D9SIMr-a.svg +5 -0
  223. package/dist/ui/assets/ml-DVf6ujpi.svg +7 -0
  224. package/dist/ui/assets/mm-lwT09MQ0.svg +12 -0
  225. package/dist/ui/assets/mn-CgXyw0O9.svg +14 -0
  226. package/dist/ui/assets/mo-BAtCjuYA.svg +9 -0
  227. package/dist/ui/assets/mp-CrOApEqW.svg +86 -0
  228. package/dist/ui/assets/mq-BFnJ22KI.svg +5 -0
  229. package/dist/ui/assets/mr-D6G1wpeZ.svg +6 -0
  230. package/dist/ui/assets/ms-DxciGbUu.svg +29 -0
  231. package/dist/ui/assets/mt-YqzKx9xl.svg +58 -0
  232. package/dist/ui/assets/mu-mcq7cUFl.svg +8 -0
  233. package/dist/ui/assets/mv-BynAllfM.svg +6 -0
  234. package/dist/ui/assets/mw-C15nc1xZ.svg +10 -0
  235. package/dist/ui/assets/mx-Cc8Ccfe8.svg +382 -0
  236. package/dist/ui/assets/my-Co4JeeyE.svg +26 -0
  237. package/dist/ui/assets/mz-Drlr_USV.svg +21 -0
  238. package/dist/ui/assets/na-D79ffb4Z.svg +16 -0
  239. package/dist/ui/assets/nc-5j7wEmDR.svg +13 -0
  240. package/dist/ui/assets/ne-B1jPOYkl.svg +6 -0
  241. package/dist/ui/assets/nf-Dl00mlk2.svg +9 -0
  242. package/dist/ui/assets/ng-su4NM9If.svg +6 -0
  243. package/dist/ui/assets/ni-CcFCSQxm.svg +129 -0
  244. package/dist/ui/assets/nl-BnOa6UiA.svg +5 -0
  245. package/dist/ui/assets/no-qf2JPO73.svg +7 -0
  246. package/dist/ui/assets/np-CIuq5GKd.svg +13 -0
  247. package/dist/ui/assets/nr-DERIdzkN.svg +12 -0
  248. package/dist/ui/assets/nu-BfgWvGcd.svg +10 -0
  249. package/dist/ui/assets/nz-5vODdBjz.svg +36 -0
  250. package/dist/ui/assets/om-DcqxRdQL.svg +115 -0
  251. package/dist/ui/assets/pa-BLNN9G2-.svg +14 -0
  252. package/dist/ui/assets/pc-BJpYiA9b.svg +33 -0
  253. package/dist/ui/assets/pe-BLqhuu1C.svg +4 -0
  254. package/dist/ui/assets/pf-C8ahG68q.svg +19 -0
  255. package/dist/ui/assets/pg-BAYpbp9Z.svg +9 -0
  256. package/dist/ui/assets/ph-BEzTn62K.svg +6 -0
  257. package/dist/ui/assets/pk-CWMEc3ad.svg +15 -0
  258. package/dist/ui/assets/pl-o38JROoc.svg +6 -0
  259. package/dist/ui/assets/pm-CHiP5UmZ.svg +5 -0
  260. package/dist/ui/assets/pn-DgxdtieE.svg +53 -0
  261. package/dist/ui/assets/pr-B4tMV0xm.svg +13 -0
  262. package/dist/ui/assets/ps-DO8YKYeS.svg +6 -0
  263. package/dist/ui/assets/pt-DZ2ADgIR.svg +57 -0
  264. package/dist/ui/assets/pw-CQP52WMX.svg +11 -0
  265. package/dist/ui/assets/py-mNzh0mZC.svg +157 -0
  266. package/dist/ui/assets/qa-Dkmpc78M.svg +4 -0
  267. package/dist/ui/assets/re-Bk4ipYK1.svg +5 -0
  268. package/dist/ui/assets/ro-CoSeqKY1.svg +7 -0
  269. package/dist/ui/assets/rs-BfwKwXtn.svg +292 -0
  270. package/dist/ui/assets/ru-D-4tNwXt.svg +5 -0
  271. package/dist/ui/assets/rw-D7nbSYKI.svg +13 -0
  272. package/dist/ui/assets/sa-Dh79zbT9.svg +25 -0
  273. package/dist/ui/assets/sb-BDTYjcbk.svg +13 -0
  274. package/dist/ui/assets/sc-CRNsSLg9.svg +7 -0
  275. package/dist/ui/assets/sd-ClziNjGr.svg +13 -0
  276. package/dist/ui/assets/se-8C923vhy.svg +4 -0
  277. package/dist/ui/assets/sg-DGYIMG0G.svg +13 -0
  278. package/dist/ui/assets/sh-DNImvbrE.svg +7 -0
  279. package/dist/ui/assets/sh-ac-FjwY7RYr.svg +689 -0
  280. package/dist/ui/assets/sh-hl-CqtQPzWZ.svg +164 -0
  281. package/dist/ui/assets/sh-ta-CPJublpi.svg +76 -0
  282. package/dist/ui/assets/si-BMKT-Tec.svg +18 -0
  283. package/dist/ui/assets/sj-BFFEGknm.svg +7 -0
  284. package/dist/ui/assets/sk-K9BNIYAO.svg +9 -0
  285. package/dist/ui/assets/sl-DxLJY5vJ.svg +7 -0
  286. package/dist/ui/assets/sm-DGBIRFB_.svg +75 -0
  287. package/dist/ui/assets/sn-S8ipNF1U.svg +8 -0
  288. package/dist/ui/assets/so-DlzA2Fco.svg +11 -0
  289. package/dist/ui/assets/sr-Co7OKBh3.svg +6 -0
  290. package/dist/ui/assets/ss-CxVEpdPD.svg +8 -0
  291. package/dist/ui/assets/st-C1Nd1c3V.svg +16 -0
  292. package/dist/ui/assets/sv-CJIHhYwF.svg +593 -0
  293. package/dist/ui/assets/sx-nDhIaDNb.svg +56 -0
  294. package/dist/ui/assets/sy-DwSud114.svg +6 -0
  295. package/dist/ui/assets/sz-qxMwa2gs.svg +34 -0
  296. package/dist/ui/assets/tc-dtelpZmc.svg +50 -0
  297. package/dist/ui/assets/td-BsuVhZpT.svg +7 -0
  298. package/dist/ui/assets/tf-Co33RhQH.svg +15 -0
  299. package/dist/ui/assets/tg-CP1-sc35.svg +14 -0
  300. package/dist/ui/assets/th-tzq84hgd.svg +7 -0
  301. package/dist/ui/assets/tj-b-aWfOTb.svg +22 -0
  302. package/dist/ui/assets/tk-CDucsEss.svg +5 -0
  303. package/dist/ui/assets/tl-wpo93AGk.svg +13 -0
  304. package/dist/ui/assets/tm-C_WSgUcv.svg +204 -0
  305. package/dist/ui/assets/tn-BcKCZULf.svg +4 -0
  306. package/dist/ui/assets/to-D8uVsoxb.svg +10 -0
  307. package/dist/ui/assets/tr-Cd6FO9Bg.svg +8 -0
  308. package/dist/ui/assets/tt-CTnr7aY5.svg +5 -0
  309. package/dist/ui/assets/tv-DDqkVT-n.svg +9 -0
  310. package/dist/ui/assets/tw-d-Mf-0VT.svg +34 -0
  311. package/dist/ui/assets/tz-BjLtHeil.svg +13 -0
  312. package/dist/ui/assets/ua-Bq0XgQqK.svg +6 -0
  313. package/dist/ui/assets/ug-ByL2ejGl.svg +30 -0
  314. package/dist/ui/assets/um-Bhke9Eic.svg +9 -0
  315. package/dist/ui/assets/un-Bqg4Cbbh.svg +16 -0
  316. package/dist/ui/assets/us-C73uVeEr.svg +9 -0
  317. package/dist/ui/assets/uy-DD6peej-.svg +28 -0
  318. package/dist/ui/assets/uz-C2f-Cubn.svg +30 -0
  319. package/dist/ui/assets/va-B9-hqIE-.svg +190 -0
  320. package/dist/ui/assets/vc-COpmFovN.svg +8 -0
  321. package/dist/ui/assets/ve-BSqnIB9l.svg +26 -0
  322. package/dist/ui/assets/vg-C7xY6pic.svg +59 -0
  323. package/dist/ui/assets/vi-BC_zcciE.svg +28 -0
  324. package/dist/ui/assets/vn-BEAEijd0.svg +11 -0
  325. package/dist/ui/assets/vu-D6k0NQlg.svg +21 -0
  326. package/dist/ui/assets/wf-DrxpOO_G.svg +5 -0
  327. package/dist/ui/assets/ws-vzJNwdVm.svg +7 -0
  328. package/dist/ui/assets/xk-Bj15g7cp.svg +5 -0
  329. package/dist/ui/assets/xx-zm_JmrXl.svg +4 -0
  330. package/dist/ui/assets/ye-BwST9gXC.svg +7 -0
  331. package/dist/ui/assets/yt-DIfEG0ex.svg +5 -0
  332. package/dist/ui/assets/za-Jz40JTrv.svg +17 -0
  333. package/dist/ui/assets/zm-BmsW91ne.svg +27 -0
  334. package/dist/ui/assets/zw-U0m7oJ5e.svg +21 -0
  335. package/dist/ui/index.html +13 -0
  336. package/package.json +68 -0
@@ -0,0 +1,1805 @@
1
+ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(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),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function n(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var r={},i=[],a=()=>{},o=()=>!1,s=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),c=e=>e.startsWith(`onUpdate:`),l=Object.assign,u=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,f=(e,t)=>d.call(e,t),p=Array.isArray,m=e=>w(e)===`[object Map]`,h=e=>w(e)===`[object Set]`,g=e=>w(e)===`[object Date]`,_=e=>w(e)===`[object RegExp]`,v=e=>typeof e==`function`,y=e=>typeof e==`string`,b=e=>typeof e==`symbol`,x=e=>typeof e==`object`&&!!e,S=e=>(x(e)||v(e))&&v(e.then)&&v(e.catch),C=Object.prototype.toString,w=e=>C.call(e),T=e=>w(e).slice(8,-1),ee=e=>w(e)===`[object Object]`,E=e=>y(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,te=n(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ne=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},re=/-\w/g,D=ne(e=>e.replace(re,e=>e.slice(1).toUpperCase())),ie=/\B([A-Z])/g,ae=ne(e=>e.replace(ie,`-$1`).toLowerCase()),oe=ne(e=>e.charAt(0).toUpperCase()+e.slice(1)),se=ne(e=>e?`on${oe(e)}`:``),O=(e,t)=>!Object.is(e,t),ce=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},le=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ue=e=>{let t=parseFloat(e);return isNaN(t)?e:t},de=e=>{let t=y(e)?Number(e):NaN;return isNaN(t)?e:t},fe,pe=()=>fe||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{},me=n(`Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol`);function he(e){if(p(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=y(r)?ye(r):he(r);if(i)for(let e in i)t[e]=i[e]}return t}else if(y(e)||x(e))return e}var ge=/;(?![^(]*\))/g,_e=/:([^]+)/,ve=/\/\*[^]*?\*\//g;function ye(e){let t={};return e.replace(ve,``).split(ge).forEach(e=>{if(e){let n=e.split(_e);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function k(e){let t=``;if(y(e))t=e;else if(p(e))for(let n=0;n<e.length;n++){let r=k(e[n]);r&&(t+=r+` `)}else if(x(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}function be(e){if(!e)return null;let{class:t,style:n}=e;return t&&!y(t)&&(e.class=k(t)),n&&(e.style=he(n)),e}var xe=`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`,Se=n(xe);xe+``;function Ce(e){return!!e||e===``}function we(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=Te(e[r],t[r]);return n}function Te(e,t){if(e===t)return!0;let n=g(e),r=g(t);if(n||r)return n&&r?e.getTime()===t.getTime():!1;if(n=b(e),r=b(t),n||r)return e===t;if(n=p(e),r=p(t),n||r)return n&&r?we(e,t):!1;if(n=x(e),r=x(t),n||r){if(!n||!r||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let r=e.hasOwnProperty(n),i=t.hasOwnProperty(n);if(r&&!i||!r&&i||!Te(e[n],t[n]))return!1}}return String(e)===String(t)}function Ee(e,t){return e.findIndex(e=>Te(e,t))}var De=e=>!!(e&&e.__v_isRef===!0),A=e=>y(e)?e:e==null?``:p(e)||x(e)&&(e.toString===C||!v(e.toString))?De(e)?A(e.value):JSON.stringify(e,Oe,2):String(e),Oe=(e,t)=>De(t)?Oe(e,t.value):m(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[ke(t,r)+` =>`]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>ke(e))}:b(t)?ke(t):x(t)&&!p(t)&&!ee(t)?String(t):t,ke=(e,t=``)=>b(e)?`Symbol(${e.description??t})`:e;function Ae(e){return e==null?`initial`:typeof e==`string`?e===``?` `:e:String(e)}var je,Me=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&je&&(je.active?(this.parent=je,this.index=(je.scopes||=[]).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=je;try{return je=this,e()}finally{je=t}}}on(){++this._on===1&&(this.prevScope=je,je=this)}off(){if(this._on>0&&--this._on===0){if(je===this)je=this.prevScope;else{let e=je;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}};function Ne(e){return new Me(e)}function Pe(){return je}function Fe(e,t=!1){je&&je.cleanups.push(e)}var Ie,Le=new WeakSet,Re=class{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,je&&(je.active?je.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Le.has(this)&&(Le.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||He(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,rt(this),Ge(this);let e=Ie,t=$e;Ie=this,$e=!0;try{return this.fn()}finally{Ke(this),Ie=e,$e=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Ye(e);this.deps=this.depsTail=void 0,rt(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Le.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){qe(this)&&this.run()}get dirty(){return qe(this)}},ze=0,Be,Ve;function He(e,t=!1){if(e.flags|=8,t){e.next=Ve,Ve=e;return}e.next=Be,Be=e}function Ue(){ze++}function We(){if(--ze>0)return;if(Ve){let e=Ve;for(Ve=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Be;){let t=Be;for(Be=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Ge(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ke(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Ye(r),Xe(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function qe(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Je(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Je(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===it)||(e.globalVersion=it,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qe(e))))return;e.flags|=2;let t=e.dep,n=Ie,r=$e;Ie=e,$e=!0;try{Ge(e);let n=e.fn(e._value);(t.version===0||O(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{Ie=n,$e=r,Ke(e),e.flags&=-3}}function Ye(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Ye(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xe(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function Ze(e,t){e.effect instanceof Re&&(e=e.effect.fn);let n=new Re(e);t&&l(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r}function Qe(e){e.effect.stop()}var $e=!0,et=[];function tt(){et.push($e),$e=!1}function nt(){let e=et.pop();$e=e===void 0?!0:e}function rt(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=Ie;Ie=void 0;try{t()}finally{Ie=e}}}var it=0,at=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},ot=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!Ie||!$e||Ie===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Ie)t=this.activeLink=new at(Ie,this),Ie.deps?(t.prevDep=Ie.depsTail,Ie.depsTail.nextDep=t,Ie.depsTail=t):Ie.deps=Ie.depsTail=t,st(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=Ie.depsTail,t.nextDep=void 0,Ie.depsTail.nextDep=t,Ie.depsTail=t,Ie.deps===t&&(Ie.deps=e)}return t}trigger(e){this.version++,it++,this.notify(e)}notify(e){Ue();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{We()}}};function st(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)st(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var ct=new WeakMap,lt=Symbol(``),ut=Symbol(``),dt=Symbol(``);function ft(e,t,n){if($e&&Ie){let t=ct.get(e);t||ct.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new ot),r.map=t,r.key=n),r.track()}}function pt(e,t,n,r,i,a){let o=ct.get(e);if(!o){it++;return}let s=e=>{e&&e.trigger()};if(Ue(),t===`clear`)o.forEach(s);else{let i=p(e),a=i&&E(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===dt||!b(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(dt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(lt)),m(e)&&s(o.get(ut)));break;case`delete`:i||(s(o.get(lt)),m(e)&&s(o.get(ut)));break;case`set`:m(e)&&s(o.get(lt));break}}We()}function mt(e,t){let n=ct.get(e);return n&&n.get(t)}function ht(e){let t=on(e);return t===e?t:(ft(t,`iterate`,dt),rn(e)?t:t.map(cn))}function gt(e){return ft(e=on(e),`iterate`,dt),e}function _t(e,t){return nn(e)?ln(tn(e)?cn(t):t):cn(t)}var vt={__proto__:null,[Symbol.iterator](){return yt(this,Symbol.iterator,e=>_t(this,e))},concat(...e){return ht(this).concat(...e.map(e=>p(e)?ht(e):e))},entries(){return yt(this,`entries`,e=>(e[1]=_t(this,e[1]),e))},every(e,t){return xt(this,`every`,e,t,void 0,arguments)},filter(e,t){return xt(this,`filter`,e,t,e=>e.map(e=>_t(this,e)),arguments)},find(e,t){return xt(this,`find`,e,t,e=>_t(this,e),arguments)},findIndex(e,t){return xt(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return xt(this,`findLast`,e,t,e=>_t(this,e),arguments)},findLastIndex(e,t){return xt(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return xt(this,`forEach`,e,t,void 0,arguments)},includes(...e){return Ct(this,`includes`,e)},indexOf(...e){return Ct(this,`indexOf`,e)},join(e){return ht(this).join(e)},lastIndexOf(...e){return Ct(this,`lastIndexOf`,e)},map(e,t){return xt(this,`map`,e,t,void 0,arguments)},pop(){return wt(this,`pop`)},push(...e){return wt(this,`push`,e)},reduce(e,...t){return St(this,`reduce`,e,t)},reduceRight(e,...t){return St(this,`reduceRight`,e,t)},shift(){return wt(this,`shift`)},some(e,t){return xt(this,`some`,e,t,void 0,arguments)},splice(...e){return wt(this,`splice`,e)},toReversed(){return ht(this).toReversed()},toSorted(e){return ht(this).toSorted(e)},toSpliced(...e){return ht(this).toSpliced(...e)},unshift(...e){return wt(this,`unshift`,e)},values(){return yt(this,`values`,e=>_t(this,e))}};function yt(e,t,n){let r=gt(e),i=r[t]();return r!==e&&!rn(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var bt=Array.prototype;function xt(e,t,n,r,i,a){let o=gt(e),s=o!==e&&!rn(e),c=o[t];if(c!==bt[t]){let t=c.apply(e,a);return s?cn(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,_t(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function St(e,t,n,r){let i=gt(e),a=i!==e&&!rn(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=_t(e,t)),n.call(this,t,_t(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?_t(e,c):c}function Ct(e,t,n){let r=on(e);ft(r,`iterate`,dt);let i=r[t](...n);return(i===-1||i===!1)&&an(n[0])?(n[0]=on(n[0]),r[t](...n)):i}function wt(e,t,n=[]){tt(),Ue();let r=on(e)[t].apply(e,n);return We(),nt(),r}var Tt=n(`__proto__,__v_isRef,__isVue`),Et=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(b));function Dt(e){b(e)||(e=String(e));let t=on(this);return ft(t,`has`,e),t.hasOwnProperty(e)}var Ot=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Jt:qt:i?Kt:Gt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=p(e);if(!r){let e;if(a&&(e=vt[t]))return e;if(t===`hasOwnProperty`)return Dt}let o=Reflect.get(e,t,un(e)?e:n);if((b(t)?Et.has(t):Tt(t))||(r||ft(e,`get`,t),i))return o;if(un(o)){let e=a&&E(t)?o:o.value;return r&&x(e)?Qt(e):e}return x(o)?r?Qt(o):Xt(o):o}},kt=class extends Ot{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=p(e)&&E(t);if(!this._isShallow){let e=nn(i);if(!rn(n)&&!nn(n)&&(i=on(i),n=on(n)),!a&&un(i)&&!un(n))return e||(i.value=n),!0}let o=a?Number(t)<e.length:f(e,t),s=Reflect.set(e,t,n,un(e)?e:r);return e===on(r)&&(o?O(n,i)&&pt(e,`set`,t,n,i):pt(e,`add`,t,n)),s}deleteProperty(e,t){let n=f(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&pt(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return(!b(t)||!Et.has(t))&&ft(e,`has`,t),n}ownKeys(e){return ft(e,`iterate`,p(e)?`length`:lt),Reflect.ownKeys(e)}},At=class extends Ot{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}},jt=new kt,Mt=new At,Nt=new kt(!0),Pt=new At(!0),Ft=e=>e,It=e=>Reflect.getPrototypeOf(e);function Lt(e,t,n){return function(...r){let i=this.__v_raw,a=on(i),o=m(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,u=i[e](...r),d=n?Ft:t?ln:cn;return!t&&ft(a,`iterate`,c?ut:lt),l(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function Rt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function zt(e,t){let n={get(n){let r=this.__v_raw,i=on(r),a=on(n);e||(O(n,a)&&ft(i,`get`,n),ft(i,`get`,a));let{has:o}=It(i),s=t?Ft:e?ln:cn;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&ft(on(t),`iterate`,lt),t.size},has(t){let n=this.__v_raw,r=on(n),i=on(t);return e||(O(t,i)&&ft(r,`has`,t),ft(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=on(a),s=t?Ft:e?ln:cn;return!e&&ft(o,`iterate`,lt),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return l(n,e?{add:Rt(`add`),set:Rt(`set`),delete:Rt(`delete`),clear:Rt(`clear`)}:{add(e){let n=on(this),r=It(n),i=on(e),a=!t&&!rn(e)&&!nn(e)?i:e;return r.has.call(n,a)||O(e,a)&&r.has.call(n,e)||O(i,a)&&r.has.call(n,i)||(n.add(a),pt(n,`add`,a,a)),this},set(e,n){!t&&!rn(n)&&!nn(n)&&(n=on(n));let r=on(this),{has:i,get:a}=It(r),o=i.call(r,e);o||=(e=on(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?O(n,s)&&pt(r,`set`,e,n,s):pt(r,`add`,e,n),this},delete(e){let t=on(this),{has:n,get:r}=It(t),i=n.call(t,e);i||=(e=on(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&pt(t,`delete`,e,void 0,a),o},clear(){let e=on(this),t=e.size!==0,n=e.clear();return t&&pt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Lt(r,e,t)}),n}function Bt(e,t){let n=zt(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(f(n,r)&&r in t?n:t,r,i)}var Vt={get:Bt(!1,!1)},Ht={get:Bt(!1,!0)},Ut={get:Bt(!0,!1)},Wt={get:Bt(!0,!0)},Gt=new WeakMap,Kt=new WeakMap,qt=new WeakMap,Jt=new WeakMap;function Yt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Xt(e){return nn(e)?e:en(e,!1,jt,Vt,Gt)}function Zt(e){return en(e,!1,Nt,Ht,Kt)}function Qt(e){return en(e,!0,Mt,Ut,qt)}function $t(e){return en(e,!0,Pt,Wt,Jt)}function en(e,t,n,r,i){if(!x(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=Yt(T(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function tn(e){return nn(e)?tn(e.__v_raw):!!(e&&e.__v_isReactive)}function nn(e){return!!(e&&e.__v_isReadonly)}function rn(e){return!!(e&&e.__v_isShallow)}function an(e){return e?!!e.__v_raw:!1}function on(e){let t=e&&e.__v_raw;return t?on(t):e}function sn(e){return!f(e,`__v_skip`)&&Object.isExtensible(e)&&le(e,`__v_skip`,!0),e}var cn=e=>x(e)?Xt(e):e,ln=e=>x(e)?Qt(e):e;function un(e){return e?e.__v_isRef===!0:!1}function j(e){return fn(e,!1)}function dn(e){return fn(e,!0)}function fn(e,t){return un(e)?e:new pn(e,t)}var pn=class{constructor(e,t){this.dep=new ot,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:on(e),this._value=t?e:cn(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||rn(e)||nn(e);e=n?e:on(e),O(e,t)&&(this._rawValue=e,this._value=n?e:cn(e),this.dep.trigger())}};function mn(e){e.dep&&e.dep.trigger()}function M(e){return un(e)?e.value:e}function hn(e){return v(e)?e():M(e)}var gn={get:(e,t,n)=>t===`__v_raw`?e:M(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return un(i)&&!un(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function _n(e){return tn(e)?e:new Proxy(e,gn)}var vn=class{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new ot,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}};function yn(e){return new vn(e)}function bn(e){let t=p(e)?Array(e.length):{};for(let n in e)t[n]=wn(e,n);return t}var xn=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=b(t)?t:String(t),this._raw=on(e);let r=!0,i=e;if(!p(e)||b(this._key)||!E(this._key))do r=!an(i)||rn(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=M(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&un(this._raw[this._key])){let t=this._object[this._key];if(un(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return mt(this._raw,this._key)}},Sn=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function Cn(e,t,n){return un(e)?e:v(e)?new Sn(e):x(e)&&arguments.length>1?wn(e,t,n):j(e)}function wn(e,t,n){return new xn(e,t,n)}var Tn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new ot(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=it-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Ie!==this)return He(this,!0),!0}get value(){let e=this.dep.track();return Je(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function En(e,t,n=!1){let r,i;return v(e)?r=e:(r=e.get,i=e.set),new Tn(r,i,n)}var Dn={GET:`get`,HAS:`has`,ITERATE:`iterate`},On={SET:`set`,ADD:`add`,DELETE:`delete`,CLEAR:`clear`},kn={},An=new WeakMap,jn=void 0;function Mn(){return jn}function Nn(e,t=!1,n=jn){if(n){let t=An.get(n);t||An.set(n,t=[]),t.push(e)}}function Pn(e,t,n=r){let{immediate:i,deep:o,once:s,scheduler:c,augmentJob:l,call:d}=n,f=e=>o?e:rn(e)||o===!1||o===0?Fn(e,1):Fn(e),m,h,g,_,y=!1,b=!1;if(un(e)?(h=()=>e.value,y=rn(e)):tn(e)?(h=()=>f(e),y=!0):p(e)?(b=!0,y=e.some(e=>tn(e)||rn(e)),h=()=>e.map(e=>{if(un(e))return e.value;if(tn(e))return f(e);if(v(e))return d?d(e,2):e()})):h=v(e)?t?d?()=>d(e,2):e:()=>{if(g){tt();try{g()}finally{nt()}}let t=jn;jn=m;try{return d?d(e,3,[_]):e(_)}finally{jn=t}}:a,t&&o){let e=h,t=o===!0?1/0:o;h=()=>Fn(e(),t)}let x=Pe(),S=()=>{m.stop(),x&&x.active&&u(x.effects,m)};if(s&&t){let e=t;t=(...t)=>{e(...t),S()}}let C=b?Array(e.length).fill(kn):kn,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(t){let e=m.run();if(o||y||(b?e.some((e,t)=>O(e,C[t])):O(e,C))){g&&g();let n=jn;jn=m;try{let n=[e,C===kn?void 0:b&&C[0]===kn?[]:C,_];C=e,d?d(t,3,n):t(...n)}finally{jn=n}}}else m.run()};return l&&l(w),m=new Re(h),m.scheduler=c?()=>c(w,!1):w,_=e=>Nn(e,!1,m),g=m.onStop=()=>{let e=An.get(m);if(e){if(d)d(e,4);else for(let t of e)t();An.delete(m)}},t?i?w(!0):C=m.run():c?c(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function Fn(e,t=1/0,n){if(t<=0||!x(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,un(e))Fn(e.value,t,n);else if(p(e))for(let r=0;r<e.length;r++)Fn(e[r],t,n);else if(h(e)||m(e))e.forEach(e=>{Fn(e,t,n)});else if(ee(e)){for(let r in e)Fn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Fn(e[r],t,n)}return e}var In=[];function Ln(e){In.push(e)}function Rn(){In.pop()}function zn(e,t){}var Bn={SETUP_FUNCTION:0,0:`SETUP_FUNCTION`,RENDER_FUNCTION:1,1:`RENDER_FUNCTION`,NATIVE_EVENT_HANDLER:5,5:`NATIVE_EVENT_HANDLER`,COMPONENT_EVENT_HANDLER:6,6:`COMPONENT_EVENT_HANDLER`,VNODE_HOOK:7,7:`VNODE_HOOK`,DIRECTIVE_HOOK:8,8:`DIRECTIVE_HOOK`,TRANSITION_HOOK:9,9:`TRANSITION_HOOK`,APP_ERROR_HANDLER:10,10:`APP_ERROR_HANDLER`,APP_WARN_HANDLER:11,11:`APP_WARN_HANDLER`,FUNCTION_REF:12,12:`FUNCTION_REF`,ASYNC_COMPONENT_LOADER:13,13:`ASYNC_COMPONENT_LOADER`,SCHEDULER:14,14:`SCHEDULER`,COMPONENT_UPDATE:15,15:`COMPONENT_UPDATE`,APP_UNMOUNT_CLEANUP:16,16:`APP_UNMOUNT_CLEANUP`},Vn={sp:`serverPrefetch hook`,bc:`beforeCreate hook`,c:`created hook`,bm:`beforeMount hook`,m:`mounted hook`,bu:`beforeUpdate hook`,u:`updated`,bum:`beforeUnmount hook`,um:`unmounted hook`,a:`activated hook`,da:`deactivated hook`,ec:`errorCaptured hook`,rtc:`renderTracked hook`,rtg:`renderTriggered hook`,0:`setup function`,1:`render function`,2:`watcher getter`,3:`watcher callback`,4:`watcher cleanup function`,5:`native event handler`,6:`component event handler`,7:`vnode hook`,8:`directive hook`,9:`transition hook`,10:`app errorHandler`,11:`app warnHandler`,12:`ref function`,13:`async component loader`,14:`scheduler flush`,15:`component update`,16:`app unmount cleanup function`};function Hn(e,t,n,r){try{return r?e(...r):e()}catch(e){Wn(e,t,n)}}function Un(e,t,n,r){if(v(e)){let i=Hn(e,t,n,r);return i&&S(i)&&i.catch(e=>{Wn(e,t,n)}),i}if(p(e)){let i=[];for(let a=0;a<e.length;a++)i.push(Un(e[a],t,n,r));return i}}function Wn(e,t,n,i=!0){let a=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||r;if(t){let r=t.parent,i=t.proxy,a=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){let t=r.ec;if(t){for(let n=0;n<t.length;n++)if(t[n](e,i,a)===!1)return}r=r.parent}if(o){tt(),Hn(o,null,10,[e,i,a]),nt();return}}Gn(e,n,a,i,s)}function Gn(e,t,n,r=!0,i=!1){if(i)throw e;console.error(e)}var Kn=[],qn=-1,Jn=[],Yn=null,Xn=0,Zn=Promise.resolve(),Qn=null;function $n(e){let t=Qn||Zn;return e?t.then(this?e.bind(this):e):t}function er(e){let t=qn+1,n=Kn.length;for(;t<n;){let r=t+n>>>1,i=Kn[r],a=or(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function tr(e){if(!(e.flags&1)){let t=or(e),n=Kn[Kn.length-1];!n||!(e.flags&2)&&t>=or(n)?Kn.push(e):Kn.splice(er(t),0,e),e.flags|=1,nr()}}function nr(){Qn||=Zn.then(sr)}function rr(e){p(e)?Jn.push(...e):Yn&&e.id===-1?Yn.splice(Xn+1,0,e):e.flags&1||(Jn.push(e),e.flags|=1),nr()}function ir(e,t,n=qn+1){for(;n<Kn.length;n++){let t=Kn[n];if(t&&t.flags&2){if(e&&t.id!==e.uid)continue;Kn.splice(n,1),n--,t.flags&4&&(t.flags&=-2),t(),t.flags&4||(t.flags&=-2)}}}function ar(e){if(Jn.length){let e=[...new Set(Jn)].sort((e,t)=>or(e)-or(t));if(Jn.length=0,Yn){Yn.push(...e);return}for(Yn=e,Xn=0;Xn<Yn.length;Xn++){let e=Yn[Xn];e.flags&4&&(e.flags&=-2),e.flags&8||e(),e.flags&=-2}Yn=null,Xn=0}}var or=e=>e.id==null?e.flags&2?-1:1/0:e.id;function sr(e){try{for(qn=0;qn<Kn.length;qn++){let e=Kn[qn];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),Hn(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;qn<Kn.length;qn++){let e=Kn[qn];e&&(e.flags&=-2)}qn=-1,Kn.length=0,ar(e),Qn=null,(Kn.length||Jn.length)&&sr(e)}}var cr,lr=[];function ur(e,t){cr=e,cr?(cr.enabled=!0,lr.forEach(({event:e,args:t})=>cr.emit(e,...t)),lr=[]):typeof window<`u`&&window.HTMLElement&&!(window.navigator?.userAgent)?.includes(`jsdom`)?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(e=>{ur(e,t)}),setTimeout(()=>{cr||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,lr=[])},3e3)):lr=[]}var dr=null,fr=null;function pr(e){let t=dr;return dr=e,fr=e&&e.type.__scopeId||null,t}function mr(e){fr=e}function hr(){fr=null}var gr=e=>N;function N(e,t=dr,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&ss(-1);let i=pr(t),a;try{a=e(...n)}finally{pr(i),r._d&&ss(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function _r(e,t){if(dr===null)return e;let n=Us(dr),i=e.dirs||=[];for(let e=0;e<t.length;e++){let[a,o,s,c=r]=t[e];a&&(v(a)&&(a={mounted:a,updated:a}),a.deep&&Fn(o),i.push({dir:a,instance:n,value:o,oldValue:void 0,arg:s,modifiers:c}))}return e}function vr(e,t,n,r){let i=e.dirs,a=t&&t.dirs;for(let o=0;o<i.length;o++){let s=i[o];a&&(s.oldValue=a[o].value);let c=s.dir[r];c&&(tt(),Un(c,n,8,[e.el,s,e,t]),nt())}}function yr(e,t){if(Ts){let n=Ts.provides,r=Ts.parent&&Ts.parent.provides;r===n&&(n=Ts.provides=Object.create(r)),n[e]=t}}function br(e,t,n=!1){let r=Es();if(r||Ya){let i=Ya?Ya._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&v(t)?t.call(r&&r.proxy):t}}function xr(){return!!(Es()||Ya)}var Sr=Symbol.for(`v-scx`),Cr=()=>br(Sr);function wr(e,t){return Dr(e,null,t)}function Tr(e,t){return Dr(e,null,{flush:`post`})}function Er(e,t){return Dr(e,null,{flush:`sync`})}function P(e,t,n){return Dr(e,t,n)}function Dr(e,t,n=r){let{immediate:i,deep:o,flush:s,once:c}=n,u=l({},n),d=t&&i||!t&&s!==`post`,f;if(Ms){if(s===`sync`){let e=Cr();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=a,e.resume=a,e.pause=a,e}}let p=Ts;u.call=(e,t,n)=>Un(e,p,t,n);let m=!1;s===`post`?u.scheduler=e=>{ko(e,p&&p.suspense)}:s!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():tr(e)}),u.augmentJob=e=>{t&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=Pn(e,t,u);return Ms&&(f?f.push(h):d&&h()),h}function Or(e,t,n){let r=this.proxy,i=y(e)?e.includes(`.`)?kr(r,e):()=>r[e]:e.bind(r,r),a;v(t)?a=t:(a=t.handler,n=t);let o=ks(this),s=Dr(i,a.bind(r),n);return o(),s}function kr(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}var Ar=new WeakMap,jr=Symbol(`_vte`),Mr=e=>e.__isTeleport,Nr=e=>e&&(e.disabled||e.disabled===``),Pr=e=>e&&(e.defer||e.defer===``),Fr=e=>typeof SVGElement<`u`&&e instanceof SVGElement,Ir=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,Lr=(e,t)=>{let n=e&&e.to;return y(n)?t?t(n):null:n},Rr={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=Nr(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=Nr(e.props),r=e.target=Lr(e.props,m),a=Ur(r,e,h,p);r&&(o!==`svg`&&Fr(r)?o=`svg`:o!==`mathml`&&Ir(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),Hr(e,!1)))},S=e=>{let t=()=>{Ar.get(e)===t&&(Ar.delete(e),Nr(e.props)&&(b(e,_(e.el)||n,e.anchor),Hr(e,!0)),x(e))};Ar.set(e,t),ko(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),Pr(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),Hr(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=Ar.get(e);if(u){u.flags|=8,Ar.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=Nr(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||Fr(p)?o=`svg`:(o===`mathml`||Ir(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),Io(e,t,!0)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):zr(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=Lr(t.props,m);e&&zr(t,e,null,l,0)}else g&&zr(t,p,h,l,1);Hr(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=a||!Nr(f),m=Ar.get(e);if(m&&(m.flags|=8,Ar.delete(e)),d&&(i(l),i(u)),a&&i(c),!m&&o&16)for(let e=0;e<s.length;e++){let i=s[e];r(i,t,n,p,!!i.dynamicChildren)}},move:zr,hydrate:Br};function zr(e,t,n,{o:{insert:r},m:i},a=2){a===0&&r(e.targetAnchor,t,n);let{el:o,anchor:s,shapeFlag:c,children:l,props:u}=e,d=a===2;if(d&&r(o,t,n),!Ar.has(e)&&(!d||Nr(u))&&c&16)for(let e=0;e<l.length;e++)i(l[e],t,n,2);d&&r(s,t,n)}function Br(e,t,n,r,i,a,{o:{nextSibling:o,parentNode:s,querySelector:c,insert:l,createText:u}},d){function f(e,n){let r=n;for(;r;){if(r&&r.nodeType===8){if(r.data===`teleport start anchor`)t.targetStart=r;else if(r.data===`teleport anchor`){t.targetAnchor=r,e._lpa=t.targetAnchor&&o(t.targetAnchor);break}}r=o(r)}}function p(e,t){t.anchor=d(o(e),t,s(e),n,r,i,a)}let m=t.target=Lr(t.props,c),h=Nr(t.props);if(m){let c=m._lpa||m.firstChild;t.shapeFlag&16&&(h?(p(e,t),f(m,c),t.targetAnchor||Ur(m,t,u,l,s(e)===m?e:null)):(t.anchor=o(e),f(m,c),t.targetAnchor||Ur(m,t,u,l),d(c&&o(c),t,m,n,r,i,a))),Hr(t,h)}else h&&t.shapeFlag&16&&(p(e,t),t.targetStart=e,t.targetAnchor=o(e));return t.anchor&&o(t.anchor)}var Vr=Rr;function Hr(e,t){let n=e.ctx;if(n&&n.ut){let r,i;for(t?(r=e.el,i=e.anchor):(r=e.targetStart,i=e.targetAnchor);r&&r!==i;)r.nodeType===1&&r.setAttribute(`data-v-owner`,n.uid),r=r.nextSibling;n.ut()}}function Ur(e,t,n,r,i=null){let a=t.targetStart=n(``),o=t.targetAnchor=n(``);return a[jr]=o,e&&(r(a,e,i),r(o,e,i)),o}var Wr=Symbol(`_leaveCb`),Gr=Symbol(`_enterCb`);function Kr(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Gi(()=>{e.isMounted=!0}),Ji(()=>{e.isUnmounting=!0}),e}var qr=[Function,Array],Jr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:qr,onEnter:qr,onAfterEnter:qr,onEnterCancelled:qr,onBeforeLeave:qr,onLeave:qr,onAfterLeave:qr,onLeaveCancelled:qr,onBeforeAppear:qr,onAppear:qr,onAfterAppear:qr,onAppearCancelled:qr},Yr=e=>{let t=e.subTree;return t.component?Yr(t.component):t},Xr={name:`BaseTransition`,props:Jr,setup(e,{slots:t}){let n=Es(),r=Kr();return()=>{let i=t.default&&ii(t.default(),!0),a=i&&i.length?Zr(i):n.subTree?G():void 0;if(!a)return;let o=on(e),{mode:s}=o;if(r.isLeaving)return ti(a);let c=ni(a);if(!c)return ti(a);let l=ei(c,o,r,n,e=>l=e);c.type!==ts&&ri(c,l);let u=n.subTree&&ni(n.subTree);if(u&&u.type!==ts&&!us(u,c)&&Yr(n).type!==ts){let e=ei(u,o,r,n);if(ri(u,e),s===`out-in`&&c.type!==ts)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},ti(a);s===`in-out`&&c.type!==ts?e.delayLeave=(e,t,n)=>{let i=$r(r,u);i[String(u.key)]=u,e[Wr]=()=>{t(),e[Wr]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function Zr(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ts){t=n;break}}return t}var Qr=Xr;function $r(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ei(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:m,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:v,onAfterAppear:y,onAppearCancelled:b}=t,x=String(e.key),S=$r(n,e),C=(e,t)=>{e&&Un(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),p(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted)if(a)r=_||c;else return;t[Wr]&&t[Wr](!0);let i=S[x];i&&us(e,i)&&i.el[Wr]&&i.el[Wr](),C(r,[t])},enter(t){if(S[x]===e)return;let r=l,i=u,o=d;if(!n.isMounted)if(a)r=v||l,i=y||u,o=b||d;else return;let s=!1;t[Gr]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[Gr]=void 0)};let c=t[Gr].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[Gr]&&t[Gr](!0),n.isUnmounting)return r();C(f,[t]);let a=!1;t[Wr]=n=>{a||(a=!0,r(),C(n?g:h,[t]),t[Wr]=void 0,S[i]===e&&delete S[i])};let o=t[Wr].bind(null,!1);S[i]=e,m?w(m,[t,o]):o()},clone(e){let a=ei(e,t,n,r,i);return i&&i(a),a}};return T}function ti(e){if(Ni(e))return e=gs(e),e.children=null,e}function ni(e){if(!Ni(e))return Mr(e.type)&&e.children?Zr(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&v(n.default))return n.default()}}function ri(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ri(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ii(e,t=!1,n){let r=[],i=0;for(let a=0;a<e.length;a++){let o=e[a],s=n==null?o.key:String(n)+String(o.key==null?a:o.key);o.type===R?(o.patchFlag&128&&i++,r=r.concat(ii(o.children,t,s))):(t||o.type!==ts)&&r.push(s==null?o:gs(o,{key:s}))}if(i>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function F(e,t){return v(e)?l({name:e.name},t,{setup:e}):e}function ai(){let e=Es();return e?(e.appContext.config.idPrefix||`v`)+`-`+e.ids[0]+ e.ids[1]++:``}function oi(e){e.ids=[e.ids[0]+ e.ids[2]+++`-`,0,0]}function si(e){let t=Es(),n=dn(null);if(t){let i=t.refs===r?t.refs={}:t.refs;Object.defineProperty(i,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e})}return n}function ci(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var li=new WeakMap;function ui(e,t,n,i,a=!1){if(p(e)){e.forEach((e,r)=>ui(e,t&&(p(t)?t[r]:t),n,i,a));return}if(Ai(i)&&!a){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&ui(e,t,n,i.component.subTree);return}let s=i.shapeFlag&4?Us(i.component):i.el,c=a?null:s,{i:l,r:d}=e,m=t&&t.r,h=l.refs===r?l.refs={}:l.refs,g=l.setupState,_=on(g),b=g===r?o:e=>ci(h,e)?!1:f(_,e),x=(e,t)=>!(t&&ci(h,t));if(m!=null&&m!==d){if(di(t),y(m))h[m]=null,b(m)&&(g[m]=null);else if(un(m)){let e=t;x(m,e.k)&&(m.value=null),e.k&&(h[e.k]=null)}}if(v(d))Hn(d,l,12,[c,h]);else{let t=y(d),r=un(d);if(t||r){let i=()=>{if(e.f){let n=t?b(d)?g[d]:h[d]:x(d)||!e.k?d.value:h[e.k];if(a)p(n)&&u(n,s);else if(p(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],b(d)&&(g[d]=h[d]);else{let t=[s];x(d,e.k)&&(d.value=t),e.k&&(h[e.k]=t)}}else t?(h[d]=c,b(d)&&(g[d]=c)):r&&(x(d,e.k)&&(d.value=c),e.k&&(h[e.k]=c))};if(c){let t=()=>{i(),li.delete(e)};t.id=-1,li.set(e,t),ko(t,n)}else di(e),i()}}}function di(e){let t=li.get(e);t&&(t.flags|=8,li.delete(e))}var fi=!1,pi=()=>{fi||=(console.error(`Hydration completed but contains mismatches.`),!0)},mi=e=>e.namespaceURI.includes(`svg`)&&e.tagName!==`foreignObject`,hi=e=>e.namespaceURI.includes(`MathML`),gi=e=>{if(e.nodeType===1){if(mi(e))return`svg`;if(hi(e))return`mathml`}},_i=e=>e.nodeType===8;function vi(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:a,parentNode:o,remove:c,insert:l,createComment:u}}=e,d=(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),ar(),t._vnode=e;return}f(t.firstChild,e,null,null,null),ar(),t._vnode=e},f=(n,r,s,c,u,d=!1)=>{d||=!!r.dynamicChildren;let b=_i(n)&&n.data===`[`,x=()=>g(n,r,s,c,u,b),{type:S,ref:C,shapeFlag:w,patchFlag:T}=r,ee=n.nodeType;r.el=n,T===-2&&(d=!1,r.dynamicChildren=null);let E=null;switch(S){case es:ee===3?(n.data!==r.children&&(pi(),n.data=r.children),E=a(n)):r.children===``?(l(r.el=i(``),o(n),n),E=n):E=x();break;case ts:y(n)?(E=a(n),v(r.el=n.content.firstChild,n,s)):E=ee!==8||b?x():a(n);break;case ns:if(b&&(n=a(n),ee=n.nodeType),ee===1||ee===3){E=n;let e=!r.children.length;for(let t=0;t<r.staticCount;t++)e&&(r.children+=E.nodeType===1?E.outerHTML:E.data),t===r.staticCount-1&&(r.anchor=E),E=a(E);return b?a(E):E}else x();break;case R:E=b?h(n,r,s,c,u,d):x();break;default:if(w&1)E=(ee!==1||r.type.toLowerCase()!==n.tagName.toLowerCase())&&!y(n)?x():p(n,r,s,c,u,d);else if(w&6){r.slotScopeIds=u;let e=o(n);if(E=b?_(n):_i(n)&&n.data===`teleport start`?_(n,n.data,`teleport end`):a(n),t(r,e,null,s,c,gi(e),d),Ai(r)&&!r.type.__asyncResolved){let t;b?(t=U(R),t.anchor=E?E.previousSibling:e.lastChild):t=n.nodeType===3?W(``):U(`div`),t.el=n,r.component.subTree=t}}else w&64?E=ee===8?r.type.hydrate(n,r,s,c,u,d,e,m):x():w&128&&(E=r.type.hydrate(n,r,s,c,gi(o(n)),u,d,e,f))}return C!=null&&ui(C,null,c,r),E},p=(e,t,n,i,a,o)=>{o||=!!t.dynamicChildren;let{type:l,props:u,patchFlag:d,shapeFlag:f,dirs:p,transition:h}=t,g=l===`input`||l===`option`;if(g||d!==-1){p&&vr(t,null,n,`created`);let l=!1;if(y(e)){l=Fo(null,h)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(l){let e=r.getAttribute(`class`);e&&(r.$cls=e),h.beforeEnter(r)}v(r,e,n),t.el=e=r}if(f&16&&!(u&&(u.innerHTML||u.textContent))){let r=m(e.firstChild,t,e,n,i,a,o);for(r&&!xi(e,1)&&pi();r;){let e=r;r=r.nextSibling,c(e)}}else if(f&8){let n=t.children;n[0]===`
2
+ `&&(e.tagName===`PRE`||e.tagName===`TEXTAREA`)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,`
3
+ `)&&(xi(e,0)||pi(),e.textContent=t.children)}if(u){if(g||!o||d&48){let t=e.tagName.includes(`-`);for(let i in u)(g&&(i.endsWith(`value`)||i===`indeterminate`)||s(i)&&!te(i)||i[0]===`.`||t&&!te(i))&&r(e,i,null,u[i],void 0,n)}else if(u.onClick)r(e,`onClick`,null,u.onClick,void 0,n);else if(d&4&&tn(u.style))for(let e in u.style)u.style[e]}let _;(_=u&&u.onVnodeBeforeMount)&&xs(_,n,t),p&&vr(t,null,n,`beforeMount`),((_=u&&u.onVnodeMounted)||p||l)&&Zo(()=>{_&&xs(_,n,t),l&&h.enter(e),p&&vr(t,null,n,`mounted`)},i)}return e.nextSibling},m=(e,t,r,o,s,c,u)=>{u||=!!t.dynamicChildren;let d=t.children,p=d.length,m=!1;for(let t=0;t<p;t++){let h=u?d[t]:d[t]=vs(d[t]),g=h.type===es;e?(g&&!u&&t+1<p&&vs(d[t+1]).type===es&&(l(i(e.data.slice(h.children.length)),r,a(e)),e.data=h.children),e=f(e,h,o,s,c,u)):g&&!h.children?l(h.el=i(``),r):(m||(m=!0,xi(r,1)||pi()),n(null,h,r,null,o,s,gi(r),c))}return e},h=(e,t,n,r,i,s)=>{let{slotScopeIds:c}=t;c&&(i=i?i.concat(c):c);let d=o(e),f=m(a(e),t,d,n,r,i,s);return f&&_i(f)&&f.data===`]`?a(t.anchor=f):(pi(),l(t.anchor=u(`]`),d,f),f)},g=(e,t,r,i,s,l)=>{if(xi(e.parentElement,1)||pi(),t.el=null,l){let t=_(e);for(;;){let n=a(e);if(n&&n!==t)c(n);else break}}let u=a(e),d=o(e);return c(e),n(null,t,d,u,r,i,gi(d),s),r&&(r.vnode.el=t.el,lo(r,t.el)),u},_=(e,t=`[`,n=`]`)=>{let r=0;for(;e;)if(e=a(e),e&&_i(e)&&(e.data===t&&r++,e.data===n)){if(r===0)return a(e);r--}return e},v=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>e.nodeType===1&&e.tagName===`TEMPLATE`;return[d,f]}var yi=`data-allow-mismatch`,bi={0:`text`,1:`children`,2:`class`,3:`style`,4:`attribute`};function xi(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(yi);)e=e.parentElement;let n=e&&e.getAttribute(yi);if(n==null)return!1;if(n===``)return!0;{let e=n.split(`,`);return t===0&&e.includes(`children`)?!0:e.includes(bi[t])}}var Si=pe().requestIdleCallback||(e=>setTimeout(e,1)),Ci=pe().cancelIdleCallback||(e=>clearTimeout(e)),wi=(e=1e4)=>t=>{let n=Si(t,{timeout:e});return()=>Ci(n)};function Ti(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:a,innerWidth:o}=window;return(t>0&&t<a||r>0&&r<a)&&(n>0&&n<o||i>0&&i<o)}var Ei=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(Ti(e))return t(),r.disconnect(),!1;r.observe(e)}}),()=>r.disconnect()},Di=e=>t=>{if(e){let n=matchMedia(e);if(n.matches)t();else return n.addEventListener(`change`,t,{once:!0}),()=>n.removeEventListener(`change`,t)}},Oi=(e=[])=>(t,n)=>{y(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,a(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},a=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),a};function ki(e,t){if(_i(e)&&e.data===`[`){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(_i(r))if(r.data===`]`){if(--n===0)break}else r.data===`[`&&n++;r=r.nextSibling}}else t(e)}var Ai=e=>!!e.type.__asyncLoader;function ji(e){v(e)&&(e={loader:e});let{loader:t,loadingComponent:n,errorComponent:r,delay:i=200,hydrate:a,timeout:o,suspensible:s=!0,onError:c}=e,l=null,u,d=0,f=()=>(d++,l=null,p()),p=()=>{let e;return l||(e=l=t().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t(f()),()=>n(e),d+1)});throw e}).then(t=>e!==l&&l?l:(t&&(t.__esModule||t[Symbol.toStringTag]===`Module`)&&(t=t.default),u=t,t)))};return F({name:`AsyncComponentWrapper`,__asyncLoader:p,__asyncHydrate(e,t,n){let r=!1;(t.bu||=[]).push(()=>r=!0);let i=()=>{r||n()},o=a?()=>{let n=a(i,t=>ki(e,t));n&&(t.bum||=[]).push(n)}:i;u?o():p().then(()=>!t.isUnmounted&&o())},get __asyncResolved(){return u},setup(){let e=Ts;if(oi(e),u)return()=>Mi(u,e);let t=t=>{l=null,Wn(t,e,13,!r)};if(s&&e.suspense||Ms)return p().then(t=>()=>Mi(t,e)).catch(e=>(t(e),()=>r?U(r,{error:e}):null));let a=j(!1),c=j(),d=j(!!i);return i&&setTimeout(()=>{d.value=!1},i),o!=null&&setTimeout(()=>{if(!a.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);t(e),c.value=e}},o),p().then(()=>{a.value=!0,e.parent&&Ni(e.parent.vnode)&&e.parent.update()}).catch(e=>{t(e),c.value=e}),()=>{if(a.value&&u)return Mi(u,e);if(c.value&&r)return U(r,{error:c.value});if(n&&!d.value)return Mi(n,e)}}})}function Mi(e,t){let{ref:n,props:r,children:i,ce:a}=t.vnode,o=U(e,r,i);return o.ref=n,o.ce=a,delete t.vnode.ce,o}var Ni=e=>e.type.__isKeepAlive,Pi={name:`KeepAlive`,__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=Es(),r=n.ctx;if(!r.renderer)return()=>{let e=t.default&&t.default();return e&&e.length===1?e[0]:e};let i=new Map,a=new Set,o=null,s=n.suspense,{renderer:{p:c,m:l,um:u,o:{createElement:d}}}=r,f=d(`div`);r.activate=(e,t,n,r,i)=>{let a=e.component;l(e,t,n,0,s),c(a.vnode,e,t,n,a,s,r,e.slotScopeIds,i),ko(()=>{a.isDeactivated=!1,a.a&&ce(a.a);let t=e.props&&e.props.onVnodeMounted;t&&xs(t,a.parent,e)},s)},r.deactivate=e=>{let t=e.component;zo(t.m),zo(t.a),l(e,f,null,1,s),ko(()=>{t.da&&ce(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&xs(n,t.parent,e),t.isDeactivated=!0},s)};function p(e){Bi(e),u(e,n,s,!0)}function m(e){i.forEach((t,n)=>{let r=Ws(Ai(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&h(n)})}function h(e){let t=i.get(e);t&&(!o||!us(t,o))?p(t):o&&Bi(o),i.delete(e),a.delete(e)}P(()=>[e.include,e.exclude],([e,t])=>{e&&m(t=>Fi(e,t)),t&&m(e=>!Fi(t,e))},{flush:`post`,deep:!0});let g=null,_=()=>{g!=null&&(Vo(n.subTree.type)?ko(()=>{i.set(g,Vi(n.subTree))},n.subTree.suspense):i.set(g,Vi(n.subTree)))};return Gi(_),qi(_),Ji(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=Vi(t);if(e.type===i.type&&e.key===i.key){Bi(i);let e=i.component.da;e&&ko(e,r);return}p(e)})}),()=>{if(g=null,!t.default)return o=null;let n=t.default(),r=n[0];if(n.length>1)return o=null,n;if(!ls(r)||!(r.shapeFlag&4)&&!(r.shapeFlag&128))return o=null,r;let s=Vi(r);if(s.type===ts)return o=null,s;let c=s.type,l=Ws(Ai(s)?s.type.__asyncResolved||{}:c),{include:u,exclude:d,max:f}=e;if(u&&(!l||!Fi(u,l))||d&&l&&Fi(d,l))return s.shapeFlag&=-257,o=s,r;let p=s.key==null?c:s.key,m=i.get(p);return s.el&&(s=gs(s),r.shapeFlag&128&&(r.ssContent=s)),g=p,m?(s.el=m.el,s.component=m.component,s.transition&&ri(s,s.transition),s.shapeFlag|=512,a.delete(p),a.add(p)):(a.add(p),f&&a.size>parseInt(f,10)&&h(a.values().next().value)),s.shapeFlag|=256,o=s,Vo(r.type)?r:s}}};function Fi(e,t){return p(e)?e.some(e=>Fi(e,t)):y(e)?e.split(`,`).includes(t):_(e)?(e.lastIndex=0,e.test(t)):!1}function Ii(e,t){Ri(e,`a`,t)}function Li(e,t){Ri(e,`da`,t)}function Ri(e,t,n=Ts){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Hi(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Ni(e.parent.vnode)&&zi(r,t,n,e),e=e.parent}}function zi(e,t,n,r){let i=Hi(t,e,r,!0);Yi(()=>{u(r[t],i)},n)}function Bi(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Vi(e){return e.shapeFlag&128?e.ssContent:e}function Hi(e,t,n=Ts,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{tt();let i=ks(n),a=Un(t,n,e,r);return i(),nt(),a};return r?i.unshift(a):i.push(a),a}}var Ui=e=>(t,n=Ts)=>{(!Ms||e===`sp`)&&Hi(e,(...e)=>t(...e),n)},Wi=Ui(`bm`),Gi=Ui(`m`),Ki=Ui(`bu`),qi=Ui(`u`),Ji=Ui(`bum`),Yi=Ui(`um`),Xi=Ui(`sp`),Zi=Ui(`rtg`),Qi=Ui(`rtc`);function $i(e,t=Ts){Hi(`ec`,e,t)}var ea=`components`,ta=`directives`;function na(e,t){return oa(ea,e,!0,t)||e}var ra=Symbol.for(`v-ndc`);function ia(e){return y(e)?oa(ea,e,!1)||e:e||ra}function aa(e){return oa(ta,e)}function oa(e,t,n=!0,r=!1){let i=dr||Ts;if(i){let n=i.type;if(e===ea){let e=Ws(n,!1);if(e&&(e===t||e===D(t)||e===oe(D(t))))return n}let a=sa(i[e]||n[e],t)||sa(i.appContext[e],t);return!a&&r?n:a}}function sa(e,t){return e&&(e[t]||e[D(t)]||e[oe(D(t))])}function I(e,t,n,r){let i,a=n&&n[r],o=p(e);if(o||y(e)){let n=o&&tn(e),r=!1,s=!1;n&&(r=!rn(e),s=nn(e),e=gt(e)),i=Array(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=t(r?s?ln(cn(e[n])):cn(e[n]):e[n],n,void 0,a&&a[n])}else if(typeof e==`number`){i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,a&&a[n])}else if(x(e))if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r<o;r++){let o=n[r];i[r]=t(e[o],o,r,a&&a[r])}}else i=[];return n&&(n[r]=i),i}function ca(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(p(r))for(let t=0;t<r.length;t++)e[r[t].name]=r[t].fn;else r&&(e[r.name]=r.key?(...e)=>{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e}function L(e,t,n={},r,i){if(dr.ce||dr.parent&&Ai(dr.parent)&&dr.parent.ce){let e=Object.keys(n).length>0;return t!=="default"&&(n.name=t),z(),V(R,null,[U(`slot`,n,r&&r())],e?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),z();let o=a&&la(a(n)),s=n.key||o&&o.key,c=V(R,{key:(s&&!b(s)?s:`_${t}`)+(!o&&r?`_fb`:``)},o||(r?r():[]),o&&e._===1?64:-2);return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),a&&a._c&&(a._d=!0),c}function la(e){return e.some(e=>ls(e)?!(e.type===ts||e.type===R&&!la(e.children)):!0)?e:null}function ua(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:se(r)]=e[r];return n}var da=e=>e?js(e)?Us(e):da(e.parent):null,fa=l(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>da(e.parent),$root:e=>da(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ia(e),$forceUpdate:e=>e.f||=()=>{tr(e.update)},$nextTick:e=>e.n||=$n.bind(e.proxy),$watch:e=>Or.bind(e)}),pa=(e,t)=>e!==r&&!e.__isScriptSetup&&f(e,t),ma={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(t[0]!==`$`){let e=s[t];if(e!==void 0)switch(e){case 1:return i[t];case 2:return a[t];case 4:return n[t];case 3:return o[t]}else if(pa(i,t))return s[t]=1,i[t];else if(a!==r&&f(a,t))return s[t]=2,a[t];else if(f(o,t))return s[t]=3,o[t];else if(n!==r&&f(n,t))return s[t]=4,n[t];else ja&&(s[t]=0)}let u=fa[t],d,p;if(u)return t===`$attrs`&&ft(e.attrs,`get`,``),u(e);if((d=c.__cssModules)&&(d=d[t]))return d;if(n!==r&&f(n,t))return s[t]=4,n[t];if(p=l.config.globalProperties,f(p,t))return p[t]},set({_:e},t,n){let{data:i,setupState:a,ctx:o}=e;return pa(a,t)?(a[t]=n,!0):i!==r&&f(i,t)?(i[t]=n,!0):f(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(n[c]||e!==r&&c[0]!==`$`&&f(e,c)||pa(t,c)||f(o,c)||f(i,c)||f(fa,c)||f(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?f(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}},ha=l({},ma,{get(e,t){if(t!==Symbol.unscopables)return ma.get(e,t,e)},has(e,t){return t[0]!==`_`&&!me(t)}});function ga(){return null}function _a(){return null}function va(e){}function ya(e){}function ba(){return null}function xa(){}function Sa(e,t){return null}function Ca(){return Ta(`useSlots`).slots}function wa(){return Ta(`useAttrs`).attrs}function Ta(e){let t=Es();return t.setupContext||=Hs(t)}function Ea(e){return p(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function Da(e,t){let n=Ea(e);for(let e in t){if(e.startsWith(`__skip`))continue;let r=n[e];r?p(r)||v(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:r===null&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n}function Oa(e,t){return!e||!t?e||t:p(e)&&p(t)?e.concat(t):l({},Ea(e),Ea(t))}function ka(e,t){let n={};for(let r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function Aa(e){let t=Es(),n=Ms,r=e();As(),n&&Os(!1);let i=()=>{ks(t),n&&Os(!0)},a=()=>{Es()!==t&&t.scope.off(),As(),n&&Os(!1)};return S(r)&&(r=r.catch(e=>{throw i(),Promise.resolve().then(()=>Promise.resolve().then(a)),e})),[r,()=>{i(),Promise.resolve().then(a)}]}var ja=!0;function Ma(e){let t=Ia(e),n=e.proxy,r=e.ctx;ja=!1,t.beforeCreate&&Pa(t.beforeCreate,e,`bc`);let{data:i,computed:o,methods:s,watch:c,provide:l,inject:u,created:d,beforeMount:f,mounted:m,beforeUpdate:h,updated:g,activated:_,deactivated:y,beforeDestroy:b,beforeUnmount:S,destroyed:C,unmounted:w,render:T,renderTracked:ee,renderTriggered:E,errorCaptured:te,serverPrefetch:ne,expose:re,inheritAttrs:D,components:ie,directives:ae,filters:oe}=t;if(u&&Na(u,r,null),s)for(let e in s){let t=s[e];v(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);x(t)&&(e.data=Xt(t))}if(ja=!0,o)for(let e in o){let t=o[e],i=q({get:v(t)?t.bind(n,n):v(t.get)?t.get.bind(n,n):a,set:!v(t)&&v(t.set)?t.set.bind(n):a});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(c)for(let e in c)Fa(c[e],r,n,e);if(l){let e=v(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{yr(t,e[t])})}d&&Pa(d,e,`c`);function se(e,t){p(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(se(Wi,f),se(Gi,m),se(Ki,h),se(qi,g),se(Ii,_),se(Li,y),se($i,te),se(Qi,ee),se(Zi,E),se(Ji,S),se(Yi,w),se(Xi,ne),p(re))if(re.length){let t=e.exposed||={};re.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};T&&e.render===a&&(e.render=T),D!=null&&(e.inheritAttrs=D),ie&&(e.components=ie),ae&&(e.directives=ae),ne&&oi(e)}function Na(e,t,n=a){p(e)&&(e=Va(e));for(let n in e){let r=e[n],i;i=x(r)?`default`in r?br(r.from||n,r.default,!0):br(r.from||n):br(r),un(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function Pa(e,t,n){Un(p(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Fa(e,t,n,r){let i=r.includes(`.`)?kr(n,r):()=>n[r];if(y(e)){let n=t[e];v(n)&&P(i,n)}else if(v(e))P(i,e.bind(n));else if(x(e))if(p(e))e.forEach(e=>Fa(e,t,n,r));else{let r=v(e.handler)?e.handler.bind(n):t[e.handler];v(r)&&P(i,r,e)}}function Ia(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>La(c,e,o,!0)),La(c,t,o)),x(t)&&a.set(t,c),c}function La(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&La(e,a,n,!0),i&&i.forEach(t=>La(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=Ra[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var Ra={data:za,props:Wa,emits:Wa,methods:Ua,computed:Ua,beforeCreate:Ha,created:Ha,beforeMount:Ha,mounted:Ha,beforeUpdate:Ha,updated:Ha,beforeDestroy:Ha,beforeUnmount:Ha,destroyed:Ha,unmounted:Ha,activated:Ha,deactivated:Ha,errorCaptured:Ha,serverPrefetch:Ha,components:Ua,directives:Ua,watch:Ga,provide:za,inject:Ba};function za(e,t){return t?e?function(){return l(v(e)?e.call(this,this):e,v(t)?t.call(this,this):t)}:t:e}function Ba(e,t){return Ua(Va(e),Va(t))}function Va(e){if(p(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Ha(e,t){return e?[...new Set([].concat(e,t))]:t}function Ua(e,t){return e?l(Object.create(null),e,t):t}function Wa(e,t){return e?p(e)&&p(t)?[...new Set([...e,...t])]:l(Object.create(null),Ea(e),Ea(t??{})):t}function Ga(e,t){if(!e)return t;if(!t)return e;let n=l(Object.create(null),e);for(let r in t)n[r]=Ha(e[r],t[r]);return n}function Ka(){return{app:null,config:{isNativeTag:o,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var qa=0;function Ja(e,t){return function(n,r=null){v(n)||(n=l({},n)),r!=null&&!x(r)&&(r=null);let i=Ka(),a=new WeakSet,o=[],s=!1,c=i.app={_uid:qa++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:Xs,get config(){return i.config},set config(e){},use(e,...t){return a.has(e)||(e&&v(e.install)?(a.add(e),e.install(c,...t)):v(e)&&(a.add(e),e(c,...t))),c},mixin(e){return i.mixins.includes(e)||i.mixins.push(e),c},component(e,t){return t?(i.components[e]=t,c):i.components[e]},directive(e,t){return t?(i.directives[e]=t,c):i.directives[e]},mount(a,o,l){if(!s){let u=c._ceVNode||U(n,r);return u.appContext=i,l===!0?l=`svg`:l===!1&&(l=void 0),o&&t?t(u,a):e(u,a,l),s=!0,c._container=a,a.__vue_app__=c,Us(u.component)}},onUnmount(e){o.push(e)},unmount(){s&&(Un(o,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(e,t){return i.provides[e]=t,c},runWithContext(e){let t=Ya;Ya=c;try{return e()}finally{Ya=t}}};return c}}var Ya=null;function Xa(e,t,n=r){let i=Es(),a=D(t),o=ae(t),s=Za(e,a),c=yn((s,c)=>{let l,u=r,d;return Er(()=>{let t=e[a];O(l,t)&&(l=t,c())}),{get(){return s(),n.get?n.get(l):l},set(e){let s=n.set?n.set(e):e;if(!O(s,l)&&!(u!==r&&O(e,u)))return;let f=i.vnode.props;f&&(t in f||a in f||o in f)&&(`onUpdate:${t}`in f||`onUpdate:${a}`in f||`onUpdate:${o}`in f)||(l=e,c()),i.emit(`update:${t}`,s),O(e,s)&&O(e,u)&&!O(s,d)&&c(),u=e,d=s}}});return c[Symbol.iterator]=()=>{let e=0;return{next(){return e<2?{value:e++?s||r:c,done:!1}:{done:!0}}}},c}var Za=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${D(t)}Modifiers`]||e[`${ae(t)}Modifiers`];function Qa(e,t,...n){if(e.isUnmounted)return;let i=e.vnode.props||r,a=n,o=t.startsWith(`update:`),s=o&&Za(i,t.slice(7));s&&(s.trim&&(a=n.map(e=>y(e)?e.trim():e)),s.number&&(a=n.map(ue)));let c,l=i[c=se(t)]||i[c=se(D(t))];!l&&o&&(l=i[c=se(ae(t))]),l&&Un(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,Un(u,e,6,a)}}var $a=new WeakMap;function eo(e,t,n=!1){let r=n?$a:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!v(e)){let r=e=>{let n=eo(e,t,!0);n&&(s=!0,l(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(x(e)&&r.set(e,null),null):(p(a)?a.forEach(e=>o[e]=null):l(o,a),x(e)&&r.set(e,o),o)}function to(e,t){return!e||!s(t)?!1:(t=t.slice(2).replace(/Once$/,``),f(e,t[0].toLowerCase()+t.slice(1))||f(e,ae(t))||f(e,t))}function no(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=pr(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=vs(u.call(t,e,d,f,m,p,h)),y=s}else{let e=t;v=vs(e.length>1?e(f,{attrs:s,slots:o,emit:l}):e(f,null)),y=t.props?s:io(s)}}catch(t){rs.length=0,Wn(t,e,1),v=U(ts)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(c)&&(y=ao(y,a)),b=gs(b,y,!1,!0))}return n.dirs&&(b=gs(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&ri(b,n.transition),v=b,pr(_),v}function ro(e,t=!0){let n;for(let t=0;t<e.length;t++){let r=e[t];if(ls(r)){if(r.type!==ts||r.children===`v-if`){if(n)return;n=r}}else return}return n}var io=e=>{let t;for(let n in e)(n===`class`||n===`style`||s(n))&&((t||={})[n]=e[n]);return t},ao=(e,t)=>{let n={};for(let r in e)(!c(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function oo(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?so(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(co(o,r,n)&&!to(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?o?so(r,o,l):!0:!!o;return!1}function so(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let a=r[i];if(co(t,e,a)&&!to(n,a))return!0}return!1}function co(e,t,n){let r=e[n],i=t[n];return n===`style`&&x(r)&&x(i)?!Te(r,i):r!==i}function lo({vnode:e,parent:t,suspense:n},r){for(;t;){let n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}var uo={},fo=()=>Object.create(uo),po=e=>Object.getPrototypeOf(e)===uo;function mo(e,t,n,r=!1){let i={},a=fo();e.propsDefaults=Object.create(null),go(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Zt(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function ho(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=on(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(to(e.emitsOptions,o))continue;let u=t[o];if(c)if(f(a,o))u!==a[o]&&(a[o]=u,l=!0);else{let t=D(o);i[t]=_o(c,s,t,u,e,!1)}else u!==a[o]&&(a[o]=u,l=!0)}}}else{go(e,t,i,a)&&(l=!0);let r;for(let a in s)(!t||!f(t,a)&&((r=ae(a))===a||!f(t,r)))&&(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=_o(c,s,a,void 0,e,!0)):delete i[a]);if(a!==s)for(let e in a)(!t||!f(t,e))&&(delete a[e],l=!0)}l&&pt(e.attrs,`set`,``)}function go(e,t,n,i){let[a,o]=e.propsOptions,s=!1,c;if(t)for(let r in t){if(te(r))continue;let l=t[r],u;a&&f(a,u=D(r))?!o||!o.includes(u)?n[u]=l:(c||={})[u]=l:to(e.emitsOptions,r)||(!(r in i)||l!==i[r])&&(i[r]=l,s=!0)}if(o){let t=on(n),i=c||r;for(let r=0;r<o.length;r++){let s=o[r];n[s]=_o(a,t,s,i[s],e,!f(i,s))}}return s}function _o(e,t,n,r,i,a){let o=e[n];if(o!=null){let e=f(o,`default`);if(e&&r===void 0){let e=o.default;if(o.type!==Function&&!o.skipFactory&&v(e)){let{propsDefaults:a}=i;if(n in a)r=a[n];else{let o=ks(i);r=a[n]=e.call(null,t),o()}}else r=e;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!e?r=!1:o[1]&&(r===``||r===ae(n))&&(r=!0))}return r}var vo=new WeakMap;function yo(e,t,n=!1){let a=n?vo:t.propsCache,o=a.get(e);if(o)return o;let s=e.props,c={},u=[],d=!1;if(!v(e)){let r=e=>{d=!0;let[n,r]=yo(e,t,!0);l(c,n),r&&u.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!d)return x(e)&&a.set(e,i),i;if(p(s))for(let e=0;e<s.length;e++){let t=D(s[e]);bo(t)&&(c[t]=r)}else if(s)for(let e in s){let t=D(e);if(bo(t)){let n=s[e],r=c[t]=p(n)||v(n)?{type:n}:l({},n),i=r.type,a=!1,o=!0;if(p(i))for(let e=0;e<i.length;++e){let t=i[e],n=v(t)&&t.name;if(n===`Boolean`){a=!0;break}else n===`String`&&(o=!1)}else a=v(i)&&i.name===`Boolean`;r[0]=a,r[1]=o,(a||f(r,`default`))&&u.push(t)}}let m=[c,u];return x(e)&&a.set(e,m),m}function bo(e){return e[0]!==`$`&&!te(e)}var xo=e=>e===`_`||e===`_ctx`||e===`$stable`,So=e=>p(e)?e.map(vs):[vs(e)],Co=(e,t,n)=>{if(t._n)return t;let r=N((...e)=>So(t(...e)),n);return r._c=!1,r},wo=(e,t,n)=>{let r=e._ctx;for(let n in e){if(xo(n))continue;let i=e[n];if(v(i))t[n]=Co(n,i,r);else if(i!=null){let e=So(i);t[n]=()=>e}}},To=(e,t)=>{let n=So(t);e.slots.default=()=>n},Eo=(e,t,n)=>{for(let r in t)(n||!xo(r))&&(e[r]=t[r])},Do=(e,t,n)=>{let r=e.slots=fo();if(e.vnode.shapeFlag&32){let e=t._;e?(Eo(r,t,n),n&&le(r,`_`,e,!0)):wo(t,r)}else t&&To(e,t)},Oo=(e,t,n)=>{let{vnode:i,slots:a}=e,o=!0,s=r;if(i.shapeFlag&32){let e=t._;e?n&&e===1?o=!1:Eo(a,t,n):(o=!t.$stable,wo(t,a)),s=t}else t&&(To(e,t),s={default:1});if(o)for(let e in a)!xo(e)&&s[e]==null&&delete a[e]},ko=Zo;function Ao(e){return Mo(e)}function jo(e){return Mo(e,vi)}function Mo(e,t){let n=pe();n.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=a,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!us(e,t)&&(r=k(e),he(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case es:y(e,t,n,r);break;case ts:b(e,t,n,r);break;case ns:e??x(t,n,r,o);break;case R:ie(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?ae(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,Se)}u!=null&&i?ui(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&ui(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)T(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ne(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},T=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&E(e.children,d,null,r,i,No(e,a),s,u),_&&vr(e,null,r,`created`),ee(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!te(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&xs(f,r,e)}_&&vr(e,null,r,`beforeMount`);let v=Fo(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&ko(()=>{try{f&&xs(f,r,e),v&&g.enter(d),_&&vr(e,null,r,`mounted`)}finally{}},i)},ee=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t<r.length;t++)g(e,r[t]);if(i){let n=i.subTree;if(t===n||Vo(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;ee(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},E=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++)v(null,e[l]=s?ys(e[l]):vs(e[l]),t,n,r,i,a,o,s)},ne=(e,t,n,i,a,o,s)=>{let l=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=t;u|=e.patchFlag&16;let m=e.props||r,h=t.props||r,g;if(n&&Po(n,!1),(g=h.onVnodeBeforeUpdate)&&xs(g,n,t,e),f&&vr(t,e,n,`beforeUpdate`),n&&Po(n,!0),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?re(e.dynamicChildren,d,l,n,i,No(t,a),o):s||ue(e,t,l,null,n,i,No(t,a),o,!1),u>0){if(u&16)D(l,m,h,n,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let r=e[t],i=m[r],o=h[r];(o!==i||r===`value`)&&c(l,r,i,o,a,n)}}u&1&&e.children!==t.children&&p(l,t.children)}else !s&&d==null&&D(l,m,h,n,a);((g=h.onVnodeUpdated)||f)&&ko(()=>{g&&xs(g,n,t,e),f&&vr(t,e,n,`updated`)},i)},re=(e,t,n,r,i,a,o)=>{for(let s=0;s<t.length;s++){let c=e[s],l=t[s];v(c,l,c.el&&(c.type===R||!us(c,l)||c.shapeFlag&198)?m(c.el):n,null,r,i,a,o,!0)}},D=(e,t,n,i,a)=>{if(t!==n){if(t!==r)for(let r in t)!te(r)&&!(r in n)&&c(e,r,t[r],null,a,i);for(let r in n){if(te(r))continue;let o=n[r],s=t[r];o!==s&&r!==`value`&&c(e,r,s,o,a,i)}`value`in n&&c(e,`value`,t.value,n.value,a)}},ie=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),E(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(re(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&Io(e,t,!0)):ue(e,t,n,f,i,a,s,c,l)},ae=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):oe(t,n,r,i,a,o,c):se(e,t,c)},oe=(e,t,n,r,i,a,o)=>{let s=e.component=ws(e,r,i);if(Ni(e)&&(s.ctx.renderer=Se),Ns(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,O,o),!e.el){let r=s.subTree=U(ts);b(null,r,t,n),e.placeholder=r.el}}else O(s,e,t,n,i,a,o)},se=(e,t,n)=>{let r=t.component=e.component;if(oo(e,t,n))if(r.asyncDep&&!r.asyncResolved){le(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},O=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=Ro(e);if(n){t&&(t.el=c.el,le(e,t,o)),n.asyncDep.then(()=>{ko(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;Po(e,!1),t?(t.el=c.el,le(e,t,o)):t=c,n&&ce(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&xs(d,s,t,c),Po(e,!0);let f=no(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),k(p),e,i,a),t.el=f.el,u===null&&lo(e,f.el),r&&ko(r,i),(d=t.props&&t.props.onVnodeUpdated)&&ko(()=>xs(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=Ai(t);if(Po(e,!1),l&&ce(l),!m&&(o=c&&c.onVnodeBeforeMount)&&xs(o,d,t),Po(e,!0),s&&we){let t=()=>{e.subTree=no(e),we(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=no(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&ko(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;ko(()=>xs(o,d,e),i)}(t.shapeFlag&256||d&&Ai(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&ko(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Re(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>tr(u),Po(e,!0),l()},le=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,ho(e,t.props,r,n),Oo(e,t.children,n),tt(),ir(e),nt()},ue=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){fe(l,d,n,r,i,a,o,s,c);return}else if(f&256){de(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&ye(l,i,a),d!==l&&p(n,d)):u&16?m&16?fe(l,d,n,r,i,a,o,s,c):ye(l,i,a,!0):(u&8&&p(n,``),m&16&&E(d,n,r,i,a,o,s,c))},de=(e,t,n,r,a,o,s,c,l)=>{e||=i,t||=i;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;p<f;p++){let r=t[p]=l?ys(t[p]):vs(t[p]);v(e[p],r,n,null,a,o,s,c,l)}u>d?ye(e,a,o,!0,!1,f):E(t,n,r,a,o,s,c,l,f)},fe=(e,t,n,r,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let r=e[u],i=t[u]=l?ys(t[u]):vs(t[u]);if(us(r,i))v(r,i,n,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let r=e[f],i=t[p]=l?ys(t[p]):vs(t[p]);if(us(r,i))v(r,i,n,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,i=e<d?t[e].el:r;for(;u<=p;)v(null,t[u]=l?ys(t[u]):vs(t[u]),n,i,a,o,s,c,l),u++}}else if(u>p)for(;u<=f;)he(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?ys(t[u]):vs(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u<b;u++)C[u]=0;for(u=m;u<=f;u++){let r=e[u];if(y>=b){he(r,a,o,!0);continue}let i;if(r.key!=null)i=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&us(r,t[_])){i=_;break}i===void 0?he(r,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(r,t[i],n,null,a,o,s,c,l),y++)}let w=x?Lo(C):i;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,i=t[e],f=t[e+1],p=e+1<d?f.el||Bo(f):r;C[u]===0?v(null,i,n,p,a,o,s,c,l):x&&(_<0||u!==w[_]?me(i,n,p,2):_--)}}},me=(e,t,n,r,i=null)=>{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){me(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,Se);return}if(c===R){o(a,t,n);for(let e=0;e<u.length;e++)me(u[e],t,n,r);o(e.anchor,t,n);return}if(c===ns){S(e,t,n);return}if(r!==2&&d&1&&l)if(r===0)l.persisted&&!a[Wr]?o(a,t,n):(l.beforeEnter(a),o(a,t,n),ko(()=>l.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[Wr];a._isLeaving&&a[Wr](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},he=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(tt(),ui(s,null,n,e,!0),nt()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Ai(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&xs(_,t,e),u&6)ve(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&vr(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,Se,r):l&&!l.hasOnce&&(a!==R||d>0&&d&64)?ye(l,t,n,!1,!0):(a===R&&d&384||!i&&u&16)&&ye(c,t,n),r&&ge(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&ko(()=>{_&&xs(_,t,e),h&&vr(e,null,t,`unmounted`),v&&(e.el=null)},n)},ge=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===R){_e(n,r);return}if(t===ns){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},_e=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},ve=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;zo(c),zo(l),r&&ce(r),i.stop(),a&&(a.flags|=8,he(o,e,t,n)),s&&ko(s,t),ko(()=>{e.isUnmounted=!0},t)},ye=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)he(e[o],t,n,r,i)},k=e=>{if(e.shapeFlag&6)return k(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[jr];return n?h(n):t},be=!1,xe=(e,t,n)=>{let r;e==null?t._vnode&&(he(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,be||=(be=!0,ir(r),ar(),!1)},Se={p:v,um:he,m:me,r:ge,mt:oe,mc:E,pc:ue,pbc:re,n:k,o:e},Ce,we;return t&&([Ce,we]=t(Se)),{render:xe,hydrate:Ce,createApp:Ja(xe,Ce)}}function No({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Po({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Fo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Io(e,t,n=!1){let r=e.children,i=t.children;if(p(r)&&p(i))for(let e=0;e<r.length;e++){let t=r[e],a=i[e];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[e]=ys(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&Io(t,a)),a.type===es&&(a.patchFlag===-1&&(a=i[e]=ys(a)),a.el=t.el),a.type===ts&&!a.el&&(a.el=t.el)}}function Lo(e){let t=e.slice(),n=[0],r,i,a,o,s,c=e.length;for(r=0;r<c;r++){let c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)s=a+o>>1,e[n[s]]<c?a=s+1:o=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-- >0;)n[a]=o,o=t[o];return n}function Ro(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ro(t)}function zo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Bo(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?Bo(t.subTree):null}var Vo=e=>e.__isSuspense,Ho=0,Uo={name:`Suspense`,__isSuspense:!0,process(e,t,n,r,i,a,o,s,c,l){if(e==null)Go(t,n,r,i,a,o,s,c,l);else{if(a&&a.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Ko(e,t,n,r,i,o,s,c,l)}},hydrate:Jo,normalize:Yo};function Wo(e,t){let n=e.props&&e.props[t];v(n)&&n()}function Go(e,t,n,r,i,a,o,s,c){let{p:l,o:{createElement:u}}=c,d=u(`div`),f=e.suspense=qo(e,i,r,t,d,n,a,o,s,c);l(null,f.pendingBranch=e.ssContent,d,null,r,f,a,o),f.deps>0?(Wo(e,`onPending`),Wo(e,`onFallback`),l(null,e.ssFallback,t,n,r,null,a,o),Qo(f,e.ssFallback)):f.resolve(!1,!0)}function Ko(e,t,n,r,i,a,o,s,{p:c,um:l,o:{createElement:u}}){let d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;let f=t.ssContent,p=t.ssFallback,{activeBranch:m,pendingBranch:h,isInFallback:g,isHydrating:_}=d;if(h)d.pendingBranch=f,us(h,f)?(c(h,f,d.hiddenContainer,null,i,d,a,o,s),d.deps<=0?d.resolve():g&&(_||(c(m,p,n,r,i,null,a,o,s),Qo(d,p)))):(d.pendingId=Ho++,_?(d.isHydrating=!1,d.activeBranch=h):l(h,i,d),d.deps=0,d.effects.length=0,d.hiddenContainer=u(`div`),g?(c(null,f,d.hiddenContainer,null,i,d,a,o,s),d.deps<=0?d.resolve():(c(m,p,n,r,i,null,a,o,s),Qo(d,p))):m&&us(m,f)?(c(m,f,n,r,i,d,a,o,s),d.resolve(!0)):(c(null,f,d.hiddenContainer,null,i,d,a,o,s),d.deps<=0&&d.resolve()));else if(m&&us(m,f))c(m,f,n,r,i,d,a,o,s),Qo(d,f);else if(Wo(t,`onPending`),d.pendingBranch=f,f.shapeFlag&512?d.pendingId=f.component.suspenseId:d.pendingId=Ho++,c(null,f,d.hiddenContainer,null,i,d,a,o,s),d.deps<=0)d.resolve();else{let{timeout:e,pendingId:t}=d;e>0?setTimeout(()=>{d.pendingId===t&&d.fallback(p)},e):e===0&&d.fallback(p)}}function qo(e,t,n,r,i,a,o,s,c,l,u=!1){let{p:d,m:f,um:p,n:m,o:{parentNode:h,remove:g}}=l,_,v=$o(e);v&&t&&t.pendingBranch&&(_=t.pendingId,t.deps++);let y=e.props?de(e.props.timeout):void 0,b=a,x={vnode:e,parent:t,parentComponent:n,namespace:o,container:r,hiddenContainer:i,deps:0,pendingId:Ho++,timeout:typeof y==`number`?y:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:o,pendingId:s,effects:c,parentComponent:l,container:u,isInFallback:d}=x,g=!1;if(x.isHydrating)x.isHydrating=!1;else if(!e){g=i&&o.transition&&o.transition.mode===`out-in`;let e=!1;g&&(i.transition.afterLeave=()=>{s===x.pendingId&&(f(o,u,a===b&&!e?m(i):a,0),rr(c),d&&r.ssFallback&&(r.ssFallback.el=null))}),i&&!x.isFallbackMountPending&&(h(i.el)===u&&(a=m(i),e=!0),p(i,l,x,!0),!g&&d&&r.ssFallback&&ko(()=>r.ssFallback.el=null,x)),g||f(o,u,a,0)}x.isFallbackMountPending=!1,Qo(x,o),x.pendingBranch=null,x.isInFallback=!1;let y=x.parent,S=!1;for(;y;){if(y.pendingBranch){y.effects.push(...c),S=!0;break}y=y.parent}!S&&!g&&rr(c),x.effects=[],v&&t&&t.pendingBranch&&_===t.pendingId&&(t.deps--,t.deps===0&&!n&&t.resolve()),Wo(r,`onResolve`)},fallback(e){if(!x.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:a}=x;Wo(t,`onFallback`);let o=m(n),l=()=>{x.isFallbackMountPending=!1,x.isInFallback&&(d(null,e,i,o,r,null,a,s,c),Qo(x,e))},u=e.transition&&e.transition.mode===`out-in`;u&&(x.isFallbackMountPending=!0,n.transition.afterLeave=l),x.isInFallback=!0,p(n,r,null,!0),u||l()},move(e,t,n){x.activeBranch&&f(x.activeBranch,e,t,n),x.container=e},next(){return x.activeBranch&&m(x.activeBranch)},registerDep(e,t,n){let r=!!x.pendingBranch;r&&x.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{Wn(t,e,0)}).then(a=>{if(e.isUnmounted||x.isUnmounted||x.pendingId!==e.suspenseId)return;As(),e.asyncResolved=!0;let{vnode:s}=e;Fs(e,a,!1),i&&(s.el=i);let c=!i&&e.subTree.el;t(e,s,h(i||e.subTree.el),i?null:m(e.subTree),x,o,n),c&&(s.placeholder=null,g(c)),lo(e,s.el),r&&--x.deps===0&&x.resolve()})},unmount(e,t){x.isUnmounted=!0,x.activeBranch&&p(x.activeBranch,n,e,t),x.pendingBranch&&p(x.pendingBranch,n,e,t)}};return x}function Jo(e,t,n,r,i,a,o,s,c){let l=t.suspense=qo(t,r,n,e.parentNode,document.createElement(`div`),null,i,a,o,s,!0),u=c(e,l.pendingBranch=t.ssContent,n,l,a,o);return l.deps===0&&l.resolve(!1,!0),u}function Yo(e){let{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=Xo(r?n.default:n),e.ssFallback=r?Xo(n.fallback):U(ts)}function Xo(e){let t;if(v(e)){let n=os&&e._c;n&&(e._d=!1,z()),e=e(),n&&(e._d=!0,t=is,as())}return p(e)&&(e=ro(e)),e=vs(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(t=>t!==e)),e}function Zo(e,t){t&&t.pendingBranch?p(e)?t.effects.push(...e):t.effects.push(e):rr(e)}function Qo(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)t=t.component.subTree,i=t.el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,lo(r,i))}function $o(e){let t=e.props&&e.props.suspensible;return t!=null&&t!==!1}var R=Symbol.for(`v-fgt`),es=Symbol.for(`v-txt`),ts=Symbol.for(`v-cmt`),ns=Symbol.for(`v-stc`),rs=[],is=null;function z(e=!1){rs.push(is=e?null:[])}function as(){rs.pop(),is=rs[rs.length-1]||null}var os=1;function ss(e,t=!1){os+=e,e<0&&is&&t&&(is.hasOnce=!0)}function cs(e){return e.dynamicChildren=os>0?is||i:null,as(),os>0&&is&&is.push(e),e}function B(e,t,n,r,i,a){return cs(H(e,t,n,r,i,a,!0))}function V(e,t,n,r,i){return cs(U(e,t,n,r,i,!0))}function ls(e){return e?e.__v_isVNode===!0:!1}function us(e,t){return e.type===t.type&&e.key===t.key}function ds(e){}var fs=({key:e})=>e??null,ps=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:y(e)||un(e)||v(e)?{i:dr,r:e,k:t,f:!!n}:e);function H(e,t=null,n=null,r=0,i=null,a=e===R?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&fs(t),ref:t&&ps(t),scopeId:fr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:dr};return s?(bs(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=y(n)?8:16),os>0&&!o&&is&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&is.push(c),c}var U=ms;function ms(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===ra)&&(e=ts),ls(e)){let r=gs(e,t,!0);return n&&bs(r,n),os>0&&!a&&is&&(r.shapeFlag&6?is[is.indexOf(e)]=r:is.push(r)),r.patchFlag=-2,r}if(Gs(e)&&(e=e.__vccOpts),t){t=hs(t);let{class:e,style:n}=t;e&&!y(e)&&(t.class=k(e)),x(n)&&(an(n)&&!p(n)&&(n=l({},n)),t.style=he(n))}let o=y(e)?1:Vo(e)?128:Mr(e)?64:x(e)?4:v(e)?2:0;return H(e,t,n,r,i,o,a,!0)}function hs(e){return e?an(e)||po(e)?l({},e):e:null}function gs(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?K(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&fs(l),ref:t&&t.ref?n&&a?p(a)?a.concat(ps(t)):[a,ps(t)]:ps(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==R?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&gs(e.ssContent),ssFallback:e.ssFallback&&gs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&ri(u,c.clone(u)),u}function W(e=` `,t=0){return U(es,null,e,t)}function _s(e,t){let n=U(ns,null,e);return n.staticCount=t,n}function G(e=``,t=!1){return t?(z(),V(ts,null,e)):U(ts,null,e)}function vs(e){return e==null||typeof e==`boolean`?U(ts):p(e)?U(R,null,e.slice()):ls(e)?ys(e):U(es,null,String(e))}function ys(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:gs(e)}function bs(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(p(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),bs(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!po(t)?t._ctx=dr:r===3&&dr&&(dr.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else v(t)?(t={default:t,_ctx:dr},n=32):(t=String(t),r&64?(n=16,t=[W(t)]):n=8);e.children=t,e.shapeFlag|=n}function K(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if(e===`class`)t.class!==r.class&&(t.class=k([t.class,r.class]));else if(e===`style`)t.style=he([t.style,r.style]);else if(s(e)){let n=t[e],i=r[e];i&&n!==i&&!(p(n)&&n.includes(i))?t[e]=n?[].concat(n,i):i:i==null&&n==null&&!c(e)&&(t[e]=i)}else e!==``&&(t[e]=r[e])}return t}function xs(e,t,n,r=null){Un(e,t,7,[n,r])}var Ss=Ka(),Cs=0;function ws(e,t,n){let i=e.type,a=(t?t.appContext:e.appContext)||Ss,o={uid:Cs++,vnode:e,type:i,parent:t,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Me(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(a.provides),ids:t?t.ids:[``,0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:yo(i,a),emitsOptions:eo(i,a),emit:null,emitted:null,propsDefaults:r,inheritAttrs:i.inheritAttrs,ctx:r,data:r,props:r,attrs:r,slots:r,refs:r,setupState:r,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Qa.bind(null,o),e.ce&&e.ce(o),o}var Ts=null,Es=()=>Ts||dr,Ds,Os;{let e=pe(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Ds=t(`__VUE_INSTANCE_SETTERS__`,e=>Ts=e),Os=t(`__VUE_SSR_SETTERS__`,e=>Ms=e)}var ks=e=>{let t=Ts;return Ds(e),e.scope.on(),()=>{e.scope.off(),Ds(t)}},As=()=>{Ts&&Ts.scope.off(),Ds(null)};function js(e){return e.vnode.shapeFlag&4}var Ms=!1;function Ns(e,t=!1,n=!1){t&&Os(t);let{props:r,children:i}=e.vnode,a=js(e);mo(e,r,a,t),Do(e,i,n||t);let o=a?Ps(e,t):void 0;return t&&Os(!1),o}function Ps(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ma);let{setup:r}=n;if(r){tt();let n=e.setupContext=r.length>1?Hs(e):null,i=ks(e),a=Hn(r,e,0,[e.props,n]),o=S(a);if(nt(),i(),(o||e.sp)&&!Ai(e)&&oi(e),o){if(a.then(As,As),t)return a.then(n=>{Fs(e,n,t)}).catch(t=>{Wn(t,e,0)});e.asyncDep=a}else Fs(e,a,t)}else Bs(e,t)}function Fs(e,t,n){v(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:x(t)&&(e.setupState=_n(t)),Bs(e,n)}var Is,Ls;function Rs(e){Is=e,Ls=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,ha))}}var zs=()=>!Is;function Bs(e,t,n){let r=e.type;if(!e.render){if(!t&&Is&&!r.render){let t=r.template||Ia(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:o}=r,s=l(l({isCustomElement:n,delimiters:a},i),o);r.render=Is(t,s)}}e.render=r.render||a,Ls&&Ls(e)}{let t=ks(e);tt();try{Ma(e)}finally{nt(),t()}}}var Vs={get(e,t){return ft(e,`get`,``),e[t]}};function Hs(e){return{attrs:new Proxy(e.attrs,Vs),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Us(e){return e.exposed?e.exposeProxy||=new Proxy(_n(sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in fa)return fa[n](e)},has(e,t){return t in e||t in fa}}):e.proxy}function Ws(e,t=!0){return v(e)?e.displayName||e.name:e.name||t&&e.__name}function Gs(e){return v(e)&&`__vccOpts`in e}var q=(e,t)=>En(e,t,Ms);function Ks(e,t,n){try{ss(-1);let r=arguments.length;return r===2?x(t)&&!p(t)?ls(t)?U(e,null,[t]):U(e,t):U(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ls(n)&&(n=[n]),U(e,t,n))}finally{ss(1)}}function qs(){return;function e(t,n,r){let i=t[r];if(p(i)&&i.includes(n)||x(i)&&n in i||t.extends&&e(t.extends,n,r)||t.mixins&&t.mixins.some(t=>e(t,n,r)))return!0}}function Js(e,t,n,r){let i=n[r];if(i&&Ys(i,e))return i;let a=t();return a.memo=e.slice(),a.cacheIndex=r,n[r]=a}function Ys(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if(O(n[e],t[e]))return!1;return os>0&&is&&is.push(e),!0}var Xs=`3.5.35`,Zs=a,Qs=Vn,$s=cr,ec=ur,tc={createComponentInstance:ws,setupComponent:Ns,renderComponentRoot:no,setCurrentRenderingInstance:pr,isVNode:ls,normalizeVNode:vs,getComponentPublicInstance:Us,ensureValidVNode:la,pushWarningContext:Ln,popWarningContext:Rn},nc=void 0,rc=typeof window<`u`&&window.trustedTypes;if(rc)try{nc=rc.createPolicy(`vue`,{createHTML:e=>e})}catch{}var ic=nc?e=>nc.createHTML(e):e=>e,ac=`http://www.w3.org/2000/svg`,oc=`http://www.w3.org/1998/Math/MathML`,sc=typeof document<`u`?document:null,cc=sc&&sc.createElement(`template`),lc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?sc.createElementNS(ac,e):t===`mathml`?sc.createElementNS(oc,e):n?sc.createElement(e,{is:n}):sc.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>sc.createTextNode(e),createComment:e=>sc.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>sc.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{cc.innerHTML=ic(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=cc.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},uc=`transition`,dc=`animation`,fc=Symbol(`_vtc`),pc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},mc=l({},Jr,pc),hc=(e=>(e.displayName=`Transition`,e.props=mc,e))((e,{slots:t})=>Ks(Qr,vc(e),t)),gc=(e,t=[])=>{p(e)?e.forEach(e=>e(...t)):e&&e(...t)},_c=e=>e?p(e)?e.some(e=>e.length>1):e.length>1:!1;function vc(e){let t={};for(let n in e)n in pc||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:u=o,appearToClass:d=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,h=yc(i),g=h&&h[0],_=h&&h[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=v,onAppear:w=y,onAppearCancelled:T=b}=t,ee=(e,t,n,r)=>{e._enterCancelled=r,Sc(e,t?d:s),Sc(e,t?u:o),n&&n()},E=(e,t)=>{e._isLeaving=!1,Sc(e,f),Sc(e,m),Sc(e,p),t&&t()},te=e=>(t,n)=>{let i=e?w:y,o=()=>ee(t,e,n);gc(i,[t,o]),Cc(()=>{Sc(t,e?c:a),xc(t,e?d:s),_c(i)||Tc(t,r,g,o)})};return l(t,{onBeforeEnter(e){gc(v,[e]),xc(e,a),xc(e,o)},onBeforeAppear(e){gc(C,[e]),xc(e,c),xc(e,u)},onEnter:te(!1),onAppear:te(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>E(e,t);xc(e,f),e._enterCancelled?(xc(e,p),kc(e)):(kc(e),xc(e,p)),Cc(()=>{e._isLeaving&&(Sc(e,f),xc(e,m),_c(x)||Tc(e,r,_,n))}),gc(x,[e,n])},onEnterCancelled(e){ee(e,!1,void 0,!0),gc(b,[e])},onAppearCancelled(e){ee(e,!0,void 0,!0),gc(T,[e])},onLeaveCancelled(e){E(e),gc(S,[e])}})}function yc(e){if(e==null)return null;if(x(e))return[bc(e.enter),bc(e.leave)];{let t=bc(e);return[t,t]}}function bc(e){return de(e)}function xc(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[fc]||(e[fc]=new Set)).add(t)}function Sc(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[fc];n&&(n.delete(t),n.size||(e[fc]=void 0))}function Cc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var wc=0;function Tc(e,t,n,r){let i=e._endId=++wc,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Ec(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u<c&&d()},s+1),e.addEventListener(l,f)}function Ec(e,t){let n=window.getComputedStyle(e),r=e=>(n[e]||``).split(`, `),i=r(`${uc}Delay`),a=r(`${uc}Duration`),o=Dc(i,a),s=r(`${dc}Delay`),c=r(`${dc}Duration`),l=Dc(s,c),u=null,d=0,f=0;t===uc?o>0&&(u=uc,d=o,f=a.length):t===dc?l>0&&(u=dc,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?uc:dc:null,f=u?u===uc?a.length:c.length:0);let p=u===uc&&/\b(?:transform|all)(?:,|$)/.test(r(`${uc}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Dc(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>Oc(t)+Oc(e[n])))}function Oc(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function kc(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ac(e,t,n){let r=e[fc];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var jc=Symbol(`_vod`),Mc=Symbol(`_vsh`),Nc={name:`show`,beforeMount(e,{value:t},{transition:n}){e[jc]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Pc(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Pc(e,!0),r.enter(e)):r.leave(e,()=>{Pc(e,!1)}):Pc(e,t))},beforeUnmount(e,{value:t}){Pc(e,t)}};function Pc(e,t){e.style.display=t?e[jc]:`none`,e[Mc]=!t}function Fc(){Nc.getSSRProps=({value:e})=>{if(!e)return{style:{display:`none`}}}}var Ic=Symbol(``);function Lc(e){let t=Es();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>zc(e,n))},r=()=>{let r=e(t.proxy);t.ce?zc(t.ce,r):Rc(t.subTree,r),n(r)};Ki(()=>{rr(r)}),Gi(()=>{P(r,a,{flush:`post`});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),Yi(()=>e.disconnect())})}function Rc(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Rc(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)zc(e.el,t);else if(e.type===R)e.children.forEach(e=>Rc(e,t));else if(e.type===ns){let{el:n,anchor:r}=e;for(;n&&(zc(n,t),n!==r);)n=n.nextSibling}}function zc(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=Ae(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[Ic]=r}}var Bc=/(?:^|;)\s*display\s*:/;function Vc(e,t,n){let r=e.style,i=y(n),a=!1;if(n&&!i){if(t)if(y(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Uc(r,t,``)}else for(let e in t)n[e]??Uc(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Uc(r,i,``):qc(e,i,!y(t)&&t?t[i]:void 0,o)||Uc(r,i,o)}}else if(i){if(t!==n){let e=r[Ic];e&&(n+=`;`+e),r.cssText=n,a=Bc.test(n)}}else t&&e.removeAttribute(`style`);jc in e&&(e[jc]=a?r.display:``,e[Mc]&&(r.display=`none`))}var Hc=/\s*!important$/;function Uc(e,t,n){if(p(n))n.forEach(n=>Uc(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Kc(e,t);Hc.test(n)?e.setProperty(ae(r),n.replace(Hc,``),`important`):e[r]=n}}var Wc=[`Webkit`,`Moz`,`ms`],Gc={};function Kc(e,t){let n=Gc[t];if(n)return n;let r=D(t);if(r!==`filter`&&r in e)return Gc[t]=r;r=oe(r);for(let n=0;n<Wc.length;n++){let i=Wc[n]+r;if(i in e)return Gc[t]=i}return t}function qc(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&y(r)&&n===r}var Jc=`http://www.w3.org/1999/xlink`;function Yc(e,t,n,r,i,a=Se(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(Jc,t.slice(6,t.length)):e.setAttributeNS(Jc,t,n):n==null||a&&!Ce(n)?e.removeAttribute(t):e.setAttribute(t,a?``:b(n)?String(n):n)}function Xc(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?ic(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=Ce(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function Zc(e,t,n,r){e.addEventListener(t,n,r)}function Qc(e,t,n,r){e.removeEventListener(t,n,r)}var $c=Symbol(`_vei`);function el(e,t,n,r,i=null){let a=e[$c]||(e[$c]={}),o=a[t];if(r&&o)o.value=r;else{let[n,s]=nl(t);r?Zc(e,n,a[t]=ol(r,i),s):o&&(Qc(e,n,o,s),a[t]=void 0)}}var tl=/(?:Once|Passive|Capture)$/;function nl(e){let t;if(tl.test(e)){t={};let n;for(;n=e.match(tl);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===`:`?e.slice(3):ae(e.slice(2)),t]}var rl=0,il=Promise.resolve(),al=()=>rl||=(il.then(()=>rl=0),Date.now());function ol(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(p(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&Un(e,t,5,a)}}else Un(r,t,5,[e])};return n.value=e,n.attached=al(),n}var sl=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,cl=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ac(e,r,o):t===`style`?Vc(e,n,r):s(t)?c(t)||el(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):ll(e,t,r,o))?(Xc(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Yc(e,t,r,o,a,t!==`value`)):e._isVueCE&&(ul(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!y(r)))?Xc(e,D(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Yc(e,t,r,o))};function ll(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&sl(t)&&v(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return sl(t)&&y(n)?!1:t in e}function ul(e,t){let n=e._def.props;if(!n)return!1;let r=D(t);return Array.isArray(n)?n.some(e=>D(e)===r):Object.keys(n).some(e=>D(e)===r)}var dl={};function fl(e,t,n){let r=F(e,t);ee(r)&&(r=l({},r,t));class i extends hl{constructor(e){super(r,e,n)}}return i.def=r,i}var pl=((e,t)=>fl(e,t,au)),ml=typeof HTMLElement<`u`?HTMLElement:class{},hl=class e extends ml{constructor(e,t={},n=iu){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==iu?this._root=this.shadowRoot:e.shadowRoot===!1?this._root=this:(this.attachShadow(l({},e.shadowRootOptions,{mode:`open`})),this._root=this.shadowRoot)}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t&&=t.assignedSlot||t.parentNode||t.host;)if(t instanceof e){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,$n(()=>{this._connected||(this._ob&&=(this._ob.disconnect(),null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&=(this._teleportTargets.clear(),void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{this._resolved=!0,this._pendingResolve=void 0;let{props:n,styles:r}=e,i;if(n&&!p(n))for(let e in n){let t=n[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=de(this._props[e])),(i||=Object.create(null))[D(e)]=!0)}this._numberProps=i,this._resolveProps(e),this.shadowRoot&&this._applyStyles(r),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)f(this,e)||Object.defineProperty(this,e,{get:()=>M(t[e])})}_resolveProps(e){let{props:t}=e,n=p(t)?t:Object.keys(t||{});for(let e of Object.keys(this))e[0]!==`_`&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(D))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith(`data-v-`))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):dl,r=D(e);t&&this._numberProps&&this._numberProps[r]&&(n=de(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===dl?delete this._props[e]:(this._props[e]=t,e===`key`&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),t===!0?this.setAttribute(ae(e),``):typeof t==`string`||typeof t==`number`?this.setAttribute(ae(e),t+``):t||this.removeAttribute(ae(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),nu(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=U(this._def,l(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,ee(t[0])?l({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),ae(e)!==e&&t(ae(e),n)},this._setParent()}),t}_applyStyles(e,t,n){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let r=this._nonce,i=this.shadowRoot,a=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),o=null;for(let s=e.length-1;s>=0;s--){let c=document.createElement(`style`);r&&c.setAttribute(`nonce`,r),c.textContent=e[s],i.insertBefore(c,o||a),o=c,s===0&&(n||this._styleAnchors.set(this._def,c),t&&this._styleAnchors.set(t,c))}}_getStyleAnchor(e){if(!e)return null;let t=this._styleAnchors.get(e);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(e),null)}_getRootStyleInsertionAnchor(e){for(let t=0;t<e.childNodes.length;t++){let n=e.childNodes[t];if(!(n instanceof HTMLStyleElement))return n}return null}_parseSlots(){let e=this._slots={},t;for(;t=this.firstChild;){let n=t.nodeType===1&&t.getAttribute(`slot`)||`default`;(e[n]||(e[n]=[])).push(t),this.removeChild(t)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let r=e[n],i=r.getAttribute(`name`)||`default`,a=this._slots[i],o=r.parentNode;if(a)for(let e of a){if(t&&e.nodeType===1){let n=t+`-s`,r=document.createTreeWalker(e,1);e.setAttribute(n,``);let i;for(;i=r.nextNode();)i.setAttribute(n,``)}o.insertBefore(e,r)}else for(;r.firstChild;)o.insertBefore(r.firstChild,r);o.removeChild(r)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll(`slot`);for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e,t){this._applyStyles(e.styles,e,t)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(e){}};function gl(e){let t=Es();return t&&t.ce||null}function _l(){let e=gl();return e&&e.shadowRoot}function vl(e=`$style`){{let t=Es();if(!t)return r;let n=t.type.__cssModules;return n&&n[e]||r}}var yl=new WeakMap,bl=new WeakMap,xl=Symbol(`_moveCb`),Sl=Symbol(`_enterCb`),Cl=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:l({},mc,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=Es(),r=Kr(),i,a;return qi(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!Ol(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(wl),i.forEach(Tl);let r=i.filter(El);kc(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;xc(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[xl]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[xl]=null,Sc(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let o=on(e),s=vc(o),c=o.tag||R;if(i=[],a)for(let e=0;e<a.length;e++){let t=a[e];t.el&&t.el instanceof Element&&(i.push(t),ri(t,ei(t,s,r,n)),yl.set(t,Dl(t.el)))}a=t.default?ii(t.default()):[];for(let e=0;e<a.length;e++){let t=a[e];t.key!=null&&ri(t,ei(t,s,r,n))}return U(c,null,a)}}});function wl(e){let t=e.el;t[xl]&&t[xl](),t[Sl]&&t[Sl]()}function Tl(e){bl.set(e,Dl(e.el))}function El(e){let t=yl.get(e),n=bl.get(e),r=t.left-n.left,i=t.top-n.top;if(r||i){let t=e.el,n=t.style,a=t.getBoundingClientRect(),o=1,s=1;return t.offsetWidth&&(o=a.width/t.offsetWidth),t.offsetHeight&&(s=a.height/t.offsetHeight),(!Number.isFinite(o)||o===0)&&(o=1),(!Number.isFinite(s)||s===0)&&(s=1),Math.abs(o-1)<.01&&(o=1),Math.abs(s-1)<.01&&(s=1),n.transform=n.webkitTransform=`translate(${r/o}px,${i/s}px)`,n.transitionDuration=`0s`,e}}function Dl(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}function Ol(e,t,n){let r=e.cloneNode(),i=e[fc];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=Ec(r);return a.removeChild(r),o}var kl=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return p(t)?e=>ce(t,e):t};function Al(e){e.target.composing=!0}function jl(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var Ml=Symbol(`_assign`);function Nl(e,t,n){return t&&(e=e.trim()),n&&(e=ue(e)),e}var Pl={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[Ml]=kl(i);let a=r||i.props&&i.props.type===`number`;Zc(e,t?`change`:`input`,t=>{t.target.composing||e[Ml](Nl(e.value,n,a))}),(n||a)&&Zc(e,`change`,()=>{e.value=Nl(e.value,n,a)}),t||(Zc(e,`compositionstart`,Al),Zc(e,`compositionend`,jl),Zc(e,`change`,jl))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[Ml]=kl(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?ue(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Fl={deep:!0,created(e,t,n){e[Ml]=kl(n),Zc(e,`change`,()=>{let t=e._modelValue,n=Bl(e),r=e.checked,i=e[Ml];if(p(t)){let e=Ee(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(h(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(Vl(e,r))})},mounted:Il,beforeUpdate(e,t,n){e[Ml]=kl(n),Il(e,t,n)}};function Il(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(p(t))i=Ee(t,r.props.value)>-1;else if(h(t))i=t.has(r.props.value);else{if(t===n)return;i=Te(t,Vl(e,!0))}e.checked!==i&&(e.checked=i)}var Ll={created(e,{value:t},n){e.checked=Te(t,n.props.value),e[Ml]=kl(n),Zc(e,`change`,()=>{e[Ml](Bl(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[Ml]=kl(r),t!==n&&(e.checked=Te(t,r.props.value))}},Rl={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=h(t);Zc(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?ue(Bl(e)):Bl(e));e[Ml](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,$n(()=>{e._assigning=!1})}),e[Ml]=kl(r)},mounted(e,{value:t}){zl(e,t)},beforeUpdate(e,t,n){e[Ml]=kl(n)},updated(e,{value:t}){e._assigning||zl(e,t)}};function zl(e,t){let n=e.multiple,r=p(t);if(!(n&&!r&&!h(t))){for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=Bl(a);if(n)if(r){let e=typeof o;e===`string`||e===`number`?a.selected=t.some(e=>String(e)===String(o)):a.selected=Ee(t,o)>-1}else a.selected=t.has(o);else if(Te(Bl(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Bl(e){return`_value`in e?e._value:e.value}function Vl(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var Hl={created(e,t,n){Wl(e,t,n,null,`created`)},mounted(e,t,n){Wl(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){Wl(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){Wl(e,t,n,r,`updated`)}};function Ul(e,t){switch(e){case`SELECT`:return Rl;case`TEXTAREA`:return Pl;default:switch(t){case`checkbox`:return Fl;case`radio`:return Ll;default:return Pl}}}function Wl(e,t,n,r,i){let a=Ul(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}function Gl(){Pl.getSSRProps=({value:e})=>({value:e}),Ll.getSSRProps=({value:e},t)=>{if(t.props&&Te(t.props.value,e))return{checked:!0}},Fl.getSSRProps=({value:e},t)=>{if(p(e)){if(t.props&&Ee(e,t.props.value)>-1)return{checked:!0}}else if(h(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},Hl.getSSRProps=(e,t)=>{if(typeof t.type!=`string`)return;let n=Ul(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}var Kl=[`ctrl`,`shift`,`alt`,`meta`],ql={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>Kl.some(n=>e[`${n}Key`]&&!t.includes(n))},Jl=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e<t.length;e++){let r=ql[t[e]];if(r&&r(n,t))return}return e(n,...r)}))},Yl={esc:`escape`,space:` `,up:`arrow-up`,left:`arrow-left`,right:`arrow-right`,down:`arrow-down`,delete:`backspace`},Xl=(e,t)=>{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=ae(n.key);if(t.some(e=>e===r||Yl[e]===r))return e(n)}))},Zl=l({patchProp:cl},lc),Ql,$l=!1;function eu(){return Ql||=Ao(Zl)}function tu(){return Ql=$l?Ql:jo(Zl),$l=!0,Ql}var nu=((...e)=>{eu().render(...e)}),ru=((...e)=>{tu().hydrate(...e)}),iu=((...e)=>{let t=eu().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=su(e);if(!r)return;let i=t._component;!v(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,ou(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t}),au=((...e)=>{let t=tu().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=su(e);if(t)return n(t,!0,ou(t))},t});function ou(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function su(e){return y(e)?document.querySelector(e):e}var cu=!1,lu=()=>{cu||(cu=!0,Gl(),Fc())},uu=t({BaseTransition:()=>Qr,BaseTransitionPropsValidators:()=>Jr,Comment:()=>ts,DeprecationTypes:()=>null,EffectScope:()=>Me,ErrorCodes:()=>Bn,ErrorTypeStrings:()=>Qs,Fragment:()=>R,KeepAlive:()=>Pi,ReactiveEffect:()=>Re,Static:()=>ns,Suspense:()=>Uo,Teleport:()=>Vr,Text:()=>es,TrackOpTypes:()=>Dn,Transition:()=>hc,TransitionGroup:()=>Cl,TriggerOpTypes:()=>On,VueElement:()=>hl,assertNumber:()=>zn,callWithAsyncErrorHandling:()=>Un,callWithErrorHandling:()=>Hn,camelize:()=>D,capitalize:()=>oe,cloneVNode:()=>gs,compatUtils:()=>null,compile:()=>du,computed:()=>q,createApp:()=>iu,createBlock:()=>V,createCommentVNode:()=>G,createElementBlock:()=>B,createElementVNode:()=>H,createHydrationRenderer:()=>jo,createPropsRestProxy:()=>ka,createRenderer:()=>Ao,createSSRApp:()=>au,createSlots:()=>ca,createStaticVNode:()=>_s,createTextVNode:()=>W,createVNode:()=>U,customRef:()=>yn,defineAsyncComponent:()=>ji,defineComponent:()=>F,defineCustomElement:()=>fl,defineEmits:()=>_a,defineExpose:()=>va,defineModel:()=>xa,defineOptions:()=>ya,defineProps:()=>ga,defineSSRCustomElement:()=>pl,defineSlots:()=>ba,devtools:()=>$s,effect:()=>Ze,effectScope:()=>Ne,getCurrentInstance:()=>Es,getCurrentScope:()=>Pe,getCurrentWatcher:()=>Mn,getTransitionRawChildren:()=>ii,guardReactiveProps:()=>hs,h:()=>Ks,handleError:()=>Wn,hasInjectionContext:()=>xr,hydrate:()=>ru,hydrateOnIdle:()=>wi,hydrateOnInteraction:()=>Oi,hydrateOnMediaQuery:()=>Di,hydrateOnVisible:()=>Ei,initCustomFormatter:()=>qs,initDirectivesForSSR:()=>lu,inject:()=>br,isMemoSame:()=>Ys,isProxy:()=>an,isReactive:()=>tn,isReadonly:()=>nn,isRef:()=>un,isRuntimeOnly:()=>zs,isShallow:()=>rn,isVNode:()=>ls,markRaw:()=>sn,mergeDefaults:()=>Da,mergeModels:()=>Oa,mergeProps:()=>K,nextTick:()=>$n,nodeOps:()=>lc,normalizeClass:()=>k,normalizeProps:()=>be,normalizeStyle:()=>he,onActivated:()=>Ii,onBeforeMount:()=>Wi,onBeforeUnmount:()=>Ji,onBeforeUpdate:()=>Ki,onDeactivated:()=>Li,onErrorCaptured:()=>$i,onMounted:()=>Gi,onRenderTracked:()=>Qi,onRenderTriggered:()=>Zi,onScopeDispose:()=>Fe,onServerPrefetch:()=>Xi,onUnmounted:()=>Yi,onUpdated:()=>qi,onWatcherCleanup:()=>Nn,openBlock:()=>z,patchProp:()=>cl,popScopeId:()=>hr,provide:()=>yr,proxyRefs:()=>_n,pushScopeId:()=>mr,queuePostFlushCb:()=>rr,reactive:()=>Xt,readonly:()=>Qt,ref:()=>j,registerRuntimeCompiler:()=>Rs,render:()=>nu,renderList:()=>I,renderSlot:()=>L,resolveComponent:()=>na,resolveDirective:()=>aa,resolveDynamicComponent:()=>ia,resolveFilter:()=>null,resolveTransitionHooks:()=>ei,setBlockTracking:()=>ss,setDevtoolsHook:()=>ec,setTransitionHooks:()=>ri,shallowReactive:()=>Zt,shallowReadonly:()=>$t,shallowRef:()=>dn,ssrContextKey:()=>Sr,ssrUtils:()=>tc,stop:()=>Qe,toDisplayString:()=>A,toHandlerKey:()=>se,toHandlers:()=>ua,toRaw:()=>on,toRef:()=>Cn,toRefs:()=>bn,toValue:()=>hn,transformVNodeArgs:()=>ds,triggerRef:()=>mn,unref:()=>M,useAttrs:()=>wa,useCssModule:()=>vl,useCssVars:()=>Lc,useHost:()=>gl,useId:()=>ai,useModel:()=>Xa,useSSRContext:()=>Cr,useShadowRoot:()=>_l,useSlots:()=>Ca,useTemplateRef:()=>si,useTransitionState:()=>Kr,vModelCheckbox:()=>Fl,vModelDynamic:()=>Hl,vModelRadio:()=>Ll,vModelSelect:()=>Rl,vModelText:()=>Pl,vShow:()=>Nc,version:()=>Xs,warn:()=>Zs,watch:()=>P,watchEffect:()=>wr,watchPostEffect:()=>Tr,watchSyncEffect:()=>Er,withAsyncContext:()=>Aa,withCtx:()=>N,withDefaults:()=>Sa,withDirectives:()=>_r,withKeys:()=>Xl,withMemo:()=>Js,withModifiers:()=>Jl,withScopeId:()=>gr}),du=()=>{},fu=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},pu=e=>e===``,mu=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),hu=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),gu=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),_u=e=>{let t=gu(e);return t.charAt(0).toUpperCase()+t.slice(1)},vu={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},yu=({name:e,iconNode:t,absoluteStrokeWidth:n,"absolute-stroke-width":r,strokeWidth:i,"stroke-width":a,size:o=vu.width,color:s=vu.stroke,...c},{slots:l})=>Ks(`svg`,{...vu,...c,width:o,height:o,stroke:s,"stroke-width":pu(n)||pu(r)||n===!0||r===!0?Number(i||a||vu[`stroke-width`])*24/Number(o):i||a||vu[`stroke-width`],class:mu(`lucide`,c.class,...e?[`lucide-${hu(_u(e))}-icon`,`lucide-${hu(e)}`]:[`lucide-icon`]),...!l.default&&!fu(c)&&{"aria-hidden":`true`}},[...t.map(e=>Ks(...e)),...l.default?[l.default()]:[]]),J=(e,t)=>(n,{slots:r,attrs:i})=>Ks(yu,{...i,...n,iconNode:t,name:e},r),bu=J(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),xu=J(`asterisk`,[[`path`,{d:`M12 6v12`,key:`1vza4d`}],[`path`,{d:`M17.196 9 6.804 15`,key:`1ah31z`}],[`path`,{d:`m6.804 9 10.392 6`,key:`1b6pxd`}]]),Su=J(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),Cu=J(`book-text`,[[`path`,{d:`M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20`,key:`k3hazp`}],[`path`,{d:`M8 11h8`,key:`vwpz6n`}],[`path`,{d:`M8 7h6`,key:`1f0q6e`}]]),wu=J(`chart-column`,[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M18 17V9`,key:`2bz60n`}],[`path`,{d:`M13 17V5`,key:`1frdt8`}],[`path`,{d:`M8 17v-3`,key:`17ska0`}]]),Tu=J(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),Eu=J(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Du=J(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),Ou=J(`chevrons-up-down`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),ku=J(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Au=J(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),ju=J(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),Mu=J(`clock-alert`,[[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}],[`path`,{d:`M20 12v5`,key:`12wsvk`}],[`path`,{d:`M20 21h.01`,key:`1p6o6n`}],[`path`,{d:`M21.25 8.2A10 10 0 1 0 16 21.16`,key:`17fp9f`}]]),Nu=J(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),Pu=J(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),Fu=J(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),Iu=J(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),Lu=J(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),Ru=J(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),zu=J(`file-code`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]),Bu=J(`file-down`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}],[`path`,{d:`m9 15 3 3 3-3`,key:`1npd3o`}]]),Vu=J(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),Hu=J(`flag`,[[`path`,{d:`M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528`,key:`1jaruq`}]]),Uu=J(`folder-search`,[[`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`,key:`1bw5m7`}],[`path`,{d:`m21 21-1.9-1.9`,key:`1g2n9r`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}]]),Wu=J(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Gu=J(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),Ku=J(`image-off`,[[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}],[`path`,{d:`M10.41 10.41a2 2 0 1 1-2.83-2.83`,key:`1bzlo9`}],[`line`,{x1:`13.5`,x2:`6`,y1:`13.5`,y2:`21`,key:`1q0aeu`}],[`line`,{x1:`18`,x2:`21`,y1:`12`,y2:`15`,key:`5mozeu`}],[`path`,{d:`M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59`,key:`mmje98`}],[`path`,{d:`M21 15V5a2 2 0 0 0-2-2H9`,key:`43el77`}]]),qu=J(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),Ju=J(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Yu=J(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),Xu=J(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),Zu=J(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Qu=J(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),$u=J(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),ed=J(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),td=J(`octagon-alert`,[[`path`,{d:`M12 16h.01`,key:`1drbdi`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z`,key:`1fd625`}]]),nd=J(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),rd=J(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),id=J(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),ad=J(`ruler`,[[`path`,{d:`M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z`,key:`icamh8`}],[`path`,{d:`m14.5 12.5 2-2`,key:`inckbg`}],[`path`,{d:`m11.5 9.5 2-2`,key:`fmmyf7`}],[`path`,{d:`m8.5 6.5 2-2`,key:`vc6u1g`}],[`path`,{d:`m17.5 15.5 2-2`,key:`wo5hmg`}]]),od=J(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),sd=J(`scan-search`,[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`m16 16-1.9-1.9`,key:`1dq9hf`}]]),cd=J(`scroll-text`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),ld=J(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),ud=J(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),dd=J(`ship`,[[`path`,{d:`M12 10.189V14`,key:`1p8cqu`}],[`path`,{d:`M12 2v3`,key:`qbqxhf`}],[`path`,{d:`M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6`,key:`qpkstq`}],[`path`,{d:`M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76`,key:`7tigtc`}],[`path`,{d:`M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1`,key:`1924j5`}]]),fd=J(`smartphone`,[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]),pd=J(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),md=J(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),hd=J(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),gd=J(`tags`,[[`path`,{d:`M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z`,key:`16rjxf`}],[`path`,{d:`M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193`,key:`178nd4`}],[`circle`,{cx:`10.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`12ikhr`}]]),_d=J(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),vd=J(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),yd=J(`undo-2`,[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]),bd=J(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),xd=J(`wand-sparkles`,[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]]),Sd=J(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Cd=J(`zap`,[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]]);async function wd(e){if(!e.ok)throw Error((await e.json().catch(()=>({}))).error??e.statusText);return e.json()}var Td=()=>fetch(`/api/state`).then(e=>wd(e)),Ed=(e,t,n)=>fetch(`/api/keys`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({key:e,value:t,...n?{plural:n}:{}})}).then(wd),Dd=e=>fetch(`/api/keys/${encodeURIComponent(e)}`,{method:`DELETE`}).then(wd),Od=(e,t)=>fetch(`/api/keys/bulk-clear`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({keys:e,locales:t})}).then(wd),kd=e=>fetch(`/api/keys/bulk-delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({keys:e})}).then(wd),Ad=(e,t,n)=>fetch(`/api/keys/bulk-state`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({keys:e,locales:t,state:n})}).then(wd),jd=(e,t)=>fetch(`/api/keys/bulk-meta`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({keys:e,...t})}).then(wd),Md=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)}).then(wd),Nd=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/values/${encodeURIComponent(t)}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({value:n})}).then(wd),Pd=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/values/${encodeURIComponent(t)}/state`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({state:n})}).then(wd),Fd=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/values/${encodeURIComponent(t)}`,{method:`DELETE`}).then(wd),Id=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/plural/${encodeURIComponent(t)}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({forms:n})}).then(wd),Ld=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/plural`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({arg:t})}).then(wd),Rd=e=>fetch(`/api/keys/${encodeURIComponent(e)}/plural`,{method:`DELETE`}).then(wd),zd=e=>fetch(`/api/translate`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(e=>wd(e));async function*Bd(e,t,n){let r,i={};t?.length&&(i.keys=t),n?.length&&(i.locales=n);try{r=await fetch(`/api/translate/stream`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(i),signal:e})}catch(e){if(e.name===`AbortError`)return;throw e}if(!r.ok||!r.body)throw Error(r.statusText);let a=r.body.getReader(),o=new TextDecoder,s=``,c=`message`;try{for(;;){let e;try{e=await a.read()}catch(e){if(e.name===`AbortError`)return;throw e}if(e.done)break;s+=o.decode(e.value,{stream:!0});let t=s.split(`
4
+ `);s=t.pop()??``;for(let e of t){if(e.startsWith(`event:`)){c=e.slice(6).trim();continue}e.startsWith(`data:`)&&(yield{...JSON.parse(e.slice(5).trim()),type:c},c=`message`)}}}finally{a.cancel().catch(()=>{})}}var Vd=e=>fetch(`/api/context/build`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(e=>wd(e)),Hd=()=>fetch(`/api/scan`,{method:`POST`}).then(e=>wd(e)),Ud=()=>fetch(`/api/scan`).then(e=>wd(e)),Wd=e=>fetch(`/api/scan/usage?key=${encodeURIComponent(e)}`).then(e=>wd(e)),Gd=()=>fetch(`/api/scan/used`).then(e=>wd(e)),Kd=e=>fetch(`/api/config`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(wd),qd=e=>fetch(`/api/dictionary`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({word:e})}).then(wd),Jd=()=>fetch(`/api/glossary`).then(e=>wd(e)),Yd=e=>fetch(`/api/glossary`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(wd),Xd=e=>fetch(`/api/glossary/${encodeURIComponent(e)}`,{method:`DELETE`}).then(wd),Zd=(e,t)=>{let n=new FormData;return n.append(`file`,t),fetch(`/api/keys/${encodeURIComponent(e)}/screenshot`,{method:`POST`,body:n}).then(wd)},Qd=e=>fetch(`/api/keys/${encodeURIComponent(e)}/screenshot`,{method:`DELETE`}).then(wd),$d=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({text:t})}).then(e=>wd(e)),ef=(e,t,n)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes/${encodeURIComponent(t)}`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({text:n})}).then(wd),tf=(e,t)=>fetch(`/api/keys/${encodeURIComponent(e)}/notes/${encodeURIComponent(t)}`,{method:`DELETE`}).then(wd),nf=()=>fetch(`/api/ai-log`).then(e=>wd(e)),rf=()=>fetch(`/api/export/preview`).then(e=>wd(e)),af=()=>fetch(`/api/export`,{method:`POST`}).then(e=>wd(e)),of=()=>fetch(`/api/file`).then(e=>wd(e)),sf=()=>fetch(`/api/files`).then(e=>wd(e)),cf=e=>fetch(`/api/file`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}).then(e=>wd(e)),lf=e=>e.length===0?Promise.resolve({issues:[],spellPending:!1}):fetch(`/api/checks?checks=${e.join(`,`)}`).then(e=>wd(e)),uf=()=>fetch(`/api/import/detect`).then(e=>wd(e)),df=e=>fetch(`/api/import`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}).then(e=>wd(e));function ff(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function pf(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function mf(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var hf=(e,t)=>Math.abs(e-t)<1.01,gf=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},_f,vf=()=>{if(_f!==void 0)return _f;if(typeof navigator>`u`)return _f=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return _f=!0;let e=navigator.maxTouchPoints;return _f=navigator.platform===`MacIntel`&&e!==void 0&&e>0},yf=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},bf=e=>e,xf=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},Sf=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(yf(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(yf(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},Cf={passive:!0},wf=typeof window>`u`?!0:`onscrollend`in window,Tf=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&wf,o=0,s=a?null:gf(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,Cf),a&&r.addEventListener(`scrollend`,u,Cf),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},Ef=(e,t)=>Tf(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),Df=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},Of=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},kf=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:bf,rangeExtractor:xf,onChange:()=>{},measureElement:Df,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=e.start+t;n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=pf(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!vf()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,Cf),e.addEventListener(`touchend`,n,Cf),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(vf()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=pf(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=pf(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{let c=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=this.options.gap,a=e*2,o=this._flatMeasurements;if(!o||o.length<a){let e=new Float64Array(a);o&&l>0&&e.set(o.subarray(0,l*2)),o=e,this._flatMeasurements=o}let s;if(l===0)s=t+n;else{let e=l-1;s=o[e*2]+o[e*2+1]+i}for(let t=l;t<e;t++){let e=r(t),n=c.get(e),a=typeof n==`number`?n:this.options.estimateSize(t);o[t*2]=s,o[t*2+1]=a,s+=a+i}let u=ff(e,o,r);return this.measurementsCache=u,u}let u=this.measurementsCache.slice(0,l),d=Array(a).fill(void 0);for(let e=0;e<l;e++){let t=u[e];t&&(d[t.lane]=e)}for(let i=l;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,l,f=o===`estimate`||c.has(e);if(a!==void 0&&this.options.lanes>1){s=a;let e=d[s],r=e===void 0?void 0:u[e];l=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?u[i-1]:this.getFurthestMeasurement(u,i);l=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,s)}let p=c.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=l+m;u[i]={index:i,start:l,size:m,end:h,key:e,lane:s},d[s]=i}return this.measurementsCache=u,u},{key:!1,debug:()=>this.options.debug}),this.calculateRange=pf(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?jf({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:r===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=pf(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=t-(this.itemSizeCache.get(i)??n);if(o!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,s=a?this.getTotalSize():0,c=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?r<this.getScrollOffset()+this.scrollAdjustments&&this.scrollDirection!==`backward`:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},o,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++,a?this.applyScrollAdjustment(this.getTotalSize()-s):c&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=pf(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return mf(t[Af(0,t.length-1,r?e=>n[e*2]:e=>mf(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){e!==0&&(vf()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&hf(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},Af=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function jf({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:i}){let a=e.length-1,o=i?e=>i[e*2]:t=>e[t].start,s=i?e=>i[e*2]+i[e*2+1]:t=>e[t].end;if(e.length<=r)return{startIndex:0,endIndex:a};let c=Af(0,a,o,n),l=c;if(r===1)for(;l<a&&s(l)<n+t;)l++;else if(r>1){let i=Array(r).fill(0);for(;l<a&&i.some(e=>e<n+t);){let t=e[l];i[t.lane]=t.end,l++}let o=Array(r).fill(n+t);for(;c>=0&&o.some(e=>e>=n);){let t=e[c];o[t.lane]=t.start,c--}c=Math.max(0,c-c%r),l=Math.min(a,l+(r-1-l%r))}return{startIndex:c,endIndex:l}}function Mf(e){let t=new kf(M(e)),n=dn(t),r=t._didMount();return P(()=>M(e).getScrollElement(),e=>{e&&t._willUpdate()},{immediate:!0}),P(()=>M(e),e=>{t.setOptions({...e,onChange:(t,r)=>{var i;mn(n),(i=e.onChange)==null||i.call(e,t,r)}}),t._willUpdate(),mn(n)},{immediate:!0}),Fe(r),n}function Nf(e){return Mf(q(()=>({observeElementRect:Sf,observeElementOffset:Ef,scrollToFn:Of,...M(e)})))}function Pf(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()===``:(n.value??``).trim()===``:!0}function Ff(e,t,n,r){return n===`missing`?r?Pf(t,r):e.config.locales.some(n=>n!==e.config.sourceLocale&&Pf(t,n)):r?t.values[r]?.state===n:Object.values(t.values).some(e=>e.state===n)}function If(e){try{return new RegExp(e,`i`)}catch{return null}}function Lf(e,t,n,r){let i=t.text.trim(),a=i.length>=2&&i.startsWith(`"`)&&i.endsWith(`"`)?i.slice(1,-1).toLowerCase():null,o=a===null&&i.startsWith(`^`)?If(i):null,s=i.toLowerCase();return Object.keys(e.keys).sort().filter(c=>{let l=e.keys[c];if(t.tag&&!(l.tags??[]).includes(t.tag)||t.needsAttention&&(n?.get(c)?.length??0)===0||t.aiContextUnreviewed&&l.contextSource!==`ai`||t.emptySource&&!Pf(l,e.config.sourceLocale)||t.noUsages&&r&&r.has(c)||t.skipTranslate&&!l.skipTranslate)return!1;if(t.plurality?.length){let e=l.plural?`plural`:`single`;if(!t.plurality.includes(e))return!1}if(t.states.length&&!t.states.some(n=>Ff(e,l,n,t.locale)))return!1;if(t.issues.length){let e=(n?.get(c)??[]).filter(e=>!t.locale||e.locale===t.locale),r=new Set(e.map(e=>e.check));if(!t.issues.some(e=>r.has(e)))return!1}if(i){if(a!==null){if(c.toLowerCase()!==a)return!1}else if(i.startsWith(`^`)){if(!o||!o.test(c))return!1}else if(!(c+` `+(l.context??``)+` `+(l.tags??[]).join(` `)+` `+Object.values(l.values).map(e=>e.value).join(` `)).toLowerCase().includes(s))return!1}return!0})}var Rf=[`untranslated`,`placeholder`,`spelling`,`length`,`glossary`],zf=[`untranslated`,`placeholder`,`length`,`glossary`],Bf=[`missing`,`machine`,`needs-review`,`reviewed`],Vf=[`plural`,`single`],Hf={untranslated:`Untranslated`,placeholder:`Placeholder mismatch`,spelling:`Spelling`,length:`Too long`,glossary:`Glossary`},Uf={missing:`Missing`,machine:`Machine`,reviewed:`Reviewed`,"needs-review":`Needs review`},Wf={plural:`Plural`,single:`Single`};function Gf(e){let t=new Map;for(let n of e){let e=t.get(n.key);e?e.push(n):t.set(n.key,[n])}return t}var Kf=[`key-asc`,`key-desc`,`created`,`updated`],qf=[`multilingual`,`bilingual`],Jf={text:``,states:[],issues:[],plurality:[],tag:``,needsAttention:!1,emptySource:!1,aiContextUnreviewed:!1,noUsages:!1,skipTranslate:!1};function Yf(e){let t=e.get(`q`)??``,n=e.get(`tag`)??``,r=(e.get(`states`)??``).split(`,`).map(e=>e.trim()).filter(e=>Bf.includes(e)),i=(e.get(`issues`)??``).split(`,`).map(e=>e.trim()).filter(e=>Rf.includes(e)),a=(e.get(`plurality`)??``).split(`,`).map(e=>e.trim()).filter(e=>Vf.includes(e)),o=e.get(`sort`)??``,s=Kf.includes(o)?o:`key-asc`,c=e.get(`view`)??``,l=qf.includes(c)?c:`multilingual`,u=e.get(`locale`)??``;return{filter:{...Jf,text:t,tag:n,states:r,issues:i,plurality:a,needsAttention:e.get(`attention`)===`1`,emptySource:e.get(`emptySource`)===`1`,aiContextUnreviewed:e.get(`aiContext`)===`1`,noUsages:e.get(`noUsages`)===`1`,skipTranslate:e.get(`skipTranslate`)===`1`},sort:s,view:l,locale:u}}function Xf(e){let t=new URLSearchParams,{filter:n,sort:r,view:i,locale:a}=e;return n.text&&t.set(`q`,n.text),n.tag&&t.set(`tag`,n.tag),n.states.length&&t.set(`states`,n.states.join(`,`)),n.issues.length&&t.set(`issues`,n.issues.join(`,`)),n.plurality.length&&t.set(`plurality`,n.plurality.join(`,`)),n.needsAttention&&t.set(`attention`,`1`),n.emptySource&&t.set(`emptySource`,`1`),n.aiContextUnreviewed&&t.set(`aiContext`,`1`),n.noUsages&&t.set(`noUsages`,`1`),n.skipTranslate&&t.set(`skipTranslate`,`1`),r!==`key-asc`&&t.set(`sort`,r),i!==`multilingual`&&t.set(`view`,i),i===`bilingual`&&a&&t.set(`locale`,a),t}var Zf=[`editor`,`analytics`,`glossary`,`screenshots`,`settings`,`ai-log`,`docs`];function Qf(){let e=location.hash.replace(/^#\/?/,``),t=e.indexOf(`?`),n=t===-1?e:e.slice(0,t),r=t===-1?``:e.slice(t+1);return{route:Zf.includes(n)?n:`editor`,search:r}}var $f=j(Qf().route);window.addEventListener(`hashchange`,()=>{$f.value=Qf().route});function ep(e){location.hash=e}function tp(){return Qt($f)}function np(){return new URLSearchParams(Qf().search)}function rp(e){let t=e.toString(),n=`#${Qf().route}${t?`?${t}`:``}`;history.replaceState(null,``,n)}var ip=j(null);function ap(e){ip.value=e,ep(`editor`)}function op(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=op(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function sp(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=op(e))&&(r&&(r+=` `),r+=t);return r}var cp=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,lp=sp,up=(e,t)=>n=>{if(t?.variants==null)return lp(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=cp(t)||cp(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return lp(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};function dp(e){return typeof e==`string`?`'${e}'`:new fp().serialize(e)}var fp=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function pp(e,t){return e===t||dp(e)===dp(t)}function mp(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function hp(e,t){let n=typeof e==`string`&&!t?`${e}Context`:t,r=Symbol(n);return[t=>{let n=br(r,t);if(n||n===null)return n;throw Error(`Injection \`${r.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(`, `)}`:`\`${e}\``}`)},e=>(yr(r,e),e)]}function gp(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function _p(e,t,n){let r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),r.dispatchEvent(i)}function vp(e){return e==null}function yp(e,t){let n=dn();return wr(()=>{n.value=e()},{...t,flush:t?.flush??`sync`}),Qt(n)}function bp(e,t){return Pe()?(Fe(e,t),!0):!1}function xp(){let e=new Set,t=t=>{e.delete(t)};return{on:n=>{e.add(n);let r=()=>t(n);return bp(r),{off:r}},off:t,trigger:(...t)=>Promise.all(Array.from(e).map(e=>e(...t))),clear:()=>{e.clear()}}}function Sp(e){let t=!1,n,r=Ne(!0);return((...i)=>(t||=(n=r.run(()=>e(...i)),!0),n))}var Cp=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var wp=e=>e!==void 0,Tp=Object.prototype.toString,Ep=e=>Tp.call(e)===`[object Object]`,Dp=Op();function Op(){var e,t;return Cp&&!!(!((e=window)==null||(e=e.navigator)==null)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function kp(e){return Array.isArray(e)?e:[e]}function Ap(e){return e||Es()}function jp(e){if(!Cp)return e;let t=0,n,r,i=()=>{--t,r&&t<=0&&(r.stop(),n=void 0,r=void 0)};return((...a)=>(t+=1,r||(r=Ne(!0),n=r.run(()=>e(...a))),bp(i),n))}function Mp(e){return Xt(un(e)?new Proxy({},{get(t,n,r){return M(Reflect.get(e.value,n,r))},set(t,n,r){return un(e.value[n])&&!un(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}):e)}function Np(e){return Mp(q(e))}function Pp(e,...t){let n=t.flat(),r=n[0];return Np(()=>Object.fromEntries(typeof r==`function`?Object.entries(bn(e)).filter(([e,t])=>!r(hn(t),e)):Object.entries(bn(e)).filter(e=>!n.includes(e[0]))))}function Fp(e,t=1e4){return yn((n,r)=>{let i=hn(e),a,o=()=>setTimeout(()=>{i=hn(e),r()},hn(t));return bp(()=>{clearTimeout(a)}),{get(){return n(),i},set(e){i=e,r(),clearTimeout(a),a=o()}}})}function Ip(e,t){Ap(t)&&Ji(e,t)}function Lp(e,t,n={}){let{immediate:r=!0,immediateCallback:i=!1}=n,a=dn(!1),o;function s(){o&&=(clearTimeout(o),void 0)}function c(){a.value=!1,s()}function l(...n){i&&e(),s(),a.value=!0,o=setTimeout(()=>{a.value=!1,o=void 0,e(...n)},hn(t))}return r&&(a.value=!0,Cp&&l()),bp(c),{isPending:$t(a),start:l,stop:c}}function Rp(e,t,n){return P(e,t,{...n,immediate:!0})}var zp=Cp?window:void 0;Cp&&window.document,Cp&&window.navigator,Cp&&window.location;function Bp(e){let t=hn(e);return t?.$el??t}function Vp(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=q(()=>{let t=kp(hn(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return Rp(()=>[n.value?.map(e=>Bp(e))??[zp].filter(e=>e!=null),kp(hn(n.value?e[1]:e[0])),kp(M(n.value?e[2]:e[1])),hn(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=Ep(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}function Hp(){let e=dn(!1),t=Es();return t&&Gi(()=>{e.value=!0},t),e}function Up(e){let t=Hp();return q(()=>(t.value,!!e()))}function Wp(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Gp(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]==`object`?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);let{target:i=zp,eventName:a=`keydown`,passive:o=!1,dedupe:s=!1}=r,c=Wp(t);return Vp(i,a,e=>{e.repeat&&hn(s)||c(e)&&n(e)},o)}function Kp(e){return JSON.parse(JSON.stringify(e))}function qp(e,t,n={}){let{window:r=zp,...i}=n,a,o=Up(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=P(q(()=>{let t=hn(e);return Array.isArray(t)?t.map(e=>Bp(e)):[Bp(t)]}),e=>{if(s(),o.value&&r){a=new ResizeObserver(t);for(let t of e)t&&a.observe(t,i)}},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return bp(l),{isSupported:o,stop:l}}function Jp(e,t,n,r={}){var i,a;let{clone:o=!1,passive:s=!1,eventName:c,deep:l=!1,defaultValue:u,shouldEmit:d}=r,f=Es(),p=n||f?.emit||(f==null||(i=f.$emit)==null?void 0:i.bind(f))||(f==null||(a=f.proxy)==null||(a=a.$emit)==null?void 0:a.bind(f?.proxy)),m=c;t||=`modelValue`,m||=`update:${t.toString()}`;let h=e=>o?typeof o==`function`?o(e):Kp(e):e,g=()=>wp(e[t])?h(e[t]):u,_=e=>{d?d(e)&&p(m,e):p(m,e)};if(s){let n=j(g()),r=!1;return P(()=>e[t],e=>{r||(r=!0,n.value=h(e),$n(()=>r=!1))}),P(n,n=>{!r&&(n!==e[t]||l)&&_(n)},{deep:l}),n}else return q({get(){return g()},set(e){_(e)}})}function Yp(e){return e?e.flatMap(e=>e.type===R?Yp(e.children):[e]):[]}var Xp=[`INPUT`,`TEXTAREA`];function Zp(e,t,n,r={}){if(!t||r.enableIgnoredElement&&Xp.includes(t.nodeName))return null;let{arrowKeyOptions:i=`both`,attributeName:a=`[data-reka-collection-item]`,itemsArray:o=[],loop:s=!0,dir:c=`ltr`,preventScroll:l=!0,focus:u=!1}=r,[d,f,p,m,h,g]=[e.key===`ArrowRight`,e.key===`ArrowLeft`,e.key===`ArrowUp`,e.key===`ArrowDown`,e.key===`Home`,e.key===`End`],_=p||m,v=d||f;if(!h&&!g&&(!_&&!v||i===`vertical`&&v||i===`horizontal`&&_))return null;let y=n?Array.from(n.querySelectorAll(a)):o;if(!y.length)return null;l&&e.preventDefault();let b=null;return v||_?b=Qp(y,t,{goForward:_?m:c===`ltr`?d:f,loop:s}):h?b=y.at(0)||null:g&&(b=y.at(-1)||null),u&&b?.focus(),b}function Qp(e,t,n,r=e.includes(t)?e.length:e.length+1){if(--r===0)return null;let i=e.indexOf(t),a;if(a=i===-1?n.goForward?0:e.length-1:n.goForward?i+1:i-1,!n.loop&&(a<0||a>=e.length))return null;let o=e[(a+e.length)%e.length];return o?o.hasAttribute(`disabled`)&&o.getAttribute(`disabled`)!==`false`?Qp(e,o,n,r):o:null}var[$p,em]=hp(`ConfigProvider`);function tm(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 nm(e,t,n=`.`,r){if(!tm(t))return nm(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)||(Array.isArray(a)&&Array.isArray(i[t])?i[t]=[...a,...i[t]]:tm(a)&&tm(i[t])?i[t]=nm(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function rm(e){return(...t)=>t.reduce((t,n)=>nm(t,n,``,e),{})}var im=rm(),am=jp(()=>{let e=j(new Map),t=j(),n=q(()=>{for(let t of e.value.values())if(t)return!0;return!1}),r=$p({scrollBody:j(!0)}),i=null,a=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,document.body.style.pointerEvents=``,document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=t.value??``,Dp&&i?.(),t.value=void 0};return P(n,(e,o)=>{if(!Cp)return;if(!e){o&&a();return}t.value===void 0&&(t.value=document.body.style.overflow);let s=window.innerWidth-document.documentElement.clientWidth,c={padding:s,margin:0},l=r.scrollBody?.value?typeof r.scrollBody.value==`object`?im({padding:r.scrollBody.value.padding===!0?s:r.scrollBody.value.padding,margin:r.scrollBody.value.margin===!0?s:r.scrollBody.value.margin},c):c:{padding:0,margin:0};s>0&&(document.body.style.paddingRight=typeof l.padding==`number`?`${l.padding}px`:String(l.padding),document.body.style.marginRight=typeof l.margin==`number`?`${l.margin}px`:String(l.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${s}px`),document.body.style.overflow=`hidden`),Dp&&(i=Vp(document,`touchmove`,e=>cm(e),{passive:!1})),$n(()=>{n.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),e});function om(e){let t=Math.random().toString(36).substring(2,7),n=am();n.value.set(t,e??!1);let r=q({get:()=>n.value.get(t)??!1,set:e=>n.value.set(t,e)});return Ip(()=>{n.value.delete(t)}),r}function sm(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:sm(t)}}function cm(e){let t=e||window.event,n=t.target;return n instanceof Element&&sm(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function lm(e){let t=$p({dir:j(`ltr`)});return q(()=>e?.value||t.dir?.value||`ltr`)}function um(e){let t=Es(),n=t?.type.emits,r={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(t=>{r[se(D(t))]=(...n)=>e(t,...n)}),r}var dm=0;function fm(){wr(e=>{if(!Cp)return;let t=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,t[0]??pm()),document.body.insertAdjacentElement(`beforeend`,t[1]??pm()),dm++,e(()=>{dm===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),dm--})})}function pm(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}function mm(e){return q(()=>hn(e)?!!Bp(e)?.closest(`form`):!0)}function Y(){let e=Es(),t=j(),n=q(()=>r());qi(()=>{n.value!==r()&&mn(t)});function r(){return t.value&&`$el`in t.value&&[`#text`,`#comment`].includes(t.value.$el.nodeName)?t.value.$el.nextElementSibling:Bp(t)}let i=Object.assign({},e.exposed),a={};for(let t in e.props)Object.defineProperty(a,t,{enumerable:!0,configurable:!0,get:()=>e.props[t]});if(Object.keys(i).length>0)for(let e in i)Object.defineProperty(a,e,{enumerable:!0,configurable:!0,get:()=>i[e]});Object.defineProperty(a,"$el",{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=a;function o(n){if(t.value=n,n&&(Object.defineProperty(a,"$el",{enumerable:!0,configurable:!0,get:()=>n instanceof Element?n:n.$el}),!(n instanceof Element)&&!Object.hasOwn(n,`$el`))){let t=n.$.exposed,r=Object.assign({},a);for(let e in t)Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>t[e]});e.exposed=r}}return{forwardRef:o,currentRef:t,currentElement:n}}function hm(e){let t=Es(),n=Object.keys(t?.type.props??{}).reduce((e,n)=>{let r=(t?.type.props[n]).default;return r!==void 0&&(e[n]=r),e},{}),r=Cn(e);return q(()=>{let e={},i=t?.vnode.props??{};return Object.keys(i).forEach(t=>{e[D(t)]=i[t]}),Object.keys({...n,...e}).reduce((e,t)=>(r.value[t]!==void 0&&(e[t]=r.value[t]),e),{})})}function gm(e,t){let n=hm(e),r=t?um(t):{};return q(()=>({...n.value,...r}))}function _m(e,t){let n=Fp(!1,300);bp(()=>{n.value=!1});let r=j(null),i=xp();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=ym(a,vm(a,i.getBoundingClientRect()),1),s=bm(t.getBoundingClientRect());r.value=Sm([...o,...s]),n.value=!0}return wr(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),wr(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!xm(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function vm(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function ym(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function bm(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function xm(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function Sm(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Cm(t)}function Cm(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var wm=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Tm=new WeakMap,Em=new WeakMap,Dm={},Om=0,km=function(e){return e&&(e.host||km(e.parentNode))},Am=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=km(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},jm=function(e,t,n,r){var i=Am(t,Array.isArray(e)?e:[e]);Dm[n]||(Dm[n]=new WeakMap);var a=Dm[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Tm.get(e)||0)+1,l=(a.get(e)||0)+1;Tm.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Em.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Om++,function(){o.forEach(function(e){var t=Tm.get(e)-1,i=a.get(e)-1;Tm.set(e,t),a.set(e,i),t||(Em.has(e)||e.removeAttribute(r),Em.delete(e)),i||e.removeAttribute(n)}),Om--,Om||(Tm=new WeakMap,Tm=new WeakMap,Em=new WeakMap,Dm={})}},Mm=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||wm(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),jm(r,i,n,`aria-hidden`)):function(){return null}};function Nm(e){let t;P(()=>Bp(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=Mm(e):t&&t()}),Yi(()=>{t&&t()})}var Pm=0;function Fm(e,t=`reka`){if(e)return e;let n;return n=`useId`in uu?ai?.():$p({useId:void 0}).useId?.()??`${++Pm}`,t?`${t}-${n}`:n}function Im(e){let t=j(),n=q(()=>t.value?.width??0),r=q(()=>t.value?.height??0);return Gi(()=>{let n=Bp(e);if(n){t.value={width:n.offsetWidth,height:n.offsetHeight};let e=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let r=e[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=n.offsetWidth,a=n.offsetHeight;t.value={width:i,height:a}});return e.observe(n,{box:`border-box`}),()=>e.unobserve(n)}else t.value=void 0}),{width:n,height:r}}function Lm(e,t){let n=j(e);function r(e){return t[n.value][e]??n.value}return{state:n,dispatch:e=>{n.value=r(e)}}}function Rm(e){let t=Fp(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=gp(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=Bm(n.map(e=>e.textValue),t.value,i?.textValue),o=n.find(e=>e.textValue===a);return o&&o.ref.focus(),o?.ref}},resetTypeahead:()=>{t.value=``}}}function zm(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Bm(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=zm(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Vm(e,t){let n=j({}),r=j(`none`),i=j(e),a=e.value?`mounted`:`unmounted`,o,s=t.value?.ownerDocument.defaultView??zp,{state:c,dispatch:l}=Lm(a,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),u=e=>{if(Cp){let n=new CustomEvent(e,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(n)}};P(e,async(e,i)=>{let a=i!==e;if(await $n(),a){let a=r.value,o=Hm(t.value);e?(l(`MOUNT`),u(`enter`),o===`none`&&u(`after-enter`)):o===`none`||o===`undefined`||n.value?.display===`none`?(l(`UNMOUNT`),u(`leave`),u(`after-leave`)):i&&a!==o?(l(`ANIMATION_OUT`),u(`leave`)):(l(`UNMOUNT`),u(`after-leave`))}},{immediate:!0});let d=e=>{let n=Hm(t.value),r=n.includes(CSS.escape(e.animationName)),a=c.value===`mounted`?`enter`:`leave`;if(e.target===t.value&&r&&(u(`after-${a}`),l(`ANIMATION_END`),!i.value)){let e=t.value.style.animationFillMode;t.value.style.animationFillMode=`forwards`,o=s?.setTimeout(()=>{t.value?.style.animationFillMode===`forwards`&&(t.value.style.animationFillMode=e)})}e.target===t.value&&n===`none`&&l(`ANIMATION_END`)},f=e=>{e.target===t.value&&(r.value=Hm(t.value))},p=P(t,(e,t)=>{e?(n.value=getComputedStyle(e),e.addEventListener(`animationstart`,f),e.addEventListener(`animationcancel`,d),e.addEventListener(`animationend`,d)):(l(`ANIMATION_END`),o!==void 0&&s?.clearTimeout(o),t?.removeEventListener(`animationstart`,f),t?.removeEventListener(`animationcancel`,d),t?.removeEventListener(`animationend`,d))},{immediate:!0}),m=P(c,()=>{let e=Hm(t.value);r.value=c.value===`mounted`?e:`none`});return Yi(()=>{p(),m()}),{isPresent:q(()=>[`mounted`,`unmountSuspended`].includes(c.value))}}function Hm(e){return e&&getComputedStyle(e).animationName||`none`}var Um=F({name:`Presence`,props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){let{present:r,forceMount:i}=bn(e),a=j(),{isPresent:o}=Vm(r,a);n({present:o});let s=t.default({present:o.value});s=Yp(s||[]);let c=Es();if(s&&s?.length>1){let e=c?.parent?.type.name?`<${c.parent.type.name} />`:`component`;throw Error([`Detected an invalid children for \`${e}\` for \`Presence\` component.`,``,"Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",`You can apply a few solutions:`,["Provide a single child element so that `presence` directive attach correctly.",`Ensure the first child is an actual element instead of a raw text node or comment node.`].map(e=>` - ${e}`).join(`
5
+ `)].join(`
6
+ `))}return()=>i.value||r.value||o.value?Ks(t.default({present:o.value})[0],{ref:e=>{let t=Bp(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),Wm=F({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){return()=>{if(!n.default)return null;let e=Yp(n.default()),r=e.findIndex(e=>e.type!==ts);if(r===-1)return e;let i=e[r];delete i.props?.ref;let a=i.props?K(t,i.props):t,o=gs({...i,props:{}},a);return e.length===1?o:(e[r]=o,e)}}}),Gm=[`area`,`img`,`input`],Km=F({name:`Primitive`,inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:`div`}},setup(e,{attrs:t,slots:n}){let r=e.asChild?`template`:e.as;return typeof r==`string`&&Gm.includes(r)?()=>Ks(r,t):r===`template`?()=>Ks(Wm,t,{default:n.default}):()=>Ks(e.as,t,{default:n.default})}});function qm(){let e=j();return{primitiveElement:e,currentElement:q(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:Bp(e))}}var[Jm,Ym]=hp(`DialogRoot`),Xm=F({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=Jp(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=j(),a=j(),{modal:o}=bn(n);return Ym({open:r,modal:o,openModal:()=>{r.value=!0},onOpenChange:e=>{r.value=e},onOpenToggle:()=>{r.value=!r.value},contentId:``,titleId:``,descriptionId:``,triggerElement:i,contentElement:a}),(e,t)=>L(e.$slots,`default`,{open:M(r),close:()=>r.value=!1})}}),Zm=F({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;Y();let n=Jm();return(e,r)=>(z(),V(M(Km),K(t,{type:e.as===`button`?`button`:void 0,onClick:r[0]||=e=>M(n).onOpenChange(!1)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`type`]))}}),Qm=`dismissableLayer.pointerDownOutside`,$m=`dismissableLayer.focusOutside`;function eh(e,t){if(!(t instanceof Element))return!1;let n=t.closest(`[data-dismissable-layer]`),r=e.dataset.dismissableLayer===``?e:e.querySelector(`[data-dismissable-layer]`),i=Array.from(e.ownerDocument.querySelectorAll(`[data-dismissable-layer]`));return!!(n&&(r===n||i.indexOf(r)<i.indexOf(n)))}function th(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=j(!1),a=j(()=>{});return wr(o=>{if(!Cp||!hn(n))return;let s=async n=>{let o=n.target;if(!(!t?.value||!o)){if(eh(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){_p(Qm,e,t)}n.pointerType===`touch`?(r.removeEventListener(`click`,a.value),a.value=i,r.addEventListener(`click`,a.value,{once:!0})):i()}else r.removeEventListener(`click`,a.value);i.value=!1}},c=window.setTimeout(()=>{r.addEventListener(`pointerdown`,s)},0);o(()=>{window.clearTimeout(c),r.removeEventListener(`pointerdown`,s),r.removeEventListener(`click`,a.value)})}),{onPointerDownCapture:()=>{hn(n)&&(i.value=!0)}}}function nh(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=j(!1);return wr(a=>{if(!Cp||!hn(n))return;let o=async n=>{if(!t?.value)return;await $n(),await $n();let r=n.target;!t.value||!r||eh(t.value,r)||n.target&&!i.value&&_p($m,e,{originalEvent:n})};r.addEventListener(`focusin`,o),a(()=>r.removeEventListener(`focusin`,o))}),{onFocusCapture:()=>{hn(n)&&(i.value=!0)},onBlurCapture:()=>{hn(n)&&(i.value=!1)}}}var rh=Xt({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set}),ih=F({__name:`DismissableLayer`,props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=Y(),o=q(()=>a.value?.ownerDocument??globalThis.document),s=q(()=>rh.layersRoot),c=q(()=>a.value?Array.from(s.value).indexOf(a.value):-1),l=q(()=>rh.layersWithOutsidePointerEventsDisabled.size>0),u=q(()=>{let e=Array.from(s.value),[t]=[...rh.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return c.value>=n}),d=th(async e=>{let t=[...rh.branches].some(t=>t?.contains(e.target));!u.value||t||(r(`pointerDownOutside`,e),r(`interactOutside`,e),await $n(),e.defaultPrevented||r(`dismiss`))},a),f=nh(e=>{[...rh.branches].some(t=>t?.contains(e.target))||(r(`focusOutside`,e),r(`interactOutside`,e),e.defaultPrevented||r(`dismiss`))},a);return Gp(`Escape`,e=>{c.value===s.value.size-1&&(r(`escapeKeyDown`,e),e.defaultPrevented||r(`dismiss`))}),wr(e=>{a.value&&(n.disableOutsidePointerEvents&&(rh.layersWithOutsidePointerEventsDisabled.size===0&&(rh.originalBodyPointerEvents=o.value.body.style.pointerEvents,o.value.body.style.pointerEvents=`none`),rh.layersWithOutsidePointerEventsDisabled.add(a.value)),s.value.add(a.value),e(()=>{n.disableOutsidePointerEvents&&rh.layersWithOutsidePointerEventsDisabled.size===1&&!vp(rh.originalBodyPointerEvents)&&(o.value.body.style.pointerEvents=rh.originalBodyPointerEvents)}))}),wr(e=>{e(()=>{a.value&&(s.value.delete(a.value),rh.layersWithOutsidePointerEventsDisabled.delete(a.value))})}),(e,t)=>(z(),V(M(Km),{ref:M(i),"as-child":e.asChild,as:e.as,"data-dismissable-layer":``,style:he({pointerEvents:l.value?u.value?`auto`:`none`:void 0}),onFocusCapture:M(f).onFocusCapture,onBlurCapture:M(f).onBlurCapture,onPointerdownCapture:M(d).onPointerDownCapture},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`style`,`onFocusCapture`,`onBlurCapture`,`onPointerdownCapture`]))}}),ah=Sp(()=>j([]));function oh(){let e=ah();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=sh(e.value,t),e.value.unshift(t)},remove(t){e.value=sh(e.value,t),e.value[0]?.resume()}}}function sh(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var ch=`focusScope.autoFocusOnMount`,lh=`focusScope.autoFocusOnUnmount`,uh={bubbles:!1,cancelable:!0};function dh(e,{select:t=!1}={}){let n=gp();for(let r of e)if(_h(r,{select:t}),gp()!==n)return!0}function fh(e){let t=ph(e);return[mh(t,e),mh(t.reverse(),e)]}function ph(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function mh(e,t){for(let n of e)if(!hh(n,{upTo:t}))return n}function hh(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function gh(e){return e instanceof HTMLInputElement&&`select`in e}function _h(e,{select:t=!1}={}){if(e&&e.focus){let n=gp();e.focus({preventScroll:!0}),e!==n&&gh(e)&&t&&e.select()}}var vh=F({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(e,{emit:t}){let n=e,r=t,{currentRef:i,currentElement:a}=Y(),o=j(null),s=oh(),c=Xt({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});wr(e=>{if(!Cp)return;let t=a.value;if(!n.trapped)return;function r(e){if(c.paused||!t)return;let n=e.target;t.contains(n)?o.value=n:_h(o.value,{select:!0})}function i(e){if(c.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||_h(o.value,{select:!0}))}function s(e){let n=o.value;n!==null&&e.some(e=>e.removedNodes.length>0)&&(t.contains(n)||_h(t))}document.addEventListener(`focusin`,r),document.addEventListener(`focusout`,i);let l=new MutationObserver(s);t&&l.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,r),document.removeEventListener(`focusout`,i),l.disconnect()})}),wr(async e=>{let t=a.value;if(await $n(),!t)return;s.add(c);let n=gp();if(!t.contains(n)){let e=new CustomEvent(ch,uh);t.addEventListener(ch,e=>r(`mountAutoFocus`,e)),t.dispatchEvent(e),e.defaultPrevented||(dh(ph(t),{select:!0}),gp()===n&&_h(t))}e(()=>{t.removeEventListener(ch,e=>r(`mountAutoFocus`,e));let e=new CustomEvent(lh,uh),i=e=>{r(`unmountAutoFocus`,e)};t.addEventListener(lh,i),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||_h(n??document.body,{select:!0}),t.removeEventListener(lh,i),s.remove(c),t.removeAttribute(`data-focus-scope-unmounting`)},0)})});function l(e){if(!n.loop&&!n.trapped||c.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=gp();if(t&&r){let t=e.currentTarget,[i,a]=fh(t);i&&a?!e.shiftKey&&r===a?(e.preventDefault(),n.loop&&_h(i,{select:!0})):e.shiftKey&&r===i&&(e.preventDefault(),n.loop&&_h(a,{select:!0})):r===t&&e.preventDefault()}}return(e,t)=>(z(),V(M(Km),{ref_key:`currentRef`,ref:i,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:l},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),yh=`menu.itemSelect`,bh=[`Enter`,` `],xh=[`ArrowDown`,`PageUp`,`Home`],Sh=[`ArrowUp`,`PageDown`,`End`],Ch=[...xh,...Sh];[...bh],[...bh];function wh(e){return e?`open`:`closed`}function Th(e){let t=gp();for(let n of e)if(n===t||(n.focus(),gp()!==t))return}function Eh(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function Dh(e,t){return t?Eh({x:e.clientX,y:e.clientY},t):!1}function Oh(e){return e.pointerType===`mouse`}var kh=F({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Jm(),{forwardRef:a,currentElement:o}=Y();return i.titleId||=Fm(void 0,`reka-dialog-title`),i.descriptionId||=Fm(void 0,`reka-dialog-description`),Gi(()=>{i.contentElement=o,gp()!==document.body&&(i.triggerElement.value=gp())}),(e,t)=>(z(),V(M(vh),{"as-child":``,loop:``,trapped:n.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:N(()=>[U(M(ih),K({id:M(i).contentId,ref:M(a),as:e.as,"as-child":e.asChild,"disable-outside-pointer-events":e.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":M(i).descriptionId,"aria-labelledby":M(i).titleId,"data-state":M(wh)(M(i).open.value)},e.$attrs,{onDismiss:t[0]||=e=>M(i).onOpenChange(!1),onEscapeKeyDown:t[1]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[2]||=e=>r(`focusOutside`,e),onInteractOutside:t[3]||=e=>r(`interactOutside`,e),onPointerDownOutside:t[4]||=e=>r(`pointerDownOutside`,e)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`]))}}),Ah=F({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Jm(),a=um(r),{forwardRef:o,currentElement:s}=Y();return Nm(s),(e,t)=>(z(),V(kh,K({...n,...M(a)},{ref:M(o),"trap-focus":M(i).open.value,"disable-outside-pointer-events":!0,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(e.preventDefault(),M(i).triggerElement.value?.focus())},onPointerDownOutside:t[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:t[2]||=e=>{e.preventDefault()}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),jh=F({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=um(t);Y();let i=Jm(),a=j(!1),o=j(!1);return(e,t)=>(z(),V(kh,K({...n,...M(r)},{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(a.value||M(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=e=>{e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;M(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),Mh=F({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Jm(),a=um(r),{forwardRef:o}=Y();return(e,t)=>(z(),V(M(Um),{present:e.forceMount||M(i).open.value},{default:N(()=>[M(i).modal.value?(z(),V(Ah,K({key:0,ref:M(o)},{...n,...M(a),...e.$attrs}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(jh,K({key:1,ref:M(o)},{...n,...M(a),...e.$attrs}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),Nh=F({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;Y();let n=Jm();return(e,r)=>(z(),V(M(Km),K(t,{id:M(n).descriptionId}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ph=F({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Jm();return om(!0),Y(),(e,n)=>(z(),V(M(Km),{as:e.as,"as-child":e.asChild,"data-state":M(t).open.value?`open`:`closed`,style:{"pointer-events":`auto`},onPointerdown:n[0]||=Jl(()=>{},[`left`,`self`,`prevent`])},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),Fh=F({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Jm(),{forwardRef:n}=Y();return(e,r)=>M(t)?.modal.value?(z(),V(M(Um),{key:0,present:e.forceMount||M(t).open.value},{default:N(()=>[U(Ph,K(e.$attrs,{ref:M(n),as:e.as,"as-child":e.asChild}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`])]),_:3},8,[`present`])):G(`v-if`,!0)}}),Ih=F({__name:`Teleport`,props:{to:{type:null,required:!1,default:`body`},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=Hp();return(e,n)=>M(t)||e.forceMount?(z(),V(Vr,{key:0,to:e.to,disabled:e.disabled,defer:e.defer},[L(e.$slots,`default`)],8,[`to`,`disabled`,`defer`])):G(`v-if`,!0)}}),Lh=F({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(Ih),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),Rh=F({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=Jm();return Y(),(e,r)=>(z(),V(M(Km),K(t,{id:M(n).titleId}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),zh=`data-reka-collection-item`;function Bh(e={}){let{key:t=``,isProvider:n=!1}=e,r=`${t}CollectionProvider`,i;n?(i={collectionRef:j(),itemMap:j(new Map)},yr(r,i)):i=br(r);let a=(e=!1)=>{let t=i.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${zh}]`)),r=Array.from(i.itemMap.value.values()).sort((e,t)=>n.indexOf(e.ref)-n.indexOf(t.ref));return e?r:r.filter(e=>e.ref.dataset.disabled!==``)},o=F({name:`CollectionSlot`,inheritAttrs:!1,setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=qm();return P(a,()=>{i.collectionRef.value=a.value}),()=>Ks(Wm,{ref:r,...n},t)}}),s=F({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:t,attrs:n}){let{primitiveElement:r,currentElement:a}=qm();return wr(t=>{if(a.value){let n=sn(a.value);i.itemMap.value.set(n,{ref:a.value,value:e.value}),t(()=>i.itemMap.value.delete(n))}}),()=>Ks(Wm,{...n,[zh]:``,ref:r},t)}});return{getItems:a,reactiveItems:q(()=>Array.from(i.itemMap.value.values())),itemMapSize:q(()=>i.itemMap.value.size),CollectionSlot:o,CollectionItem:s}}var Vh=F({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(M(Km),{as:e.as,"as-child":e.asChild,"aria-hidden":e.feature===`focusable`?`true`:void 0,"data-hidden":e.feature===`fully-hidden`?``:void 0,tabindex:e.feature===`fully-hidden`?`-1`:void 0,style:{position:`absolute`,border:0,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,wordWrap:`normal`,top:`-1px`,left:`-1px`}},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}}),Hh=F({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let t=e,{primitiveElement:n,currentElement:r}=qm();return P(q(()=>t.checked??t.value),(e,t)=>{if(!r.value)return;let n=r.value,i=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(i,`value`).set;if(a&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});a.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,r)=>(z(),V(Vh,K({ref_key:`primitiveElement`,ref:n},{...t,...e.$attrs},{as:`input`}),null,16))}}),Uh=F({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let t=e,n=q(()=>typeof t.value==`object`&&Array.isArray(t.value)&&t.value.length===0&&t.required),r=q(()=>typeof t.value==`string`||typeof t.value==`number`||typeof t.value==`boolean`||t.value===null||t.value===void 0?[{name:t.name,value:t.value}]:typeof t.value==`object`&&Array.isArray(t.value)?t.value.flatMap((e,n)=>typeof e==`object`?Object.entries(e).map(([e,r])=>({name:`${t.name}[${n}][${e}]`,value:r})):{name:`${t.name}[${n}]`,value:e}):t.value!==null&&typeof t.value==`object`&&!Array.isArray(t.value)?Object.entries(t.value).map(([e,n])=>({name:`${t.name}[${e}]`,value:n})):[]);return(e,i)=>(z(),B(R,null,[G(` We render single input if it's required `),n.value?(z(),V(Hh,K({key:e.name},{...t,...e.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`])):(z(!0),B(R,{key:1},I(r.value,n=>(z(),V(Hh,K({key:n.name},{ref_for:!0},{...t,...e.$attrs},{name:n.name,value:n.value}),null,16,[`name`,`value`]))),128))],2112))}}),Wh=`rovingFocusGroup.onEntryFocus`,Gh={bubbles:!1,cancelable:!0},Kh={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function qh(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Jh(e,t,n){let r=qh(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Kh[r]}function Yh(e,t=!1){let n=gp();for(let r of e)if(r===n||(r.focus({preventScroll:t}),gp()!==n))return}function Xh(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[Zh,Qh]=hp(`PopperRoot`),$h=F({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=j();return Qh({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>L(e.$slots,`default`)}}),eg=F({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Y(),i=Zh();return Tr(()=>{i.onAnchorChange(t.reference??r.value)}),(e,t)=>(z(),V(M(Km),{ref:M(n),as:e.as,"as-child":e.asChild},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function tg(e){return e!==null}function ng(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=rg(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}}function rg(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var ig=[`top`,`right`,`bottom`,`left`],ag=Math.min,og=Math.max,sg=Math.round,cg=Math.floor,lg=e=>({x:e,y:e}),ug={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function dg(e,t,n){return og(e,ag(t,n))}function fg(e,t){return typeof e==`function`?e(t):e}function pg(e){return e.split(`-`)[0]}function mg(e){return e.split(`-`)[1]}function hg(e){return e===`x`?`y`:`x`}function gg(e){return e===`y`?`height`:`width`}function _g(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function vg(e){return hg(_g(e))}function yg(e,t,n){n===void 0&&(n=!1);let r=mg(e),i=vg(e),a=gg(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Og(o)),[o,Og(o)]}function bg(e){let t=Og(e);return[xg(e),t,xg(t)]}function xg(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Sg=[`left`,`right`],Cg=[`right`,`left`],wg=[`top`,`bottom`],Tg=[`bottom`,`top`];function Eg(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Cg:Sg:t?Sg:Cg;case`left`:case`right`:return t?wg:Tg;default:return[]}}function Dg(e,t,n,r){let i=mg(e),a=Eg(pg(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(xg)))),a}function Og(e){let t=pg(e);return ug[t]+e.slice(t.length)}function kg(e){return{top:0,right:0,bottom:0,left:0,...e}}function Ag(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:kg(e)}function jg(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Mg(e,t,n){let{reference:r,floating:i}=e,a=_g(t),o=vg(t),s=gg(o),c=pg(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(mg(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Ng(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=fg(t,e),p=Ag(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=jg(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=jg(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Pg=50,Fg=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ng},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Mg(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Pg&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Mg(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Ig=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=fg(e,t)||{};if(l==null)return{};let d=Ag(u),f={x:n,y:r},p=vg(i),m=gg(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,ee=ag(d[_],T),E=ag(d[v],T),te=ee,ne=C-h[m]-E,re=C/2-h[m]/2+w,D=dg(te,re,ne),ie=!c.arrow&&mg(i)!=null&&re!==D&&a.reference[m]/2-(re<te?ee:E)-h[m]/2<0,ae=ie?re<te?re-te:re-ne:0;return{[p]:f[p]+ae,data:{[p]:D,centerOffset:re-D-ae,...ie&&{alignmentOffset:ae}},reset:ie}}}),Lg=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=fg(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=pg(r),_=_g(o),v=pg(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Og(o)]:bg(o)),x=p!==`none`;!d&&x&&b.push(...Dg(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=yg(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==_g(t))||T.every(e=>_g(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=_g(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Rg(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function zg(e){return ig.some(t=>e[t]>=0)}var Bg=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=fg(e,t);switch(i){case`referenceHidden`:{let e=Rg(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:zg(e)}}}case`escaped`:{let e=Rg(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:zg(e)}}}default:return{}}}}},Vg=new Set([`left`,`top`]);async function Hg(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=pg(n),s=mg(n),c=_g(n)===`y`,l=Vg.has(o)?-1:1,u=a&&c?-1:1,d=fg(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ug=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Hg(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Wg=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=fg(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=_g(pg(i)),p=hg(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=dg(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=dg(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Gg=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=fg(e,t),u={x:n,y:r},d=_g(i),f=hg(d),p=u[f],m=u[d],h=fg(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Vg.has(pg(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Kg=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=fg(e,t),u=await o.detectOverflow(t,l),d=pg(i),f=mg(i),p=_g(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=ag(h-u[g],v),x=ag(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=og(u.left,0),t=og(u.right,0),n=og(u.top,0),r=og(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:og(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:og(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function qg(){return typeof window<`u`}function Jg(e){return Zg(e)?(e.nodeName||``).toLowerCase():`#document`}function Yg(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Xg(e){return((Zg(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Zg(e){return qg()?e instanceof Node||e instanceof Yg(e).Node:!1}function Qg(e){return qg()?e instanceof Element||e instanceof Yg(e).Element:!1}function $g(e){return qg()?e instanceof HTMLElement||e instanceof Yg(e).HTMLElement:!1}function e_(e){return!qg()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Yg(e).ShadowRoot}function t_(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=f_(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function n_(e){return/^(table|td|th)$/.test(Jg(e))}function r_(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var i_=/transform|translate|scale|rotate|perspective|filter/,a_=/paint|layout|strict|content/,o_=e=>!!e&&e!==`none`,s_;function c_(e){let t=Qg(e)?f_(e):e;return o_(t.transform)||o_(t.translate)||o_(t.scale)||o_(t.rotate)||o_(t.perspective)||!u_()&&(o_(t.backdropFilter)||o_(t.filter))||i_.test(t.willChange||``)||a_.test(t.contain||``)}function l_(e){let t=m_(e);for(;$g(t)&&!d_(t);){if(c_(t))return t;if(r_(t))return null;t=m_(t)}return null}function u_(){return s_??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),s_}function d_(e){return/^(html|body|#document)$/.test(Jg(e))}function f_(e){return Yg(e).getComputedStyle(e)}function p_(e){return Qg(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function m_(e){if(Jg(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||e_(e)&&e.host||Xg(e);return e_(t)?t.host:t}function h_(e){let t=m_(e);return d_(t)?e.ownerDocument?e.ownerDocument.body:e.body:$g(t)&&t_(t)?t:h_(t)}function g_(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=h_(e),i=r===e.ownerDocument?.body,a=Yg(r);if(i){let e=__(a);return t.concat(a,a.visualViewport||[],t_(r)?r:[],e&&n?g_(e):[])}else return t.concat(r,g_(r,[],n))}function __(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function v_(e){let t=f_(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=$g(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=sg(n)!==a||sg(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function y_(e){return Qg(e)?e:e.contextElement}function b_(e){let t=y_(e);if(!$g(t))return lg(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=v_(t),o=(a?sg(n.width):n.width)/r,s=(a?sg(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var x_=lg(0);function S_(e){let t=Yg(e);return!u_()||!t.visualViewport?x_:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function C_(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Yg(e)?!1:t}function w_(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=y_(e),o=lg(1);t&&(r?Qg(r)&&(o=b_(r)):o=b_(e));let s=C_(a,n,r)?S_(a):lg(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=Yg(a),t=r&&Qg(r)?Yg(r):r,n=e,i=__(n);for(;i&&r&&t!==n;){let e=b_(i),t=i.getBoundingClientRect(),r=f_(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Yg(i),i=__(n)}}return jg({width:u,height:d,x:c,y:l})}function T_(e,t){let n=p_(e).scrollLeft;return t?t.left+n:w_(Xg(e)).left+n}function E_(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-T_(e,n),y:n.top+t.scrollTop}}function D_(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Xg(r),s=t?r_(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=lg(1),u=lg(0),d=$g(r);if((d||!d&&!a)&&((Jg(r)!==`body`||t_(o))&&(c=p_(r)),d)){let e=w_(r);l=b_(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?E_(o,c):lg(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function O_(e){return Array.from(e.getClientRects())}function k_(e){let t=Xg(e),n=p_(e),r=e.ownerDocument.body,i=og(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=og(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+T_(e),s=-n.scrollTop;return f_(r).direction===`rtl`&&(o+=og(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var A_=25;function j_(e,t){let n=Yg(e),r=Xg(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=u_();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=T_(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=A_&&(a-=o)}else l<=A_&&(a+=l);return{width:a,height:o,x:s,y:c}}function M_(e,t){let n=w_(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=$g(e)?b_(e):lg(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function N_(e,t,n){let r;if(t===`viewport`)r=j_(e,n);else if(t===`document`)r=k_(Xg(e));else if(Qg(t))r=M_(t,n);else{let n=S_(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return jg(r)}function P_(e,t){let n=m_(e);return n===t||!Qg(n)||d_(n)?!1:f_(n).position===`fixed`||P_(n,t)}function F_(e,t){let n=t.get(e);if(n)return n;let r=g_(e,[],!1).filter(e=>Qg(e)&&Jg(e)!==`body`),i=null,a=f_(e).position===`fixed`,o=a?m_(e):e;for(;Qg(o)&&!d_(o);){let t=f_(o),n=c_(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||t_(o)&&!n&&P_(e,o))?r=r.filter(e=>e!==o):i=t,o=m_(o)}return t.set(e,r),r}function I_(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?r_(t)?[]:F_(t,this._c):[].concat(n),r],o=N_(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=N_(t,a[e],i);s=og(n.top,s),c=ag(n.right,c),l=ag(n.bottom,l),u=og(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function L_(e){let{width:t,height:n}=v_(e);return{width:t,height:n}}function R_(e,t,n){let r=$g(t),i=Xg(t),a=n===`fixed`,o=w_(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=lg(0);function l(){c.x=T_(i)}if(r||!r&&!a)if((Jg(t)!==`body`||t_(i))&&(s=p_(t)),r){let e=w_(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?E_(i,s):lg(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function z_(e){return f_(e).position===`static`}function B_(e,t){if(!$g(e)||f_(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Xg(e)===n&&(n=n.ownerDocument.body),n}function V_(e,t){let n=Yg(e);if(r_(e))return n;if(!$g(e)){let t=m_(e);for(;t&&!d_(t);){if(Qg(t)&&!z_(t))return t;t=m_(t)}return n}let r=B_(e,t);for(;r&&n_(r)&&z_(r);)r=B_(r,t);return r&&d_(r)&&z_(r)&&!c_(r)?n:r||l_(e)||n}var H_=async function(e){let t=this.getOffsetParent||V_,n=this.getDimensions,r=await n(e.floating);return{reference:R_(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function U_(e){return f_(e).direction===`rtl`}var W_={convertOffsetParentRelativeRectToViewportRelativeRect:D_,getDocumentElement:Xg,getClippingRect:I_,getOffsetParent:V_,getElementRects:H_,getClientRects:O_,getDimensions:L_,getScale:b_,isElement:Qg,isRTL:U_};function G_(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function K_(e,t){let n=null,r,i=Xg(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=cg(d),h=cg(i.clientWidth-(u+f)),g=cg(i.clientHeight-(d+p)),_=cg(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:og(0,ag(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!G_(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function q_(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=y_(e),u=i||a?[...l?g_(l):[],...t?g_(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?K_(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?w_(e):null;c&&g();function g(){let t=w_(e);h&&!G_(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var J_=Ug,Y_=Wg,X_=Lg,Z_=Kg,Q_=Bg,$_=Ig,ev=Gg,tv=(e,t,n)=>{let r=new Map,i={platform:W_,...n},a={...i.platform,_c:r};return Fg(e,t,{...i,platform:a})};function nv(e){return typeof e==`object`&&!!e&&`$el`in e}function rv(e){if(nv(e)){let t=e.$el;return Zg(t)&&Jg(t)===`#comment`?null:t}return e}function iv(e){return typeof e==`function`?e():M(e)}function av(e){return{name:`arrow`,options:e,fn(t){let n=rv(iv(e.element));return n==null?{}:$_({element:n,padding:e.padding}).fn(t)}}}function ov(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function sv(e,t){let n=ov(e);return Math.round(t*n)/n}function cv(e,t,n){n===void 0&&(n={});let r=n.whileElementsMounted,i=q(()=>iv(n.open)??!0),a=q(()=>iv(n.middleware)),o=q(()=>iv(n.placement)??`bottom`),s=q(()=>iv(n.strategy)??`absolute`),c=q(()=>iv(n.transform)??!0),l=q(()=>rv(e.value)),u=q(()=>rv(t.value)),d=j(0),f=j(0),p=j(s.value),m=j(o.value),h=dn({}),g=j(!1),_=q(()=>{let e={position:p.value,left:`0`,top:`0`};if(!u.value)return e;let t=sv(u.value,d.value),n=sv(u.value,f.value);return c.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...ov(u.value)>=1.5&&{willChange:`transform`}}:{position:p.value,left:t+`px`,top:n+`px`}}),v;function y(){if(l.value==null||u.value==null)return;let e=i.value;tv(l.value,u.value,{middleware:a.value,placement:o.value,strategy:s.value}).then(t=>{d.value=t.x,f.value=t.y,p.value=t.strategy,m.value=t.placement,h.value=t.middlewareData,g.value=e!==!1})}function b(){typeof v==`function`&&(v(),v=void 0)}function x(){if(b(),r===void 0){y();return}if(l.value!=null&&u.value!=null){v=r(l.value,u.value,y);return}}function S(){i.value||(g.value=!1)}return P([a,o,s,i],y,{flush:`sync`}),P([l,u],x,{flush:`sync`}),P(i,S,{flush:`sync`}),Pe()&&Fe(b),{x:$t(d),y:$t(f),strategy:$t(p),placement:$t(m),middlewareData:$t(h),isPositioned:$t(g),floatingStyles:_,update:y}}var lv={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[uv,dv]=hp(`PopperContent`),fv=F({inheritAttrs:!1,__name:`PopperContent`,props:Da({side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...lv}),emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,i=Zh(),{forwardRef:a,currentElement:o}=Y(),s=j(),c=j(),{width:l,height:u}=Im(c),d=q(()=>n.side+(n.align===`center`?``:`-${n.align}`)),f=q(()=>typeof n.collisionPadding==`number`?n.collisionPadding:{top:0,right:0,bottom:0,left:0,...n.collisionPadding}),p=q(()=>Array.isArray(n.collisionBoundary)?n.collisionBoundary:[n.collisionBoundary]),m=q(()=>({padding:f.value,boundary:p.value.filter(tg),altBoundary:p.value.length>0})),h=q(()=>({mainAxis:n.sideFlip,crossAxis:n.alignFlip})),g=yp(()=>[J_({mainAxis:n.sideOffset+u.value,alignmentAxis:n.alignOffset}),n.prioritizePosition&&n.avoidCollisions&&X_({...m.value,...h.value}),n.avoidCollisions&&Y_({mainAxis:!0,crossAxis:!!n.prioritizePosition,limiter:n.sticky===`partial`?ev():void 0,...m.value}),!n.prioritizePosition&&n.avoidCollisions&&X_({...m.value,...h.value}),Z_({...m.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),c.value&&av({element:c.value,padding:n.arrowPadding}),ng({arrowWidth:l.value,arrowHeight:u.value}),n.hideWhenDetached&&Q_({strategy:`referenceHidden`,...m.value})]),{floatingStyles:_,placement:v,isPositioned:y,middlewareData:b,update:x}=cv(q(()=>n.reference??i.anchor.value),s,{strategy:n.positionStrategy,placement:d,whileElementsMounted:(...e)=>q_(...e,{layoutShift:!n.disableUpdateOnLayoutShift,animationFrame:n.updatePositionStrategy===`always`}),middleware:g}),S=q(()=>rg(v.value)[0]),C=q(()=>rg(v.value)[1]);Tr(()=>{y.value&&r(`placed`)});let w=q(()=>{let e=b.value.arrow?.centerOffset!==0;return n.hideShiftedArrow&&e}),T=j(``);return wr(()=>{o.value&&(T.value=window.getComputedStyle(o.value).zIndex)}),dv({placedSide:S,onArrowChange:e=>c.value=e,arrowX:q(()=>b.value.arrow?.x??0),arrowY:q(()=>b.value.arrow?.y??0),shouldHideArrow:w}),(e,t)=>(z(),B(`div`,{ref_key:`floatingRef`,ref:s,"data-reka-popper-content-wrapper":``,style:he({...M(_),transform:M(y)?M(_).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:T.value,"--reka-popper-transform-origin":[M(b).transformOrigin?.x,M(b).transformOrigin?.y].join(` `),...M(b).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[U(M(Km),K({ref:M(a)},e.$attrs,{"as-child":n.asChild,as:e.as,"data-side":S.value,"data-align":C.value,style:{animation:M(y)?void 0:`none`}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}});function pv(e){let t=$p({nonce:j()});return q(()=>e?.value||t.nonce?.value)}var[mv,hv]=hp(`RovingFocusGroup`),gv=F({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:t,emit:n}){let r=e,i=n,{loop:a,orientation:o,dir:s}=bn(r),c=lm(s),l=Jp(r,`currentTabStopId`,i,{defaultValue:r.defaultCurrentTabStopId,passive:r.currentTabStopId===void 0}),u=j(!1),d=j(!1),f=j(0),{getItems:p,CollectionSlot:m}=Bh({isProvider:!0});function h(e){let t=!d.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!u.value){let t=new CustomEvent(Wh,Gh);if(e.currentTarget.dispatchEvent(t),i(`entryFocus`,t),!t.defaultPrevented){let e=p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);Yh([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===l.value),...e].filter(Boolean),r.preventScrollOnEntryFocus)}}d.value=!1}function g(){setTimeout(()=>{d.value=!1},1)}return t({getItems:p}),hv({loop:a,dir:c,orientation:o,currentTabStopId:l,onItemFocus:e=>{l.value=e},onItemShiftTab:()=>{u.value=!0},onFocusableItemAdd:()=>{f.value++},onFocusableItemRemove:()=>{f.value--}}),(e,t)=>(z(),V(M(m),null,{default:N(()=>[U(M(Km),{tabindex:u.value||f.value===0?-1:0,"data-orientation":M(o),as:e.as,"as-child":e.asChild,dir:M(c),style:{outline:`none`},onMousedown:t[0]||=e=>d.value=!0,onMouseup:g,onFocus:h,onBlur:t[1]||=e=>u.value=!1},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),_v=F({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=mv(),r=Fm(),i=q(()=>t.tabStopId||r),a=q(()=>n.currentTabStopId.value===i.value),{getItems:o,CollectionItem:s}=Bh();Gi(()=>{t.focusable&&n.onFocusableItemAdd()}),Yi(()=>{t.focusable&&n.onFocusableItemRemove()});function c(e){if(e.key===`Tab`&&e.shiftKey){n.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let r=Jh(e,n.orientation.value,n.dir.value);if(r!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!t.allowShiftKey&&e.shiftKey)return;e.preventDefault();let i=[...o().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(r===`last`)i.reverse();else if(r===`prev`||r===`next`){r===`prev`&&i.reverse();let t=i.indexOf(e.currentTarget);i=n.loop.value?Xh(i,t+1):i.slice(t+1)}$n(()=>Yh(i))}}return(e,t)=>(z(),V(M(s),null,{default:N(()=>[U(M(Km),{tabindex:a.value?0:-1,"data-orientation":M(n).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?M(n).onItemFocus(i.value):t.preventDefault()},onFocus:t[1]||=e=>M(n).onItemFocus(i.value),onKeydown:c},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),vv=F({__name:`MenuAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(eg),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}});function yv(){let e=j(!1);return Gi(()=>{Vp(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),Vp([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var bv=jp(yv),[xv,Sv]=hp([`MenuRoot`,`MenuSub`],`MenuContext`),[Cv,wv]=hp(`MenuRoot`),Tv=F({__name:`MenuRoot`,props:{open:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i,dir:a}=bn(n),o=lm(a),s=Jp(n,`open`,r),c=j(),l=bv();return Sv({open:s,onOpenChange:e=>{s.value=e},content:c,onContentChange:e=>{c.value=e}}),wv({onClose:()=>{s.value=!1},isUsingKeyboardRef:l,dir:o,modal:i}),(e,t)=>(z(),V(M($h),null,{default:N(()=>[L(e.$slots,`default`)]),_:3}))}}),[Ev,Dv]=hp(`MenuContent`),Ov=F({__name:`MenuContentImpl`,props:Da({loop:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},disableOutsideScroll:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...lv}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,i=xv(),a=Cv(),{trapFocus:o,disableOutsidePointerEvents:s,loop:c}=bn(n);fm(),om(s.value);let l=j(``),u=j(0),d=j(0),f=j(null),p=j(`right`),m=j(0),h=j(null),g=j(),{forwardRef:_,currentElement:v}=Y(),{handleTypeaheadSearch:y}=Rm(),b=j();function x(e){let t=Zp(e,b.value||gp(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!1,attributeName:`[data-reka-collection-item]:not([data-disabled])`});t&&(b.value=t,t.scrollIntoView({block:`nearest`}))}function S(){b.value&&b.value.click()}let C=j(),w=j();P(b,e=>{w.value&&(e===void 0||e!==w.value.trigger.value)&&(w.value.onOpenChange(!1),w.value=void 0)}),P(v,e=>{i.onContentChange(e)}),Yi(()=>{window.clearTimeout(u.value)});function T(e){return p.value===f.value?.side&&Dh(e,f.value?.area)}async function ee(e){r(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),v.value?.focus({preventScroll:!0}))}function E(e){if(e.defaultPrevented)return;let t=e.target,n=t.closest(`[data-reka-menu-content]`)===e.currentTarget,r=[`input`,`textarea`].includes(t.tagName.toLowerCase()),i=e.ctrlKey||e.altKey||e.metaKey,o=e.key.length===1,s=Zp(e,gp(),v.value,{loop:c.value,arrowKeyOptions:`vertical`,dir:a?.dir.value,focus:!0,attributeName:`[data-reka-collection-item]:not([data-disabled])`});if(s)return s?.focus();if(e.code===`Space`)return;let l=g.value?.getItems()??[];if(n&&(e.key===`Tab`&&e.preventDefault(),!i&&o&&!r&&y(e.key,l)),e.target!==v.value||!Ch.includes(e.key))return;e.preventDefault();let u=[...l.map(e=>e.ref)];Sh.includes(e.key)&&u.reverse(),Th(u)}function te(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(u.value),l.value=``)}function ne(e){if(!Oh(e))return;let t=e.target,n=m.value!==e.clientX;(e?.currentTarget)?.contains(t)&&n&&(p.value=e.clientX>m.value?`right`:`left`,m.value=e.clientX)}function re(e){Oh(e)&&C.value&&C.value.focus()}return Dv({onItemEnter:e=>!!T(e),onItemLeave:e=>T(e)?!0:([`INPUT`,`TEXTAREA`].includes(gp()?.tagName||``)||v.value?.focus(),h.value=null,!1),onTriggerLeave:e=>!!T(e),searchRef:l,highlightedElement:b,onKeydownNavigation:x,onKeydownEnter:S,filterElement:C,onFilterElementChange:e=>{C.value=e},activeSubmenuContext:w,pointerGraceTimerRef:d,onPointerGraceIntentChange:e=>{f.value=e}}),(e,t)=>(z(),V(M(vh),{"as-child":``,trapped:M(o),onMountAutoFocus:ee,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:N(()=>[U(M(ih),{"as-child":``,"disable-outside-pointer-events":M(s),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[3]||=e=>r(`pointerDownOutside`,e),onFocusOutside:t[4]||=e=>r(`focusOutside`,e),onInteractOutside:t[5]||=e=>r(`interactOutside`,e),onDismiss:t[6]||=e=>r(`dismiss`)},{default:N(()=>[U(M(gv),{ref_key:`rovingFocusGroupRef`,ref:g,"current-tab-stop-id":h.value,"onUpdate:currentTabStopId":t[0]||=e=>h.value=e,"as-child":``,orientation:`vertical`,dir:M(a).dir.value,loop:M(c),onEntryFocus:t[1]||=e=>{r(`entryFocus`,e),M(a).isUsingKeyboardRef.value||e.preventDefault()}},{default:N(()=>[U(M(fv),{ref:M(_),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":M(wh)(M(i).open.value),dir:M(a).dir.value,side:e.side,"side-offset":e.sideOffset,align:e.align,"align-offset":e.alignOffset,"avoid-collisions":e.avoidCollisions,"collision-boundary":e.collisionBoundary,"collision-padding":e.collisionPadding,"arrow-padding":e.arrowPadding,"prioritize-position":e.prioritizePosition,"position-strategy":e.positionStrategy,"update-position-strategy":e.updatePositionStrategy,sticky:e.sticky,"hide-when-detached":e.hideWhenDetached,reference:e.reference,onKeydown:E,onBlur:te,onPointermove:ne,onPointerenter:re},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`,`dir`,`side`,`side-offset`,`align`,`align-offset`,`avoid-collisions`,`collision-boundary`,`collision-padding`,`arrow-padding`,`prioritize-position`,`position-strategy`,`update-position-strategy`,`sticky`,`hide-when-detached`,`reference`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),kv=F({inheritAttrs:!1,__name:`MenuItemImpl`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=Ev(),{forwardRef:r,currentElement:i}=Y(),{CollectionItem:a}=Bh(),o=j(!1),s=q(()=>o.value||i.value!=null&&n.highlightedElement.value===i.value);async function c(e){if(!(e.defaultPrevented||!Oh(e))){if(t.disabled)n.onItemLeave(e);else if(!n.onItemEnter(e)){let t=e.currentTarget;n.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes(gp()?.tagName||``)||t.focus({preventScroll:!0})}}}async function l(e){await $n(),!e.defaultPrevented&&Oh(e)&&n.highlightedElement.value===i.value&&!n.onItemLeave(e)&&n.highlightedElement.value===i.value&&(n.highlightedElement.value=void 0)}return(e,t)=>(z(),V(M(a),{value:{textValue:e.textValue}},{default:N(()=>[U(M(Km),K({ref:M(r),role:`menuitem`,tabindex:`-1`},e.$attrs,{as:e.as,"as-child":e.asChild,"aria-disabled":e.disabled||void 0,"data-disabled":e.disabled?``:void 0,"data-highlighted":s.value?``:void 0,onPointermove:c,onPointerleave:l,onFocus:t[0]||=async t=>{await $n(),!(t.defaultPrevented||e.disabled)&&(o.value=!0,M(n).highlightedElement.value=t.currentTarget)},onBlur:t[1]||=async e=>{await $n(),!e.defaultPrevented&&(o.value=!1)}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`aria-disabled`,`data-disabled`,`data-highlighted`])]),_:3},8,[`value`]))}}),Av=F({__name:`MenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=Y(),o=Cv(),s=Ev(),c=j(!1);async function l(){let e=a.value;if(!n.disabled&&e){let e=new CustomEvent(yh,{bubbles:!0,cancelable:!0});r(`select`,e),await $n(),e.defaultPrevented?c.value=!1:o.onClose()}}return(e,t)=>(z(),V(kv,K(n,{ref:M(i),onClick:l,onPointerdown:t[0]||=()=>{c.value=!0},onPointerup:t[1]||=async e=>{await $n(),!e.defaultPrevented&&(c.value||e.currentTarget?.click())},onKeydown:t[2]||=async t=>{let n=M(s).searchRef.value!==``;e.disabled||n&&t.key===` `||M(bh).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),jv=F({__name:`MenuRootContentModal`,props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=gm(n,r),a=xv(),{forwardRef:o,currentElement:s}=Y();return Nm(s),(e,t)=>(z(),V(Ov,K(M(i),{ref:M(o),"trap-focus":M(a).open.value,"disable-outside-pointer-events":M(a).open.value,"disable-outside-scroll":!0,onDismiss:t[0]||=e=>M(a).onOpenChange(!1),onFocusOutside:t[1]||=Jl(e=>r(`focusOutside`,e),[`prevent`])}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`,`disable-outside-pointer-events`]))}}),Mv=F({__name:`MenuRootContentNonModal`,props:{loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=gm(e,t),r=xv();return(e,t)=>(z(),V(Ov,K(M(n),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:t[0]||=e=>M(r).onOpenChange(!1)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),Nv=F({__name:`MenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=gm(e,t),r=xv(),i=Cv();return(e,t)=>(z(),V(M(Um),{present:e.forceMount||M(r).open.value},{default:N(()=>[M(i).modal.value?(z(),V(jv,be(K({key:0},{...e.$attrs,...M(n)})),{default:N(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Mv,be(K({key:1},{...e.$attrs,...M(n)})),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[Pv,Fv]=hp(`MenuGroup`),Iv=F({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Pv({id:``});return(e,r)=>(z(),V(M(Km),K(t,{id:M(n).id||void 0}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),Lv=F({__name:`MenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(Ih),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),Rv=F({__name:`MenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(Km),K(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),[zv,Bv]=hp(`PopoverRoot`),Vv=F({__name:`PopoverRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i}=bn(n),a=Jp(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});return Bv({contentId:``,triggerId:``,modal:i,open:a,onOpenChange:e=>{a.value=e},onOpenToggle:()=>{a.value=!a.value},triggerElement:j(),hasCustomAnchor:j(!1)}),(e,t)=>(z(),V(M($h),null,{default:N(()=>[L(e.$slots,`default`,{open:M(a),close:()=>a.value=!1})]),_:3}))}}),Hv=F({__name:`PopoverContentImpl`,props:{trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=hm(Pp(n,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:a}=Y(),o=zv();return fm(),(e,t)=>(z(),V(M(vh),{"as-child":``,loop:``,trapped:e.trapFocus,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:N(()=>[U(M(ih),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onPointerDownOutside:t[0]||=e=>r(`pointerDownOutside`,e),onInteractOutside:t[1]||=e=>r(`interactOutside`,e),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[3]||=e=>r(`focusOutside`,e),onDismiss:t[4]||=e=>M(o).onOpenChange(!1)},{default:N(()=>[U(M(fv),K(M(i),{id:M(o).contentId,ref:M(a),"data-state":M(o).open.value?`open`:`closed`,"aria-labelledby":M(o).triggerId,style:{"--reka-popover-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-popover-content-available-width":`var(--reka-popper-available-width)`,"--reka-popover-content-available-height":`var(--reka-popper-available-height)`,"--reka-popover-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-popover-trigger-height":`var(--reka-popper-anchor-height)`},role:`dialog`}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`aria-labelledby`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),Uv=F({__name:`PopoverContentModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=zv(),a=j(!1);om(!0);let o=gm(n,r),{forwardRef:s,currentElement:c}=Y();return Nm(c),(e,t)=>(z(),V(Hv,K(M(o),{ref:M(s),"trap-focus":M(i).open.value,"disable-outside-pointer-events":``,onCloseAutoFocus:t[0]||=Jl(e=>{r(`closeAutoFocus`,e),a.value||M(i).triggerElement.value?.focus()},[`prevent`]),onPointerDownOutside:t[1]||=e=>{r(`pointerDownOutside`,e);let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.value=t.button===2||n},onFocusOutside:t[2]||=Jl(()=>{},[`prevent`])}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),Wv=F({__name:`PopoverContentNonModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=zv(),a=j(!1),o=j(!1),s=gm(n,r);return(e,t)=>(z(),V(Hv,K(M(s),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{r(`closeAutoFocus`,e),e.defaultPrevented||(a.value||M(i).triggerElement.value?.focus(),e.preventDefault()),a.value=!1,o.value=!1},onInteractOutside:t[1]||=async e=>{r(`interactOutside`,e),e.defaultPrevented||(a.value=!0,e.detail.originalEvent.type===`pointerdown`&&(o.value=!0));let t=e.target;M(i).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&o.value&&e.preventDefault()}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),Gv=F({__name:`PopoverContent`,props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=zv(),a=gm(n,r),{forwardRef:o}=Y();return i.contentId||=Fm(void 0,`reka-popover-content`),(e,t)=>(z(),V(M(Um),{present:e.forceMount||M(i).open.value},{default:N(()=>[M(i).modal.value?(z(),V(Uv,K({key:0},M(a),{ref:M(o)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16)):(z(),V(Wv,K({key:1},M(a),{ref:M(o)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),Kv=F({__name:`PopoverPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(Ih),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),qv=F({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=zv(),{forwardRef:r,currentElement:i}=Y();return n.triggerId||=Fm(void 0,`reka-popover-trigger`),Gi(()=>{n.triggerElement.value=i.value}),(e,i)=>(z(),V(ia(M(n).hasCustomAnchor.value?M(Km):M(eg)),{"as-child":``},{default:N(()=>[U(M(Km),{id:M(n).triggerId,ref:M(r),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":M(n).open.value,"aria-controls":M(n).contentId,"data-state":M(n).open.value?`open`:`closed`,as:e.as,"as-child":t.asChild,onClick:M(n).onOpenToggle},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`aria-expanded`,`aria-controls`,`data-state`,`as`,`as-child`,`onClick`])]),_:3}))}}),[Jv,Yv]=hp(`DropdownMenuRoot`),Xv=F({__name:`DropdownMenuRoot`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;Y();let i=Jp(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),a=j(),{modal:o,dir:s}=bn(n),c=lm(s);return Yv({open:i,onOpenChange:e=>{i.value=e},onOpenToggle:()=>{i.value=!i.value},triggerId:``,triggerElement:a,contentId:``,modal:o,dir:c}),(e,t)=>(z(),V(M(Tv),{open:M(i),"onUpdate:open":t[0]||=e=>un(i)?i.value=e:null,dir:M(c),modal:M(o)},{default:N(()=>[L(e.$slots,`default`,{open:M(i)})]),_:3},8,[`open`,`dir`,`modal`]))}}),Zv=F({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=gm(e,t);Y();let r=Jv(),i=j(!1);function a(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=Fm(void 0,`reka-dropdown-menu-content`),(e,t)=>(z(),V(M(Nv),K(M(n),{id:M(r).contentId,"aria-labelledby":M(r)?.triggerId,style:{"--reka-dropdown-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-dropdown-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-dropdown-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-dropdown-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-dropdown-menu-trigger-height":`var(--reka-popper-anchor-height)`},onCloseAutoFocus:a,onInteractOutside:t[0]||=e=>{if(e.defaultPrevented)return;let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,a=t.button===2||n;(!M(r).modal.value||a)&&(i.value=!0),M(r).triggerElement.value?.contains(e.target)&&e.preventDefault()}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}}),Qv=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=um(t);return Y(),(e,t)=>(z(),V(M(Av),be(hs({...n,...M(r)})),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),$v=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return Y(),(e,n)=>(z(),V(M(Iv),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),ey=F({__name:`DropdownMenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(Lv),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),ty=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return Y(),(e,n)=>(z(),V(M(Rv),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),ny=F({__name:`DropdownMenuTrigger`,props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Jv(),{forwardRef:r,currentElement:i}=Y();return Gi(()=>{n.triggerElement=i}),n.triggerId||=Fm(void 0,`reka-dropdown-menu-trigger`),(e,i)=>(z(),V(M(vv),{"as-child":``},{default:N(()=>[U(M(Km),{id:M(n).triggerId,ref:M(r),type:e.as===`button`?`button`:void 0,"as-child":t.asChild,as:e.as,"aria-haspopup":`menu`,"aria-expanded":M(n).open.value,"aria-controls":M(n).open.value?M(n).contentId:void 0,"data-disabled":e.disabled?``:void 0,disabled:e.disabled,"data-state":M(n).open.value?`open`:`closed`,onClick:i[0]||=async t=>{!e.disabled&&t.button===0&&t.ctrlKey===!1&&(M(n)?.onOpenToggle(),await $n(),M(n).open.value&&t.preventDefault())},onKeydown:i[1]||=Xl(t=>{e.disabled||([`Enter`,` `].includes(t.key)&&M(n).onOpenToggle(),t.key===`ArrowDown`&&M(n).onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(t.key)&&t.preventDefault())},[`enter`,`space`,`arrow-down`])},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as-child`,`as`,`aria-expanded`,`aria-controls`,`data-disabled`,`disabled`,`data-state`])]),_:3}))}}),ry=F({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let t=e;return Y(),(e,n)=>(z(),V(M(Km),K(t,{onMousedown:n[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),iy=[` `,`Enter`,`ArrowUp`,`ArrowDown`],ay=[` `,`Enter`];function oy(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>sy(e,t,n)):sy(e,t,n)}function sy(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:pp(e,t)}function cy(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var ly={key:0,value:``},[uy,dy]=hp(`SelectRoot`),fy=F({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:t}){let n=e,r=t,{required:i,disabled:a,multiple:o,dir:s}=bn(n),c=Jp(n,`modelValue`,r,{defaultValue:n.defaultValue??(o.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),l=Jp(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),u=j(),d=j(),f=j({x:0,y:0}),p=q(()=>o.value&&Array.isArray(c.value)?c.value?.length===0:vp(c.value));Bh({isProvider:!0});let m=lm(s),h=mm(u),g=j(new Set),_=q(()=>Array.from(g.value).map(e=>e.value).join(`;`));function v(e){if(o.value){let t=Array.isArray(c.value)?[...c.value]:[],r=t.findIndex(t=>sy(t,e,n.by));r===-1?t.push(e):t.splice(r,1),c.value=[...t]}else c.value=e}function y(e){return Array.from(g.value).find(t=>oy(e,t.value,n.by))}return dy({triggerElement:u,onTriggerChange:e=>{u.value=e},valueElement:d,onValueElementChange:e=>{d.value=e},contentId:``,modelValue:c,onValueChange:v,by:n.by,open:l,multiple:o,required:i,onOpenChange:e=>{l.value=e},dir:m,triggerPointerDownPosRef:f,disabled:a,isEmptyModelValue:p,optionsSet:g,onOptionAdd:e=>{let t=y(e.value);t&&g.value.delete(t),g.value.add(e)},onOptionRemove:e=>{let t=y(e.value);t&&g.value.delete(t)}}),(e,t)=>(z(),V(M($h),null,{default:N(()=>[L(e.$slots,`default`,{modelValue:M(c),open:M(l)}),M(h)&&e.name?(z(),V(py,{key:_.value,"aria-hidden":`true`,tabindex:`-1`,multiple:M(o),required:M(i),name:e.name,autocomplete:e.autocomplete,disabled:M(a),value:M(c)},{default:N(()=>[M(vp)(M(c))?(z(),B(`option`,ly)):G(`v-if`,!0),(z(!0),B(R,null,I(Array.from(g.value),e=>(z(),B(`option`,K({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):G(`v-if`,!0)]),_:3}))}}),py=F({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let t=e,n=j(),r=uy();P(()=>t.value,(e,t)=>{let r=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(e!==t&&i&&n.value){let t=new Event(`change`,{bubbles:!0});i.call(n.value,e),n.value.dispatchEvent(t)}});function i(e){r.onValueChange(e.target.value)}return(e,r)=>(z(),V(M(Vh),{"as-child":``},{default:N(()=>[H(`select`,K({ref_key:`selectElement`,ref:n},t,{onInput:i}),[L(e.$slots,`default`)],16)]),_:3}))}}),my=F({__name:`SelectPopperPosition`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=hm(e);return(e,n)=>(z(),V(M(fv),K(M(t),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),hy={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[gy,_y]=hp(`SelectContent`),vy=F({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=uy();fm(),om(n.bodyLock);let{CollectionSlot:a,getItems:o}=Bh(),s=j();Nm(s);let{search:c,handleTypeaheadSearch:l}=Rm(),u=j(),d=j(),f=j(),p=j(!1),m=j(!1),h=j(!1);function g(){d.value&&s.value&&Th([d.value,s.value])}P(p,()=>{g()});let{onOpenChange:_,triggerPointerDownPosRef:v}=i;wr(e=>{if(!s.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(v.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(v.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():s.value?.contains(e.target)||_(!1),document.removeEventListener(`pointermove`,n),v.value=null)};v.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function y(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&l(e.key,o()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...o().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>Th(t)),e.preventDefault()}}let b=hm(q(()=>n.position===`popper`?n:{}).value);return _y({content:s,viewport:u,onViewportChange:e=>{u.value=e},itemRefCallback:(e,t,n)=>{let r=!m.value&&!n,a=oy(i.modelValue.value,t,i.by);if(i.multiple.value){if(h.value)return;(a||r)&&(d.value=e,a&&(h.value=!0))}else (a||r)&&(d.value=e);r&&(m.value=!0)},selectedItem:d,selectedItemText:f,onItemLeave:()=>{s.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!m.value&&!n;(oy(i.modelValue.value,t,i.by)||r)&&(f.value=e)},focusSelectedItem:g,position:n.position,isPositioned:p,searchRef:c}),(e,t)=>(z(),V(M(a),null,{default:N(()=>[U(M(vh),{"as-child":``,onMountAutoFocus:t[6]||=Jl(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{r(`closeAutoFocus`,e),!e.defaultPrevented&&(M(i).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:N(()=>[U(M(ih),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onFocusOutside:t[2]||=Jl(()=>{},[`prevent`]),onDismiss:t[3]||=e=>M(i).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>r(`pointerDownOutside`,e)},{default:N(()=>[(z(),V(ia(e.position===`popper`?my:xy),K({...e.$attrs,...M(b)},{id:M(i).contentId,ref:e=>{if(!e)return;let t=M(Bp)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?s.value=t.firstElementChild:s.value=t},role:`listbox`,"data-state":M(i).open.value?`open`:`closed`,dir:M(i).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=Jl(()=>{},[`prevent`]),onPlaced:t[1]||=e=>p.value=!0,onKeydown:y}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[yy,by]=hp(`SelectItemAlignedPosition`),xy=F({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,{getItems:i}=Bh(),a=uy(),o=gy(),s=j(!1),c=j(!0),l=j(),{forwardRef:u,currentElement:d}=Y(),{viewport:f,selectedItem:p,selectedItemText:m,focusSelectedItem:h}=o;function g(){if(a.triggerElement.value&&a.valueElement.value&&l.value&&d.value&&f?.value&&p?.value&&m?.value){let e=a.triggerElement.value.getBoundingClientRect(),t=d.value.getBoundingClientRect(),n=a.valueElement.value.getBoundingClientRect(),o=m.value.getBoundingClientRect();if(a.dir.value!==`rtl`){let r=o.left-t.left,i=n.left-r,a=e.left-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=mp(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.left=`${d}px`}else{let r=t.right-o.right,i=window.innerWidth-n.right-r,a=window.innerWidth-e.right-i,s=e.width+a,c=Math.max(s,t.width),u=window.innerWidth-10,d=mp(i,10,Math.max(10,u-c));l.value.style.minWidth=`${s}px`,l.value.style.right=`${d}px`}let c=i().map(e=>e.ref),u=window.innerHeight-20,h=f.value.scrollHeight,g=window.getComputedStyle(d.value),_=Number.parseInt(g.borderTopWidth,10),v=Number.parseInt(g.paddingTop,10),y=Number.parseInt(g.borderBottomWidth,10),b=Number.parseInt(g.paddingBottom,10),x=_+v+h+b+y,S=Math.min(p.value.offsetHeight*5,x),C=window.getComputedStyle(f.value),w=Number.parseInt(C.paddingTop,10),T=Number.parseInt(C.paddingBottom,10),ee=e.top+e.height/2-10,E=u-ee,te=p.value.offsetHeight/2,ne=p.value.offsetTop+te,re=_+v+ne,D=x-re;if(re<=ee){let e=p.value===c.at(-1);l.value.style.bottom=`0px`;let t=d.value.clientHeight-f.value.offsetTop-f.value.offsetHeight,n=re+Math.max(E,te+(e?T:0)+t+y);l.value.style.height=`${n}px`}else{let e=p.value===c[0];l.value.style.top=`0px`;let t=Math.max(ee,_+f.value.offsetTop+(e?w:0)+te)+D;l.value.style.height=`${t}px`,f.value.scrollTop=re-ee+f.value.offsetTop}l.value.style.margin=`10px 0`,l.value.style.minHeight=`${S}px`,l.value.style.maxHeight=`${u}px`,r(`placed`),requestAnimationFrame(()=>s.value=!0)}}let _=j(``);Gi(async()=>{await $n(),g(),d.value&&(_.value=window.getComputedStyle(d.value).zIndex)});function v(e){e&&c.value===!0&&(g(),h?.(),c.value=!1)}return qp(a.triggerElement,()=>{g()}),by({contentWrapper:l,shouldExpandOnScrollRef:s,onScrollButtonChange:v}),(e,t)=>(z(),B(`div`,{ref_key:`contentWrapperElement`,ref:l,style:he({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:_.value})},[U(M(Km),K({ref:M(u),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16)],4))}}),Sy=F({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return dy(e.context),_y(hy),(e,t)=>L(e.$slots,`default`)}}),Cy={key:1},wy=F({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=gm(n,t),i=uy(),a=j();Gi(()=>{a.value=new DocumentFragment});let o=j(),s=q(()=>n.forceMount||i.open.value),c=j(s.value),l;function u(){l&&=(clearTimeout(l),void 0)}return P(s,(e,t,n)=>{u(),l=setTimeout(()=>{c.value=s.value,l=void 0}),n(u)}),Yi(u),(e,t)=>s.value||c.value||o.value?.present?(z(),V(M(Um),{key:0,ref_key:`presenceRef`,ref:o,present:s.value},{default:N(()=>[U(vy,be(hs({...M(r),...e.$attrs})),{default:N(()=>[L(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):a.value?(z(),B(`div`,Cy,[(z(),V(Vr,{to:a.value},[U(Sy,{context:M(i)},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):G(`v-if`,!0)}}),Ty=F({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(z(),V(M(Km),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:N(()=>[L(e.$slots,`default`,{},()=>[t[0]||=W(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[Ey,Dy]=hp(`SelectItem`),Oy=F({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{disabled:i}=bn(n),a=uy(),o=gy(),{forwardRef:s,currentElement:c}=Y(),{CollectionItem:l}=Bh(),u=q(()=>oy(a.modelValue?.value,n.value,a.by)),d=j(!1),f=j(n.textValue??``),p=Fm(void 0,`reka-select-item-text`);async function m(e){e.defaultPrevented||_p(`select.select`,h,{originalEvent:e,value:n.value})}async function h(e){await $n(),r(`select`,e),!e.defaultPrevented&&(i.value||(a.onValueChange(n.value),a.multiple.value||a.onOpenChange(!1)))}async function g(e){await $n(),!e.defaultPrevented&&(i.value?o.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function _(e){await $n(),!e.defaultPrevented&&e.currentTarget===gp()&&o.onItemLeave?.()}async function v(e){await $n(),!e.defaultPrevented&&(o.searchRef?.value!==``&&e.key===` `||(ay.includes(e.key)&&m(e),e.key===` `&&e.preventDefault()))}if(n.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return Gi(()=>{c.value&&o.itemRefCallback(c.value,n.value,n.disabled)}),Dy({value:n.value,disabled:i,textId:p,isSelected:u,onItemTextChange:e=>{f.value=((f.value||e?.textContent)??``).trim()}}),(e,t)=>(z(),V(M(l),{value:{textValue:f.value}},{default:N(()=>[U(M(Km),{ref:M(s),role:`option`,"aria-labelledby":M(p),"data-highlighted":d.value?``:void 0,"aria-selected":u.value,"data-state":u.value?`checked`:`unchecked`,"aria-disabled":M(i)||void 0,"data-disabled":M(i)?``:void 0,tabindex:M(i)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>d.value=!0,onBlur:t[1]||=e=>d.value=!1,onPointerup:m,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=Jl(()=>{},[`prevent`,`stop`]),onPointermove:g,onPointerleave:_,onKeydown:v},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),ky=F({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=Ey();return(e,r)=>M(n).isSelected.value?(z(),V(M(Km),K({key:0,"aria-hidden":`true`},t),{default:N(()=>[L(e.$slots,`default`)]),_:3},16)):G(`v-if`,!0)}}),Ay=F({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=uy(),r=gy(),i=Ey(),{forwardRef:a,currentElement:o}=Y(),s=q(()=>({value:i.value,disabled:i.disabled.value,textContent:o.value?.textContent??i.value?.toString()??``}));return Gi(()=>{o.value&&(i.onItemTextChange(o.value),r.itemTextRefCallback(o.value,i.value,i.disabled.value),n.onOptionAdd(s.value))}),Yi(()=>{n.onOptionRemove(s.value)}),(e,n)=>(z(),V(M(Km),K({id:M(i).textId,ref:M(a)},{...t,...e.$attrs}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`id`]))}}),jy=F({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(Ih),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),My=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=uy(),{forwardRef:r,currentElement:i}=Y(),a=q(()=>n.disabled?.value||t.disabled);n.contentId||=Fm(void 0,`reka-select-content`),Gi(()=>{n.onTriggerChange(i.value)});let{getItems:o}=Bh(),{search:s,handleTypeaheadSearch:c,resetTypeahead:l}=Rm();function u(){a.value||(n.onOpenChange(!0),l())}function d(e){u(),n.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,t)=>(z(),V(M(eg),{"as-child":``,reference:e.reference},{default:N(()=>[U(M(Km),{ref:M(r),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":M(n).contentId,"aria-expanded":M(n).open.value||!1,"aria-required":M(n).required?.value,"aria-autocomplete":`none`,disabled:a.value,dir:M(n)?.dir.value,"data-state":M(n)?.open.value?`open`:`closed`,"data-disabled":a.value?``:void 0,"data-placeholder":M(cy)(M(n).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:t[0]||=e=>{(e?.currentTarget)?.focus()},onPointerdown:t[1]||=e=>{if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&(d(e),e.preventDefault())},onPointerup:t[2]||=Jl(e=>{e.pointerType===`touch`&&d(e)},[`prevent`]),onKeydown:t[3]||=e=>{let t=M(s)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&t&&e.key===` `||(M(c)(e.key,M(o)()),M(iy).includes(e.key)&&(u(),e.preventDefault()))}},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),Ny=F({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=Y(),i=uy();Gi(()=>{i.valueElement=r});let a=q(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>oy(e,t.value,i.by));return e=Array.isArray(i.modelValue.value)?i.modelValue.value.map(e=>n(e)?.textContent??``):[n(i.modelValue.value)?.textContent??``],e.filter(Boolean)}),o=q(()=>a.value.length?a.value.join(`, `):t.placeholder);return(e,r)=>(z(),V(M(Km),{ref:M(n),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":a.value.length?void 0:t.placeholder},{default:N(()=>[L(e.$slots,`default`,{selectedLabel:a.value,modelValue:M(i).modelValue.value},()=>[W(A(o.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),Py=F({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{nonce:n}=bn(t),r=pv(n),i=gy(),a=i.position===`item-aligned`?yy():void 0,{forwardRef:o,currentElement:s}=Y();Gi(()=>{i?.onViewportChange(s.value)});let c=j(0);function l(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=a??{};if(n?.value&&r?.value){let e=Math.abs(c.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}c.value=t.scrollTop}return(e,n)=>(z(),B(R,null,[U(M(Km),K({ref:M(o),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...t},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:l}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16),U(M(Km),{as:`style`,nonce:M(r)},{default:N(()=>n[0]||=[W(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),[Fy,Iy]=hp(`SwitchRoot`),Ly=F({__name:`SwitchRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:`on`},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{disabled:i}=bn(n),a=Jp(n,`modelValue`,r,{defaultValue:n.defaultValue??n.falseValue,passive:n.modelValue===void 0}),o=q(()=>a.value===n.trueValue);function s(){i.value||(a.value=o.value?n.falseValue:n.trueValue)}let{forwardRef:c,currentElement:l}=Y(),u=mm(l),d=q(()=>n.id&&l.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return Iy({checked:o,toggleCheck:s,disabled:i}),(e,t)=>(z(),V(M(Km),K(e.$attrs,{id:e.id,ref:M(c),role:`switch`,type:e.as===`button`?`button`:void 0,value:e.value,"aria-label":e.$attrs[`aria-label`]||d.value,"aria-checked":o.value,"aria-required":e.required,"data-state":o.value?`checked`:`unchecked`,"data-disabled":M(i)?``:void 0,"as-child":e.asChild,as:e.as,disabled:M(i),onClick:s,onKeydown:Xl(Jl(s,[`prevent`]),[`enter`])}),{default:N(()=>[L(e.$slots,`default`,{modelValue:M(a),checked:o.value}),M(u)&&e.name?(z(),V(M(Uh),{key:0,type:`checkbox`,name:e.name,disabled:M(i),required:e.required,value:e.value,checked:o.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):G(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),Ry=F({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=Fy();return Y(),(e,n)=>(z(),V(M(Km),{"data-state":M(t).checked.value?`checked`:`unchecked`,"data-disabled":M(t).disabled.value?``:void 0,"as-child":e.asChild,as:e.as},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),[zy,By]=hp(`TabsRoot`),Vy=F({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{orientation:i,unmountOnHide:a,dir:o}=bn(n),s=lm(o);Y();let c=Jp(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),l=j(),u=dn(new Set);return By({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:Fm(void 0,`reka-tabs`),tabsList:l,contentIds:u,registerContent:e=>{u.value=new Set([...u.value,e])},unregisterContent:e=>{let t=new Set(u.value);t.delete(e),u.value=t}}),(e,t)=>(z(),V(M(Km),{dir:M(s),"data-orientation":M(i),"as-child":e.asChild,as:e.as},{default:N(()=>[L(e.$slots,`default`,{modelValue:M(c)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function Hy(e,t){return`${e}-trigger-${t}`}function Uy(e,t){return`${e}-content-${t}`}var Wy=F({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:t}=bn(e),{forwardRef:n,currentElement:r}=Y(),i=zy();return i.tabsList=r,(e,r)=>(z(),V(M(gv),{"as-child":``,orientation:M(i).orientation.value,dir:M(i).dir.value,loop:M(t)},{default:N(()=>[U(M(Km),{ref:M(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":M(i).orientation.value},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),Gy=F({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n}=Y(),r=zy(),i=q(()=>Hy(r.baseId,t.value)),a=q(()=>r.contentIds.value.has(t.value)?Uy(r.baseId,t.value):void 0),o=q(()=>t.value===r.modelValue.value);return(e,t)=>(z(),V(M(_v),{"as-child":``,focusable:!e.disabled,active:o.value},{default:N(()=>[U(M(Km),{id:i.value,ref:M(n),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":o.value?`true`:`false`,"aria-controls":a.value,"data-state":o.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":M(r).orientation.value,onMousedown:t[0]||=Jl(t=>{!e.disabled&&t.ctrlKey===!1?M(r).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=Xl(t=>M(r).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=M(r).activationMode!==`manual`;!o.value&&!e.disabled&&t&&M(r).changeModelValue(e.value)}},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),[Ky,qy]=hp(`TooltipProvider`),Jy=F({inheritAttrs:!1,__name:`TooltipProvider`,props:{delayDuration:{type:Number,required:!1,default:700},skipDelayDuration:{type:Number,required:!1,default:300},disableHoverableContent:{type:Boolean,required:!1,default:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:!1},content:{type:Object,required:!1}},setup(e){let{delayDuration:t,skipDelayDuration:n,disableHoverableContent:r,disableClosingTrigger:i,ignoreNonKeyboardFocus:a,disabled:o,content:s}=bn(e);Y();let c=j(!0),l=j(!1),{start:u,stop:d}=Lp(()=>{c.value=!0},n,{immediate:!1});return qy({isOpenDelayed:c,delayDuration:t,onOpen(){d(),c.value=!1},onClose(){u()},isPointerInTransitRef:l,disableHoverableContent:r,disableClosingTrigger:i,disabled:o,ignoreNonKeyboardFocus:a,content:s}),(e,t)=>L(e.$slots,`default`)}}),Yy=`tooltip.open`,[Xy,Zy]=hp(`TooltipRoot`),Qy=F({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;Y();let i=Ky(),a=q(()=>n.disableHoverableContent??i.disableHoverableContent.value),o=q(()=>n.disableClosingTrigger??i.disableClosingTrigger.value),s=q(()=>n.disabled??i.disabled.value),c=q(()=>n.delayDuration??i.delayDuration.value),l=q(()=>n.ignoreNonKeyboardFocus??i.ignoreNonKeyboardFocus.value),u=Jp(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});P(u,e=>{i.onClose&&(e?(i.onOpen(),document.dispatchEvent(new CustomEvent(Yy))):i.onClose())});let d=j(!1),f=j(),p=q(()=>u.value?d.value?`delayed-open`:`instant-open`:`closed`),{start:m,stop:h}=Lp(()=>{d.value=!0,u.value=!0},c,{immediate:!1});function g(){h(),d.value=!1,u.value=!0}function _(){h(),u.value=!1}function v(){m()}return Zy({contentId:``,open:u,stateAttribute:p,trigger:f,onTriggerChange(e){f.value=e},onTriggerEnter(){i.isOpenDelayed.value?v():g()},onTriggerLeave(){a.value?_():h()},onOpen:g,onClose:_,disableHoverableContent:a,disableClosingTrigger:o,disabled:s,ignoreNonKeyboardFocus:l}),(e,t)=>(z(),V(M($h),null,{default:N(()=>[L(e.$slots,`default`,{open:M(u)})]),_:3}))}}),$y=F({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=Xy(),a=Ky(),{forwardRef:o,currentElement:s}=Y(),c=q(()=>n.ariaLabel||s.value?.textContent),l=q(()=>{let{ariaLabel:e,...t}=n;return im(t,a.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return Gi(()=>{Vp(window,`scroll`,e=>{e.target?.contains(i.trigger.value)&&i.onClose()},{capture:!0}),Vp(window,Yy,i.onClose)}),(e,t)=>(z(),V(M(ih),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:t[0]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[1]||=e=>{M(i).disableClosingTrigger.value&&M(i).trigger.value?.contains(e.target)&&e.preventDefault(),r(`pointerDownOutside`,e)},onFocusOutside:t[2]||=Jl(()=>{},[`prevent`]),onDismiss:t[3]||=e=>M(i).onClose()},{default:N(()=>[U(M(fv),K({ref:M(o),"data-state":M(i).stateAttribute.value},{...e.$attrs,...l.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:N(()=>[L(e.$slots,`default`),U(M(Vh),{id:M(i).contentId,role:`tooltip`},{default:N(()=>[W(A(c.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),eb=F({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=hm(e),{forwardRef:n,currentElement:r}=Y(),{trigger:i,onClose:a}=Xy(),o=Ky(),{isPointerInTransit:s,onPointerExit:c}=_m(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(z(),V($y,K({ref:M(n)},M(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),tb=F({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=Xy(),a=gm(n,r),{forwardRef:o}=Y();return(e,t)=>(z(),V(M(Um),{present:e.forceMount||M(i).open.value},{default:N(()=>[(z(),V(ia(M(i).disableHoverableContent.value?$y:eb),K({ref:M(o)},M(a)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),nb=F({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(z(),V(M(Ih),be(hs(t)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16))}}),rb=F({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Xy(),r=Ky();n.contentId||=Fm(void 0,`reka-tooltip-content`);let{forwardRef:i,currentElement:a}=Y(),o=j(!1),s=j(!1),c=q(()=>n.disabled.value?{}:{click:h,focus:p,pointermove:d,pointerleave:f,pointerdown:u,blur:m});Gi(()=>{n.onTriggerChange(a.value)});function l(){setTimeout(()=>{o.value=!1},1)}function u(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),o.value=!0,document.addEventListener(`pointerup`,l,{once:!0})}function d(e){e.pointerType!==`touch`&&!s.value&&!r.isPointerInTransitRef.value&&(n.onTriggerEnter(),s.value=!0)}function f(){n.onTriggerLeave(),s.value=!1}function p(e){o.value||n.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||n.onOpen()}function m(){n.onClose()}function h(){n.disableClosingTrigger.value||n.onClose()}return(e,r)=>(z(),V(M(eg),{"as-child":``,reference:e.reference},{default:N(()=>[U(M(Km),K({ref:M(i),"aria-describedby":M(n).open.value?M(n).contentId:void 0,"data-state":M(n).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},ua(c.value)),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),ib=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},ab=(e,t)=>({classGroupId:e,validator:t}),ob=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),sb=`-`,cb=[],lb=`arbitrary..`,ub=e=>{let t=pb(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return fb(e);let n=e.split(sb);return db(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?ib(i,t):t:i||cb}return n[e]||cb}}},db=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=db(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(sb):e.slice(t).join(sb),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},fb=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?lb+r:void 0})(),pb=e=>{let{theme:t,classGroups:n}=e;return mb(n,t)},mb=(e,t)=>{let n=ob();for(let r in e){let i=e[r];hb(i,n,r,t)}return n},hb=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];gb(i,t,n,r)}},gb=(e,t,n,r)=>{if(typeof e==`string`){_b(e,t,n);return}if(typeof e==`function`){vb(e,t,n,r);return}yb(e,t,n,r)},_b=(e,t,n)=>{let r=e===``?t:bb(t,e);r.classGroupId=n},vb=(e,t,n,r)=>{if(xb(e)){hb(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(ab(n,e))},yb=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];hb(o,bb(t,a),n,r)}},bb=(e,t)=>{let n=e,r=t.split(sb),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=ob(),n.nextPart.set(t,i)),n=i}return n},xb=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Sb=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},Cb=`!`,wb=`:`,Tb=[],Eb=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Db=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===wb){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(Cb)?(c=s.slice(0,-1),l=!0):s.startsWith(Cb)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return Eb(t,l,c,u)};if(t){let e=t+wb,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):Eb(Tb,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Ob=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},kb=e=>({cache:Sb(e.cacheSize),parseClassName:Db(e),sortModifiers:Ob(e),postfixLookupClassGroupIds:Ab(e),...ub(e)}),Ab=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},jb=/\s+/,Mb=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(jb),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+Cb:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},Nb=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Pb(n))&&(i&&(i+=` `),i+=r);return i},Pb=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Pb(e[r]))&&(n&&(n+=` `),n+=t);return n},Fb=(e,...t)=>{let n,r,i,a,o=o=>(n=kb(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=Mb(e,n);return i(e,a),a};return a=o,(...e)=>a(Nb(...e))},Ib=[],Lb=e=>{let t=t=>t[e]||Ib;return t.isThemeGetter=!0,t},Rb=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,zb=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Bb=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Vb=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Hb=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ub=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Wb=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Gb=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Kb=e=>Bb.test(e),qb=e=>!!e&&!Number.isNaN(Number(e)),Jb=e=>!!e&&Number.isInteger(Number(e)),Yb=e=>e.endsWith(`%`)&&qb(e.slice(0,-1)),Xb=e=>Vb.test(e),Zb=()=>!0,Qb=e=>Hb.test(e)&&!Ub.test(e),$b=()=>!1,ex=e=>Wb.test(e),tx=e=>Gb.test(e),nx=e=>!X(e)&&!Z(e),rx=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),ix=e=>yx(e,Cx,$b),X=e=>Rb.test(e),ax=e=>yx(e,wx,Qb),ox=e=>yx(e,Tx,qb),sx=e=>yx(e,Dx,Zb),cx=e=>yx(e,Ex,$b),lx=e=>yx(e,xx,$b),ux=e=>yx(e,Sx,tx),dx=e=>yx(e,Ox,ex),Z=e=>zb.test(e),fx=e=>bx(e,wx),px=e=>bx(e,Ex),mx=e=>bx(e,xx),hx=e=>bx(e,Cx),gx=e=>bx(e,Sx),_x=e=>bx(e,Ox,!0),vx=e=>bx(e,Dx,!0),yx=(e,t,n)=>{let r=Rb.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},bx=(e,t,n=!1)=>{let r=zb.exec(e);return r?r[1]?t(r[1]):n:!1},xx=e=>e===`position`||e===`percentage`,Sx=e=>e===`image`||e===`url`,Cx=e=>e===`length`||e===`size`||e===`bg-size`,wx=e=>e===`length`,Tx=e=>e===`number`,Ex=e=>e===`family-name`,Dx=e=>e===`number`||e===`weight`,Ox=e=>e===`shadow`,kx=Fb(()=>{let e=Lb(`color`),t=Lb(`font`),n=Lb(`text`),r=Lb(`font-weight`),i=Lb(`tracking`),a=Lb(`leading`),o=Lb(`breakpoint`),s=Lb(`container`),c=Lb(`spacing`),l=Lb(`radius`),u=Lb(`shadow`),d=Lb(`inset-shadow`),f=Lb(`text-shadow`),p=Lb(`drop-shadow`),m=Lb(`blur`),h=Lb(`perspective`),g=Lb(`aspect`),_=Lb(`ease`),v=Lb(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),Z,X],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[Z,X,c],T=()=>[Kb,`full`,`auto`,...w()],ee=()=>[Jb,`none`,`subgrid`,Z,X],E=()=>[`auto`,{span:[`full`,Jb,Z,X]},Jb,Z,X],te=()=>[Jb,`auto`,Z,X],ne=()=>[`auto`,`min`,`max`,`fr`,Z,X],re=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],D=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],ie=()=>[`auto`,...w()],ae=()=>[Kb,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],oe=()=>[Kb,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],se=()=>[Kb,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],O=()=>[e,Z,X],ce=()=>[...b(),mx,lx,{position:[Z,X]}],le=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],ue=()=>[`auto`,`cover`,`contain`,hx,ix,{size:[Z,X]}],de=()=>[Yb,fx,ax],fe=()=>[``,`none`,`full`,l,Z,X],pe=()=>[``,qb,fx,ax],me=()=>[`solid`,`dashed`,`dotted`,`double`],he=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],ge=()=>[qb,Yb,mx,lx],_e=()=>[``,`none`,m,Z,X],ve=()=>[`none`,qb,Z,X],ye=()=>[`none`,qb,Z,X],k=()=>[qb,Z,X],be=()=>[Kb,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[Xb],breakpoint:[Xb],color:[Zb],container:[Xb],"drop-shadow":[Xb],ease:[`in`,`out`,`in-out`],font:[nx],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[Xb],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[Xb],shadow:[Xb],spacing:[`px`,qb],text:[Xb],"text-shadow":[Xb],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,Kb,X,Z,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Z,X]}],"container-named":[rx],columns:[{columns:[qb,X,Z,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[Jb,`auto`,Z,X]}],basis:[{basis:[Kb,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[qb,Kb,`auto`,`initial`,`none`,X]}],grow:[{grow:[``,qb,Z,X]}],shrink:[{shrink:[``,qb,Z,X]}],order:[{order:[Jb,`first`,`last`,`none`,Z,X]}],"grid-cols":[{"grid-cols":ee()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":te()}],"col-end":[{"col-end":te()}],"grid-rows":[{"grid-rows":ee()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":te()}],"row-end":[{"row-end":te()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":ne()}],"auto-rows":[{"auto-rows":ne()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...re(),`normal`]}],"justify-items":[{"justify-items":[...D(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...D()]}],"align-content":[{content:[`normal`,...re()]}],"align-items":[{items:[...D(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...D(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":re()}],"place-items":[{"place-items":[...D(),`baseline`]}],"place-self":[{"place-self":[`auto`,...D()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:ie()}],mx:[{mx:ie()}],my:[{my:ie()}],ms:[{ms:ie()}],me:[{me:ie()}],mbs:[{mbs:ie()}],mbe:[{mbe:ie()}],mt:[{mt:ie()}],mr:[{mr:ie()}],mb:[{mb:ie()}],ml:[{ml:ie()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:ae()}],"inline-size":[{inline:[`auto`,...oe()]}],"min-inline-size":[{"min-inline":[`auto`,...oe()]}],"max-inline-size":[{"max-inline":[`none`,...oe()]}],"block-size":[{block:[`auto`,...se()]}],"min-block-size":[{"min-block":[`auto`,...se()]}],"max-block-size":[{"max-block":[`none`,...se()]}],w:[{w:[s,`screen`,...ae()]}],"min-w":[{"min-w":[s,`screen`,`none`,...ae()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...ae()]}],h:[{h:[`screen`,`lh`,...ae()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...ae()]}],"max-h":[{"max-h":[`screen`,`lh`,...ae()]}],"font-size":[{text:[`base`,n,fx,ax]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,vx,sx]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Yb,X]}],"font-family":[{font:[px,cx,t]}],"font-features":[{"font-features":[X]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Z,X]}],"line-clamp":[{"line-clamp":[qb,`none`,Z,ox]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,Z,X]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Z,X]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...me(),`wavy`]}],"text-decoration-thickness":[{decoration:[qb,`from-font`,`auto`,Z,ax]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[qb,`auto`,Z,X]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[Jb,Z,X]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Z,X]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Z,X]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:ce()}],"bg-repeat":[{bg:le()}],"bg-size":[{bg:ue()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},Jb,Z,X],radial:[``,Z,X],conic:[Jb,Z,X]},gx,ux]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:de()}],"gradient-via-pos":[{via:de()}],"gradient-to-pos":[{to:de()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:fe()}],"rounded-s":[{"rounded-s":fe()}],"rounded-e":[{"rounded-e":fe()}],"rounded-t":[{"rounded-t":fe()}],"rounded-r":[{"rounded-r":fe()}],"rounded-b":[{"rounded-b":fe()}],"rounded-l":[{"rounded-l":fe()}],"rounded-ss":[{"rounded-ss":fe()}],"rounded-se":[{"rounded-se":fe()}],"rounded-ee":[{"rounded-ee":fe()}],"rounded-es":[{"rounded-es":fe()}],"rounded-tl":[{"rounded-tl":fe()}],"rounded-tr":[{"rounded-tr":fe()}],"rounded-br":[{"rounded-br":fe()}],"rounded-bl":[{"rounded-bl":fe()}],"border-w":[{border:pe()}],"border-w-x":[{"border-x":pe()}],"border-w-y":[{"border-y":pe()}],"border-w-s":[{"border-s":pe()}],"border-w-e":[{"border-e":pe()}],"border-w-bs":[{"border-bs":pe()}],"border-w-be":[{"border-be":pe()}],"border-w-t":[{"border-t":pe()}],"border-w-r":[{"border-r":pe()}],"border-w-b":[{"border-b":pe()}],"border-w-l":[{"border-l":pe()}],"divide-x":[{"divide-x":pe()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":pe()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...me(),`hidden`,`none`]}],"divide-style":[{divide:[...me(),`hidden`,`none`]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-bs":[{"border-bs":O()}],"border-color-be":[{"border-be":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...me(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[qb,Z,X]}],"outline-w":[{outline:[``,qb,fx,ax]}],"outline-color":[{outline:O()}],shadow:[{shadow:[``,`none`,u,_x,dx]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":[`none`,d,_x,dx]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:pe()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[qb,ax]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":pe()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":[`none`,f,_x,dx]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[qb,Z,X]}],"mix-blend":[{"mix-blend":[...he(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[qb]}],"mask-image-linear-from-pos":[{"mask-linear-from":ge()}],"mask-image-linear-to-pos":[{"mask-linear-to":ge()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":ge()}],"mask-image-t-to-pos":[{"mask-t-to":ge()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":ge()}],"mask-image-r-to-pos":[{"mask-r-to":ge()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":ge()}],"mask-image-b-to-pos":[{"mask-b-to":ge()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":ge()}],"mask-image-l-to-pos":[{"mask-l-to":ge()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":ge()}],"mask-image-x-to-pos":[{"mask-x-to":ge()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":ge()}],"mask-image-y-to-pos":[{"mask-y-to":ge()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[Z,X]}],"mask-image-radial-from-pos":[{"mask-radial-from":ge()}],"mask-image-radial-to-pos":[{"mask-radial-to":ge()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[qb]}],"mask-image-conic-from-pos":[{"mask-conic-from":ge()}],"mask-image-conic-to-pos":[{"mask-conic-to":ge()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:ce()}],"mask-repeat":[{mask:le()}],"mask-size":[{mask:ue()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Z,X]}],filter:[{filter:[``,`none`,Z,X]}],blur:[{blur:_e()}],brightness:[{brightness:[qb,Z,X]}],contrast:[{contrast:[qb,Z,X]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,_x,dx]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:[``,qb,Z,X]}],"hue-rotate":[{"hue-rotate":[qb,Z,X]}],invert:[{invert:[``,qb,Z,X]}],saturate:[{saturate:[qb,Z,X]}],sepia:[{sepia:[``,qb,Z,X]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Z,X]}],"backdrop-blur":[{"backdrop-blur":_e()}],"backdrop-brightness":[{"backdrop-brightness":[qb,Z,X]}],"backdrop-contrast":[{"backdrop-contrast":[qb,Z,X]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,qb,Z,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[qb,Z,X]}],"backdrop-invert":[{"backdrop-invert":[``,qb,Z,X]}],"backdrop-opacity":[{"backdrop-opacity":[qb,Z,X]}],"backdrop-saturate":[{"backdrop-saturate":[qb,Z,X]}],"backdrop-sepia":[{"backdrop-sepia":[``,qb,Z,X]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Z,X]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[qb,`initial`,Z,X]}],ease:[{ease:[`linear`,`initial`,_,Z,X]}],delay:[{delay:[qb,Z,X]}],animate:[{animate:[`none`,v,Z,X]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,Z,X]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:ve()}],"rotate-x":[{"rotate-x":ve()}],"rotate-y":[{"rotate-y":ve()}],"rotate-z":[{"rotate-z":ve()}],scale:[{scale:ye()}],"scale-x":[{"scale-x":ye()}],"scale-y":[{"scale-y":ye()}],"scale-z":[{"scale-z":ye()}],"scale-3d":[`scale-3d`],skew:[{skew:k()}],"skew-x":[{"skew-x":k()}],"skew-y":[{"skew-y":k()}],transform:[{transform:[Z,X,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:be()}],"translate-x":[{"translate-x":be()}],"translate-y":[{"translate-y":be()}],"translate-z":[{"translate-z":be()}],"translate-none":[`translate-none`],zoom:[{zoom:[Jb,Z,X]}],accent:[{accent:O()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:O()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Z,X]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":O()}],"scrollbar-track-color":[{"scrollbar-track":O()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Z,X]}],fill:[{fill:[`none`,...O()]}],"stroke-w":[{stroke:[qb,fx,ax,ox]}],stroke:[{stroke:[`none`,...O()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function Ax(...e){return kx(sp(e))}var Q=F({__name:`Button`,props:{variant:{},size:{},class:{},asChild:{type:Boolean},as:{default:`button`}},setup(e){let t=e;return(n,r)=>(z(),V(M(Km),{as:e.as,"as-child":e.asChild,class:k(M(Ax)(M(jx)({variant:e.variant,size:e.size}),t.class))},{default:N(()=>[L(n.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}}),jx=up(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,destructive:`bg-destructive text-white hover:bg-destructive/90`},size:{sm:`h-8 rounded-md px-3 text-xs`,default:`h-9 px-4 py-2`,icon:`size-9`}},defaultVariants:{variant:`default`,size:`default`}}),Mx=F({__name:`Input`,props:Oa({class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=Xa(e,`modelValue`);return(e,n)=>_r((z(),B(`input`,{"onUpdate:modelValue":n[0]||=e=>t.value=e,class:k(M(Ax)(`flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`,e.$props.class))},null,2)),[[Pl,t.value]])}}),Nx=F({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=hm(t);return(e,r)=>(z(),V(M(My),K(M(n),{class:M(Ax)(`flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,t.class)}),{default:N(()=>[L(e.$slots,`default`),U(M(Ty),{"as-child":``},{default:N(()=>[U(M(Eu),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`class`]))}}),Px=F({__name:`SelectContent`,props:{forceMount:{type:Boolean},position:{default:`popper`},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=gm(n,t);return(t,i)=>(z(),V(M(jy),null,{default:N(()=>[U(M(wy),K(M(r),{class:M(Ax)(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,e.position===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`,n.class)}),{default:N(()=>[U(M(Py),{class:k(M(Ax)(`p-1`,e.position===`popper`&&`h-[var(--reka-select-trigger-height)] w-full min-w-[var(--reka-select-trigger-width)]`))},{default:N(()=>[L(t.$slots,`default`)]),_:3},8,[`class`])]),_:3},16,[`class`])]),_:3}))}}),Fx={class:`absolute left-2 flex size-3.5 items-center justify-center`},Ix=F({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=hm(t);return(e,r)=>(z(),V(M(Oy),K(M(n),{class:M(Ax)(`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,t.class)}),{default:N(()=>[H(`span`,Fx,[U(M(ky),null,{default:N(()=>[U(M(Tu),{class:`size-4`})]),_:1})]),U(M(Ay),null,{default:N(()=>[L(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),Lx=F({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(M(Wy),K(t,{class:M(Ax)(`inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground`,t.class)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),Rx=F({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=hm(t);return(e,r)=>(z(),V(M(Gy),K(M(n),{class:M(Ax)(`inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow`,t.class)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),zx=F({__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=gm(n,t);return(e,t)=>(z(),V(M(Kv),null,{default:N(()=>[U(M(Gv),K(M(r),{class:M(Ax)(`z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,n.class)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),Bx=F({__name:`Badge`,props:{variant:{},class:{}},setup(e){return(t,n)=>(z(),B(`span`,{class:k(M(Ax)(M(Vx)({variant:e.variant}),t.$props.class))},[L(t.$slots,`default`)],2))}}),Vx=up(`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground`,secondary:`border-transparent bg-secondary text-secondary-foreground`,outline:`text-foreground`,destructive:`border-transparent bg-destructive text-white`,source:`border-transparent bg-state-source/15 text-state-source`,machine:`border-transparent bg-state-machine/15 text-state-machine`,reviewed:`border-transparent bg-state-reviewed/15 text-state-reviewed`,"needs-review":`border-transparent bg-state-needs-review/15 text-state-needs-review`}},defaultVariants:{variant:`default`}}),Hx=F({__name:`Switch`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},id:{},value:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=gm(n,t);return(e,t)=>(z(),V(M(Ly),K(M(r),{class:M(Ax)(`peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,n.class)}),{default:N(()=>[U(M(Ry),{class:`pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`})]),_:1},16,[`class`]))}}),Ux={class:`flex flex-col gap-3`},Wx=[`aria-checked`,`onClick`],Gx=[`aria-checked`],Kx=[`aria-checked`,`disabled`],qx={key:0,class:`ml-[30px] text-[11px] text-muted-foreground`},Jx=[`aria-checked`],Yx={class:`border-t pt-2`},Xx=[`aria-checked`,`onClick`],Zx={class:`border-t pt-2`},Qx=[`aria-checked`],$x={class:`border-t pt-2`},eS=[`aria-checked`,`disabled`,`onClick`],tS={class:`truncate`},nS=F({__name:`FilterMenu`,props:{states:{},issues:{},enabled:{},plurality:{},emptySource:{type:Boolean},aiContextUnreviewed:{type:Boolean},noUsages:{type:Boolean},skipTranslate:{type:Boolean},scanIndexed:{type:Boolean}},emits:[`update:states`,`update:issues`,`update:enabled`,`update:plurality`,`update:emptySource`,`update:aiContextUnreviewed`,`update:noUsages`,`update:skipTranslate`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>new Set(n.enabled));function a(e){r(`update:states`,n.states.includes(e)?n.states.filter(t=>t!==e):[...n.states,e])}function o(e){r(`update:plurality`,n.plurality.includes(e)?n.plurality.filter(t=>t!==e):[...n.plurality,e])}function s(e){i.value.has(e)&&r(`update:issues`,n.issues.includes(e)?n.issues.filter(t=>t!==e):[...n.issues,e])}function c(e,t){t?i.value.has(e)||r(`update:enabled`,[...n.enabled,e]):(r(`update:enabled`,n.enabled.filter(t=>t!==e)),n.issues.includes(e)&&r(`update:issues`,n.issues.filter(t=>t!==e)))}return(t,n)=>(z(),B(`div`,Ux,[H(`div`,null,[n[7]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Status`,-1),(z(!0),B(R,null,I(M(Bf),t=>(z(),B(`button`,{key:t,type:`button`,role:`checkbox`,"aria-checked":e.states.includes(t),class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:e=>a(t)},[H(`span`,{class:k([`flex size-4 items-center justify-center rounded border transition-colors`,e.states.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.states.includes(t)?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),W(` `+A(M(Uf)[t]),1)],8,Wx))),128)),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.emptySource,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[0]||=t=>r(`update:emptySource`,!e.emptySource)},[H(`span`,{class:k([`flex size-4 items-center justify-center rounded border transition-colors`,e.emptySource?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.emptySource?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),n[4]||=W(` Empty source `,-1)],8,Gx),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.noUsages,disabled:!e.scanIndexed,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm enabled:hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50`,onClick:n[1]||=t=>r(`update:noUsages`,!e.noUsages)},[H(`span`,{class:k([`flex size-4 items-center justify-center rounded border transition-colors`,e.noUsages?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.noUsages?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),n[5]||=W(` Unused `,-1)],8,Kx),e.scanIndexed?G(``,!0):(z(),B(`p`,qx,`Run a scan first`)),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.skipTranslate,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[2]||=t=>r(`update:skipTranslate`,!e.skipTranslate)},[H(`span`,{class:k([`flex size-4 items-center justify-center rounded border transition-colors`,e.skipTranslate?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.skipTranslate?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),n[6]||=W(` Skip-translate `,-1)],8,Jx)]),H(`div`,Yx,[n[8]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Type`,-1),(z(!0),B(R,null,I(M(Vf),t=>(z(),B(`button`,{key:t,type:`button`,role:`checkbox`,"aria-checked":e.plurality.includes(t),class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:e=>o(t)},[H(`span`,{class:k([`flex size-4 items-center justify-center rounded border transition-colors`,e.plurality.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.plurality.includes(t)?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),W(` `+A(M(Wf)[t]),1)],8,Xx))),128))]),H(`div`,Zx,[n[10]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Context`,-1),H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.aiContextUnreviewed,class:`flex w-full items-center gap-2 rounded px-1.5 py-1 text-sm hover:bg-accent`,onClick:n[3]||=t=>r(`update:aiContextUnreviewed`,!e.aiContextUnreviewed)},[H(`span`,{class:k([`flex size-4 items-center justify-center rounded border transition-colors`,e.aiContextUnreviewed?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.aiContextUnreviewed?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),U(M(pd),{class:`size-3.5 text-muted-foreground`}),n[9]||=W(` AI context (unreviewed) `,-1)],8,Qx)]),H(`div`,$x,[n[11]||=H(`p`,{class:`mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Issues`,-1),n[12]||=H(`p`,{class:`mb-1.5 text-[11px] text-muted-foreground`},`Toggle a check to run it; tick its box to filter by it.`,-1),(z(!0),B(R,null,I(M(Rf),t=>(z(),B(`div`,{key:t,class:`flex items-center gap-2 py-0.5`},[H(`button`,{type:`button`,role:`checkbox`,"aria-checked":e.issues.includes(t),class:`flex min-w-0 flex-1 items-center gap-2 rounded px-1.5 py-1 text-sm disabled:opacity-50 enabled:hover:bg-accent`,disabled:!i.value.has(t),onClick:e=>s(t)},[H(`span`,{class:k([`flex size-4 shrink-0 items-center justify-center rounded border transition-colors`,e.issues.includes(t)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[e.issues.includes(t)?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),H(`span`,tS,A(M(Hf)[t]),1)],8,eS),U(M(Hx),{"model-value":i.value.has(t),"aria-label":`Enable ${M(Hf)[t]} check`,"onUpdate:modelValue":e=>c(t,e)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])]))),128))])]))}}),rS={class:`pointer-events-none fixed bottom-4 right-4 z-[200] flex w-80 flex-col gap-2`},iS=[`onClick`],aS=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(F({__name:`Toaster`,setup(e){let t=uS();return(e,n)=>(z(),V(Vr,{to:`body`},[H(`div`,rS,[U(Cl,{name:`toast`},{default:N(()=>[(z(!0),B(R,null,I(M(t).toasts,e=>(z(),B(`button`,{key:e.id,type:`button`,class:k(M(Ax)(`pointer-events-auto flex items-center rounded-md border bg-card px-4 py-3 text-left text-sm text-card-foreground shadow-lg`,e.variant===`success`&&`border-state-reviewed/50 text-state-reviewed`,e.variant===`error`&&`border-destructive/50 text-destructive`)),onClick:t=>M(lS)(e.id)},A(e.message),11,iS))),128))]),_:1})])]))}}),[[`__scopeId`,`data-v-e9967100`]]),oS=Xt({toasts:[]}),sS=0;function cS(e,t,n=4e3){let r=sS++;oS.toasts.push({id:r,message:e,variant:t}),window.setTimeout(()=>lS(r),n)}function lS(e){let t=oS.toasts.findIndex(t=>t.id===e);t!==-1&&oS.toasts.splice(t,1)}var $=Object.assign(e=>cS(e,`default`),{success:e=>cS(e,`success`),error:e=>cS(e,`error`)});function uS(){return oS}var dS=F({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(M(ry),{for:t.for,class:k(M(Ax)(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,t.class))},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`for`,`class`]))}}),fS=F({__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=gm(n,t);return(e,t)=>(z(),V(M(Lh),null,{default:N(()=>[U(M(Fh),{class:`fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`}),U(M(Mh),K(M(r),{class:M(Ax)(`fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg`,n.class)}),{default:N(()=>[L(e.$slots,`default`),U(M(Zm),{class:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`},{default:N(()=>[U(M(Sd),{class:`size-4`}),t[0]||=H(`span`,{class:`sr-only`},`Close`,-1)]),_:1})]),_:3},16,[`class`])]),_:3}))}}),pS=F({__name:`DialogHeader`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:k(M(Ax)(`flex flex-col gap-1.5 text-center sm:text-left`,e.$props.class))},[L(e.$slots,`default`)],2))}}),mS=F({__name:`DialogFooter`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`div`,{class:k(M(Ax)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e.$props.class))},[L(e.$slots,`default`)],2))}}),hS=F({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(M(Rh),{class:k(M(Ax)(`text-lg font-semibold leading-none tracking-tight`,t.class))},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),gS=F({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(M(Nh),{class:k(M(Ax)(`text-sm text-muted-foreground`,t.class))},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),_S=F({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean},loop:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=gm(n,t);return(e,t)=>(z(),V(M(ey),null,{default:N(()=>[U(M(Zv),K(M(r),{class:M(Ax)(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95`,n.class)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),vS=F({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=hm(t);return(e,r)=>(z(),V(M(Qv),K(M(n),{class:M(Ax)(`relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4`,t.class)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`class`]))}}),yS=F({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(M($v),{class:k(M(Ax)(`px-2 py-1.5 text-sm font-semibold`,t.class))},{default:N(()=>[L(e.$slots,`default`)]),_:3},8,[`class`]))}}),bS=F({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e;return(e,n)=>(z(),V(M(ty),{class:k(M(Ax)(`-mx-1 my-1 h-px bg-border`,t.class))},null,8,[`class`]))}}),xS={class:`flex flex-wrap items-center gap-2`},SS={class:`grid gap-2`},CS={class:`flex flex-wrap gap-2`},wS=F({__name:`SelectionBar`,props:{keys:{},locales:{},scopeLabel:{},tagsOnSelection:{}},emits:[`changed`,`clear`,`translate`,`build-context`],setup(e,{emit:t}){let n=e,r=t,i=j(!1),a=j(!1),o=j(!1),s=j(!1),c=j(!1),l=j(``);P(s,e=>{e||(l.value=``)});async function u(e,t,n=!1){i.value=!0;try{await e(),$.success(t),r(`changed`),n&&r(`clear`),a.value=!1,o.value=!1,s.value=!1,c.value=!1}catch(e){$.error(e.message||`Bulk action failed`)}finally{i.value=!1}}let d=()=>u(()=>Od(n.keys,n.locales),`Cleared translations for ${n.keys.length} key${n.keys.length===1?``:`s`}`),f=()=>u(()=>kd(n.keys),`Deleted ${n.keys.length} key${n.keys.length===1?``:`s`}`,!0),p=e=>u(()=>Ad(n.keys,n.locales,e),`Marked ${n.keys.length} key${n.keys.length===1?``:`s`} ${e}`),m=e=>u(()=>jd(n.keys,{skipTranslate:e}),e?`Marked skip-translate`:`Cleared skip-translate`),h=()=>{let e=l.value.trim();if(!(!e||i.value))return u(()=>jd(n.keys,{addTags:[e]}),`Added tag "${e}"`).then(()=>l.value=``)},g=e=>u(()=>jd(n.keys,{removeTags:[e]}),`Removed tag "${e}"`);return(t,n)=>(z(),B(`div`,xS,[U(M(Q),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-clear-trigger`,disabled:i.value||!e.keys.length,onClick:n[0]||=e=>a.value=!0},{default:N(()=>[U(M(Iu),{class:`size-4`}),n[19]||=W(` Clear translations `,-1)]),_:1},8,[`disabled`]),U(M(Q),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-translate`,disabled:i.value||!e.keys.length,onClick:n[1]||=e=>r(`translate`)},{default:N(()=>[U(M(pd),{class:`size-4`}),n[20]||=W(` Translate `,-1)]),_:1},8,[`disabled`]),U(M(Q),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-build-context`,disabled:i.value||!e.keys.length,onClick:n[2]||=e=>r(`build-context`)},{default:N(()=>[U(M(xd),{class:`size-4`}),n[21]||=W(` Build context `,-1)]),_:1},8,[`disabled`]),U(M(Xv),null,{default:N(()=>[U(M(ny),{"as-child":``},{default:N(()=>[U(M(Q),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5`,"data-testid":`bulk-set-trigger`,disabled:i.value||!e.keys.length},{default:N(()=>[n[22]||=W(` Set `,-1),U(M(Eu),{class:`size-4`})]),_:1},8,[`disabled`])]),_:1}),U(M(_S),{align:`end`,class:`w-52`},{default:N(()=>[U(M(yS),null,{default:N(()=>[W(`Status · `+A(e.scopeLabel),1)]),_:1}),U(M(vS),{"data-testid":`bulk-mark-reviewed`,onSelect:n[3]||=e=>p(`reviewed`)},{default:N(()=>[...n[23]||=[W(`Mark reviewed`,-1)]]),_:1}),U(M(vS),{"data-testid":`bulk-mark-needs-review`,onSelect:n[4]||=e=>p(`needs-review`)},{default:N(()=>[...n[24]||=[W(`Mark needs-review`,-1)]]),_:1}),U(M(bS)),U(M(yS),null,{default:N(()=>[...n[25]||=[W(`Tags · key`,-1)]]),_:1}),U(M(vS),{onSelect:n[5]||=e=>s.value=!0},{default:N(()=>[...n[26]||=[W(`Add tag…`,-1)]]),_:1}),U(M(vS),{disabled:!e.tagsOnSelection.length,onSelect:n[6]||=e=>c.value=!0},{default:N(()=>[...n[27]||=[W(`Remove tag…`,-1)]]),_:1},8,[`disabled`]),U(M(bS)),U(M(yS),null,{default:N(()=>[...n[28]||=[W(`Translation · key`,-1)]]),_:1}),U(M(vS),{onSelect:n[7]||=e=>m(!0)},{default:N(()=>[...n[29]||=[W(`Skip translate`,-1)]]),_:1}),U(M(vS),{onSelect:n[8]||=e=>m(!1)},{default:N(()=>[...n[30]||=[W(`Don't skip`,-1)]]),_:1})]),_:1})]),_:1}),U(M(Q),{variant:`ghost`,size:`sm`,class:`h-8 gap-1.5 text-destructive hover:bg-destructive/10 hover:text-destructive`,"data-testid":`bulk-delete-trigger`,disabled:i.value||!e.keys.length,onClick:n[9]||=e=>o.value=!0},{default:N(()=>[U(M(_d),{class:`size-4`}),n[31]||=W(` Delete `,-1)]),_:1},8,[`disabled`]),U(M(Xm),{open:a.value,"onUpdate:open":n[11]||=e=>a.value=e},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[32]||=[W(`Clear translations`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[W(` Clear translations for `+A(e.keys.length)+` `+A(e.keys.length===1?`key`:`keys`)+` in `+A(e.scopeLabel)+`? Source strings are kept. This cannot be undone. `,1)]),_:1})]),_:1}),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:i.value,onClick:n[10]||=e=>a.value=!1},{default:N(()=>[...n[33]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{variant:`destructive`,disabled:i.value,"data-testid":`bulk-clear-confirm`,onClick:d},{default:N(()=>[...n[34]||=[W(`Clear translations`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(M(Xm),{open:o.value,"onUpdate:open":n[13]||=e=>o.value=e},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[35]||=[W(`Delete keys`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[W(` Delete `+A(e.keys.length)+` `+A(e.keys.length===1?`key`:`keys`)+` and all their translations? This cannot be undone. `,1)]),_:1})]),_:1}),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:i.value,onClick:n[12]||=e=>o.value=!1},{default:N(()=>[...n[36]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{variant:`destructive`,disabled:i.value,"data-testid":`bulk-delete-confirm`,onClick:f},{default:N(()=>[...n[37]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(M(Xm),{open:s.value,"onUpdate:open":n[16]||=e=>s.value=e},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[38]||=[W(`Add tag`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[W(`Add a tag to `+A(e.keys.length)+` `+A(e.keys.length===1?`key`:`keys`)+`.`,1)]),_:1})]),_:1}),H(`div`,SS,[U(M(dS),{for:`bulk-add-tag`},{default:N(()=>[...n[39]||=[W(`Tag`,-1)]]),_:1}),U(M(Mx),{id:`bulk-add-tag`,modelValue:l.value,"onUpdate:modelValue":n[14]||=e=>l.value=e,disabled:i.value,onKeydown:Xl(Jl(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`disabled`,`onKeydown`])]),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:i.value,onClick:n[15]||=e=>s.value=!1},{default:N(()=>[...n[40]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{disabled:i.value||!l.value.trim(),onClick:h},{default:N(()=>[...n[41]||=[W(`Add`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(M(Xm),{open:c.value,"onUpdate:open":n[18]||=e=>c.value=e},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[42]||=[W(`Remove tag`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[...n[43]||=[W(`Remove a tag from the selected keys.`,-1)]]),_:1})]),_:1}),H(`div`,CS,[(z(!0),B(R,null,I(e.tagsOnSelection,e=>(z(),V(M(Q),{key:e,variant:`outline`,size:`sm`,disabled:i.value,onClick:t=>g(e)},{default:N(()=>[W(A(e),1)]),_:2},1032,[`disabled`,`onClick`]))),128))]),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:i.value,onClick:n[17]||=e=>c.value=!1},{default:N(()=>[...n[44]||=[W(`Close`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});function TS(){let e=j(new Set),t=null;function n(t){return e.value.has(t)}function r(n){e.value.has(n)?e.value.delete(n):e.value.add(n),t=n}function i(n,i){if(t===null)return r(n);let a=i.indexOf(t),o=i.indexOf(n);if(a===-1||o===-1)return r(n);let[s,c]=a<o?[a,o]:[o,a];for(let t=s;t<=c;t++)e.value.add(i[t]);t=n}function a(n){for(let t of n)e.value.add(t);t=n.length?n[n.length-1]:null}function o(){e.value.clear(),t=null}function s(n){let r=new Set(n);for(let t of[...e.value])r.has(t)||e.value.delete(t);t!==null&&!r.has(t)&&(t=null)}return{has:n,toggle:r,toggleRange:i,selectAll:a,clear:o,pruneTo:s,keys:()=>[...e.value],count:q(()=>e.value.size),allSelected:t=>t.length>0&&t.every(t=>e.value.has(t)),someSelected:t=>t.some(t=>e.value.has(t))}}var ES=F({__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:4},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=gm(n,t);return(e,t)=>(z(),V(M(nb),null,{default:N(()=>[U(M(tb),K(M(r),{class:M(Ax)(`z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background shadow-md data-[state=delayed-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95`,n.class)}),{default:N(()=>[L(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),DS=[`zero`,`one`,`two`,`few`,`many`,`other`];function OS(e){let t;try{t=new Intl.PluralRules(e.replace(/_/g,`-`),{type:`cardinal`}).resolvedOptions().pluralCategories}catch{t=[`other`]}let n=new Set(t);return DS.filter(e=>n.has(e))}function kS(e,t,n){if(t===n)return!1;let r=e.values[n];if(e.plural){if(!r?.forms?.other)return!1;let n=e.values[t]?.forms??{};return OS(t).some(e=>(n[e]??``)===``)}return r?.value?!e.values[t]?.value:!1}function AS(e,t,n){return t.filter(t=>kS(e,t,n))}function jS(e,t,n){return t.filter(t=>{if(t===n)return!1;let r=e.values[t];return!r||r.state!==`needs-review`?!1:r.value?r.value.length>0:Object.keys(r.forms??{}).length>0})}var MS=new Intl.DisplayNames([`en`],{type:`language`}),NS=new Map;function PS(e){if(!NS.has(e)){let t;try{t=new Intl.DisplayNames([e],{type:`language`}).of(e)??void 0}catch{t=void 0}NS.set(e,t)}return NS.get(e)}function FS(e){return e.split(`-`).slice(1).some(e=>/^[a-zA-Z]{5,8}$/.test(e)||/^[0-9][a-zA-Z0-9]{3}$/.test(e))}var IS=new Set([`ar`,`he`,`iw`,`fa`,`ur`,`ps`,`sd`,`ug`,`yi`,`dv`,`ckb`,`ks`,`nqo`,`rhg`]);function LS(e){let t=e.split(/[-_]/)[0]?.toLowerCase()??``;return IS.has(t)}function RS(e,t){let n=e.replace(/_/g,`-`),r=n,i=!1;try{r=Intl.getCanonicalLocales(n)[0]??n,FS(r)&&(i=!0)}catch{i=!0}let a=e;t?.name===void 0?i||(a=MS.of(r)??e):a=t.name;let o;return o=t&&t.flag!==void 0?t.flag:i?null:new Intl.Locale(r).maximize().region??null,{code:e,bcp47:r,name:a,endonym:i?void 0:PS(r),flagRegion:o,isCustom:i,rtl:LS(e)}}var zS=[`aria-label`],BS=`inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-[11.5px] font-medium leading-none whitespace-nowrap min-w-[132px]`,VS=F({__name:`StateBadge`,props:{state:{},editable:{type:Boolean}},emits:[`setState`],setup(e,{emit:t}){let n=e,r=t,i=[`machine`,`reviewed`,`needs-review`],a={source:`Source`,machine:`Machine`,reviewed:`Reviewed`,"needs-review":`Needs review`},o={source:`bg-accent text-muted-foreground border-border-soft`,machine:`bg-machine-soft text-machine border-transparent`,reviewed:`bg-review-soft text-review border-transparent`,"needs-review":`bg-muted text-muted-foreground border-border`},s={source:`bg-muted-foreground`,machine:`bg-machine`,reviewed:`bg-review`,"needs-review":`bg-muted-foreground`};return(t,c)=>!e.editable||e.state===`source`?(z(),B(`span`,{key:0,class:k(M(Ax)(BS,o[e.state],`cursor-default`)),"data-testid":`state-badge`},[e.state===`reviewed`?(z(),V(M(Tu),{key:0,class:`size-3 shrink-0`})):(z(),B(`span`,{key:1,class:k(M(Ax)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+A(a[e.state]),1)],2)):(z(),V(M(Xv),{key:1},{default:N(()=>[U(M(ny),{"as-child":``},{default:N(()=>[H(`button`,{type:`button`,class:k(M(Ax)(BS,o[e.state],`transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`)),"aria-label":`${a[e.state]} — change state`,"data-testid":`state-badge`},[e.state===`reviewed`?(z(),V(M(Tu),{key:0,class:`size-3 shrink-0`})):(z(),B(`span`,{key:1,class:k(M(Ax)(`size-[7px] shrink-0 rounded-full`,s[e.state]))},null,2)),W(` `+A(a[e.state])+` `,1),U(M(Eu),{class:`ml-auto size-3 opacity-50`})],10,zS)]),_:1}),U(M(_S),{align:`end`,class:`min-w-[10rem]`},{default:N(()=>[(z(),B(R,null,I(i,e=>U(M(vS),{key:e,onSelect:t=>r(`setState`,e)},{default:N(()=>[H(`span`,{class:k(M(Ax)(`size-[7px] shrink-0 rounded-full`,s[e]))},null,2),W(` `+A(a[e])+` `,1),U(M(Tu),{class:k(M(Ax)(`ml-auto size-4`,e===n.state?`opacity-100`:`opacity-0`))},null,8,[`class`])]),_:2},1032,[`onSelect`])),64))]),_:1})]),_:1}))}}),HS=new RegExp([`\\{\\s*[A-Za-z0-9_]+\\s*,\\s*(?:plural|select|selectordinal)\\s*,(?:[^{}]|\\{[^{}]*\\})*\\}`,`\\{\\s*[A-Za-z0-9_.]+\\s*\\}`].join(`|`),`g`);function US(e){let t=[];if(!e.includes(`'`))return t;for(let n=0;n<e.length;){if(e[n]===`'`){let r=e[n+1];if(r===`'`){n+=2;continue}if(r===`{`||r===`}`||r===`#`||r===`|`){let r=n;for(n+=2;n<e.length&&e[n]!==`'`;)n++;let i=n<e.length?n+1:n;t.push([r,i]),n=i;continue}}n++}return t}function WS(e){if(!e)return[];let t=US(e),n=e=>t.some(([t,n])=>e>=t&&e<n),r=[],i=0;HS.lastIndex=0;let a;for(;(a=HS.exec(e))!==null;){if(a[0].length===0){HS.lastIndex++;continue}n(a.index)||(a.index>i&&r.push({text:e.slice(i,a.index),placeholder:!1}),r.push({text:a[0],placeholder:!0}),i=a.index+a[0].length)}return i<e.length&&r.push({text:e.slice(i),placeholder:!1}),r}var GS=F({__name:`Textarea`,props:Oa({class:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=Xa(e,`modelValue`);return(e,n)=>_r((z(),B(`textarea`,{"onUpdate:modelValue":n[0]||=e=>t.value=e,class:k(M(Ax)(`flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`,e.$props.class))},null,2)),[[Pl,t.value]])}}),KS={class:`min-w-0`},qS={key:0,class:`flex flex-col gap-1`},JS={class:`whitespace-pre-wrap break-words`},YS={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},XS=F({__name:`ValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=j(!1),a=j(``),o=j(!1),s=j(null),c=q(()=>n.locale===n.sourceLocale),l=q(()=>WS(n.value)),u=q(()=>n.maxLength!==void 0&&n.value.length>n.maxLength);function d(e){e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)}async function f(){a.value=n.value,i.value=!0,await $n();let e=s.value?.$el;e?.focus(),e?.select(),d(e)}function p(){i.value=!1}async function m(){if(!i.value)return;i.value=!1;let e=a.value;if(e!==n.value){o.value=!0;try{c.value?await Md(n.keyName,{source:e}):await Nd(n.keyName,n.locale,e),r(`changed`)}catch(e){$.error(`Could not save: ${e.message}`),r(`changed`)}finally{o.value=!1}}}return(t,n)=>(z(),B(`div`,KS,[i.value?(z(),B(`div`,qS,[U(M(GS),{ref_key:`textareaEl`,ref:s,modelValue:a.value,"onUpdate:modelValue":n[0]||=e=>a.value=e,rows:`1`,maxlength:e.maxLength,class:`max-w-[560px] resize-none rounded-lg border-2 border-primary text-sm shadow-[0_0_0_3px_var(--ring)]`,onInput:n[1]||=e=>d(e.target),onBlur:m,onKeydown:[Xl(Jl(p,[`prevent`]),[`escape`]),Xl(Jl(m,[`exact`,`prevent`]),[`enter`])]},null,8,[`modelValue`,`maxlength`,`onKeydown`]),n[2]||=H(`span`,{class:`text-[10.5px] text-muted-foreground`},[H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`↵`),W(` save · `),H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`esc`),W(` cancel `)],-1)])):e.value?(z(),B(`button`,{key:1,type:`button`,class:k(M(Ax)(`group inline-flex max-w-full items-center gap-1.5 rounded-md px-2 py-1 -mx-2 -my-1 text-left text-sm leading-relaxed hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,u.value&&`text-destructive`)),onClick:Jl(f,[`stop`])},[H(`span`,JS,[(z(!0),B(R,null,I(l.value,(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,YS,A(e.text),1)):(z(),B(R,{key:1},[W(A(e.text),1)],64))],64))),128))]),U(M(nd),{"aria-hidden":`true`,class:`size-3 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-60`})],2)):(z(),B(`button`,{key:2,type:`button`,"data-testid":`empty-marker`,class:`group inline-flex items-center gap-1.5 rounded-md border border-dashed border-input px-2.5 py-1 text-[12.5px] font-medium italic text-muted-foreground transition-colors hover:border-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:Jl(f,[`stop`])},[n[3]||=W(` Empty `,-1),U(M(nd),{class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})]))]))}}),ZS={class:`flex min-w-0 flex-col gap-2`},QS={class:`min-w-0 flex-1`},$S={key:0,class:`flex flex-col gap-1`},eC={class:`font-mono text-[10px] font-semibold uppercase tracking-wide text-primary`},tC=[`onClick`],nC={class:`whitespace-pre-wrap break-words`},rC={key:0,class:`rounded bg-ph-bg px-1 font-mono text-[0.85em] font-semibold text-ph-fg`},iC=[`onClick`],aC=F({__name:`PluralValueEditor`,props:{keyName:{},locale:{},sourceLocale:{},arg:{},forms:{},sourceForms:{},maxLength:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>n.locale===n.sourceLocale),a=q(()=>[...Object.keys(n.forms).filter(e=>/^=\d+$/.test(e)).sort((e,t)=>Number(e.slice(1))-Number(t.slice(1))),...OS(n.locale)]),o=j(null),s=j(``),c=j(!1),l=j(null);function u(e){l.value=e}function d(e){return n.forms[e]??``}function f(e){return WS(d(e))}function p(e){return n.maxLength!==void 0&&d(e).length>n.maxLength}function m(e){e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)}async function h(e){s.value=d(e),o.value=e,await $n();let t=l.value?.$el;t?.focus(),t?.select(),m(t)}function g(){o.value=null}async function _(){let e=o.value;if(!e)return;o.value=null;let t=s.value;if(t!==d(e)){c.value=!0;try{let i={};for(let[e,t]of Object.entries(n.forms))i[e]=t??``;i[e]=t,await Id(n.keyName,n.locale,i),r(`changed`)}catch(e){$.error(`Could not save: ${e.message}`),r(`changed`)}finally{c.value=!1}}}return(t,n)=>(z(),B(`div`,ZS,[(z(!0),B(R,null,I(a.value,t=>(z(),B(`div`,{key:t,"data-testid":`plural-field`,class:`flex items-start gap-2.5`},[H(`span`,{class:k(M(Ax)(`mt-0.5 min-w-[46px] shrink-0 rounded border border-border px-1.5 py-1 text-center font-mono text-[9.5px] font-semibold uppercase tracking-wide text-muted-foreground`,!i.value&&!d(t)&&`opacity-55`))},A(t),3),H(`div`,QS,[o.value===t?(z(),B(`div`,$S,[H(`span`,eC,`Plural: `+A(t),1),U(M(GS),{ref_for:!0,ref:u,modelValue:s.value,"onUpdate:modelValue":n[0]||=e=>s.value=e,rows:`1`,maxlength:e.maxLength,class:`max-w-[560px] resize-none rounded-lg border-2 border-primary text-sm shadow-[0_0_0_3px_var(--ring)]`,onInput:n[1]||=e=>m(e.target),onBlur:_,onKeydown:[Xl(Jl(g,[`prevent`]),[`escape`]),Xl(Jl(_,[`exact`,`prevent`]),[`enter`])]},null,8,[`modelValue`,`maxlength`,`onKeydown`]),n[2]||=H(`span`,{class:`text-[10.5px] text-muted-foreground`},[H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`↵`),W(` save · `),H(`kbd`,{class:`rounded border border-border-soft bg-accent px-1 font-mono text-[10px]`},`esc`),W(` cancel `)],-1)])):d(t)?(z(),B(`button`,{key:1,type:`button`,class:k(M(Ax)(`group inline-flex max-w-full items-center gap-1.5 rounded-md px-2 py-1 -mx-2 -my-1 text-left text-sm leading-relaxed hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,p(t)&&`text-destructive`)),onClick:Jl(e=>h(t),[`stop`])},[H(`span`,nC,[(z(!0),B(R,null,I(f(t),(e,t)=>(z(),B(R,{key:t},[e.placeholder?(z(),B(`span`,rC,A(e.text),1)):(z(),B(R,{key:1},[W(A(e.text),1)],64))],64))),128))]),U(M(nd),{class:`size-3 shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})],10,tC)):(z(),B(`button`,{key:2,type:`button`,"data-testid":`empty-marker`,class:`group inline-flex items-center gap-1.5 rounded-md border border-dashed border-input px-2.5 py-1 text-[12.5px] font-medium italic text-muted-foreground transition-colors hover:border-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:Jl(e=>h(t),[`stop`])},[n[3]||=W(` Empty `,-1),U(M(nd),{class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-60`,"aria-hidden":`true`})],8,iC))])]))),128))]))}}),oC=Object.assign({"./assets/flags/ad.svg":`/assets/ad-B18i8NGa.svg`,"./assets/flags/ae.svg":`/assets/ae-CZRtWSox.svg`,"./assets/flags/af.svg":`/assets/af-C77Rf6cE.svg`,"./assets/flags/ag.svg":`/assets/ag-C8MykuG2.svg`,"./assets/flags/ai.svg":`/assets/ai-Dmedkf4v.svg`,"./assets/flags/al.svg":`/assets/al-10QRkakw.svg`,"./assets/flags/am.svg":`/assets/am-DMt4_dd4.svg`,"./assets/flags/ao.svg":`/assets/ao-tXuRa6vm.svg`,"./assets/flags/aq.svg":`/assets/aq-CF5jO-0h.svg`,"./assets/flags/ar.svg":`/assets/ar-Be8Ju1cG.svg`,"./assets/flags/arab.svg":`/assets/arab-C4CYPgyC.svg`,"./assets/flags/as.svg":`/assets/as-Dekqy8Of.svg`,"./assets/flags/asean.svg":`/assets/asean-WMtZ-US_.svg`,"./assets/flags/at.svg":`/assets/at-DGA_6m5E.svg`,"./assets/flags/au.svg":`/assets/au-DAHDIuPI.svg`,"./assets/flags/aw.svg":`/assets/aw-W0PWLK5p.svg`,"./assets/flags/ax.svg":`/assets/ax-DvLIy84U.svg`,"./assets/flags/az.svg":`/assets/az-Bk-bYNxy.svg`,"./assets/flags/ba.svg":`/assets/ba-WdDiSMvP.svg`,"./assets/flags/bb.svg":`/assets/bb-DJxbaxmT.svg`,"./assets/flags/bd.svg":`/assets/bd-BF9t1-60.svg`,"./assets/flags/be.svg":`/assets/be-CLLkK3PN.svg`,"./assets/flags/bf.svg":`/assets/bf-YclsoDuF.svg`,"./assets/flags/bg.svg":`/assets/bg-GUQenraa.svg`,"./assets/flags/bh.svg":`/assets/bh-BQqEGq6F.svg`,"./assets/flags/bi.svg":`/assets/bi-CRmKY6RQ.svg`,"./assets/flags/bj.svg":`/assets/bj-14PhO9bM.svg`,"./assets/flags/bl.svg":`/assets/bl-4CI2YcwX.svg`,"./assets/flags/bm.svg":`/assets/bm-BeYgB2z9.svg`,"./assets/flags/bn.svg":`/assets/bn-B6T3O78g.svg`,"./assets/flags/bo.svg":`/assets/bo-CcUiMqkJ.svg`,"./assets/flags/bq.svg":`/assets/bq-BYpdxEeT.svg`,"./assets/flags/br.svg":`/assets/br-Cu5YU29T.svg`,"./assets/flags/bs.svg":`/assets/bs-7Gd_oriM.svg`,"./assets/flags/bt.svg":`/assets/bt-BTo4qm10.svg`,"./assets/flags/bv.svg":`/assets/bv-wM9JLv4R.svg`,"./assets/flags/bw.svg":`/assets/bw-n5ZaAnGL.svg`,"./assets/flags/by.svg":`/assets/by-C621sBpd.svg`,"./assets/flags/bz.svg":`/assets/bz-BCKHR4_q.svg`,"./assets/flags/ca.svg":`/assets/ca-PYUrLVUV.svg`,"./assets/flags/cc.svg":`/assets/cc-BNT6Xjzk.svg`,"./assets/flags/cd.svg":`/assets/cd-BGclsrP6.svg`,"./assets/flags/cefta.svg":`/assets/cefta-2dDBYygd.svg`,"./assets/flags/cf.svg":`/assets/cf-DRetLmp-.svg`,"./assets/flags/cg.svg":`/assets/cg-CwIyG6SE.svg`,"./assets/flags/ch.svg":`/assets/ch-sfriZoF1.svg`,"./assets/flags/ci.svg":`/assets/ci-C8Q8IYTn.svg`,"./assets/flags/ck.svg":`/assets/ck-DfXMUOTo.svg`,"./assets/flags/cl.svg":`/assets/cl-BgYYb4qP.svg`,"./assets/flags/cm.svg":`/assets/cm-D4yjdmKT.svg`,"./assets/flags/cn.svg":`/assets/cn-DifnnI3t.svg`,"./assets/flags/co.svg":`/assets/co-DV591zMm.svg`,"./assets/flags/cp.svg":`/assets/cp-K_ay05Q_.svg`,"./assets/flags/cr.svg":`/assets/cr-BlYVN-_Q.svg`,"./assets/flags/cu.svg":`/assets/cu-L6XVZNgo.svg`,"./assets/flags/cv.svg":`/assets/cv-CPsfcOfk.svg`,"./assets/flags/cw.svg":`/assets/cw-BbrnximR.svg`,"./assets/flags/cx.svg":`/assets/cx-DpYD6n6U.svg`,"./assets/flags/cy.svg":`/assets/cy-bZuP8hmf.svg`,"./assets/flags/cz.svg":`/assets/cz-WWBC5Aeb.svg`,"./assets/flags/de.svg":`/assets/de-B-2o-4Z9.svg`,"./assets/flags/dg.svg":`/assets/dg-CJPJrjiZ.svg`,"./assets/flags/dj.svg":`/assets/dj-hp_BwbmO.svg`,"./assets/flags/dk.svg":`/assets/dk-DmS9BCZB.svg`,"./assets/flags/dm.svg":`/assets/dm-Cbhezfe1.svg`,"./assets/flags/do.svg":`/assets/do-B86d445t.svg`,"./assets/flags/dz.svg":`/assets/dz-Dytc1TFu.svg`,"./assets/flags/eac.svg":`/assets/eac-CwGQsyAM.svg`,"./assets/flags/ec.svg":`/assets/ec-CaVOFQ3t.svg`,"./assets/flags/ee.svg":`/assets/ee-DufrxGIR.svg`,"./assets/flags/eg.svg":`/assets/eg-YC70hswZ.svg`,"./assets/flags/eh.svg":`/assets/eh-0awM4TVj.svg`,"./assets/flags/er.svg":`/assets/er-X83uml6t.svg`,"./assets/flags/es-ct.svg":`/assets/es-ct-CVyhLp7O.svg`,"./assets/flags/es-ga.svg":`/assets/es-ga-D9xG2hYr.svg`,"./assets/flags/es-pv.svg":`/assets/es-pv-CO3NM2SE.svg`,"./assets/flags/es.svg":`/assets/es-d5m8M5h8.svg`,"./assets/flags/et.svg":`/assets/et-DwdlzOIx.svg`,"./assets/flags/eu.svg":`/assets/eu-Brdgz8ab.svg`,"./assets/flags/fi.svg":`/assets/fi-DWUIkfjL.svg`,"./assets/flags/fj.svg":`/assets/fj-DEAVMg38.svg`,"./assets/flags/fk.svg":`/assets/fk-nuUF_Ak3.svg`,"./assets/flags/fm.svg":`/assets/fm-B4Z83GL0.svg`,"./assets/flags/fo.svg":`/assets/fo-DFjwyWur.svg`,"./assets/flags/fr.svg":`/assets/fr-DVvUyOqI.svg`,"./assets/flags/ga.svg":`/assets/ga-BklUhLH_.svg`,"./assets/flags/gb-eng.svg":`/assets/gb-eng-C8iDhGHN.svg`,"./assets/flags/gb-nir.svg":`/assets/gb-nir-D4gikpNq.svg`,"./assets/flags/gb-sct.svg":`/assets/gb-sct-fW5q01ek.svg`,"./assets/flags/gb-wls.svg":`/assets/gb-wls-Bxz9hxvX.svg`,"./assets/flags/gb.svg":`/assets/gb-DTXiLQoe.svg`,"./assets/flags/gd.svg":`/assets/gd-CO-whzUe.svg`,"./assets/flags/ge.svg":`/assets/ge-B2RiL-Ih.svg`,"./assets/flags/gf.svg":`/assets/gf-DWl5zcw0.svg`,"./assets/flags/gg.svg":`/assets/gg-jdOQS2nU.svg`,"./assets/flags/gh.svg":`/assets/gh-r3LP_X7q.svg`,"./assets/flags/gi.svg":`/assets/gi-BJKE9SzW.svg`,"./assets/flags/gl.svg":`/assets/gl-CHaBnMib.svg`,"./assets/flags/gm.svg":`/assets/gm-Bu99atwn.svg`,"./assets/flags/gn.svg":`/assets/gn-1dJNy9oQ.svg`,"./assets/flags/gp.svg":`/assets/gp-DNyt_wTA.svg`,"./assets/flags/gq.svg":`/assets/gq-Cag8QTk2.svg`,"./assets/flags/gr.svg":`/assets/gr-C5PU0p9p.svg`,"./assets/flags/gs.svg":`/assets/gs-DiiNa0F5.svg`,"./assets/flags/gt.svg":`/assets/gt-CJo5DI-7.svg`,"./assets/flags/gu.svg":`/assets/gu-Di1JYREk.svg`,"./assets/flags/gw.svg":`/assets/gw-D249VY33.svg`,"./assets/flags/gy.svg":`/assets/gy-CcVYUM2E.svg`,"./assets/flags/hk.svg":`/assets/hk-CUNIaSX0.svg`,"./assets/flags/hm.svg":`/assets/hm-Dh6t_Tj3.svg`,"./assets/flags/hn.svg":`/assets/hn-CRjyS_bm.svg`,"./assets/flags/hr.svg":`/assets/hr-fzLfaANM.svg`,"./assets/flags/ht.svg":`/assets/ht-DIMg4gti.svg`,"./assets/flags/hu.svg":`/assets/hu-7Q5wwIIi.svg`,"./assets/flags/ic.svg":`/assets/ic-CSo4d8tH.svg`,"./assets/flags/id.svg":`/assets/id-DiSP6Fmm.svg`,"./assets/flags/ie.svg":`/assets/ie-ChAXClx3.svg`,"./assets/flags/il.svg":`/assets/il-_56OEGLa.svg`,"./assets/flags/im.svg":`/assets/im--VPIqfkF.svg`,"./assets/flags/in.svg":`/assets/in-Cdwu6Bq7.svg`,"./assets/flags/io.svg":`/assets/io-13HOfeJD.svg`,"./assets/flags/iq.svg":`/assets/iq-Dp8HDzo2.svg`,"./assets/flags/ir.svg":`/assets/ir-cCIgaNf6.svg`,"./assets/flags/is.svg":`/assets/is-CZjefTNV.svg`,"./assets/flags/it.svg":`/assets/it-Br7q0Zh6.svg`,"./assets/flags/je.svg":`/assets/je-DyWbhIiC.svg`,"./assets/flags/jm.svg":`/assets/jm-CItSr3iX.svg`,"./assets/flags/jo.svg":`/assets/jo-BAF1FGbm.svg`,"./assets/flags/jp.svg":`/assets/jp-BIMmfxpO.svg`,"./assets/flags/ke.svg":`/assets/ke-C8foqndp.svg`,"./assets/flags/kg.svg":`/assets/kg-B0FsxZiL.svg`,"./assets/flags/kh.svg":`/assets/kh-BeWfuE30.svg`,"./assets/flags/ki.svg":`/assets/ki-p_fAQGbS.svg`,"./assets/flags/km.svg":`/assets/km-B5tqtGG7.svg`,"./assets/flags/kn.svg":`/assets/kn-DVPxDkNY.svg`,"./assets/flags/kp.svg":`/assets/kp-CrDKzoxe.svg`,"./assets/flags/kr.svg":`/assets/kr-BCXH1Hao.svg`,"./assets/flags/kw.svg":`/assets/kw-fSBzmd30.svg`,"./assets/flags/ky.svg":`/assets/ky-Dpsu1myA.svg`,"./assets/flags/kz.svg":`/assets/kz-CwKXYZ8s.svg`,"./assets/flags/la.svg":`/assets/la-CuJflhIW.svg`,"./assets/flags/lb.svg":`/assets/lb-BSjpYEoo.svg`,"./assets/flags/lc.svg":`/assets/lc-CNvab8Ae.svg`,"./assets/flags/li.svg":`/assets/li-CHdhvNcr.svg`,"./assets/flags/lk.svg":`/assets/lk-DUkgV9Tq.svg`,"./assets/flags/lr.svg":`/assets/lr-B84vu3Ds.svg`,"./assets/flags/ls.svg":`/assets/ls-5Xk3Mxq5.svg`,"./assets/flags/lt.svg":`/assets/lt-DoukV-Sm.svg`,"./assets/flags/lu.svg":`/assets/lu-DOI02Msy.svg`,"./assets/flags/lv.svg":`/assets/lv-C-KfY8Yc.svg`,"./assets/flags/ly.svg":`/assets/ly-BWpTK3ux.svg`,"./assets/flags/ma.svg":`/assets/ma-BTRNTRUj.svg`,"./assets/flags/mc.svg":`/assets/mc-PK078JHl.svg`,"./assets/flags/md.svg":`/assets/md-DRlxvNwm.svg`,"./assets/flags/me.svg":`/assets/me-Cv4Gwqah.svg`,"./assets/flags/mf.svg":`/assets/mf-BaAGWwAq.svg`,"./assets/flags/mg.svg":`/assets/mg-C168LHXW.svg`,"./assets/flags/mh.svg":`/assets/mh-gxuIp6Wk.svg`,"./assets/flags/mk.svg":`/assets/mk-D9SIMr-a.svg`,"./assets/flags/ml.svg":`/assets/ml-DVf6ujpi.svg`,"./assets/flags/mm.svg":`/assets/mm-lwT09MQ0.svg`,"./assets/flags/mn.svg":`/assets/mn-CgXyw0O9.svg`,"./assets/flags/mo.svg":`/assets/mo-BAtCjuYA.svg`,"./assets/flags/mp.svg":`/assets/mp-CrOApEqW.svg`,"./assets/flags/mq.svg":`/assets/mq-BFnJ22KI.svg`,"./assets/flags/mr.svg":`/assets/mr-D6G1wpeZ.svg`,"./assets/flags/ms.svg":`/assets/ms-DxciGbUu.svg`,"./assets/flags/mt.svg":`/assets/mt-YqzKx9xl.svg`,"./assets/flags/mu.svg":`/assets/mu-mcq7cUFl.svg`,"./assets/flags/mv.svg":`/assets/mv-BynAllfM.svg`,"./assets/flags/mw.svg":`/assets/mw-C15nc1xZ.svg`,"./assets/flags/mx.svg":`/assets/mx-Cc8Ccfe8.svg`,"./assets/flags/my.svg":`/assets/my-Co4JeeyE.svg`,"./assets/flags/mz.svg":`/assets/mz-Drlr_USV.svg`,"./assets/flags/na.svg":`/assets/na-D79ffb4Z.svg`,"./assets/flags/nc.svg":`/assets/nc-5j7wEmDR.svg`,"./assets/flags/ne.svg":`/assets/ne-B1jPOYkl.svg`,"./assets/flags/nf.svg":`/assets/nf-Dl00mlk2.svg`,"./assets/flags/ng.svg":`/assets/ng-su4NM9If.svg`,"./assets/flags/ni.svg":`/assets/ni-CcFCSQxm.svg`,"./assets/flags/nl.svg":`/assets/nl-BnOa6UiA.svg`,"./assets/flags/no.svg":`/assets/no-qf2JPO73.svg`,"./assets/flags/np.svg":`/assets/np-CIuq5GKd.svg`,"./assets/flags/nr.svg":`/assets/nr-DERIdzkN.svg`,"./assets/flags/nu.svg":`/assets/nu-BfgWvGcd.svg`,"./assets/flags/nz.svg":`/assets/nz-5vODdBjz.svg`,"./assets/flags/om.svg":`/assets/om-DcqxRdQL.svg`,"./assets/flags/pa.svg":`/assets/pa-BLNN9G2-.svg`,"./assets/flags/pc.svg":`/assets/pc-BJpYiA9b.svg`,"./assets/flags/pe.svg":`/assets/pe-BLqhuu1C.svg`,"./assets/flags/pf.svg":`/assets/pf-C8ahG68q.svg`,"./assets/flags/pg.svg":`/assets/pg-BAYpbp9Z.svg`,"./assets/flags/ph.svg":`/assets/ph-BEzTn62K.svg`,"./assets/flags/pk.svg":`/assets/pk-CWMEc3ad.svg`,"./assets/flags/pl.svg":`/assets/pl-o38JROoc.svg`,"./assets/flags/pm.svg":`/assets/pm-CHiP5UmZ.svg`,"./assets/flags/pn.svg":`/assets/pn-DgxdtieE.svg`,"./assets/flags/pr.svg":`/assets/pr-B4tMV0xm.svg`,"./assets/flags/ps.svg":`/assets/ps-DO8YKYeS.svg`,"./assets/flags/pt.svg":`/assets/pt-DZ2ADgIR.svg`,"./assets/flags/pw.svg":`/assets/pw-CQP52WMX.svg`,"./assets/flags/py.svg":`/assets/py-mNzh0mZC.svg`,"./assets/flags/qa.svg":`/assets/qa-Dkmpc78M.svg`,"./assets/flags/re.svg":`/assets/re-Bk4ipYK1.svg`,"./assets/flags/ro.svg":`/assets/ro-CoSeqKY1.svg`,"./assets/flags/rs.svg":`/assets/rs-BfwKwXtn.svg`,"./assets/flags/ru.svg":`/assets/ru-D-4tNwXt.svg`,"./assets/flags/rw.svg":`/assets/rw-D7nbSYKI.svg`,"./assets/flags/sa.svg":`/assets/sa-Dh79zbT9.svg`,"./assets/flags/sb.svg":`/assets/sb-BDTYjcbk.svg`,"./assets/flags/sc.svg":`/assets/sc-CRNsSLg9.svg`,"./assets/flags/sd.svg":`/assets/sd-ClziNjGr.svg`,"./assets/flags/se.svg":`/assets/se-8C923vhy.svg`,"./assets/flags/sg.svg":`/assets/sg-DGYIMG0G.svg`,"./assets/flags/sh-ac.svg":`/assets/sh-ac-FjwY7RYr.svg`,"./assets/flags/sh-hl.svg":`/assets/sh-hl-CqtQPzWZ.svg`,"./assets/flags/sh-ta.svg":`/assets/sh-ta-CPJublpi.svg`,"./assets/flags/sh.svg":`/assets/sh-DNImvbrE.svg`,"./assets/flags/si.svg":`/assets/si-BMKT-Tec.svg`,"./assets/flags/sj.svg":`/assets/sj-BFFEGknm.svg`,"./assets/flags/sk.svg":`/assets/sk-K9BNIYAO.svg`,"./assets/flags/sl.svg":`/assets/sl-DxLJY5vJ.svg`,"./assets/flags/sm.svg":`/assets/sm-DGBIRFB_.svg`,"./assets/flags/sn.svg":`/assets/sn-S8ipNF1U.svg`,"./assets/flags/so.svg":`/assets/so-DlzA2Fco.svg`,"./assets/flags/sr.svg":`/assets/sr-Co7OKBh3.svg`,"./assets/flags/ss.svg":`/assets/ss-CxVEpdPD.svg`,"./assets/flags/st.svg":`/assets/st-C1Nd1c3V.svg`,"./assets/flags/sv.svg":`/assets/sv-CJIHhYwF.svg`,"./assets/flags/sx.svg":`/assets/sx-nDhIaDNb.svg`,"./assets/flags/sy.svg":`/assets/sy-DwSud114.svg`,"./assets/flags/sz.svg":`/assets/sz-qxMwa2gs.svg`,"./assets/flags/tc.svg":`/assets/tc-dtelpZmc.svg`,"./assets/flags/td.svg":`/assets/td-BsuVhZpT.svg`,"./assets/flags/tf.svg":`/assets/tf-Co33RhQH.svg`,"./assets/flags/tg.svg":`/assets/tg-CP1-sc35.svg`,"./assets/flags/th.svg":`/assets/th-tzq84hgd.svg`,"./assets/flags/tj.svg":`/assets/tj-b-aWfOTb.svg`,"./assets/flags/tk.svg":`/assets/tk-CDucsEss.svg`,"./assets/flags/tl.svg":`/assets/tl-wpo93AGk.svg`,"./assets/flags/tm.svg":`/assets/tm-C_WSgUcv.svg`,"./assets/flags/tn.svg":`/assets/tn-BcKCZULf.svg`,"./assets/flags/to.svg":`/assets/to-D8uVsoxb.svg`,"./assets/flags/tr.svg":`/assets/tr-Cd6FO9Bg.svg`,"./assets/flags/tt.svg":`/assets/tt-CTnr7aY5.svg`,"./assets/flags/tv.svg":`/assets/tv-DDqkVT-n.svg`,"./assets/flags/tw.svg":`/assets/tw-d-Mf-0VT.svg`,"./assets/flags/tz.svg":`/assets/tz-BjLtHeil.svg`,"./assets/flags/ua.svg":`/assets/ua-Bq0XgQqK.svg`,"./assets/flags/ug.svg":`/assets/ug-ByL2ejGl.svg`,"./assets/flags/um.svg":`/assets/um-Bhke9Eic.svg`,"./assets/flags/un.svg":`/assets/un-Bqg4Cbbh.svg`,"./assets/flags/us.svg":`/assets/us-C73uVeEr.svg`,"./assets/flags/uy.svg":`/assets/uy-DD6peej-.svg`,"./assets/flags/uz.svg":`/assets/uz-C2f-Cubn.svg`,"./assets/flags/va.svg":`/assets/va-B9-hqIE-.svg`,"./assets/flags/vc.svg":`/assets/vc-COpmFovN.svg`,"./assets/flags/ve.svg":`/assets/ve-BSqnIB9l.svg`,"./assets/flags/vg.svg":`/assets/vg-C7xY6pic.svg`,"./assets/flags/vi.svg":`/assets/vi-BC_zcciE.svg`,"./assets/flags/vn.svg":`/assets/vn-BEAEijd0.svg`,"./assets/flags/vu.svg":`/assets/vu-D6k0NQlg.svg`,"./assets/flags/wf.svg":`/assets/wf-DrxpOO_G.svg`,"./assets/flags/ws.svg":`/assets/ws-vzJNwdVm.svg`,"./assets/flags/xk.svg":`/assets/xk-Bj15g7cp.svg`,"./assets/flags/xx.svg":`/assets/xx-zm_JmrXl.svg`,"./assets/flags/ye.svg":`/assets/ye-BwST9gXC.svg`,"./assets/flags/yt.svg":`/assets/yt-DIfEG0ex.svg`,"./assets/flags/za.svg":`/assets/za-Jz40JTrv.svg`,"./assets/flags/zm.svg":`/assets/zm-BmsW91ne.svg`,"./assets/flags/zw.svg":`/assets/zw-U0m7oJ5e.svg`}),sC=new Map;for(let[e,t]of Object.entries(oC)){let n=e.match(/\/([^/]+)\.svg$/);n&&sC.set(n[1].toLowerCase(),t)}function cC(e){return sC.get(e.toLowerCase())}var lC=[`src`,`alt`,`width`,`height`],uC=F({__name:`Flag`,props:{code:{},override:{},size:{default:16}},setup(e){let t=e,n=q(()=>RS(t.code,t.override)),r=q(()=>n.value.flagRegion?cC(n.value.flagRegion):void 0),i=q(()=>Math.round(t.size*4/3));return(t,a)=>r.value?(z(),B(`img`,{key:0,src:r.value,alt:n.value.name,width:i.value,height:e.size,class:`inline-block shrink-0 rounded-[2px] object-cover ring-1 ring-black/10`,style:he({width:`${i.value}px`,height:`${e.size}px`})},null,12,lC)):(z(),V(M(Gu),{key:1,class:`inline-block shrink-0 text-muted-foreground`,style:he({width:`${e.size}px`,height:`${e.size}px`}),"aria-hidden":`true`},null,8,[`style`]))}}),dC=[`title`],fC={class:`flex min-w-0 flex-col leading-tight`},pC={class:`flex items-center gap-1.5`},mC={class:`font-mono text-[11.5px] font-semibold tracking-wide`},hC={key:0,class:`rounded border border-border px-1 text-[9px] font-bold uppercase tracking-wide text-muted-foreground`,title:`Right-to-left`},gC={key:0,class:`truncate text-[11px] text-muted-foreground`},_C=[`title`],vC={key:0,class:`truncate`},yC=F({__name:`LanguageLabel`,props:{code:{},override:{},showName:{type:Boolean,default:!1},showCode:{type:Boolean,default:!0},size:{default:16},codeMinChars:{},layout:{default:`inline`}},setup(e){let t=e,n=q(()=>RS(t.code,t.override));return(t,r)=>e.layout===`stacked`?(z(),B(`span`,{key:0,class:`inline-flex min-w-0 items-start gap-2`,title:n.value.name},[U(uC,{code:e.code,override:e.override,size:e.size,class:`mt-0.5 shrink-0`},null,8,[`code`,`override`,`size`]),H(`span`,fC,[H(`span`,pC,[H(`span`,mC,A(e.code.toUpperCase()),1),n.value.rtl?(z(),B(`span`,hC,`RTL`)):G(``,!0)]),e.showName?(z(),B(`span`,gC,A(n.value.name),1)):G(``,!0)])],8,dC)):(z(),B(`span`,{key:1,class:`inline-flex min-w-0 items-center gap-1.5`,title:n.value.name},[U(uC,{code:e.code,override:e.override,size:e.size},null,8,[`code`,`override`,`size`]),e.showName?(z(),B(`span`,vC,A(n.value.name),1)):G(``,!0),e.showCode?(z(),B(`span`,{key:1,class:`font-mono text-xs`,style:he(e.codeMinChars==null?void 0:{minWidth:`${e.codeMinChars}ch`})},A(e.code.toUpperCase()),5)):G(``,!0)],8,_C))}}),bC=[`data-state`],xC={class:`flex flex-wrap items-start gap-2 pt-0.5`},SC={key:0,class:`rounded-md border border-border-soft bg-accent px-1.5 py-0.5 text-[10.5px] font-semibold uppercase tracking-wide text-muted-foreground`},CC=[`dir`],wC={key:0,"data-testid":`filling-hint`,class:`flex items-center gap-1.5 text-sm italic text-muted-foreground`},TC={key:0,class:`flex items-center justify-end gap-1.5 pt-0.5`},EC={type:`button`,class:`flex size-7 items-center justify-center rounded-md bg-destructive-soft text-destructive transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":`Show issues`},DC={class:`flex flex-col gap-1`},OC={key:0,class:`mt-2 border-t pt-2`},kC={class:`flex flex-wrap gap-1`},AC=[`title`,`onClick`],jC=[`disabled`],MC=F({__name:`TranslationRow`,props:{keyName:{},locale:{},sourceLocale:{},value:{},maxLength:{},issues:{},labelChars:{},plural:{},sourceForms:{},filling:{type:Boolean}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=q(()=>n.locale===n.sourceLocale),a=q(()=>n.value?.state??(i.value?`source`:`needs-review`)),o=q(()=>n.value?.value??``),s=q(()=>!!n.plural),c=q(()=>n.value?.forms??{}),l=q(()=>LS(n.locale)),u=q(()=>!i.value&&(s.value?Object.keys(c.value).length>0:!!n.value?.value)),d=q(()=>(n.issues?.length??0)>0),f=q(()=>[...new Set((n.issues??[]).filter(e=>e.check===`spelling`).flatMap(e=>e.detail??[]))]);async function p(e){try{await qd(e),$.success(`Added "${e}" to the dictionary`),r(`changed`)}catch(e){$.error(`Could not add word: ${e.message}`)}}let m=j(!1);async function h(){try{await Fd(n.keyName,n.locale),$.success(`Cleared`),r(`changed`)}catch(e){$.error(e.message)}}async function g(e){try{await Pd(n.keyName,n.locale,e),r(`changed`)}catch(e){$.error(`Could not update state: ${e.message}`)}}async function _(){m.value=!0;try{let e=await zd({onlyMissing:!1,locales:[n.locale],keyGlob:n.keyName,force:!0});e.errors?.length?$.error(e.errors[0]?.error??`Translation failed`):$.success(`Translated ${n.locale.toUpperCase()} (${e.written} written)`),r(`changed`)}catch(e){$.error(`Translate failed: ${e.message}`)}finally{m.value=!1}}return(t,n)=>(z(),B(`div`,{class:k(M(Ax)(`grid grid-cols-[172px_minmax(0,1fr)_232px] items-start gap-[18px] border-b border-border-soft py-[11px] pl-4 pr-[18px] last:border-b-0 max-[1080px]:grid-cols-[150px_minmax(0,1fr)_200px] max-[1080px]:gap-3`,i.value&&`bg-foreground/[0.015] dark:bg-foreground/[0.025]`)),"data-state":a.value},[H(`div`,xC,[U(yC,{code:e.locale,layout:`stacked`,"show-name":``,size:15},null,8,[`code`]),i.value?(z(),B(`span`,SC,`Source`)):G(``,!0)]),H(`div`,{class:`flex min-w-0 flex-col gap-2`,dir:l.value?`rtl`:`ltr`},[e.filling?(z(),B(`div`,wC,[U(M(Zu),{class:`size-3.5 shrink-0 animate-spin`}),n[2]||=W(` filling… `,-1)])):s.value?(z(),V(aC,{key:1,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,arg:e.plural.arg,forms:c.value,"source-forms":e.sourceForms,"max-length":e.maxLength,onChanged:n[0]||=e=>r(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`arg`,`forms`,`source-forms`,`max-length`])):(z(),V(XS,{key:2,"key-name":e.keyName,locale:e.locale,"source-locale":e.sourceLocale,value:o.value,"max-length":e.maxLength,onChanged:n[1]||=e=>r(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`]))],8,CC),i.value?G(``,!0):(z(),B(`div`,TC,[d.value?(z(),V(M(Vv),{key:0},{default:N(()=>[U(M(qv),{"as-child":``},{default:N(()=>[H(`button`,EC,[U(M(vd),{class:`size-3.5`})])]),_:1}),U(M(zx),{align:`end`,class:`w-fit max-w-xs text-xs`},{default:N(()=>[H(`ul`,DC,[(z(!0),B(R,null,I(e.issues,(e,t)=>(z(),B(`li`,{key:t,class:`whitespace-pre-line text-foreground/80`},A(e.message),1))),128))]),f.value.length?(z(),B(`div`,OC,[n[3]||=H(`p`,{class:`mb-1 text-[11px] font-medium text-muted-foreground`},`Add to dictionary`,-1),H(`div`,kC,[(z(!0),B(R,null,I(f.value,e=>(z(),B(`button`,{key:e,type:`button`,class:`inline-flex items-center gap-0.5 rounded border border-amber-500/40 px-1.5 py-0.5 text-[11px] text-amber-700 transition-colors hover:bg-amber-500/10 dark:text-amber-300`,title:`Add '${e}' to the custom dictionary`,onClick:t=>p(e)},[U(M(rd),{class:`size-3`}),W(A(e),1)],8,AC))),128))])])):G(``,!0)]),_:1})]),_:1})):G(``,!0),u.value?(z(),V(M(Qy),{key:1},{default:N(()=>[U(M(rb),{"as-child":``},{default:N(()=>[H(`button`,{type:`button`,class:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,"aria-label":`Clear translation`,onClick:Jl(h,[`stop`])},[U(M(Iu),{class:`size-4`})])]),_:1}),U(M(ES),null,{default:N(()=>[...n[4]||=[W(`Clear translation`,-1)]]),_:1})]),_:1})):G(``,!0),U(M(Qy),null,{default:N(()=>[U(M(rb),{"as-child":``},{default:N(()=>[H(`button`,{type:`button`,class:`flex size-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-primary-soft hover:text-primary disabled:opacity-50`,disabled:m.value||e.filling,"aria-label":`AI translate this cell`,onClick:Jl(_,[`stop`])},[m.value||e.filling?(z(),V(M(Zu),{key:0,class:`size-4 animate-spin`})):(z(),V(M(Yu),{key:1,class:`size-4`}))],8,jC)]),_:1}),U(M(ES),null,{default:N(()=>[...n[5]||=[W(`AI translate`,-1)]]),_:1})]),_:1}),U(VS,{state:a.value,editable:!0,onSetState:g},null,8,[`state`])]))],10,bC))}}),NC={key:0,class:`pointer-events-none absolute inset-0 z-[3] border-2 border-primary`,"aria-hidden":`true`},PC={key:1,class:`pointer-events-none absolute inset-y-0 left-0 z-[4] w-1 bg-primary`,"aria-hidden":`true`},FC=[`aria-pressed`],IC={class:`sticky top-3`},LC=[`aria-checked`],RC={class:`absolute right-0 top-0`},zC=[`disabled`],BC={class:`break-words pl-6 pr-7 font-mono text-[13.5px] font-semibold tracking-tight`},VC={key:0,class:`mt-1.5 flex flex-wrap items-center gap-1.5 pl-6`},HC={key:0,class:`inline-flex items-center gap-1 rounded-md border border-primary-border bg-primary/[0.09] px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-primary`},UC={class:`font-medium normal-case text-muted-foreground`},WC={key:1,"data-testid":`skip-badge`,class:`inline-flex items-center gap-1 rounded-md border border-warning-border bg-warning-bg px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-warning`,title:`Excluded from translation`},GC=[`title`],KC={key:1,class:`mt-2 flex flex-wrap gap-1.5 pl-6`},qC=[`title`,`onClick`],JC=[`data-testid`,`disabled`,`title`],YC={key:3,"data-testid":`translating-missing`,class:`ml-6 mt-2.5 inline-flex items-center gap-1 text-[11px] text-primary`},XC=[`disabled`,`title`],ZC={class:`min-w-0 flex-1 [&>*:nth-child(even)]:bg-zebra`},QC={class:`grid gap-2`},$C={class:`font-mono`},ew=F({__name:`KeyRow`,props:{keyName:{},entry:{},sourceLocale:{},locales:{},selected:{type:Boolean},checked:{type:Boolean},issues:{}},emits:[`changed`,`select`,`toggle-select`,`renamed`,`filter-tag`],setup(e,{emit:t}){let n=e,r=q(()=>{let e=new Map;for(let t of n.issues??[]){let n=e.get(t.locale);n?n.push(t):e.set(t.locale,[t])}return e}),i=t,a=j(!1),o=j(``),s=j(!1),c=j(!1),l=j(!1),u=j(!1),d=q(()=>AS(n.entry,n.locales,n.sourceLocale)),f=q(()=>jS(n.entry,n.locales,n.sourceLocale));async function p(){u.value=!0;try{let e=await zd({onlyMissing:!1,force:!0,keyGlob:n.keyName,locales:f.value});e.errors?.length?$.error(e.errors[0]?.error??`Translation failed`):$.success(`Re-translated ${e.written} stale value${e.written===1?``:`s`}`),i(`changed`)}catch(e){$.error(`Translate failed: ${e.message}`)}finally{u.value=!1}}async function m(){l.value=!0;try{let e=await zd({onlyMissing:!0,keyGlob:n.keyName});e.errors?.length?$.error(e.errors[0]?.error??`Translation failed`):$.success(`Translated ${e.written} missing value${e.written===1?``:`s`}`),i(`changed`)}catch(e){$.error(`Translate failed: ${e.message}`)}finally{l.value=!1}}function h(e){i(`toggle-select`,{shift:e.shiftKey})}async function g(){let e=!n.entry.skipTranslate;c.value=!0;try{await jd([n.keyName],{skipTranslate:e}),$.success(e?`Excluded from translation`:`Included in translation`),i(`changed`)}catch(e){$.error(`Update failed: ${e.message}`)}finally{c.value=!1}}function _(){o.value=n.keyName,a.value=!0}async function v(){let e=o.value.trim();if(!e||e===n.keyName){a.value=!1;return}c.value=!0;try{await Md(n.keyName,{rename:e}),a.value=!1,$.success(`Renamed to ${e}`),i(`renamed`,e)}catch(e){$.error(`Rename failed: ${e.message}`)}finally{c.value=!1}}async function y(){c.value=!0;try{await Dd(n.keyName),s.value=!1,$.success(`Deleted ${n.keyName}`),i(`changed`)}catch(e){$.error(`Delete failed: ${e.message}`)}finally{c.value=!1}}return(t,n)=>(z(),B(`div`,{class:k(M(Ax)(`relative flex border-b-2 border-border bg-card`,e.selected&&`z-[1]`))},[e.selected?(z(),B(`span`,NC)):G(``,!0),e.selected?(z(),B(`span`,PC)):G(``,!0),H(`div`,{class:k(M(Ax)(`relative w-[272px] shrink-0 border-r border-border-soft p-[14px_16px_14px_18px] max-[1080px]:w-[216px]`,e.selected&&`bg-primary-soft/60`)),role:`button`,"aria-pressed":e.selected,title:`Select key`,onClick:n[2]||=e=>i(`select`)},[H(`div`,IC,[H(`button`,{type:`button`,role:`checkbox`,"aria-checked":!!e.checked,"data-testid":`row-select`,class:k([`absolute left-0 top-0.5 flex size-4 items-center justify-center rounded border transition-colors`,e.checked?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":`Select key`,onClick:Jl(h,[`stop`])},[e.checked?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],10,LC),H(`div`,RC,[U(M(Xv),null,{default:N(()=>[U(M(ny),{"as-child":``},{default:N(()=>[H(`button`,{type:`button`,class:`flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Key actions`,disabled:l.value,onClick:n[0]||=Jl(()=>{},[`stop`])},[U(M(Fu),{class:`size-4`})],8,zC)]),_:1}),U(M(_S),{align:`end`},{default:N(()=>[d.value.length>0?(z(),V(M(vS),{key:0,disabled:l.value,onSelect:m},{default:N(()=>[U(M(pd),{class:`size-4`}),W(` Translate missing (`+A(d.value.length)+`) `,1)]),_:1},8,[`disabled`])):G(``,!0),U(M(vS),{onSelect:_},{default:N(()=>[U(M(nd),{class:`size-4`}),n[9]||=W(` Rename `,-1)]),_:1}),U(M(vS),{"data-testid":`toggle-skip`,disabled:c.value,onSelect:g},{default:N(()=>[U(M(Yu),{class:`size-4`}),W(` `+A(e.entry.skipTranslate?`Include in translation`:`Skip translation`),1)]),_:1},8,[`disabled`]),U(M(vS),{class:`text-destructive data-[highlighted]:bg-destructive/10 data-[highlighted]:text-destructive`,onSelect:n[1]||=e=>s.value=!0},{default:N(()=>[U(M(_d),{class:`size-4`}),n[10]||=W(` Delete `,-1)]),_:1})]),_:1})]),_:1})]),H(`div`,BC,[W(A(e.keyName),1),e.entry.screenshot?(z(),V(M(qu),{key:0,class:`ml-1.5 inline size-3.5 align-[-2px] text-muted-foreground`,"aria-label":`Has screenshot`})):G(``,!0)]),e.entry.plural||e.entry.skipTranslate||(e.issues?.length??0)>0?(z(),B(`div`,VC,[e.entry.plural?(z(),B(`span`,HC,[n[11]||=W(`PLURAL`,-1),H(`span`,UC,`· `+A(e.entry.plural.arg),1)])):G(``,!0),e.entry.skipTranslate?(z(),B(`span`,WC,`SKIP`)):G(``,!0),(e.issues?.length??0)>0?(z(),B(`span`,{key:2,"data-testid":`issue-badge`,class:`inline-flex items-center gap-1 rounded-md bg-destructive-soft px-1.5 py-0.5 text-[11.5px] font-bold text-destructive`,title:`${e.issues.length} issue${e.issues.length===1?``:`s`}`},[U(M(vd),{class:`size-3`}),W(A(e.issues.length),1)],8,GC)):G(``,!0)])):G(``,!0),(e.entry.tags??[]).length?(z(),B(`div`,KC,[(z(!0),B(R,null,I(e.entry.tags,e=>(z(),B(`button`,{key:e,type:`button`,class:`inline-flex h-[22px] items-center gap-1.5 rounded-full border border-primary-border bg-transparent px-[9px] text-xs font-medium text-foreground transition-colors hover:border-primary hover:bg-primary/[0.07]`,title:`Filter by tag: ${e}`,onClick:Jl(t=>i(`filter-tag`,e),[`stop`])},[U(M(hd),{class:`size-3 text-primary`}),W(A(e),1)],8,qC))),128))])):G(``,!0),d.value.length>0?(z(),B(`button`,{key:2,type:`button`,"data-testid":l.value?`translating-missing`:`translate-missing-btn`,disabled:l.value,class:`ml-6 mt-2.5 inline-flex items-center gap-1.5 rounded-lg border border-primary-border bg-primary-soft px-2.5 py-1.5 text-[11.5px] font-semibold text-primary transition hover:brightness-95 disabled:opacity-80`,title:`Translate the ${d.value.length} missing language${d.value.length>1?`s`:``} for this key`,onClick:Jl(m,[`stop`])},[l.value?(z(),V(M(Zu),{key:0,class:`size-3 animate-spin`})):(z(),V(M(pd),{key:1,class:`size-3`})),W(` `+A(l.value?`Translating…`:`Translate ${d.value.length} missing`),1)],8,JC)):l.value?(z(),B(`span`,YC,[U(M(Zu),{class:`size-3 animate-spin`}),n[12]||=W(` Translating… `,-1)])):G(``,!0),f.value.length>0?(z(),B(`button`,{key:4,type:`button`,"data-testid":`retranslate-stale-btn`,disabled:u.value,class:`ml-6 mt-2.5 inline-flex items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-2.5 py-1.5 text-[11.5px] font-semibold text-amber-700 transition hover:brightness-95 disabled:opacity-80 dark:text-amber-300`,title:`Re-translate the ${f.value.length} stale language${f.value.length>1?`s`:``} for this key`,onClick:Jl(p,[`stop`])},[u.value?(z(),V(M(Zu),{key:0,class:`size-3 animate-spin`})):(z(),V(M(id),{key:1,class:`size-3`})),W(` `+A(u.value?`Re-translating…`:`Re-translate ${f.value.length} stale`),1)],8,XC)):G(``,!0)])],10,FC),H(`div`,ZC,[(z(!0),B(R,null,I(e.locales,t=>(z(),V(MC,{key:t,"key-name":e.keyName,locale:t,"source-locale":e.sourceLocale,value:e.entry.values[t],"max-length":e.entry.maxLength,issues:r.value.get(t)??[],plural:e.entry.plural,"source-forms":e.entry.values[e.sourceLocale]?.forms,filling:l.value&&d.value.includes(t)||u.value&&f.value.includes(t),onChanged:n[3]||=e=>i(`changed`)},null,8,[`key-name`,`locale`,`source-locale`,`value`,`max-length`,`issues`,`plural`,`source-forms`,`filling`]))),128))]),U(M(Xm),{open:a.value,"onUpdate:open":n[6]||=e=>a.value=e},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[13]||=[W(`Rename key`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[...n[14]||=[W(`Use dot notation, e.g. `,-1),H(`span`,{class:`font-mono`},`home.title`,-1),W(`.`,-1)]]),_:1})]),_:1}),H(`div`,QC,[U(M(dS),{for:`rename-key`},{default:N(()=>[...n[15]||=[W(`New key`,-1)]]),_:1}),U(M(Mx),{id:`rename-key`,modelValue:o.value,"onUpdate:modelValue":n[4]||=e=>o.value=e,class:`font-mono`,onKeydown:Xl(Jl(v,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:c.value,onClick:n[5]||=e=>a.value=!1},{default:N(()=>[...n[16]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{disabled:c.value,onClick:v},{default:N(()=>[...n[17]||=[W(`Rename`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),U(M(Xm),{open:s.value,"onUpdate:open":n[8]||=e=>s.value=e},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[18]||=[W(`Delete key`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[n[19]||=W(` Delete `,-1),H(`span`,$C,A(e.keyName),1),n[20]||=W(` and all its translations? This cannot be undone. `,-1)]),_:1})]),_:1}),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:c.value,onClick:n[7]||=e=>s.value=!1},{default:N(()=>[...n[21]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{variant:`destructive`,disabled:c.value,onClick:y},{default:N(()=>[...n[22]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])],2))}}),tw=[{id:`phpstorm`,label:`PhpStorm`,buildUrl:e=>`phpstorm://open?file=${encodeURIComponent(e.abs)}&line=${e.line}`},{id:`vscode`,label:`VS Code`,buildUrl:e=>`vscode://file${e.abs}:${e.line}:${e.col}`},{id:`zed`,label:`Zed`,buildUrl:e=>`zed://file${e.abs}:${e.line}:${e.col}`}],nw=`glotfile:editor`,rw=`vscode`;function iw(){let e=localStorage.getItem(nw);return tw.some(t=>t.id===e)?e:rw}function aw(e){localStorage.setItem(nw,e)}function ow(e,t){return(tw.find(e=>e.id===iw())??tw[0]).buildUrl(e,t)}function sw(){return{dirs:new Map,files:new Map}}function cw(e){let t=sw();for(let n of e){let e=n.file.split(`/`).filter(Boolean),r=e.pop()??n.file,i=t;for(let t of e){let e=i.dirs.get(t);e||(e=sw(),i.dirs.set(t,e)),i=e}let a=i.files.get(r)??[];a.push({line:n.line,url:n.url}),i.files.set(r,a)}let n=[],r=(e,t)=>{for(let i of[...e.dirs.keys()].sort()){let a=i,o=e.dirs.get(i);for(;o.files.size===0&&o.dirs.size===1;){let e=[...o.dirs.keys()][0];a+=`/`+e,o=o.dirs.get(e)}n.push({kind:`dir`,depth:t,label:a}),r(o,t+1)}for(let r of[...e.files.keys()].sort()){let i=e.files.get(r).slice().sort((e,t)=>e.line-t.line);n.push({kind:`file`,depth:t,name:r,refs:i})}};return r(t,0),n}var lw={class:`flex flex-col gap-2`},uw={key:0,class:`flex flex-col gap-2`},dw={class:`mt-1 flex gap-2`},fw={class:`flex items-center justify-between`},pw={class:`font-mono text-[10px] text-muted-foreground`},mw={class:`flex gap-1.5`},hw=[`onClick`],gw=[`onClick`],_w={class:`whitespace-pre-wrap break-words text-[12.5px] leading-snug`},vw=F({__name:`NotesEditor`,props:{keyName:{},notes:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=e=>new Date(e).toLocaleString(),a=j(``),o=j(!1);async function s(){let e=a.value.trim();if(e){o.value=!0;try{await $d(n.keyName,e),a.value=``,r(`changed`)}catch(e){$.error(`Could not add note: ${e.message}`)}finally{o.value=!1}}}let c=j(null),l=j(``),u=j(!1);function d(e){c.value=e.id,l.value=e.text}function f(){c.value=null,l.value=``}async function p(e){let t=l.value.trim();if(t){u.value=!0;try{await ef(n.keyName,e,t),f(),r(`changed`)}catch(e){$.error(`Could not save note: ${e.message}`)}finally{u.value=!1}}}async function m(e){try{await tf(n.keyName,e),r(`changed`)}catch(e){$.error(`Could not delete note: ${e.message}`)}}return(t,n)=>(z(),B(`div`,lw,[n[5]||=H(`p`,{class:`text-[13px] font-semibold`},`Notes`,-1),n[6]||=H(`p`,{class:`-mt-1 text-[11.5px] text-muted-foreground`},`Internal notes — never sent to the AI or exported.`,-1),e.notes.length?(z(),B(`ul`,uw,[(z(!0),B(R,null,I(e.notes,e=>(z(),B(`li`,{key:e.id,class:`flex flex-col gap-1 rounded-lg border border-border-soft bg-background p-2.5 text-sm`},[c.value===e.id?(z(),B(R,{key:0},[U(M(GS),{modelValue:l.value,"onUpdate:modelValue":n[0]||=e=>l.value=e,rows:`2`,onKeydown:Xl(Jl(f,[`prevent`]),[`escape`])},null,8,[`modelValue`,`onKeydown`]),H(`div`,dw,[U(M(Q),{size:`sm`,disabled:u.value||!l.value.trim(),onClick:t=>p(e.id)},{default:N(()=>[...n[2]||=[W(`Save`,-1)]]),_:1},8,[`disabled`,`onClick`]),U(M(Q),{size:`sm`,variant:`ghost`,onClick:f},{default:N(()=>[...n[3]||=[W(`Cancel`,-1)]]),_:1})])],64)):(z(),B(R,{key:1},[H(`div`,fw,[H(`span`,pw,A(i(e.at)),1),H(`span`,mw,[H(`button`,{type:`button`,"aria-label":`Edit note`,class:`text-muted-foreground hover:text-foreground`,onClick:t=>d(e)},[U(M(nd),{class:`size-3.5`})],8,hw),H(`button`,{type:`button`,"aria-label":`Delete note`,class:`text-muted-foreground hover:text-destructive`,onClick:t=>m(e.id)},[U(M(_d),{class:`size-3.5`})],8,gw)])]),H(`p`,_w,A(e.text),1)],64))]))),128))])):G(``,!0),U(M(GS),{"data-testid":`new-note`,modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,rows:`2`,placeholder:`Add an internal note…`},null,8,[`modelValue`]),U(M(Q),{"data-testid":`add-note`,variant:`outline`,class:`w-full text-muted-foreground`,disabled:o.value||!a.value.trim(),onClick:s},{default:N(()=>[...n[4]||=[W(` Add note `,-1)]]),_:1},8,[`disabled`])]))}}),yw={class:`flex w-[420px] shrink-0 flex-col overflow-y-auto border-l border-border bg-card max-[1080px]:hidden`},bw={key:0,class:`flex flex-1 flex-col items-center justify-center gap-2.5 p-10 text-center text-muted-foreground`},xw={key:1,class:`flex flex-col gap-4 px-5 pb-10 pt-[18px]`},Sw={class:`flex flex-col gap-0.5`},Cw=[`title`],ww={class:`flex flex-wrap items-center gap-2`},Tw={key:0,class:`rounded-md border border-primary-border bg-primary-soft px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-primary`},Ew={key:1,class:`rounded-md border border-border-soft bg-accent px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-wide text-muted-foreground`},Dw=[`disabled`],Ow=[`disabled`],kw={key:0,class:`flex flex-col gap-1.5`},Aw={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-destructive`},jw={class:`font-mono text-[11px] font-semibold`},Mw={class:`ml-auto rounded border border-destructive px-1.5 py-0.5 text-[10.5px] font-semibold text-destructive`},Nw={key:1,class:`flex flex-col gap-1.5`},Pw={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-muted-foreground`},Fw={class:`font-mono text-[11px] font-semibold`},Iw={class:`flex flex-col gap-1.5`},Lw={class:`flex items-center gap-1.5`},Rw={key:0,class:`ml-auto text-[11.5px] text-muted-foreground`},zw={key:0,class:`text-[12px] text-muted-foreground`},Bw={key:0,class:`rounded-md border border-border-soft bg-accent px-2 py-1.5 text-[12px] text-muted-foreground`},Vw={key:1,class:`flex flex-col gap-0.5 text-[11.5px]`},Hw=[`title`],Uw=[`title`],Ww={class:`flex min-w-0 flex-wrap items-baseline gap-x-1.5 gap-y-0.5`},Gw={key:2,class:`flex flex-col gap-1`},Kw={class:`flex items-center gap-1 text-[11px] font-medium text-muted-foreground`},qw={class:`flex flex-col gap-1`},Jw={class:`min-w-0 flex-1 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`}},Yw={class:`shrink-0 rounded border border-dashed border-border-soft px-1 font-mono text-[10px]`},Xw={class:`shrink-0 font-mono`},Zw={class:`flex flex-col gap-1.5`},Qw={class:`flex items-center gap-1.5`},$w=[`title`],eT=[`disabled`,`title`],tT={class:`flex flex-col gap-1.5`},nT={class:`flex items-center gap-1.5`},rT={class:`flex flex-col gap-1.5`},iT={class:`flex items-center gap-1.5`},aT={class:`flex flex-col gap-2`},oT={class:`flex items-center gap-1.5 text-[11px] font-bold uppercase tracking-wide text-muted-foreground`},sT={key:0,class:`flex flex-col gap-2`},cT=[`src`,`alt`],lT={class:`flex gap-2`},uT=[`disabled`],dT={class:`flex flex-col gap-1.5 text-[11.5px] text-muted-foreground`},fT={class:`flex items-center justify-between gap-3`},pT={class:`font-mono text-[11px] text-foreground`},mT={class:`flex items-center justify-between gap-3`},hT={class:`font-mono text-[11px] text-foreground`},gT=F({__name:`DetailPanel`,props:{keyName:{},entry:{},issues:{},locales:{},sourceLocale:{},usageRevision:{}},emits:[`changed`],setup(e,{emit:t}){let n=e,r=t,i=e=>e?new Date(e).toLocaleString():`—`,a=q(()=>{let e=``;for(let t of Object.values(n.entry?.values??{}))t.updatedAt&&t.updatedAt>e&&(e=t.updatedAt);return e||void 0}),o=q(()=>!!n.entry?.plural),s={placeholder:`Placeholder`,spelling:`Spelling`,length:`Length`,glossary:`Glossary`},c=q(()=>(n.issues??[]).filter(e=>e.check!==`untranslated`)),l=q(()=>{let e=n.entry,t=n.sourceLocale;return!e||!t?[]:(n.locales??[]).filter(n=>kS(e,n,t))}),u=j(null),d=j(!1),f=j(!1);function p(){u.value?.click()}async function m(e){let t=e.target,i=t.files?.[0];if(t.value=``,!(!i||!n.keyName)){d.value=!0;try{await Zd(n.keyName,i),$.success(`Screenshot uploaded`),r(`changed`)}catch(e){$.error(`Upload failed: ${e.message}`)}finally{d.value=!1}}}async function h(){if(n.keyName){f.value=!0;try{await Qd(n.keyName),$.success(`Screenshot removed`),r(`changed`)}catch(e){$.error(`Could not remove: ${e.message}`)}finally{f.value=!1}}}let g=Xt({context:``,tags:``,maxLength:void 0}),_=j(!1),v=j(!1);async function y(){if(n.keyName){v.value=!0;try{let e=await Vd({keyGlob:n.keyName,all:!0});e.written>0?($.success(`Context suggested — review and save`),r(`changed`)):e.errors.length>0?$.error(e.errors[0].error):$.info(`No usage found — add a code snippet or type context manually`)}catch(e){$.error(`Could not suggest: ${e.message}`)}finally{v.value=!1}}}P(()=>[n.keyName,n.entry],()=>{g.context=n.entry?.context??``,g.tags=(n.entry?.tags??[]).join(`, `),g.maxLength=n.entry?.maxLength},{immediate:!0});let b=j(null),x=j(6);async function S(){let e=n.keyName;if(!e){b.value=null;return}try{b.value=await Wd(e)}catch{b.value=null}}P(()=>n.keyName,async()=>{b.value=null,x.value=6,await S()},{immediate:!0}),P(()=>n.usageRevision,S);let C=e=>ow(e,b.value?.project??``),w=q(()=>(b.value?.refs??[]).map(e=>({...e,url:C(e)}))),T=q(()=>(b.value?.prefixRefs??[]).map(e=>({...e,url:C(e)}))),ee=q(()=>cw(w.value.slice(0,x.value))),E=j(`count`),te=j(!1);P(()=>[n.keyName,n.entry],()=>{E.value=n.entry?.plural?.arg??`count`},{immediate:!0});async function ne(){if(!n.keyName)return;let e=E.value.trim()||`count`;te.value=!0;try{await Ld(n.keyName,e),$.success(`Converted to plural`),r(`changed`)}catch(e){$.error(`Could not convert: ${e.message}`)}finally{te.value=!1}}async function re(){if(n.keyName){te.value=!0;try{await Rd(n.keyName),$.success(`Converted to a single string`),r(`changed`)}catch(e){$.error(`Could not convert: ${e.message}`)}finally{te.value=!1}}}async function D(){let e=E.value.trim();if(!(!n.keyName||!e||e===n.entry?.plural?.arg))try{await Md(n.keyName,{pluralArg:e}),$.success(`Renamed count variable`),r(`changed`)}catch(e){$.error(`Could not rename: ${e.message}`)}}async function ie(){if(n.keyName){_.value=!0;try{await Md(n.keyName,{metadata:{context:g.context||void 0,tags:g.tags?g.tags.split(`,`).map(e=>e.trim()).filter(Boolean):void 0,maxLength:g.maxLength?Number(g.maxLength):void 0}}),$.success(`Metadata saved`),r(`changed`)}catch(e){$.error(`Could not save: ${e.message}`)}finally{_.value=!1}}}return(t,n)=>(z(),B(`aside`,yw,[!e.keyName||!e.entry?(z(),B(`div`,bw,[U(M(Vu),{class:`size-5`}),n[6]||=H(`p`,{class:`max-w-[200px] text-sm leading-relaxed`},`Select a key to view and edit its details.`,-1)])):(z(),B(`div`,xw,[H(`div`,Sw,[n[7]||=H(`span`,{class:`text-[10.5px] font-bold uppercase tracking-wide text-muted-foreground`},`Key`,-1),H(`span`,{class:`break-words font-mono text-base font-semibold tracking-tight`,title:e.keyName},A(e.keyName),9,Cw)]),H(`div`,ww,[o.value?(z(),B(`span`,Tw,`PLURAL`)):(z(),B(`span`,Ew,`SINGLE`)),o.value?(z(),B(R,{key:2},[n[8]||=H(`span`,{class:`text-[11.5px] text-muted-foreground`},`arg`,-1),U(M(Mx),{modelValue:E.value,"onUpdate:modelValue":n[0]||=e=>E.value=e,class:`h-7 w-24 font-mono text-xs`,"aria-label":`Number variable name`,onBlur:D,onKeydown:Xl(Jl(D,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),H(`button`,{type:`button`,class:`ml-auto rounded-md px-2 py-1 text-[12px] font-semibold text-primary transition-colors hover:bg-primary-soft disabled:opacity-50`,disabled:te.value,onClick:re},`Make single`,8,Dw)],64)):(z(),B(`button`,{key:3,type:`button`,class:`ml-auto rounded-md px-2 py-1 text-[12px] font-semibold text-primary transition-colors hover:bg-primary-soft disabled:opacity-50`,disabled:te.value,onClick:ne},`Make plural`,8,Ow))]),c.value.length||l.value.length?(z(),B(`div`,{key:0,class:k(M(Ax)(`flex flex-col gap-3 rounded-xl border border-border bg-background p-3`,c.value.length&&`border-primary-border`))},[c.value.length?(z(),B(`div`,kw,[H(`div`,Aw,[U(M(vd),{class:`size-3.5`}),W(` `+A(c.value.length)+` issue`+A(c.value.length===1?``:`s`),1)]),(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`div`,{key:t,class:`flex items-center gap-2 text-[12.5px]`},[U(uC,{code:e.locale,size:14},null,8,[`code`]),H(`span`,jw,A(e.locale.toUpperCase()),1),H(`span`,Mw,A(s[e.check]??e.check),1)]))),128))])):G(``,!0),l.value.length?(z(),B(`div`,Nw,[H(`div`,Pw,[n[9]||=H(`span`,{class:`size-[7px] rounded-full bg-muted-foreground`},null,-1),W(` `+A(l.value.length)+` untranslated `,1)]),(z(!0),B(R,null,I(l.value,e=>(z(),B(`div`,{key:e,class:`flex items-center gap-2 text-[12.5px]`},[U(uC,{code:e,size:14},null,8,[`code`]),H(`span`,Fw,A(e.toUpperCase()),1),n[10]||=H(`span`,{class:`ml-auto rounded border border-border-soft bg-accent px-1.5 py-0.5 text-[10.5px] font-semibold italic text-muted-foreground`},`Empty`,-1)]))),128))])):G(``,!0)],2)):G(``,!0),H(`div`,Iw,[H(`div`,Lw,[U(M(Nu),{class:`size-3.5 text-muted-foreground`}),n[11]||=H(`span`,{class:`text-[13px] font-semibold`},`Usage`,-1),b.value?.indexed?(z(),B(`span`,Rw,A(b.value.count)+` reference`+A(b.value.count===1?``:`s`),1)):G(``,!0)]),!b.value||!b.value.indexed?(z(),B(`p`,zw,` Run a scan to find where this key is used in your code. `)):(z(),B(R,{key:1},[b.value.count===0&&T.value.length===0?(z(),B(`p`,Bw,` Not referenced in the last scan — this key may be unused. `)):G(``,!0),w.value.length?(z(),B(`div`,Vw,[(z(!0),B(R,null,I(ee.value,(e,t)=>(z(),B(R,{key:t},[e.kind===`dir`?(z(),B(`div`,{key:0,class:`flex items-center gap-1 text-muted-foreground`,style:he({paddingLeft:`${e.depth*12}px`})},[U(M(Wu),{class:`size-3 shrink-0`}),H(`span`,{class:`min-w-0 truncate font-mono`,style:{direction:`rtl`,"text-align":`left`},title:e.label},A(e.label),9,Hw)],4)):(z(),B(`div`,{key:1,class:`flex items-baseline gap-1.5`,style:he({paddingLeft:`${e.depth*12+16}px`})},[H(`span`,{class:`min-w-0 shrink truncate font-mono text-foreground`,title:e.name},A(e.name),9,Uw),H(`span`,Ww,[(z(!0),B(R,null,I(e.refs,(t,n)=>(z(),V(ia(t.url?`a`:`span`),{key:n,href:t.url||void 0,class:k([`shrink-0 font-mono text-muted-foreground`,t.url?`rounded px-0.5 hover:bg-accent hover:text-primary`:``]),title:t.url?`Open ${e.name}:${t.line}`:void 0},{default:N(()=>[W(`:`+A(t.line),1)]),_:2},1032,[`href`,`class`,`title`]))),128))])],4))],64))),128)),b.value.count>x.value?(z(),B(`button`,{key:0,type:`button`,class:`mt-0.5 self-start text-[11.5px] text-primary hover:underline`,onClick:n[1]||=e=>x.value=b.value.count},` + `+A(b.value.count-x.value)+` more `,1)):G(``,!0)])):G(``,!0),T.value.length?(z(),B(`div`,Gw,[H(`p`,Kw,[U(M(xu),{class:`size-3`}),n[12]||=W(` Possible usage (dynamic keys) `,-1)]),H(`ul`,qw,[(z(!0),B(R,null,I(T.value,(e,t)=>(z(),B(`li`,{key:t,class:`text-[11.5px]`},[(z(),V(ia(e.url?`a`:`div`),{href:e.url||void 0,class:k([`group flex items-baseline gap-2 text-muted-foreground`,e.url?`hover:text-primary`:``]),title:e.url?`Open ${e.file}:${e.line}`:`${e.file}:${e.line}`},{default:N(()=>[H(`span`,Jw,A(e.file),1),H(`span`,Yw,A(e.prefix)+`*`,1),H(`span`,Xw,`:`+A(e.line),1),e.url?(z(),V(M(Lu),{key:0,class:`size-3 shrink-0 opacity-0 transition-opacity group-hover:opacity-100`})):G(``,!0)]),_:2},1032,[`href`,`class`,`title`]))]))),128))])])):G(``,!0)],64))]),H(`div`,Zw,[H(`div`,Qw,[U(M(Ju),{class:`size-3.5 text-muted-foreground`}),n[14]||=H(`label`,{for:`detail-context`,class:`text-[13px] font-semibold`},`Context`,-1),e.entry.contextSource===`ai`?(z(),B(`span`,{key:0,class:`ml-0.5 flex items-center gap-0.5 rounded border border-primary/30 bg-primary/10 px-1 py-0.5 text-[10px] font-semibold text-primary`,title:e.entry.contextAt?`AI-generated ${i(e.entry.contextAt)}`:`AI-generated`},[U(M(pd),{class:`size-2.5`}),n[13]||=W(` AI `,-1)],8,$w)):G(``,!0),H(`button`,{type:`button`,class:`ml-auto flex items-center gap-1 rounded px-1.5 py-0.5 text-[11.5px] font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-40`,disabled:v.value,title:v.value?`Suggesting…`:`Suggest context with AI`,onClick:y},[U(M(pd),{class:`size-3`}),W(` `+A(v.value?`Suggesting…`:`Suggest`),1)],8,eT)]),U(M(GS),{id:`detail-context`,modelValue:g.context,"onUpdate:modelValue":n[2]||=e=>g.context=e,rows:`5`,class:`min-h-28`,placeholder:`Where/how this string is used…`},null,8,[`modelValue`])]),H(`div`,tT,[H(`div`,nT,[U(M(gd),{class:`size-3.5 text-muted-foreground`}),n[15]||=H(`label`,{for:`detail-tags`,class:`text-[13px] font-semibold`},`Tags`,-1)]),U(M(Mx),{id:`detail-tags`,modelValue:g.tags,"onUpdate:modelValue":n[3]||=e=>g.tags=e,placeholder:`comma, separated`},null,8,[`modelValue`])]),H(`div`,rT,[H(`div`,iT,[U(M(ad),{class:`size-3.5 text-muted-foreground`}),n[16]||=H(`label`,{for:`detail-maxlen`,class:`text-[13px] font-semibold`},`Max length`,-1)]),U(M(Mx),{id:`detail-maxlen`,modelValue:g.maxLength,"onUpdate:modelValue":n[4]||=e=>g.maxLength=e,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`—`,class:`font-mono`},null,8,[`modelValue`])]),U(M(Q),{class:`w-full`,disabled:_.value,onClick:ie},{default:N(()=>[...n[17]||=[W(`Save details`,-1)]]),_:1},8,[`disabled`]),n[23]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),e.keyName?(z(),V(vw,{key:1,"key-name":e.keyName,notes:e.entry.notes??[],onChanged:n[5]||=e=>r(`changed`)},null,8,[`key-name`,`notes`])):G(``,!0),n[24]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,aT,[H(`p`,oT,[U(M(qu),{class:`size-3.5`}),n[18]||=W(` Screenshot `,-1)]),H(`input`,{ref_key:`fileInput`,ref:u,type:`file`,accept:`image/*`,class:`hidden`,onChange:m},null,544),e.entry.screenshot?(z(),B(`div`,sT,[H(`img`,{src:`/`+e.entry.screenshot,alt:`Screenshot for ${e.keyName}`,class:`max-h-48 w-full rounded-lg border border-border object-contain`},null,8,cT),H(`div`,lT,[U(M(Q),{variant:`outline`,size:`sm`,disabled:d.value,onClick:p},{default:N(()=>[U(M(id),{class:`size-4`}),n[19]||=W(` Replace `,-1)]),_:1},8,[`disabled`]),U(M(Q),{variant:`outline`,size:`sm`,class:`text-muted-foreground hover:text-destructive`,disabled:f.value,onClick:h},{default:N(()=>[U(M(_d),{class:`size-4`}),n[20]||=W(` Remove `,-1)]),_:1},8,[`disabled`])])])):(z(),B(`button`,{key:1,type:`button`,class:`flex w-full flex-col items-center gap-2 rounded-xl border-[1.5px] border-dashed border-input p-[22px] text-center text-[12.5px] font-medium text-muted-foreground transition-colors hover:border-primary-border hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-60`,disabled:d.value,onClick:p},[U(M(bd),{class:`size-5`}),W(` `+A(d.value?`Uploading…`:`Upload screenshot`),1)],8,uT))]),n[25]||=H(`div`,{class:`h-px bg-border-soft`},null,-1),H(`div`,dT,[H(`div`,fT,[n[21]||=H(`span`,null,`Created`,-1),H(`span`,pT,A(i(e.entry.createdAt)),1)]),H(`div`,mT,[n[22]||=H(`span`,null,`Last updated`,-1),H(`span`,hT,A(i(a.value)),1)])])]))]))}}),_T={class:`grid gap-3`},vT={class:`grid gap-1.5`},yT={class:`grid gap-1.5`},bT={class:`flex items-center justify-between gap-2 rounded-md border p-2.5`},xT={class:`flex flex-col`},ST={key:0,class:`grid gap-1.5`},CT={key:1,class:`text-sm text-destructive`},wT=F({__name:`AddKeyDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:Oa([`created`],[`update:open`]),setup(e,{emit:t}){let n=Xa(e,`open`),r=t,i=j(``),a=j(``),o=j(``),s=j(!1),c=j(!1),l=j(`count`);P(n,e=>{e&&(i.value=``,a.value=``,o.value=``,c.value=!1,l.value=`count`)});async function u(){let e=i.value.trim();if(!e){o.value=`Key is required.`;return}if(!a.value.trim()){o.value=`Source value is required.`;return}s.value=!0,o.value=``;try{c.value?await Ed(e,a.value,{arg:l.value.trim()||`count`}):await Ed(e,a.value),$.success(`Added ${e}`),n.value=!1,r(`created`,e)}catch(e){o.value=e.message}finally{s.value=!1}}return(e,t)=>(z(),V(M(Xm),{open:n.value,"onUpdate:open":t[5]||=e=>n.value=e},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...t[6]||=[W(`Add key`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[...t[7]||=[W(`Create a new translation key using dot notation.`,-1)]]),_:1})]),_:1}),H(`div`,_T,[H(`div`,vT,[U(M(dS),{for:`add-key`},{default:N(()=>[...t[8]||=[W(`Key `,-1),H(`span`,{class:`text-destructive`},`*`,-1)]]),_:1}),U(M(Mx),{id:`add-key`,modelValue:i.value,"onUpdate:modelValue":t[0]||=e=>i.value=e,class:`font-mono`,placeholder:`home.title`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),H(`div`,yT,[U(M(dS),{for:`add-value`},{default:N(()=>[W(A(c.value?`Source value (other form)`:`Source value`)+` `,1),t[9]||=H(`span`,{class:`text-destructive`},`*`,-1)]),_:1}),U(M(Mx),{id:`add-value`,modelValue:a.value,"onUpdate:modelValue":t[1]||=e=>a.value=e,placeholder:c.value?`{count} items`:`Welcome home`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),H(`div`,bT,[H(`div`,xT,[U(M(dS),{for:`add-plural`,class:`cursor-pointer`},{default:N(()=>[...t[10]||=[W(`Plural`,-1)]]),_:1}),t[11]||=H(`span`,{class:`text-xs text-muted-foreground`},`One form per CLDR category, by locale.`,-1)]),U(M(Hx),{id:`add-plural`,modelValue:c.value,"onUpdate:modelValue":t[2]||=e=>c.value=e},null,8,[`modelValue`])]),c.value?(z(),B(`div`,ST,[U(M(dS),{for:`add-plural-arg`},{default:N(()=>[...t[12]||=[W(`Count argument`,-1)]]),_:1}),U(M(Mx),{id:`add-plural-arg`,modelValue:l.value,"onUpdate:modelValue":t[3]||=e=>l.value=e,class:`font-mono`,placeholder:`count`,onKeydown:Xl(Jl(u,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])):G(``,!0),o.value?(z(),B(`p`,CT,A(o.value),1)):G(``,!0)]),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:s.value,onClick:t[4]||=e=>n.value=!1},{default:N(()=>[...t[13]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{disabled:s.value||!i.value.trim()||!a.value.trim(),onClick:u},{default:N(()=>[...t[14]||=[W(`Add key`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),TT={key:0,class:`flex items-center gap-1.5 rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400`},ET={key:1,class:`text-sm text-destructive`},DT={key:2,class:`flex flex-1 items-center justify-center py-12 text-sm text-muted-foreground`},OT={key:0,class:`flex flex-col gap-1 rounded-md border border-amber-500/30 bg-amber-500/10 p-3 text-sm text-amber-700 dark:text-amber-400`},kT={class:`flex items-center gap-1.5 font-medium`},AT={class:`list-inside list-disc pl-1`},jT={class:`grid min-h-0 flex-1 grid-cols-[16rem_1fr] gap-3 overflow-hidden`},MT={class:`min-h-0 overflow-y-auto rounded-md border`},NT=[`title`,`onClick`],PT={key:0,class:`px-3 py-2 text-xs text-muted-foreground`},FT={key:0,class:`min-h-0 overflow-auto rounded-md border bg-muted/30 p-3 font-mono text-xs leading-relaxed [tab-size:2]`},IT={key:1,class:`flex min-h-0 items-center justify-center rounded-md border text-sm text-muted-foreground`},LT=F({__name:`ExportDialog`,props:Oa({exportLocales:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:[`update:open`],setup(e){let t=Xa(e,`open`),n=e,r=q(()=>(n.exportLocales?.length??0)>0),i=j(!1),a=j(!1),o=j(``),s=j([]),c=j([]),l=j(null),u=q(()=>s.value.find(e=>e.path===l.value)??null);async function d(){i.value=!0,o.value=``,s.value=[],c.value=[],l.value=null;try{let e=await rf();s.value=[...e.files].sort((e,t)=>e.path.localeCompare(t.path)),c.value=e.warnings,l.value=s.value[0]?.path??null}catch(e){o.value=e.message}finally{i.value=!1}}P(t,e=>{e&&d()},{immediate:!0});async function f(){a.value=!0;try{let e=await af();$.success(`Wrote ${e.files} file${e.files===1?``:`s`}`),t.value=!1}catch(e){$.error(`Export failed: ${e.message}`)}finally{a.value=!1}}return(e,d)=>(z(),V(M(Xm),{open:t.value,"onUpdate:open":d[1]||=e=>t.value=e},{default:N(()=>[U(M(fS),{class:`flex max-h-[85vh] w-full max-w-5xl flex-col`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...d[2]||=[W(`Export preview`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[...d[3]||=[W(`Review the files that will be written to disk.`,-1)]]),_:1})]),_:1}),r.value?(z(),B(`p`,TT,[U(M(vd),{class:`size-3.5 shrink-0`}),W(` Export is limited to `+A(n.exportLocales.length)+` language`+A(n.exportLocales.length===1?``:`s`)+` (Settings → Export targets). `,1)])):G(``,!0),o.value?(z(),B(`p`,ET,A(o.value),1)):G(``,!0),i.value?(z(),B(`div`,DT,` Generating preview… `)):o.value?G(``,!0):(z(),B(R,{key:3},[c.value.length?(z(),B(`div`,OT,[H(`p`,kT,[U(M(vd),{class:`size-4`}),W(` `+A(c.value.length)+` warning`+A(c.value.length===1?``:`s`),1)]),H(`ul`,AT,[(z(!0),B(R,null,I(c.value,(e,t)=>(z(),B(`li`,{key:t},A(e),1))),128))])])):G(``,!0),H(`div`,jT,[H(`ul`,MT,[(z(!0),B(R,null,I(s.value,e=>(z(),B(`li`,{key:e.path},[H(`button`,{type:`button`,class:k(M(Ax)(`w-full truncate px-3 py-1.5 text-left font-mono text-xs transition-colors`,e.path===l.value?`bg-accent text-accent-foreground`:`hover:bg-muted/60`)),title:e.path,onClick:t=>l.value=e.path},A(e.path),11,NT)]))),128)),s.value.length===0?(z(),B(`li`,PT,` No files to write. `)):G(``,!0)]),u.value?(z(),B(`pre`,FT,A(u.value.contents),1)):(z(),B(`div`,IT,` Select a file to preview its contents. `))])],64)),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:a.value,onClick:d[0]||=e=>t.value=!1},{default:N(()=>[...d[4]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{disabled:i.value||a.value||s.value.length===0,onClick:f},{default:N(()=>[U(M(Bu),{class:`size-4`}),W(` `+A(a.value?`Writing…`:`Write ${s.value.length} file${s.value.length===1?``:`s`}`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),RT={class:`relative h-2 w-full overflow-hidden rounded-full bg-muted`},zT=F({__name:`Progress`,props:{modelValue:{}},setup(e){return(t,n)=>(z(),B(`div`,RT,[H(`div`,{class:`h-full bg-primary transition-all`,style:he({width:`${Math.min(100,Math.max(0,e.modelValue??0))}%`})},null,4)]))}}),BT={key:0,class:`flex flex-col gap-1.5`},VT={class:`flex justify-between text-xs text-muted-foreground`},HT={key:1,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},UT={class:`flex items-center gap-1.5 font-medium`},WT={key:2,class:`flex min-h-0 flex-col gap-1.5`},GT={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},KT={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},qT={class:`inline-flex items-center gap-1.5 font-mono text-xs`},JT={class:`text-muted-foreground`},YT=F({__name:`TranslateDialog`,props:Oa({state:{},filteredKeys:{},targetLocale:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`changed`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=j(!1),o=j(``),s=j([]),c=j(0),l=j(0),u=null,d=q(()=>{let e=n.state;return e?n.targetLocale?[n.targetLocale]:e.config.locales.filter(t=>t!==e.config.sourceLocale):[]}),f=q(()=>{let e=n.state;if(!e)return 0;let t=n.filteredKeys?new Set(n.filteredKeys):null,r=0;for(let[n,i]of Object.entries(e.keys))if(!(t&&!t.has(n))&&!i.skipTranslate)for(let t of d.value)kS(i,t,e.config.sourceLocale)&&r++;return r}),p=j(null),m=q(()=>p.value??f.value);P(r,e=>{e&&(o.value=``,s.value=[],c.value=0,l.value=0,p.value=null)});function h(){u?.abort()}async function g(){u=new AbortController,a.value=!0,o.value=``,s.value=[],c.value=0,p.value=f.value,l.value=p.value;try{let e=u.signal,t=0,a=n.filteredKeys?.length?n.filteredKeys:void 0,o=n.targetLocale?[n.targetLocale]:void 0,d=o?[e,a,o]:a?[e,a]:[e];for await(let e of Bd(...d))e.type===`progress`?(c.value=e.done,l.value=e.total,i(`changed`)):e.type===`done`&&(t=e.written,s.value=e.errors,c.value=l.value,i(`changed`));e.aborted||($.success(`Translated ${t} string${t===1?``:`s`}`),s.value.length===0&&(r.value=!1))}catch(e){e.name!==`AbortError`&&(o.value=e.message)}finally{a.value=!1,u=null}}return(e,t)=>(z(),V(M(Xm),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:N(()=>[U(M(fS),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...t[2]||=[W(`Translate missing strings`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[m.value===0?(z(),B(R,{key:0},[W(`Nothing missing — all translations are filled.`)],64)):(z(),B(R,{key:1},[W(` Translate `+A(m.value.toLocaleString())+` missing string`+A(m.value===1?``:`s`)+` across `+A(d.value.length)+` language`+A(d.value.length===1?``:`s`)+` with Claude? This sends source strings + context to the AI provider. `,1)],64))]),_:1})]),_:1}),a.value||c.value>0?(z(),B(`div`,BT,[H(`div`,VT,[H(`span`,null,A(c.value.toLocaleString())+` / `+A(l.value.toLocaleString())+` translated`,1)]),U(M(zT),{"model-value":l.value>0?c.value/l.value*100:0},null,8,[`model-value`])])):G(``,!0),o.value?(z(),B(`div`,HT,[H(`p`,UT,[U(M(vd),{class:`size-4`}),t[3]||=W(` Translation failed `,-1)]),H(`p`,null,A(o.value),1)])):G(``,!0),s.value.length?(z(),B(`div`,WT,[H(`p`,GT,[U(M(vd),{class:`size-4`}),W(` `+A(s.value.length)+` string`+A(s.value.length===1?``:`s`)+` could not be translated `,1)]),H(`ul`,KT,[(z(!0),B(R,null,I(s.value,(e,t)=>(z(),B(`li`,{key:`${e.key}-${e.locale}-${t}`,class:`border-b px-3 py-1.5 last:border-b-0`},[H(`span`,qT,[W(A(e.key)+` @ `,1),U(yC,{code:e.locale,size:12},null,8,[`code`])]),H(`span`,JT,` — `+A(e.error),1)]))),128))])])):G(``,!0),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,onClick:t[0]||=e=>a.value?h():r.value=!1},{default:N(()=>[W(A(a.value?`Cancel`:`Close`),1)]),_:1}),m.value>0?(z(),V(M(Q),{key:0,disabled:a.value,onClick:g},{default:N(()=>[U(M(pd),{class:`size-4`}),W(` `+A(a.value?`Translating…`:`Translate`),1)]),_:1},8,[`disabled`])):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),XT={key:0,class:`flex flex-col gap-1 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive`},ZT={class:`flex items-center gap-1.5 font-medium`},QT={key:1,class:`flex min-h-0 flex-col gap-1.5`},$T={class:`flex items-center gap-1.5 text-sm font-medium text-amber-700 dark:text-amber-400`},eE={class:`min-h-0 flex-1 overflow-y-auto rounded-md border text-sm`},tE={class:`font-mono text-xs`},nE={class:`text-muted-foreground`},rE=F({__name:`ContextDialog`,props:Oa({state:{},keys:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`changed`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=j(!1),o=j(``),s=j([]),c=q(()=>{let e=n.state;return e?n.keys.filter(t=>e.keys[t]&&!e.keys[t].context).length:0});P(r,e=>{e&&(o.value=``,s.value=[])});async function l(){a.value=!0,o.value=``,s.value=[];try{let e=await Vd({keys:n.keys});$.success(`Built context for ${e.written} key${e.written===1?``:`s`}`),s.value=e.errors,i(`changed`),e.errors.length===0&&(r.value=!1)}catch(e){o.value=e.message}finally{a.value=!1}}return(e,t)=>(z(),V(M(Xm),{open:r.value,"onUpdate:open":t[1]||=e=>r.value=e},{default:N(()=>[U(M(fS),{class:`flex max-h-[85vh] max-w-lg flex-col`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...t[2]||=[W(`Build context`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[c.value===0?(z(),B(R,{key:0},[W(` All selected keys already have context — nothing to build. `)],64)):(z(),B(R,{key:1},[W(` Build AI context notes for `+A(c.value)+` selected key`+A(c.value===1?``:`s`)+` that currently have none? The AI will scan call-site code snippets to write a short translator hint for each key. `,1)],64))]),_:1})]),_:1}),o.value?(z(),B(`div`,XT,[H(`p`,ZT,[U(M(vd),{class:`size-4`}),t[3]||=W(` Build failed `,-1)]),H(`p`,null,A(o.value),1)])):G(``,!0),s.value.length?(z(),B(`div`,QT,[H(`p`,$T,[U(M(vd),{class:`size-4`}),W(` `+A(s.value.length)+` key`+A(s.value.length===1?``:`s`)+` could not be processed `,1)]),H(`ul`,eE,[(z(!0),B(R,null,I(s.value,(e,t)=>(z(),B(`li`,{key:`${e.key}-${t}`,class:`border-b px-3 py-1.5 last:border-b-0`},[H(`span`,tE,A(e.key),1),H(`span`,nE,` — `+A(e.error),1)]))),128))])])):G(``,!0),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:a.value,onClick:t[0]||=e=>r.value=!1},{default:N(()=>[...t[4]||=[W(`Close`,-1)]]),_:1},8,[`disabled`]),c.value>0?(z(),V(M(Q),{key:0,disabled:a.value,onClick:l},{default:N(()=>[U(M(pd),{class:`size-4`}),W(` `+A(a.value?`Building…`:`Build context`),1)]),_:1},8,[`disabled`])):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),iE={class:`flex min-h-0 flex-1 flex-col`},aE={class:`flex shrink-0 flex-wrap items-center gap-2 border-b px-4 py-2`},oE={class:`relative`},sE={key:0,class:`rounded bg-primary px-1.5 text-xs text-primary-foreground`},cE=[`aria-label`],lE={key:0},uE={class:`ml-auto flex items-center gap-2`},dE={class:`mr-1 text-xs text-muted-foreground tabular-nums`},fE={key:2},pE={key:3},mE={key:4},hE={key:0,class:`flex shrink-0 flex-wrap items-center gap-1.5 border-b px-4 py-1.5`},gE=[`aria-label`,`onClick`],_E=[`aria-label`,`onClick`],vE=[`aria-label`,`onClick`],yE={key:1,class:`sticky top-0 z-20 flex h-11 shrink-0 items-center gap-2 border-b bg-background pl-[18px] pr-4`},bE=[`aria-checked`,`aria-label`],xE={class:`text-sm font-medium tabular-nums`},SE={class:`text-sm text-muted-foreground`},CE={key:1,for:`select-all-checkbox`,class:`cursor-pointer select-none text-sm text-muted-foreground`},wE={class:`flex min-h-0 flex-1 overflow-hidden`},TE={key:0,class:`flex h-full items-center justify-center gap-2 p-8 text-sm text-muted-foreground`},EE={key:1,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},DE=[`data-index`],OE=`glotfile:enabledChecks`,kE=F({__name:`EditorView`,setup(e){let t=dn(null),{filter:n,sort:r,view:i,locale:a}=Yf(np()),o=j(n),s=TS();function c(){try{let e=localStorage.getItem(OE);if(e){let t=JSON.parse(e);return Rf.filter(e=>t.includes(e))}}catch{}return[...zf]}let l=j(c()),u=j(new Map),d=j(null),f=j(!1),p=j(0);async function m(){try{let e=await Gd();f.value=e.indexed,d.value=e.indexed?new Set(e.used):null}catch{f.value=!1,d.value=null}p.value++}let h=j(!1),g=0;async function _(){if(l.value.length===0){u.value=new Map,h.value=!1;return}try{let e=await lf(l.value);u.value=Gf(e.issues),h.value=e.spellPending,e.spellPending&&g<6?(g++,setTimeout(_,800)):g=0}catch{u.value=new Map}}P(l,e=>{localStorage.setItem(OE,JSON.stringify(e)),g=0,_()},{deep:!0});let v=j(r),y=j(i),b=j(a),x=null;P([v,y,b,()=>({...o.value,text:void 0})],()=>{rp(Xf({filter:o.value,sort:v.value,view:y.value,locale:b.value}))},{deep:!0}),P(()=>o.value.text,()=>{x&&clearTimeout(x),x=setTimeout(()=>{rp(Xf({filter:o.value,sort:v.value,view:y.value,locale:b.value}))},300)});let S=q(()=>o.value.states.length+o.value.issues.length+o.value.plurality.length+ +!!o.value.emptySource+ +!!o.value.aiContextUnreviewed+ +!!o.value.noUsages+ +!!o.value.skipTranslate),C=q(()=>{let e=0;for(let t of u.value.values())e+=t.length;return e});function w(e){o.value.states=o.value.states.filter(t=>t!==e)}function T(e){o.value.issues=o.value.issues.filter(t=>t!==e)}function ee(e){o.value.plurality=o.value.plurality.filter(t=>t!==e)}if(ip.value){let e=ip.value;o.value={text:``,states:[],issues:[],plurality:[],tag:``,needsAttention:!1,emptySource:!1,aiContextUnreviewed:!1,noUsages:!1,skipTranslate:!1,...e},e.locale&&(y.value=`bilingual`,b.value=e.locale),ip.value=null}let E=j(null),te=j(!1),ne=j(!1),re=j(!1),D=j(!1),ie=j(!1),ae=j(null),oe=j(null),se=j(!0),O=j(!1);async function ce(){t.value=await Td(),_()}let le=setTimeout(()=>{se.value&&(O.value=!0)},250);ce().finally(()=>{se.value=!1,O.value=!1,clearTimeout(le)});let ue=q(()=>t.value?.config.sourceLocale??``),de=q(()=>t.value?.config.locales??[]),fe=q(()=>de.value.filter(e=>e!==ue.value));P(fe,e=>{!b.value&&e.length>0&&(b.value=e[0])},{immediate:!0});let pe=q(()=>{if(y.value===`bilingual`)return b.value?[ue.value,b.value]:[ue.value];let e=de.value.filter(e=>e!==ue.value);return[ue.value,...e]}),me=q(()=>{let e=t.value;return e?Lf(e,o.value,u.value,d.value??void 0):[]}),ge=q(()=>{let e=t.value,n=me.value;if(v.value===`key-desc`)return[...n].reverse();if(v.value===`created`){let t=t=>{let n=e?.keys[t]?.createdAt;return n?Date.parse(n):0};return[...n].sort((e,n)=>t(n)-t(e))}if(v.value===`updated`){let t=t=>{let n=Object.values(e?.keys[t]?.values??{}),r=0;for(let e of n){let t=e.updatedAt?Date.parse(e.updatedAt):0;t>r&&(r=t)}return r};return[...n].sort((e,n)=>t(n)-t(e))}return n}),_e=q(()=>y.value===`bilingual`?b.value?[b.value]:[]:fe.value),ve=q(()=>y.value===`bilingual`?b.value||`—`:`all ${fe.value.length} targets`),ye=q(()=>s.keys()),be=q(()=>s.count.value),xe=q(()=>s.allSelected(ge.value)),Se=q(()=>s.someSelected(ge.value)),Ce=q(()=>{let e=t.value;if(!e)return[];let n=new Set;for(let t of s.keys())for(let r of e.keys[t]?.tags??[])n.add(r);return[...n].sort()});function we(){s.allSelected(ge.value)?s.clear():s.selectAll(ge.value)}function Te(e,t){t?s.toggleRange(e,ge.value):s.toggle(e)}P(ge,e=>s.pruneTo(e)),P(re,(e,t)=>{t&&!e&&s.clear()});let Ee=q(()=>t.value&&E.value?t.value.keys[E.value]??null:null),De=Nf(q(()=>({count:ge.value.length,getScrollElement:()=>oe.value,estimateSize:()=>56,overscan:8,getItemKey:e=>ge.value[e]??e}))),Oe=q(()=>De.value.getVirtualItems()),ke=q(()=>De.value.getTotalSize());function Ae(e){E.value=e}function je(e){if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable)||document.querySelector(`[role="listbox"],[role="menu"],[role="dialog"]`))return;let n=ge.value;if(n.length===0)return;e.preventDefault();let r=E.value?n.indexOf(E.value):-1,i=Math.max(0,Math.min(n.length-1,e.key===`ArrowDown`?r+1:r-1)),a=n[i];a&&(E.value=a,De.value.scrollToIndex(i,{align:`auto`}))}Gi(()=>window.addEventListener(`keydown`,je)),Yi(()=>{window.removeEventListener(`keydown`,je),x&&clearTimeout(x)}),Gi(async()=>{try{let e=await Ud();e.indexed&&!ae.value&&!ie.value&&(ae.value=`${e.files.toLocaleString()} files · ${e.refs.toLocaleString()} refs`)}catch{}m()});async function Me(e,t){E.value===e&&(E.value=t),await ce()}async function Ne(e){await ce(),E.value=e,o.value.text=`"${e}"`}async function Pe(){ie.value=!0,ae.value=null;try{let e=await Hd();ae.value=`${e.files.toLocaleString()} files · ${e.refs.toLocaleString()} refs`,await m()}catch{ae.value=`Scan failed`}finally{ie.value=!1}}return(e,n)=>(z(),V(M(Jy),{"delay-duration":400},{default:N(()=>[H(`div`,iE,[H(`div`,aE,[H(`div`,oE,[U(M(ld),{class:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),U(M(Mx),{modelValue:o.value.text,"onUpdate:modelValue":n[0]||=e=>o.value.text=e,placeholder:`Search keys, values, context…`,class:`h-8 w-64 pl-8 pr-8`,onKeydown:n[1]||=Xl(e=>o.value.text=``,[`esc`])},null,8,[`modelValue`]),o.value.text?(z(),B(`button`,{key:0,type:`button`,class:`absolute right-1.5 top-1/2 grid size-5 -translate-y-1/2 place-items-center rounded text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":`Clear search`,onClick:n[2]||=e=>o.value.text=``},[U(M(Sd),{class:`size-3.5`})])):G(``,!0)]),U(M(Vv),null,{default:N(()=>[U(M(qv),{"as-child":``},{default:N(()=>[U(M(Q),{variant:`outline`,size:`sm`,class:`h-8 gap-1.5`},{default:N(()=>[U(M(Xu),{class:`size-4 opacity-60`}),n[29]||=W(` Filter `,-1),S.value?(z(),B(`span`,sE,A(S.value),1)):G(``,!0)]),_:1})]),_:1}),U(M(zx),{align:`start`,class:`w-64`},{default:N(()=>[U(nS,{states:o.value.states,"onUpdate:states":n[3]||=e=>o.value.states=e,issues:o.value.issues,"onUpdate:issues":n[4]||=e=>o.value.issues=e,enabled:l.value,"onUpdate:enabled":n[5]||=e=>l.value=e,plurality:o.value.plurality,"onUpdate:plurality":n[6]||=e=>o.value.plurality=e,"empty-source":o.value.emptySource,"onUpdate:emptySource":n[7]||=e=>o.value.emptySource=e,"ai-context-unreviewed":o.value.aiContextUnreviewed,"onUpdate:aiContextUnreviewed":n[8]||=e=>o.value.aiContextUnreviewed=e,"no-usages":o.value.noUsages,"onUpdate:noUsages":n[9]||=e=>o.value.noUsages=e,"skip-translate":o.value.skipTranslate,"onUpdate:skipTranslate":n[10]||=e=>o.value.skipTranslate=e,"scan-indexed":f.value},null,8,[`states`,`issues`,`enabled`,`plurality`,`empty-source`,`ai-context-unreviewed`,`no-usages`,`skip-translate`,`scan-indexed`])]),_:1})]),_:1}),U(M(Q),{variant:o.value.needsAttention?`default`:`outline`,size:`sm`,class:`h-8 gap-1.5`,role:`switch`,"aria-checked":o.value.needsAttention,onClick:n[11]||=e=>o.value.needsAttention=!o.value.needsAttention},{default:N(()=>[U(M(vd),{class:k([`size-4`,o.value.needsAttention?``:`opacity-60`])},null,8,[`class`]),n[30]||=W(` Needs attention `,-1),C.value?(z(),B(`span`,{key:0,class:`ml-0.5 rounded-full bg-destructive-soft px-1.5 text-[11px] font-bold text-destructive tabular-nums`,"aria-label":`${C.value} issue${C.value===1?``:`s`}`},A(C.value.toLocaleString()),9,cE)):G(``,!0)]),_:1},8,[`variant`,`aria-checked`]),U(M(fy),{modelValue:v.value,"onUpdate:modelValue":n[12]||=e=>v.value=e},{default:N(()=>[U(M(Nx),{class:`h-8 w-[160px]`},{default:N(()=>[U(M(Ny),{placeholder:`Sort`})]),_:1}),U(M(Px),null,{default:N(()=>[U(M(Ix),{value:`key-asc`},{default:N(()=>[...n[31]||=[W(`Key A→Z`,-1)]]),_:1}),U(M(Ix),{value:`key-desc`},{default:N(()=>[...n[32]||=[W(`Key Z→A`,-1)]]),_:1}),U(M(Ix),{value:`created`},{default:N(()=>[...n[33]||=[W(`Recently created`,-1)]]),_:1}),U(M(Ix),{value:`updated`},{default:N(()=>[...n[34]||=[W(`Recently updated`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),U(M(Vy),{modelValue:y.value,"onUpdate:modelValue":n[13]||=e=>y.value=e},{default:N(()=>[U(M(Lx),{class:`h-8`},{default:N(()=>[U(M(Rx),{value:`bilingual`,class:`text-xs`},{default:N(()=>[...n[35]||=[W(`Bilingual`,-1)]]),_:1}),U(M(Rx),{value:`multilingual`,class:`text-xs`},{default:N(()=>[...n[36]||=[W(`Multilingual`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y.value===`bilingual`?(z(),V(M(fy),{key:0,modelValue:b.value,"onUpdate:modelValue":n[14]||=e=>b.value=e},{default:N(()=>[U(M(Nx),{class:`h-8 w-[150px]`},{default:N(()=>[b.value?(z(),B(`span`,lE,[U(yC,{code:b.value,"show-name":``,"show-code":!1,size:14},null,8,[`code`])])):(z(),V(M(Ny),{key:1,placeholder:`Locale`}))]),_:1}),U(M(Px),null,{default:N(()=>[(z(!0),B(R,null,I(fe.value,e=>(z(),V(M(Ix),{key:e,value:e},{default:N(()=>[U(yC,{code:e,"show-name":``,"show-code":!1,size:14},null,8,[`code`])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])):G(``,!0),H(`div`,uE,[H(`span`,dE,A(ge.value.length.toLocaleString())+` keys`,1),U(M(Q),{size:`sm`,variant:`outline`,onClick:n[15]||=e=>ne.value=!0},{default:N(()=>[U(M(Bu),{class:`size-4`}),n[37]||=W(` Export `,-1)]),_:1}),U(M(Q),{size:`sm`,variant:`outline`,disabled:ie.value,onClick:Pe},{default:N(()=>[ie.value?(z(),V(M(Zu),{key:0,class:`size-4 animate-spin`})):(z(),V(M(sd),{key:1,class:`size-4`})),ie.value?(z(),B(`span`,fE,`Scanning…`)):ae.value?(z(),B(`span`,pE,A(ae.value),1)):(z(),B(`span`,mE,`Scan`))]),_:1},8,[`disabled`]),U(M(Q),{size:`sm`,onClick:n[16]||=e=>te.value=!0},{default:N(()=>[U(M(rd),{class:`size-4`}),n[38]||=W(` Add key `,-1)]),_:1})])]),o.value.states.length||o.value.issues.length||o.value.plurality.length||o.value.emptySource||o.value.aiContextUnreviewed||o.value.noUsages||o.value.skipTranslate?(z(),B(`div`,hE,[(z(!0),B(R,null,I(o.value.states,e=>(z(),V(M(Bx),{key:`s-${e}`,variant:`secondary`,class:`gap-1`},{default:N(()=>[W(A(M(Uf)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${M(Uf)[e]} filter`,onClick:t=>w(e)},[U(M(Sd),{class:`size-3`})],8,gE)]),_:2},1024))),128)),(z(!0),B(R,null,I(o.value.plurality,e=>(z(),V(M(Bx),{key:`p-${e}`,variant:`secondary`,class:`gap-1`},{default:N(()=>[W(A(M(Wf)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${M(Wf)[e]} filter`,onClick:t=>ee(e)},[U(M(Sd),{class:`size-3`})],8,_E)]),_:2},1024))),128)),o.value.emptySource?(z(),V(M(Bx),{key:0,variant:`secondary`,class:`gap-1`},{default:N(()=>[n[39]||=W(` Empty source `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Empty source filter`,onClick:n[17]||=e=>o.value.emptySource=!1},[U(M(Sd),{class:`size-3`})])]),_:1})):G(``,!0),(z(!0),B(R,null,I(o.value.issues,e=>(z(),V(M(Bx),{key:`i-${e}`,variant:`outline`,class:`gap-1`},{default:N(()=>[W(A(M(Hf)[e])+` `,1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove ${M(Hf)[e]} filter`,onClick:t=>T(e)},[U(M(Sd),{class:`size-3`})],8,vE)]),_:2},1024))),128)),o.value.aiContextUnreviewed?(z(),V(M(Bx),{key:1,variant:`secondary`,class:`gap-1`},{default:N(()=>[U(M(pd),{class:`size-3`}),n[40]||=W(` AI context (unreviewed) `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove AI context filter`,onClick:n[18]||=e=>o.value.aiContextUnreviewed=!1},[U(M(Sd),{class:`size-3`})])]),_:1})):G(``,!0),o.value.noUsages?(z(),V(M(Bx),{key:2,variant:`secondary`,class:`gap-1`},{default:N(()=>[n[41]||=W(` Unused `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Unused filter`,onClick:n[19]||=e=>o.value.noUsages=!1},[U(M(Sd),{class:`size-3`})])]),_:1})):G(``,!0),o.value.skipTranslate?(z(),V(M(Bx),{key:3,variant:`secondary`,class:`gap-1`},{default:N(()=>[n[42]||=W(` Skip-translate `,-1),H(`button`,{type:`button`,class:`hover:text-foreground`,"aria-label":`Remove Skip-translate filter`,onClick:n[20]||=e=>o.value.skipTranslate=!1},[U(M(Sd),{class:`size-3`})])]),_:1})):G(``,!0)])):G(``,!0),ge.value.length?(z(),B(`div`,yE,[H(`button`,{id:`select-all-checkbox`,type:`button`,role:`checkbox`,"aria-checked":xe.value?`true`:Se.value?`mixed`:`false`,"data-testid":`select-all`,class:k([`flex size-4 items-center justify-center rounded border transition-colors`,xe.value||Se.value?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`]),"aria-label":xe.value?`Deselect all`:`Select all`,onClick:we},[xe.value?(z(),V(M(Tu),{key:0,class:`size-3`})):Se.value?(z(),V(M($u),{key:1,class:`size-3`})):G(``,!0)],10,bE),be.value?(z(),B(R,{key:0},[H(`span`,xE,A(be.value.toLocaleString())+` selected`,1),H(`span`,SE,`· `+A(ve.value),1)],64)):(z(),B(`label`,CE,`Select all`)),be.value?(z(),V(wS,{key:2,class:`ml-auto`,keys:ye.value,locales:_e.value,"scope-label":ve.value,"tags-on-selection":Ce.value,onChanged:ce,onClear:n[21]||=e=>M(s).clear(),onTranslate:n[22]||=e=>re.value=!0,onBuildContext:n[23]||=e=>D.value=!0},null,8,[`keys`,`locales`,`scope-label`,`tags-on-selection`])):G(``,!0)])):G(``,!0),H(`div`,wE,[H(`div`,{ref_key:`parent`,ref:oe,class:`min-w-0 flex-1 overflow-auto`},[O.value?(z(),B(`div`,TE,[U(M(Zu),{class:`size-4 animate-spin`}),n[43]||=W(` Loading… `,-1)])):!se.value&&ge.value.length===0?(z(),B(`div`,EE,` No keys match the current filter. `)):(z(),B(`div`,{key:2,style:he({height:`${ke.value}px`,position:`relative`,width:`100%`})},[(z(!0),B(R,null,I(Oe.value,e=>(z(),B(`div`,{key:e.key,ref_for:!0,ref:e=>M(De).measureElement(e),"data-index":e.index,style:he({position:`absolute`,top:`${e.start}px`,left:`0`,width:`100%`})},[t.value&&ge.value[e.index]?(z(),V(ew,{key:0,"key-name":ge.value[e.index],entry:t.value.keys[ge.value[e.index]],"source-locale":ue.value,locales:pe.value,selected:E.value===ge.value[e.index],issues:u.value.get(ge.value[e.index])??[],checked:M(s).has(ge.value[e.index]),onSelect:t=>Ae(ge.value[e.index]),onChanged:ce,onRenamed:t=>Me(ge.value[e.index],t),onFilterTag:n[24]||=e=>o.value.text=e,onToggleSelect:t=>Te(ge.value[e.index],t.shift)},null,8,[`key-name`,`entry`,`source-locale`,`locales`,`selected`,`issues`,`checked`,`onSelect`,`onRenamed`,`onToggleSelect`])):G(``,!0)],12,DE))),128))],4))],512),U(gT,{"key-name":E.value,entry:Ee.value,issues:E.value?u.value.get(E.value)??[]:[],locales:de.value,"source-locale":ue.value,"usage-revision":p.value,onChanged:ce},null,8,[`key-name`,`entry`,`issues`,`locales`,`source-locale`,`usage-revision`])]),U(wT,{open:te.value,"onUpdate:open":n[25]||=e=>te.value=e,onCreated:Ne},null,8,[`open`]),U(LT,{open:ne.value,"onUpdate:open":n[26]||=e=>ne.value=e,"export-locales":t.value?.config.exportLocales??[]},null,8,[`open`,`export-locales`]),U(YT,{open:re.value,"onUpdate:open":n[27]||=e=>re.value=e,state:t.value,"filtered-keys":ye.value,"target-locale":y.value===`bilingual`?b.value:void 0,onChanged:ce},null,8,[`open`,`state`,`filtered-keys`,`target-locale`]),U(rE,{open:D.value,"onUpdate:open":n[28]||=e=>D.value=e,state:t.value,keys:ye.value,onChanged:ce},null,8,[`open`,`state`,`keys`])])]),_:1}))}}),AE={placeholder:`breaking`,glossary:`breaking`,length:`warning`,spelling:`info`};function jE(e){return AE[e]??null}function ME(e,t){let n=e.values[t];return n?e.plural?(n.forms?.other??``).trim()!==``:(n.value??``).trim()!==``:!1}function NE(e,t){if(!ME(e,t))return`missing`;let n=e.values[t].state;return n===`reviewed`?`reviewed`:n===`needs-review`?`needsReview`:`machine`}function PE(e,t){let n=e.values[t];return n?e.plural?n.forms?.other??``:n.value??``:``}function FE(e){let t=e.trim();return t===``?0:t.split(/\s+/).length}function IE(e,t){return`${e} ${t}${e===1?``:`s`}`}function LE(e,t){let{sourceLocale:n,locales:r}=e.config,i=r.filter(e=>e!==n),a=Object.keys(e.keys).filter(t=>!e.keys[t].skipTranslate),o=t.map(e=>({issue:e,sev:jE(e.check)})).filter(e=>e.sev!==null),s=new Map;for(let e of o){let t=s.get(e.issue.locale);t?t.push(e):s.set(e.issue.locale,[e])}let c=i.map(t=>{let n={reviewed:0,needsReview:0,machine:0,missing:0},r=[],i=[];for(let o of a){let a=NE(e.keys[o],t);n[a]++,a===`missing`&&r.push(o),a===`needsReview`&&i.push(o)}let o=s.get(t)??[],c=o.filter(e=>e.sev===`breaking`).length,l=o.filter(e=>e.sev===`warning`).length,u=o.filter(e=>e.sev===`info`).length,d=a.length,f=n.reviewed+n.needsReview+n.machine,p;p=r.length>0||c>0?`blocked`:i.length>0?`almost`:`ready`;let m=[];r.length&&m.push(`${r.length} missing`),c&&m.push(`${c} breaking`),i.length&&m.push(`${i.length} stale`);let h=[];return l&&h.push(IE(l,`warning`)),{locale:t,total:d,translated:f,pct:d?Math.round(f/d*100):0,counts:n,missingKeys:r,staleKeys:i,breaking:c,warning:l,info:u,verdict:p,blockers:m,notes:h}}),l=a.length*i.length,u=0,d=0;for(let e of c)u+=e.translated,d+=e.counts.reviewed;let f=a.reduce((t,r)=>t+FE(PE(e.keys[r],n)),0),p={breaking:[],warning:[],info:[]};for(let e of o)p[e.sev].push(e.issue);return{totals:{keys:Object.keys(e.keys).length,locales:i.length,translatedPct:l?Math.round(u/l*1e3)/10:0,reviewedPct:l?Math.round(d/l*1e3)/10:0,sourceWords:f,openIssues:o.length,ready:c.filter(e=>e.verdict===`ready`).length,almost:c.filter(e=>e.verdict===`almost`).length,blocked:c.filter(e=>e.verdict===`blocked`).length,breaking:c.reduce((e,t)=>e+t.breaking,0),missing:c.reduce((e,t)=>e+t.missingKeys.length,0),stale:c.reduce((e,t)=>e+t.staleKeys.length,0)},locales:c,risk:p,worklist:RE(c,p)}}function RE(e,t){let n=[];for(let e of t.breaking)n.push({id:`b:${e.locale}:${e.key}:${e.check}`,priority:`breaking`,title:`Fix ${Hf[e.check].toLowerCase()}`,where:`${e.locale.toUpperCase()} · ${e.key}`,detail:e.message,filter:{issues:[e.check],locale:e.locale},count:1});let r=new Map;for(let t of e)for(let e of t.missingKeys){let n=r.get(e);n?n.push(t.locale):r.set(e,[t.locale])}for(let[e,t]of r)n.push({id:`m:${e}`,priority:`missing`,title:`Translate ${IE(t.length,`missing string`)}`,where:e,detail:`Missing in ${t.map(e=>e.toUpperCase()).join(`, `)}`,filter:{text:e,states:[`missing`]},count:t.length});let i=[];for(let t of e)for(let e of t.staleKeys)i.push({locale:t.locale,key:e});i.length&&n.push({id:`s:all`,priority:`stale`,title:`Refresh ${IE(i.length,`stale translation`)}`,where:`source changed since translated`,detail:i.map(e=>`${e.locale.toUpperCase()} · ${e.key}`).join(` · `),filter:{states:[`needs-review`]},count:i.length});let a=new Map;for(let e of t.warning){let t=a.get(e.check);t?t.push(e):a.set(e.check,[e])}for(let[e,t]of a)n.push({id:`w:${e}`,priority:`warning`,title:`Review ${IE(t.length,`${Hf[e].toLowerCase()} warning`)}`,where:t.map(e=>e.locale.toUpperCase()).join(`, `),detail:t.map(e=>`${e.locale.toUpperCase()} · ${e.key}`).join(` · `),filter:{issues:[e]},count:t.length});return n}var zE={class:`min-h-0 flex-1 overflow-y-auto p-6`},BE={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},VE={key:1,class:`mt-8 text-center text-sm text-muted-foreground`},HE={key:2,class:`mx-auto flex max-w-[1080px] flex-col gap-4`},UE={class:`flex flex-wrap divide-x rounded-xl border bg-card px-2 py-3 shadow-sm`},WE={class:`flex flex-col px-5`},GE={class:`text-lg font-semibold tabular-nums`},KE={class:`flex flex-col px-5`},qE={class:`text-lg font-semibold tabular-nums`},JE={class:`flex flex-col px-5`},YE={class:`text-lg font-semibold tabular-nums`},XE={class:`flex flex-col px-5`},ZE={class:`text-lg font-semibold tabular-nums`},QE=[`disabled`],$E={class:`flex flex-col px-5`},eD={class:`text-lg font-semibold tabular-nums`},tD={class:`flex flex-wrap items-start justify-between gap-6`},nD={class:`min-w-0`},rD={class:`mt-1.5 flex items-center gap-2.5 text-2xl font-semibold tracking-tight`},iD={class:`mt-1.5 text-sm text-muted-foreground`},aD={class:`text-emerald-600 dark:text-emerald-400`},oD={class:`text-amber-600 dark:text-amber-400`},sD={class:`text-red-600 dark:text-red-400`},cD={class:`flex gap-2`},lD={class:`text-[11px] uppercase tracking-wide text-muted-foreground`},uD={class:`mt-4 flex flex-wrap items-center gap-x-4 gap-y-2 border-t pt-3.5`},dD={class:`flex items-center gap-1 text-xs text-muted-foreground`},fD={class:`flex items-center gap-1 text-xs text-muted-foreground`},pD={class:`flex items-center gap-1 text-xs text-muted-foreground`},mD={class:`rounded-2xl border bg-card p-5 shadow-sm`},hD={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},gD={key:1,class:`grid grid-cols-[repeat(auto-fill,minmax(218px,1fr))] gap-3`},_D=[`data-test`,`onClick`],vD={class:`flex items-start justify-between gap-2`},yD={class:`truncate font-mono text-xs font-semibold uppercase`},bD={class:`text-2xl font-semibold tabular-nums leading-none`},xD={class:`flex h-[7px] w-full overflow-hidden rounded-full bg-muted`},SD={class:`flex min-h-[20px] items-center gap-1.5 text-xs text-muted-foreground`},CD={class:`truncate`},wD={class:`rounded-2xl border bg-card p-5 shadow-sm`},TD={class:`mb-4`},ED={class:`mt-0.5 text-sm text-muted-foreground`},DD={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},OD={key:1,class:`flex flex-col gap-2`},kD=[`onClick`],AD={class:`flex min-w-0 flex-col gap-0.5`},jD={class:`flex items-center gap-2 text-sm font-semibold`},MD={class:`truncate font-mono text-xs text-muted-foreground`},ND={key:0,class:`grid grid-cols-1 gap-4 lg:grid-cols-2`},PD={class:`rounded-2xl border bg-card p-5 shadow-sm`},FD={class:`mb-4 flex items-start justify-between gap-3`},ID={key:0,class:`text-xs text-muted-foreground`},LD={key:0,class:`flex items-center gap-3 rounded-xl bg-muted p-4`},RD={key:1,class:`flex flex-col gap-2.5`},zD=[`disabled`,`onClick`],BD={class:`flex flex-1 flex-col`},VD={class:`text-sm font-semibold`},HD={class:`text-xs text-muted-foreground`},UD={key:0,class:`border-t`},WD=[`onClick`],GD={class:`font-mono font-semibold uppercase text-muted-foreground`},KD={class:`truncate font-medium`},qD={class:`font-mono text-muted-foreground`},JD={class:`truncate text-muted-foreground`},YD={class:`rounded-2xl border bg-card p-5 shadow-sm`},XD=[`onClick`],ZD={class:`flex items-center gap-2`},QD={class:`font-mono uppercase`},$D={class:`text-center font-mono tabular-nums`},eO={key:1,class:`rounded-2xl border bg-card p-5 shadow-sm`},tO={class:`flex items-center gap-3 rounded-xl bg-muted p-4`},nO=`glotfile:enabledChecks`,rO=F({__name:`AnalyticsView`,setup(e){function t(){try{let e=localStorage.getItem(nO);if(e)return Rf.filter(t=>JSON.parse(e).includes(t))}catch{}return[`untranslated`,`placeholder`,`length`,`glossary`]}let n=j(null),r=j([]),i=j(!0),a=j(!1),o=t(),s=0,c=q(()=>n.value?LE(n.value,r.value):null),l=q(()=>!!c.value&&(c.value.totals.keys===0||c.value.totals.locales===0)),u=q(()=>!!c.value&&c.value.totals.translatedPct===0);async function d(){if(o.length===0){r.value=[],a.value=!1;return}try{let e=await lf(o);r.value=e.issues,a.value=e.spellPending,e.spellPending&&s<6?(s++,setTimeout(d,800)):s=0}catch{r.value=[]}}Gi(async()=>{try{n.value=await Td()}catch(e){$.error(e.message)}finally{i.value=!1}d()});let f={ready:{label:`Ready`,icon:ku,text:`text-emerald-600 dark:text-emerald-400`,border:`border-l-emerald-500`,bar:`bg-emerald-500`,soft:`bg-emerald-500/10`},almost:{label:`Almost`,icon:Mu,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,bar:`bg-amber-500`,soft:`bg-amber-500/10`},blocked:{label:`Blocked`,icon:td,text:`text-red-600 dark:text-red-400`,border:`border-l-red-500`,bar:`bg-red-500`,soft:`bg-red-500/10`},none:{label:`Not started`,icon:dd,text:`text-muted-foreground`,border:`border-l-border`,bar:`bg-muted-foreground/40`,soft:`bg-muted`}},p={breaking:{label:`Breaking`,icon:td,text:`text-red-600 dark:text-red-400`,border:`border-l-red-500`,soft:`bg-red-500/10`},missing:{label:`Missing`,icon:ju,text:`text-muted-foreground`,border:`border-l-muted-foreground/40`,soft:`bg-muted`},stale:{label:`Stale`,icon:Mu,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,soft:`bg-amber-500/10`},warning:{label:`Warning`,icon:vd,text:`text-amber-600 dark:text-amber-400`,border:`border-l-amber-500`,soft:`bg-amber-500/10`},info:{label:`Info`,icon:Au,text:`text-muted-foreground`,border:`border-l-border`,soft:`bg-muted`}},m=[{key:`breaking`,label:`Breaking`,blurb:`Will break the UI or violate the glossary. Ship-blocking.`,text:`text-red-600 dark:text-red-400`,bar:`bg-red-500`},{key:`warning`,label:`Warning`,blurb:`Worth a look — won't block a release.`,text:`text-amber-600 dark:text-amber-400`,bar:`bg-amber-500`},{key:`info`,label:`Info`,blurb:`Cosmetic. Fix when convenient.`,text:`text-muted-foreground`,bar:`bg-muted-foreground/40`}],h=[`placeholder`,`glossary`],g={breaking:h,warning:[`length`],info:[`spelling`]},_=q(()=>{let e=c.value.totals;return u.value?`none`:e.ready===e.locales&&e.locales>0?`ready`:`blocked`}),v=q(()=>_.value===`none`?`Nothing to ship yet`:_.value===`ready`?`Ready to ship`:`Not ready to ship`);function y(e){return e.verdict===`ready`?e.notes.length?e.notes.join(` · `):`Clean — clears the gate`:e.blockers.join(` · `)}function b(e){return e.missingKeys.length?{locale:e.locale,states:[`missing`]}:e.breaking?{locale:e.locale,issues:h}:e.staleKeys.length?{locale:e.locale,states:[`needs-review`]}:{locale:e.locale}}function x(e,t){return(t?e/t*100:0)+`%`}return(e,t)=>(z(),B(`div`,zE,[i.value?(z(),B(`div`,BE,`Loading analytics…`)):l.value?(z(),B(`div`,VE,` No keys yet — add keys in the Editor to see analytics. `)):c.value?(z(),B(`div`,HE,[H(`section`,UE,[H(`div`,WE,[H(`span`,GE,A(c.value.totals.keys),1),t[1]||=H(`span`,{class:`text-xs text-muted-foreground`},`keys`,-1)]),H(`div`,KE,[H(`span`,qE,A(c.value.totals.locales),1),t[2]||=H(`span`,{class:`text-xs text-muted-foreground`},`locales`,-1)]),H(`div`,JE,[H(`span`,YE,A(c.value.totals.translatedPct)+`%`,1),t[3]||=H(`span`,{class:`text-xs text-muted-foreground`},`translated`,-1)]),H(`div`,XE,[H(`span`,ZE,A(c.value.totals.reviewedPct)+`%`,1),t[4]||=H(`span`,{class:`text-xs text-muted-foreground`},`reviewed`,-1)]),H(`button`,{type:`button`,class:`group flex flex-col px-5 text-left`,"data-test":`open-issues`,disabled:!c.value.totals.openIssues,onClick:t[0]||=e=>M(ap)({needsAttention:!0})},[H(`span`,{class:k([`text-lg font-semibold tabular-nums`,c.value.totals.breaking?`text-red-600 dark:text-red-400`:``])},A(c.value.totals.openIssues),3),t[5]||=H(`span`,{class:`text-xs text-muted-foreground group-hover:text-foreground`},`open issues`,-1)],8,QE),H(`div`,$E,[H(`span`,eD,A(c.value.totals.sourceWords),1),t[6]||=H(`span`,{class:`text-xs text-muted-foreground`},`source words`,-1)])]),H(`section`,{class:k([`rounded-2xl border border-l-4 bg-card p-6 shadow-sm`,f[_.value].border])},[H(`div`,tD,[H(`div`,nD,[t[11]||=H(`div`,{class:`font-mono text-[11px] uppercase tracking-wider text-muted-foreground`},`Can I ship?`,-1),H(`h1`,rD,[(z(),V(ia(f[_.value].icon),{class:k([`size-6`,f[_.value].text])},null,8,[`class`])),W(` `+A(v.value),1)]),H(`p`,iD,[u.value?(z(),B(R,{key:0},[W(`Add translations to get started — run a sync to let the AI fill them in.`)],64)):(z(),B(R,{key:1},[H(`strong`,aD,A(c.value.totals.ready),1),W(` of `+A(c.value.totals.locales)+` locales ready`,1),c.value.totals.almost?(z(),B(R,{key:0},[t[7]||=W(` · `,-1),H(`strong`,oD,A(c.value.totals.almost),1),t[8]||=W(` need a refresh`,-1)],64)):G(``,!0),c.value.totals.blocked?(z(),B(R,{key:1},[t[9]||=W(` · `,-1),H(`strong`,sD,A(c.value.totals.blocked),1),t[10]||=W(` blocked`,-1)],64)):G(``,!0)],64))])]),H(`div`,cD,[(z(!0),B(R,null,I([{n:c.value.totals.ready,label:`ready`,cls:`text-emerald-600 dark:text-emerald-400`},{n:c.value.totals.almost,label:`almost`,cls:`text-amber-600 dark:text-amber-400`},{n:c.value.totals.blocked,label:`blocked`,cls:`text-red-600 dark:text-red-400`}],e=>(z(),B(`div`,{key:e.label,class:`flex min-w-[66px] flex-col items-center rounded-xl border px-4 py-2`},[H(`span`,{class:k([`text-2xl font-semibold tabular-nums`,e.n?e.cls:`text-muted-foreground/50`])},A(e.n),3),H(`span`,lD,A(e.label),1)]))),128))])]),H(`div`,uD,[t[15]||=H(`span`,{class:`font-mono text-[10px] uppercase tracking-wider text-muted-foreground`},`Release gate`,-1),H(`span`,dD,[U(M(Tu),{class:`size-3 text-emerald-500`}),t[12]||=W(` 100% translated`,-1)]),H(`span`,fD,[U(M(Tu),{class:`size-3 text-emerald-500`}),t[13]||=W(` 0 breaking issues`,-1)]),H(`span`,pD,[U(M(Tu),{class:`size-3 text-emerald-500`}),t[14]||=W(` nothing stale`,-1)]),t[16]||=H(`span`,{class:`ml-auto text-[11px] italic text-muted-foreground`},`reviewed optional`,-1)])],2),H(`section`,mD,[t[19]||=H(`header`,{class:`mb-4`},[H(`h2`,{class:`text-base font-semibold`},`Release readiness`),H(`p`,{class:`mt-0.5 text-sm text-muted-foreground`},`Per-locale status against the release gate. Click any locale to drill in.`)],-1),u.value?(z(),B(`div`,hD,[U(M(Hu),{class:`size-5 text-muted-foreground`}),t[17]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No locale is ready yet.`),H(`span`,{class:`text-sm text-muted-foreground`},`Translate your strings, then locales appear here as they clear the gate.`)],-1)])):(z(),B(`div`,gD,[(z(!0),B(R,null,I(c.value.locales,e=>(z(),B(`button`,{key:e.locale,type:`button`,"data-test":`rcard-${e.locale}`,class:k([`flex flex-col gap-2 rounded-xl border border-l-[3px] p-3.5 text-left transition hover:-translate-y-0.5 hover:bg-muted/50`,f[e.verdict].border]),onClick:t=>M(ap)(b(e))},[H(`div`,vD,[H(`span`,yD,A(e.locale),1),H(`span`,{class:k([`flex items-center gap-1 text-[11px] font-semibold`,f[e.verdict].text])},[(z(),V(ia(f[e.verdict].icon),{class:`size-3`})),W(A(f[e.verdict].label),1)],2)]),H(`div`,bD,[W(A(e.pct),1),t[18]||=H(`span`,{class:`ml-0.5 text-xs text-muted-foreground`},`%`,-1)]),H(`div`,xD,[H(`span`,{class:`h-full bg-emerald-500`,style:he({width:x(e.counts.reviewed,e.total)})},null,4),H(`span`,{class:`h-full bg-amber-500`,style:he({width:x(e.counts.needsReview,e.total)})},null,4),H(`span`,{class:`h-full bg-sky-500`,style:he({width:x(e.counts.machine,e.total)})},null,4)]),H(`div`,SD,[e.verdict===`ready`?G(``,!0):(z(),V(ia(f[e.verdict].icon),{key:0,class:k([`size-3 shrink-0`,f[e.verdict].text])},null,8,[`class`])),H(`span`,CD,A(y(e)),1)])],10,_D))),128))]))]),H(`section`,wD,[H(`header`,TD,[t[20]||=H(`h2`,{class:`text-base font-semibold`},`Needs attention`,-1),H(`p`,ED,A(u.value?`Your prioritized worklist will fill in as the AI translates.`:`Prioritized — fix the top item first. Each opens the matching strings.`),1)]),c.value.worklist.length?(z(),B(`ol`,OD,[(z(!0),B(R,null,I(c.value.worklist,(e,t)=>(z(),B(`li`,{key:e.id},[H(`button`,{type:`button`,class:k([`grid w-full grid-cols-[30px_1fr_auto_16px] items-center gap-3 rounded-xl border border-l-[3px] px-3.5 py-3 text-left transition hover:bg-muted/50`,[p[e.priority].border,t===0?p[e.priority].soft:``]]),onClick:t=>M(ap)(e.filter)},[H(`span`,{class:k([`flex size-[30px] items-center justify-center rounded-lg`,[p[e.priority].soft,p[e.priority].text]])},[(z(),V(ia(p[e.priority].icon),{class:`size-4`}))],2),H(`span`,AD,[H(`span`,jD,[W(A(e.title)+` `,1),t===0?(z(),B(`span`,{key:0,class:k([`rounded-full px-2 py-0.5 font-mono text-[9.5px] font-semibold uppercase tracking-wide text-white`,p[e.priority].text.includes(`red`)?`bg-red-500`:p[e.priority].text.includes(`amber`)?`bg-amber-500`:`bg-muted-foreground`])},`Start here`,2)):G(``,!0)]),H(`span`,MD,A(e.where),1)]),H(`span`,{class:k([`rounded-full px-2.5 py-1 text-[11px] font-semibold`,[p[e.priority].soft,p[e.priority].text]])},A(p[e.priority].label),3),U(M(Du),{class:`size-4 text-muted-foreground`})],10,kD)]))),128))])):(z(),B(`div`,DD,[U(M(ku),{class:`size-5 text-emerald-500`}),t[21]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`Nothing needs attention.`),H(`span`,{class:`text-sm text-muted-foreground`},`Every translated string clears its checks and is up to date.`)],-1)]))]),u.value?(z(),B(`section`,eO,[t[26]||=H(`h2`,{class:`mb-4 text-base font-semibold`},`Quality`,-1),H(`div`,tO,[U(M(Au),{class:`size-5 text-muted-foreground`}),t[25]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No checks run yet.`),H(`span`,{class:`text-sm text-muted-foreground`},`Quality checks appear once strings are translated.`)],-1)])])):(z(),B(`div`,ND,[H(`section`,PD,[H(`header`,FD,[t[22]||=H(`div`,null,[H(`h2`,{class:`text-base font-semibold`},`Quality`),H(`p`,{class:`mt-0.5 text-sm text-muted-foreground`},`Grouped by risk — a broken placeholder is not a typo.`)],-1),a.value?(z(),B(`span`,ID,`spelling warming…`)):G(``,!0)]),c.value.totals.openIssues?(z(),B(`div`,RD,[(z(),B(R,null,I(m,e=>H(`div`,{key:e.key,class:`overflow-hidden rounded-xl border`},[H(`button`,{type:`button`,class:`flex w-full items-center gap-3 px-3.5 py-3 text-left enabled:hover:bg-muted/50`,disabled:!c.value.risk[e.key].length,onClick:t=>M(ap)({issues:g[e.key]})},[H(`span`,{class:k([`w-1 self-stretch rounded-full`,e.bar])},null,2),H(`span`,{class:k([`min-w-[22px] text-xl font-semibold tabular-nums`,e.text])},A(c.value.risk[e.key].length),3),H(`span`,BD,[H(`span`,VD,A(e.label),1),H(`span`,HD,A(e.blurb),1)]),c.value.risk[e.key].length?(z(),V(M(Du),{key:0,class:`size-4 text-muted-foreground`})):G(``,!0)],8,zD),c.value.risk[e.key].length?(z(),B(`div`,UD,[(z(!0),B(R,null,I(c.value.risk[e.key],(e,t)=>(z(),B(`button`,{key:t,type:`button`,class:`grid w-full grid-cols-[42px_minmax(90px,1fr)_1.4fr] items-center gap-2.5 border-b px-3.5 py-2.5 text-left text-xs last:border-b-0 hover:bg-muted/50`,onClick:t=>M(ap)({locale:e.locale,issues:[e.check]})},[H(`span`,GD,A(e.locale),1),H(`span`,KD,[W(A(M(Hf)[e.check])+` · `,1),H(`span`,qD,A(e.key),1)]),H(`span`,JD,A(e.message),1)],8,WD))),128))])):G(``,!0)])),64))])):(z(),B(`div`,LD,[U(M(ku),{class:`size-5 text-emerald-500`}),t[23]||=H(`div`,{class:`flex flex-col`},[H(`b`,{class:`text-sm`},`No issues found.`),H(`span`,{class:`text-sm text-muted-foreground`},`All translated strings pass their checks.`)],-1)]))]),H(`section`,YD,[t[24]||=_s(`<header class="mb-4"><h2 class="text-base font-semibold">By locale</h2><p class="mt-0.5 text-sm text-muted-foreground">Full breakdown.</p></header><div class="grid grid-cols-[minmax(96px,1.4fr)_52px_64px_50px_72px_72px_16px] gap-2 border-b pb-2 font-mono text-[11px] uppercase tracking-wide text-muted-foreground"><span>Locale</span><span class="text-center">Done</span><span class="text-center">Missing</span><span class="text-center">Stale</span><span class="text-center">Breaking</span><span class="text-center">Warnings</span><span></span></div>`,2),(z(!0),B(R,null,I(c.value.locales,e=>(z(),B(`button`,{key:e.locale,type:`button`,class:`grid w-full grid-cols-[minmax(96px,1.4fr)_52px_64px_50px_72px_72px_16px] items-center gap-2 border-b py-2.5 text-left text-sm last:border-b-0 hover:bg-muted/50`,onClick:t=>M(ap)(b(e))},[H(`span`,ZD,[H(`span`,{class:k([`size-2 rounded-full`,f[e.verdict].bar])},null,2),H(`span`,QD,A(e.locale),1)]),H(`span`,$D,A(e.pct)+`%`,1),H(`span`,{class:k([`text-center font-mono tabular-nums`,e.missingKeys.length?``:`text-muted-foreground`])},A(e.missingKeys.length||`—`),3),H(`span`,{class:k([`text-center font-mono tabular-nums`,e.staleKeys.length?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`])},A(e.staleKeys.length||`—`),3),H(`span`,{class:k([`text-center font-mono tabular-nums`,e.breaking?`text-red-600 dark:text-red-400`:`text-muted-foreground`])},A(e.breaking||`—`),3),H(`span`,{class:k([`text-center font-mono tabular-nums`,e.warning?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`])},A(e.warning||`—`),3),U(M(Du),{class:`size-3.5 text-muted-foreground`})],8,XD))),128))])]))])):G(``,!0)]))}}),iO={class:`grid gap-4`},aO={class:`grid gap-1.5`},oO={key:0,class:`text-xs text-muted-foreground`},sO={class:`flex items-center justify-between`},cO={class:`flex items-center justify-between`},lO={class:`grid gap-1.5`},uO={key:0,class:`grid gap-2 border-t pt-3`},dO={key:1,class:`text-sm text-destructive`},fO=F({__name:`GlossaryEntryDialog`,props:Oa({entry:{},targetLocales:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:Oa([`saved`],[`update:open`]),setup(e,{emit:t}){let n=e,r=Xa(e,`open`),i=t,a=Xt({term:``,doNotTranslate:!1,caseSensitive:!1,notes:``,translations:{}}),o=j(!1),s=j(``),c=j(!1);P(r,e=>{if(!e)return;let t=n.entry;c.value=t!==null,a.term=t?.term??``,a.doNotTranslate=t?.doNotTranslate??!1,a.caseSensitive=t?.caseSensitive??!1,a.notes=t?.notes??``,a.translations={};for(let e of n.targetLocales)a.translations[e]=t?.translations?.[e]??``;s.value=``},{immediate:!0});async function l(){let e=a.term.trim();if(!e){s.value=`Term is required.`;return}let t={};for(let[e,n]of Object.entries(a.translations)){let r=n.trim();r&&(t[e]=r)}let n={term:e};a.doNotTranslate&&(n.doNotTranslate=!0),a.caseSensitive&&(n.caseSensitive=!0),a.notes.trim()&&(n.notes=a.notes.trim()),Object.keys(t).length>0&&(n.translations=t),o.value=!0,s.value=``;try{await Yd(n),$.success(c.value?`Updated ${e}`:`Added ${e}`),r.value=!1,i(`saved`)}catch(e){s.value=e.message}finally{o.value=!1}}return(t,n)=>(z(),V(M(Xm),{open:r.value,"onUpdate:open":n[5]||=e=>r.value=e},{default:N(()=>[U(M(fS),{class:`max-h-[85vh] max-w-lg overflow-y-auto`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[W(A(c.value?`Edit term`:`Add term`),1)]),_:1}),U(M(gS),null,{default:N(()=>[...n[6]||=[W(` Guide AI translations with do-not-translate terms and forced translations. `,-1)]]),_:1})]),_:1}),H(`div`,iO,[H(`div`,aO,[U(M(dS),{for:`glossary-term`},{default:N(()=>[...n[7]||=[W(`Term`,-1)]]),_:1}),U(M(Mx),{id:`glossary-term`,modelValue:a.term,"onUpdate:modelValue":n[0]||=e=>a.term=e,class:`font-mono`,placeholder:`Sign in`,disabled:c.value,onKeydown:Xl(Jl(l,[`prevent`]),[`enter`])},null,8,[`modelValue`,`disabled`,`onKeydown`]),c.value?(z(),B(`p`,oO,` The term is the entry's identity and can't be changed. `)):G(``,!0)]),H(`div`,sO,[H(`div`,null,[U(M(dS),{for:`glossary-dnt`},{default:N(()=>[...n[8]||=[W(`Do not translate`,-1)]]),_:1}),n[9]||=H(`p`,{class:`text-xs text-muted-foreground`},`Keep this term verbatim in every language.`,-1)]),U(M(Hx),{id:`glossary-dnt`,modelValue:a.doNotTranslate,"onUpdate:modelValue":n[1]||=e=>a.doNotTranslate=e},null,8,[`modelValue`])]),H(`div`,cO,[H(`div`,null,[U(M(dS),{for:`glossary-cs`},{default:N(()=>[...n[10]||=[W(`Case sensitive`,-1)]]),_:1}),n[11]||=H(`p`,{class:`text-xs text-muted-foreground`},`Only match the exact casing.`,-1)]),U(M(Hx),{id:`glossary-cs`,modelValue:a.caseSensitive,"onUpdate:modelValue":n[2]||=e=>a.caseSensitive=e},null,8,[`modelValue`])]),H(`div`,lO,[U(M(dS),{for:`glossary-notes`},{default:N(()=>[...n[12]||=[W(`Notes`,-1)]]),_:1}),U(M(GS),{id:`glossary-notes`,modelValue:a.notes,"onUpdate:modelValue":n[3]||=e=>a.notes=e,rows:`5`,class:`min-h-24 resize-y`,placeholder:`Optional guidance for translators.`},null,8,[`modelValue`])]),e.targetLocales.length>0?(z(),B(`div`,uO,[n[13]||=H(`p`,{class:`text-sm font-medium`},`Forced translations`,-1),(z(!0),B(R,null,I(e.targetLocales,e=>(z(),B(`div`,{key:e,class:`grid gap-1.5`},[U(M(dS),{for:`glossary-tr-${e}`,class:`text-xs text-muted-foreground`},{default:N(()=>[U(yC,{code:e,"show-name":``,"show-code":!1,size:12},null,8,[`code`])]),_:2},1032,[`for`]),U(M(Mx),{id:`glossary-tr-${e}`,modelValue:a.translations[e],"onUpdate:modelValue":t=>a.translations[e]=t,placeholder:`Forced translation for ${e}`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`placeholder`])]))),128))])):G(``,!0),s.value?(z(),B(`p`,dO,A(s.value),1)):G(``,!0)]),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:o.value,onClick:n[4]||=e=>r.value=!1},{default:N(()=>[...n[14]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{disabled:o.value,onClick:l},{default:N(()=>[W(A(c.value?`Save`:`Add term`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}}),pO={class:`min-h-0 flex-1 overflow-y-auto`},mO={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},hO={key:1,class:`mx-auto flex max-w-3xl flex-col gap-4 p-6`},gO={class:`flex items-center justify-between`},_O={key:0,class:`rounded-lg border border-dashed p-10 text-center text-sm text-muted-foreground`},vO={key:1,class:`flex flex-col gap-2`},yO={class:`min-w-0 flex-1`},bO={class:`flex flex-wrap items-center gap-2`},xO={class:`font-mono text-sm font-medium`},SO={key:0,class:`mt-1 text-sm text-muted-foreground`},CO={key:1,class:`mt-2 flex flex-wrap gap-1.5`},wO={class:`flex shrink-0 items-center gap-1`},TO={class:`font-mono`},EO=F({__name:`GlossaryView`,setup(e){let t=j([]),n=j(``),r=j([]),i=j(!1),a=j(!1),o=j(null),s=j(null),c=j(!1),l=q(()=>r.value.filter(e=>e!==n.value));async function u(){let[e,a]=await Promise.all([Jd(),Td()]);t.value=e,n.value=a.config.sourceLocale,r.value=a.config.locales,i.value=!0}u();function d(){o.value=null,a.value=!0}function f(e){o.value=e,a.value=!0}function p(e){return Object.entries(e.translations??{}).map(([e,t])=>`${e}: ${t}`)}async function m(){let e=s.value;if(e){c.value=!0;try{await Xd(e.term),$.success(`Deleted ${e.term}`),s.value=null,await u()}catch(e){$.error(`Delete failed: ${e.message}`)}finally{c.value=!1}}}return(e,n)=>(z(),B(`div`,pO,[i.value?(z(),B(`div`,hO,[H(`div`,gO,[n[4]||=H(`div`,null,[H(`h2`,{class:`text-base font-semibold`},`Glossary`),H(`p`,{class:`text-sm text-muted-foreground`},`Do-not-translate terms and forced translations.`)],-1),U(M(Q),{onClick:d},{default:N(()=>[U(M(rd),{class:`size-4`}),n[3]||=W(` Add term `,-1)]),_:1})]),t.value.length===0?(z(),B(`div`,_O,` No glossary terms yet — add do-not-translate terms and forced translations to guide AI. `)):(z(),B(`ul`,vO,[(z(!0),B(R,null,I(t.value,e=>(z(),B(`li`,{key:e.term,class:`flex items-start gap-3 rounded-lg border bg-card p-3 text-card-foreground shadow-sm`},[H(`div`,yO,[H(`div`,bO,[H(`span`,xO,A(e.term),1),e.doNotTranslate?(z(),V(M(Bx),{key:0,variant:`secondary`},{default:N(()=>[...n[5]||=[W(`Do-not-translate`,-1)]]),_:1})):G(``,!0),e.caseSensitive?(z(),V(M(Bx),{key:1,variant:`outline`},{default:N(()=>[...n[6]||=[W(`Case-sensitive`,-1)]]),_:1})):G(``,!0)]),e.notes?(z(),B(`p`,SO,A(e.notes),1)):G(``,!0),p(e).length?(z(),B(`div`,CO,[(z(!0),B(R,null,I(p(e),e=>(z(),B(`span`,{key:e,class:`inline-flex items-center rounded-md border bg-background px-2 py-0.5 font-mono text-xs`},A(e),1))),128))])):G(``,!0)]),H(`div`,wO,[U(M(Q),{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.term}`,onClick:t=>f(e)},{default:N(()=>[U(M(nd),{class:`size-4`})]),_:1},8,[`aria-label`,`onClick`]),U(M(Q),{variant:`ghost`,size:`icon`,class:`text-muted-foreground hover:text-destructive`,"aria-label":`Delete ${e.term}`,onClick:t=>s.value=e},{default:N(()=>[U(M(_d),{class:`size-4`})]),_:1},8,[`aria-label`,`onClick`])])]))),128))]))])):(z(),B(`div`,mO,` Loading glossary… `)),U(fO,{open:a.value,"onUpdate:open":n[0]||=e=>a.value=e,entry:o.value,"target-locales":l.value,onSaved:u},null,8,[`open`,`entry`,`target-locales`]),U(M(Xm),{open:s.value!==null,"onUpdate:open":n[2]||=e=>{e||(s.value=null)}},{default:N(()=>[U(M(fS),{class:`max-w-md`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[7]||=[W(`Delete term`,-1)]]),_:1}),U(M(gS),null,{default:N(()=>[n[8]||=W(` Delete `,-1),H(`span`,TO,A(s.value?.term),1),n[9]||=W(` from the glossary? This cannot be undone. `,-1)]),_:1})]),_:1}),U(M(mS),null,{default:N(()=>[U(M(Q),{variant:`outline`,disabled:c.value,onClick:n[1]||=e=>s.value=null},{default:N(()=>[...n[10]||=[W(`Cancel`,-1)]]),_:1},8,[`disabled`]),U(M(Q),{variant:`destructive`,disabled:c.value,onClick:m},{default:N(()=>[...n[11]||=[W(`Delete`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});function DO(e,t){if(typeof e==`string`&&e.trim()===``)return t;let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:t}function OO(e){return{sourceLocale:e.sourceLocale,locales:[...e.locales],outputs:e.outputs.map(e=>({adapter:e.adapter,path:e.path,emptyAs:e.emptyAs,style:e.style===`flat`?`flat`:`nested`,indent:e.indent??null,finalNewline:e.finalNewline??null,includeLocale:e.includeLocale??!0,localeAliases:e.localeAliases?structuredClone(e.localeAliases):{},localeCase:e.localeCase,localeMap:e.localeMap?structuredClone(e.localeMap):{}})),provider:e.ai.provider,model:e.ai.model,endpoint:e.ai.endpoint??``,region:e.ai.region??``,batchSize:e.ai.batchSize,indent:e.format.indent,sortKeys:e.format.sortKeys,finalNewline:e.format.finalNewline,autoExport:e.autoExport??!0,exportLocales:[...e.exportLocales??[]],customWords:[...e.spelling?.customWords??[]],scanAccessors:[...e.scan?.accessors??[]],scanPatterns:[...e.scan?.patterns??[]],scanInclude:[...e.scan?.include??[]],scanExclude:[...e.scan?.exclude??[]]}}function kO(e,t){let n=e.outputs.map(e=>{let t={adapter:e.adapter.trim(),path:e.path.trim()};if(e.style===`flat`&&(t.style=`flat`),e.emptyAs&&(t.emptyAs=e.emptyAs),e.indent!=null&&(t.indent=e.indent),e.finalNewline!=null&&(t.finalNewline=e.finalNewline),e.includeLocale||(t.includeLocale=!1),e.localeAliases&&Object.keys(e.localeAliases).length&&(t.localeAliases=Object.fromEntries(Object.entries(e.localeAliases).filter(([,e])=>e.length>0)),Object.keys(t.localeAliases).length===0&&delete t.localeAliases),e.localeCase&&(t.localeCase=e.localeCase),e.localeMap){let n=Object.fromEntries(Object.entries(e.localeMap).filter(([,e])=>e.trim()!==``));Object.keys(n).length&&(t.localeMap=n)}return t}).filter(e=>e.adapter||e.path),r=e.endpoint.trim(),i=e.region.trim(),a={};e.scanAccessors.length&&(a.accessors=[...e.scanAccessors]),e.scanPatterns.length&&(a.patterns=[...e.scanPatterns]),e.scanInclude.length&&(a.include=[...e.scanInclude]),e.scanExclude.length&&(a.exclude=[...e.scanExclude]);let o={sourceLocale:e.sourceLocale,locales:[...e.locales],outputs:n,ai:{provider:e.provider.trim(),model:e.model.trim(),endpoint:r===``?null:r,region:i===``?null:i,batchSize:DO(e.batchSize,25)},format:{indent:DO(e.indent,2),sortKeys:e.sortKeys,finalNewline:e.finalNewline},autoExport:e.autoExport,...e.exportLocales.length?{exportLocales:[...e.exportLocales]}:{},spelling:{customWords:[...e.customWords]},...Object.keys(a).length?{scan:a}:{}};return t?.lint!==void 0&&(o.lint=t.lint),t?.storage!==void 0&&(o.storage=t.storage),o}var AO=j(0),jO={class:`flex items-center gap-2 p-2`},MO=[`title`],NO={class:`!flex items-center gap-2`},PO={class:`truncate font-medium`},FO={class:`flex items-center gap-2`},IO={key:0,class:`grid gap-5 border-t border-border p-4`},LO={key:0,class:`grid gap-1.5`},RO={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},zO=[`onClick`],BO={key:1,class:`grid gap-1.5`},VO={class:`mt-1 inline-flex w-fit rounded-md border border-input p-0.5`},HO=[`onClick`],UO={key:2,class:`grid gap-1.5`},WO={class:`flex items-center gap-2`},GO={key:0,class:`text-xs text-muted-foreground`},KO={class:`flex items-center gap-2`},qO={key:3,class:`grid gap-1.5`},JO={class:`flex items-center gap-2`},YO={key:0,class:`text-xs text-muted-foreground`},XO={class:`flex items-center gap-2`},ZO={class:`text-xs text-muted-foreground`},QO={key:4,class:`grid gap-1.5`},$O={class:`flex items-center gap-2`},ek={class:`text-xs text-muted-foreground`},tk={class:`grid gap-1.5`},nk={class:`flex w-full items-center justify-between gap-4`},rk={class:`font-mono text-xs text-muted-foreground`},ik={class:`grid gap-1.5`},ak={class:`mt-1 grid gap-2`},ok={key:0,class:`text-xs text-muted-foreground`},sk={class:`w-24 shrink-0 font-mono text-xs font-semibold`},ck={key:1},lk={class:`!flex items-center gap-1.5`},uk={class:`border-t border-border pt-4`},dk={class:`mt-2 grid gap-2`},fk={key:0,class:`text-xs text-muted-foreground`},pk={class:`flex h-8 shrink-0 items-center gap-1.5`},mk={class:`font-mono text-xs font-semibold`},hk={class:`flex flex-1 flex-wrap items-center gap-1.5`},gk=[`onClick`],_k={key:1},vk={class:`!flex items-center gap-1.5`},yk=F({__name:`OutputEditor`,props:{output:{},formatIndent:{},formatFinalNewline:{type:Boolean},locales:{},adapters:{}},emits:[`update:output`,`remove`],setup(e,{emit:t}){let n=e,r=t,i=j(!1),a=j({}),o={"laravel-php":[`emptyAs`,`indent`,`finalNewline`],"vue-i18n-json":[`emptyAs`,`style`,`indent`,`finalNewline`],"flutter-arb":[`emptyAs`,`indent`,`finalNewline`,`includeLocale`]};function s(e){return o[e]??[`emptyAs`,`indent`,`finalNewline`]}function c(e){return s(n.output.adapter).includes(e)}let l=[{value:`source`,label:`Fill source`},{value:`empty`,label:`Leave empty`},{value:`omit`,label:`Omit`}],u=[{value:`lower-hyphen`,label:`lower-hyphen`,example:`en-us`},{value:`lower-underscore`,label:`lower-underscore`,example:`en_us`},{value:`bcp47-hyphen`,label:`bcp47-hyphen`,example:`en-US`},{value:`bcp47-underscore`,label:`bcp47-underscore`,example:`en_US`}];function d(e){return e===`flutter-arb`?`Default (Flutter: en_US)`:`Default (en-us)`}let f=q(()=>n.output.localeCase??`default`);function p(e){v({localeCase:e==="default"?void 0:e})}let m={"laravel-php":`Laravel PHP`,"vue-i18n-json":`Vue i18n JSON`,"flutter-arb":`Flutter ARB`};function h(e){return m[e]??e}let g={"laravel-php":zu,"vue-i18n-json":Ru,"flutter-arb":fd};function _(e){return g[e]??Vu}function v(e){r(`update:output`,{...n.output,...e})}function y(e){return e===`flutter-arb`?`omit`:`source`}function b(e){v({adapter:e,emptyAs:y(e),style:e===`vue-i18n-json`?`nested`:n.output.style,includeLocale:!0})}let x=q(()=>n.output.emptyAs??y(n.output.adapter)),S=q(()=>n.output.finalNewline??n.formatFinalNewline),C=q(()=>n.output.indent!=null),w=q(()=>n.output.finalNewline!=null),T=q(()=>n.output.localeAliases??{}),ee=q(()=>Object.keys(T.value)),E=q(()=>n.locales.filter(e=>!ee.value.includes(e)));function te(e){v({localeAliases:e})}function ne(e){te({...T.value,[e]:[]})}function re(e){let t={...T.value};delete t[e],te(t)}function D(e){let t=(a.value[e]??``).trim();if(!t)return;let n=T.value[e]??[];n.includes(t)||(te({...T.value,[e]:[...n,t]}),a.value={...a.value,[e]:``})}function ie(e,t){te({...T.value,[e]:(T.value[e]??[]).filter(e=>e!==t)})}let ae=q(()=>n.output.localeMap??{}),oe=q(()=>Object.keys(ae.value)),se=q(()=>n.locales.filter(e=>!oe.value.includes(e)));function O(e){v({localeMap:e})}function ce(e){O({...ae.value,[e]:e})}function le(e){let t={...ae.value};delete t[e],O(t)}function ue(e,t){O({...ae.value,[e]:t})}return(t,n)=>(z(),B(`div`,{class:k([`rounded-lg border`,i.value?`border-input`:`border-border`])},[H(`div`,jO,[H(`button`,{type:`button`,class:`grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,title:i.value?`Collapse`:`Expand options`,onClick:n[0]||=e=>i.value=!i.value},[U(M(Du),{class:k([`size-4 transition-transform`,i.value?`rotate-90`:``])},null,8,[`class`])],8,MO),U(M(fy),{"model-value":e.output.adapter,"onUpdate:modelValue":b},{default:N(()=>[U(M(Nx),{class:`w-44 shrink-0`},{default:N(()=>[H(`span`,NO,[(z(),V(ia(_(e.output.adapter)),{class:`size-3.5 shrink-0 text-primary`})),H(`span`,PO,A(h(e.output.adapter)),1)])]),_:1}),U(M(Px),null,{default:N(()=>[(z(!0),B(R,null,I(e.adapters,e=>(z(),V(M(Ix),{key:e,value:e},{default:N(()=>[H(`span`,FO,[(z(),V(ia(_(e)),{class:`size-3.5 text-primary`})),W(` `+A(h(e)),1)])]),_:2},1032,[`value`]))),128)),e.output.adapter&&!e.adapters.includes(e.output.adapter)?(z(),V(M(Ix),{key:0,value:e.output.adapter},{default:N(()=>[W(A(e.output.adapter),1)]),_:1},8,[`value`])):G(``,!0)]),_:1})]),_:1},8,[`model-value`]),U(M(Mx),{"model-value":e.output.path,class:`flex-1 font-mono text-sm`,placeholder:`lib/l10n/app_{locale}.arb`,spellcheck:`false`,"aria-label":`Output path`,"onUpdate:modelValue":n[1]||=e=>v({path:String(e)})},null,8,[`model-value`]),U(M(Q),{variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove output`,onClick:n[2]||=e=>r(`remove`)},{default:N(()=>[U(M(_d),{class:`size-4`})]),_:1})]),i.value?(z(),B(`div`,IO,[c(`emptyAs`)?(z(),B(`div`,LO,[U(M(dS),null,{default:N(()=>[...n[8]||=[W(`Empty keys`,-1)]]),_:1}),n[9]||=H(`p`,{class:`text-xs text-muted-foreground`},`What to write when a translation is missing.`,-1),H(`div`,RO,[(z(),B(R,null,I(l,e=>H(`button`,{key:e.value,type:`button`,class:k([`rounded-[5px] px-2.5 py-1 text-xs font-medium transition-colors`,x.value===e.value?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:t=>v({emptyAs:e.value})},A(e.label),11,zO)),64))])])):G(``,!0),c(`style`)?(z(),B(`div`,BO,[U(M(dS),null,{default:N(()=>[...n[10]||=[W(`Nesting`,-1)]]),_:1}),n[11]||=H(`p`,{class:`text-xs text-muted-foreground`},`Expand dotted keys into nested objects.`,-1),H(`div`,VO,[(z(),B(R,null,I([`nested`,`flat`],t=>H(`button`,{key:t,type:`button`,class:k([`rounded-[5px] px-2.5 py-1 text-xs font-medium capitalize transition-colors`,(e.output.style??`nested`)===t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground`]),onClick:e=>v({style:t})},A(t),11,HO)),64))])])):G(``,!0),c(`indent`)?(z(),B(`div`,UO,[H(`div`,WO,[U(M(dS),null,{default:N(()=>[...n[12]||=[W(`Indent`,-1)]]),_:1}),C.value?(z(),B(`button`,{key:1,type:`button`,class:`text-xs text-primary hover:underline`,onClick:n[3]||=e=>v({indent:null})},`Reset`)):(z(),B(`span`,GO,`Inherited · `+A(e.formatIndent),1))]),H(`div`,KO,[U(M(Mx),{type:`number`,min:`0`,max:`8`,class:k([`w-20`,C.value?`border-primary`:``]),"model-value":e.output.indent??``,placeholder:String(e.formatIndent),"onUpdate:modelValue":n[4]||=e=>v({indent:e===``?null:Math.max(0,parseInt(String(e),10)||0)})},null,8,[`class`,`model-value`,`placeholder`]),n[13]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])])):G(``,!0),c(`finalNewline`)?(z(),B(`div`,qO,[H(`div`,JO,[U(M(dS),null,{default:N(()=>[...n[14]||=[W(`Final newline`,-1)]]),_:1}),w.value?(z(),B(`button`,{key:1,type:`button`,class:`text-xs text-primary hover:underline`,onClick:n[5]||=e=>v({finalNewline:null})},`Reset`)):(z(),B(`span`,YO,`Inherited · `+A(e.formatFinalNewline?`on`:`off`),1))]),H(`div`,XO,[U(M(Hx),{"model-value":S.value,"onUpdate:modelValue":n[6]||=e=>v({finalNewline:e})},null,8,[`model-value`]),H(`span`,ZO,A(S.value?`Enabled`:`Disabled`),1)])])):G(``,!0),c(`includeLocale`)?(z(),B(`div`,QO,[U(M(dS),{class:`flex items-center gap-1.5`},{default:N(()=>[...n[15]||=[W(`Include `,-1),H(`code`,{class:`font-mono text-xs`},`@@locale`,-1)]]),_:1}),n[16]||=H(`p`,{class:`text-xs text-muted-foreground`},`Write the locale marker into each file. Standard for Flutter.`,-1),H(`div`,$O,[U(M(Hx),{"model-value":e.output.includeLocale??!0,"onUpdate:modelValue":n[7]||=e=>v({includeLocale:e})},null,8,[`model-value`]),H(`span`,ek,A(e.output.includeLocale??!0?`Enabled`:`Disabled`),1)])])):G(``,!0),H(`div`,tk,[U(M(dS),null,{default:N(()=>[...n[17]||=[W(`Locale code format`,-1)]]),_:1}),n[18]||=H(`p`,{class:`text-xs text-muted-foreground`},[W(`How the `),H(`code`,{class:`font-mono text-xs`},`{locale}`),W(` token is rendered in file names (and the in-file marker for ARB).`)],-1),U(M(fy),{"model-value":f.value,"onUpdate:modelValue":p},{default:N(()=>[U(M(Nx),{class:`w-72`,"aria-label":`Locale code format`},{default:N(()=>[U(M(Ny))]),_:1}),U(M(Px),null,{default:N(()=>[U(M(Ix),{value:`default`},{default:N(()=>[W(A(d(e.output.adapter)),1)]),_:1}),(z(),B(R,null,I(u,e=>U(M(Ix),{key:e.value,value:e.value},{default:N(()=>[H(`span`,nk,[H(`span`,null,A(e.label),1),H(`span`,rk,A(e.example),1)])]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`])]),H(`div`,ik,[U(M(dS),null,{default:N(()=>[...n[19]||=[W(`Locale overrides`,-1)]]),_:1}),n[21]||=H(`p`,{class:`text-xs text-muted-foreground`},`Force a specific export code for one locale — wins over the format above.`,-1),H(`div`,ak,[oe.value.length===0?(z(),B(`p`,ok,`No overrides.`)):G(``,!0),(z(!0),B(R,null,I(oe.value,e=>(z(),B(`div`,{key:e,class:`flex items-center gap-2`},[H(`span`,sk,A(e),1),U(M(bu),{class:`size-3 shrink-0 text-muted-foreground`}),U(M(Mx),{class:`h-8 flex-1 font-mono text-xs`,"aria-label":`Export code for `+e,placeholder:`export code`,"model-value":ae.value[e]??``,"onUpdate:modelValue":t=>ue(e,String(t))},null,8,[`aria-label`,`model-value`,`onUpdate:modelValue`]),U(M(Q),{variant:`ghost`,size:`icon`,class:`size-8 shrink-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove override `+e,onClick:t=>le(e)},{default:N(()=>[U(M(_d),{class:`size-3.5`})]),_:1},8,[`aria-label`,`onClick`])]))),128)),se.value.length>0?(z(),B(`div`,ck,[U(M(fy),{"model-value":``,"onUpdate:modelValue":ce},{default:N(()=>[U(M(Nx),{class:`w-56 text-muted-foreground`,"aria-label":`Add locale override`},{default:N(()=>[H(`span`,lk,[U(M(rd),{class:`size-3.5`}),n[20]||=W(` Add override…`,-1)])]),_:1}),U(M(Px),null,{default:N(()=>[(z(!0),B(R,null,I(se.value,e=>(z(),V(M(Ix),{key:e,value:e},{default:N(()=>[W(A(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])]),H(`div`,uk,[n[23]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Advanced · Locale aliases`,-1),n[24]||=H(`p`,{class:`mt-1.5 text-xs text-muted-foreground`},[W(` Write one catalog locale to additional file codes — e.g. `),H(`span`,{class:`font-mono`},`zh-Hans`),W(` also as `),H(`span`,{class:`font-mono`},`zh, zh_CN`),W(`. `)],-1),H(`div`,dk,[ee.value.length===0?(z(),B(`p`,fk,`No aliases. The locale's own code is used as the file name.`)):G(``,!0),(z(!0),B(R,null,I(ee.value,e=>(z(),B(`div`,{key:e,class:`flex items-start gap-2`},[H(`div`,pk,[H(`span`,mk,A(e),1),U(M(bu),{class:`size-3 text-muted-foreground`})]),H(`div`,hk,[(z(!0),B(R,null,I(T.value[e]??[],t=>(z(),B(`span`,{key:t,class:`inline-flex items-center gap-1 rounded-md border border-border bg-muted px-1.5 py-0.5 font-mono text-xs`},[W(A(t)+` `,1),H(`button`,{type:`button`,class:`text-muted-foreground hover:text-destructive`,title:`Remove`,onClick:n=>ie(e,t)},[U(M(Sd),{class:`size-3`})],8,gk)]))),128)),U(M(Mx),{class:`h-8 w-28 font-mono text-xs`,placeholder:`add code…`,"model-value":a.value[e]??``,"onUpdate:modelValue":t=>a.value={...a.value,[e]:String(t)},onKeydown:Xl(Jl(t=>D(e),[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`])]),U(M(Q),{variant:`ghost`,size:`icon`,class:`size-8 shrink-0 text-muted-foreground hover:text-destructive`,title:`Remove alias`,onClick:t=>re(e)},{default:N(()=>[U(M(_d),{class:`size-3.5`})]),_:1},8,[`onClick`])]))),128)),E.value.length>0?(z(),B(`div`,_k,[U(M(fy),{"model-value":``,"onUpdate:modelValue":ne},{default:N(()=>[U(M(Nx),{class:`w-56 text-muted-foreground`},{default:N(()=>[H(`span`,vk,[U(M(rd),{class:`size-3.5`}),n[22]||=W(` Add locale alias…`,-1)])]),_:1}),U(M(Px),null,{default:N(()=>[(z(!0),B(R,null,I(E.value,e=>(z(),V(M(Ix),{key:e,value:e},{default:N(()=>[W(A(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})])):G(``,!0)])])])):G(``,!0)],2))}}),bk={class:`grid gap-1.5`},xk={class:`flex flex-wrap gap-2`},Sk=[`aria-label`,`onClick`],Ck={key:0,class:`text-sm text-muted-foreground`},wk={class:`flex max-w-sm gap-2`},Tk={key:0,class:`flex items-center gap-1.5 text-xs text-destructive`},Ek=F({__name:`ScanListField`,props:{label:{},items:{},placeholder:{},mono:{type:Boolean},addLabel:{},validate:{type:Function}},emits:[`update:items`],setup(e,{emit:t}){let n=e,r=t,i=j(``),a=j(``);function o(){let e=i.value.trim();if(!e)return;if(n.items.includes(e)){a.value=`"${e}" is already listed`;return}let t=n.validate?.(e)??null;if(t){a.value=t;return}a.value=``,r(`update:items`,[...n.items,e]),i.value=``}function s(e){r(`update:items`,n.items.filter(t=>t!==e))}return(t,n)=>(z(),B(`div`,bk,[U(M(dS),null,{default:N(()=>[W(A(e.label),1)]),_:1}),L(t.$slots,`help`),H(`div`,xk,[(z(!0),B(R,null,I(e.items,t=>(z(),B(`span`,{key:t,class:k([`inline-flex items-center gap-1.5 rounded-lg border bg-accent px-2.5 py-1.5 text-sm`,e.mono&&`font-mono`])},[W(A(t)+` `,1),H(`button`,{type:`button`,class:`flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${t}`,onClick:e=>s(t)},[U(M(Sd),{class:`size-3`})],8,Sk)],2))),128)),e.items.length===0?(z(),B(`p`,Ck,`None — auto-detect.`)):G(``,!0)]),H(`div`,wk,[U(M(Mx),{modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,class:k(e.mono?`font-mono`:void 0),placeholder:e.placeholder,onKeydown:Xl(Jl(o,[`prevent`]),[`enter`]),onInput:n[1]||=e=>a.value=``},null,8,[`modelValue`,`class`,`placeholder`,`onKeydown`]),U(M(Q),{variant:`outline`,onClick:o},{default:N(()=>[U(M(rd),{class:`size-4`}),W(` `+A(e.addLabel??`Add`),1)]),_:1})]),a.value?(z(),B(`p`,Tk,[U(M(vd),{class:`size-3.5`}),W(` `+A(a.value),1)])):G(``,!0)]))}}),Dk={key:0,class:`flex flex-1 items-center justify-center text-sm text-muted-foreground`},Ok={key:1,class:`flex min-h-0 flex-1 overflow-hidden`},kk={class:`flex w-60 shrink-0 flex-col gap-1 overflow-y-auto border-r bg-muted p-3`},Ak=[`onClick`],jk={class:`min-w-0 flex-1`},Mk={class:`block text-[13px] font-[570] leading-tight`},Nk={class:`mt-0.5 block truncate text-[11px] opacity-70`},Pk={key:0,class:`size-2 shrink-0 rounded-full bg-primary ring-2 ring-primary/25`},Fk={key:1,class:`shrink-0 rounded border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 font-mono text-[9px] font-semibold uppercase tracking-wide text-emerald-600 dark:text-emerald-400`},Ik={class:`min-w-0 flex-1`},Lk={class:`mt-0.5 block truncate text-[11px] opacity-70`},Rk={class:`relative flex min-w-0 flex-1 flex-col`},zk={class:`flex-1 overflow-y-auto px-8 pb-28 pt-7`},Bk={class:`max-w-[680px]`},Vk={class:`mb-6`},Hk={class:`flex items-center gap-2.5 text-[21px] font-bold tracking-tight`},Uk={key:0,class:`size-2 rounded-full bg-primary ring-2 ring-primary/25`},Wk={key:0,class:`mt-1.5 text-sm text-muted-foreground`},Gk={key:1,class:`mt-1.5 text-sm text-muted-foreground`},Kk={key:2,class:`mt-1.5 text-sm text-muted-foreground`},qk={key:3,class:`mt-1.5 text-sm text-muted-foreground`},Jk={key:4,class:`mt-1.5 text-sm text-muted-foreground`},Yk={key:5,class:`mt-1.5 text-sm text-muted-foreground`},Xk={key:6,class:`mt-2 flex items-center gap-1.5 text-sm text-emerald-600 dark:text-emerald-400`},Zk={key:0,class:`flex flex-col gap-5`},Qk={class:`grid max-w-sm gap-1.5`},$k={key:0},eA={class:`grid gap-1.5`},tA={class:`ml-1.5 font-normal text-muted-foreground`},nA={class:`flex flex-wrap gap-2`},rA={key:0,class:`font-mono text-[10px] italic text-muted-foreground`},iA=[`aria-label`,`onClick`],aA={class:`mt-1 flex items-center gap-1.5 text-xs text-destructive`},oA={class:`grid max-w-sm gap-1.5`},sA={class:`flex gap-2`},cA={key:0,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},lA={key:1,class:`flex flex-col gap-6`},uA={class:`flex items-center justify-between gap-4 rounded-lg border p-3.5`},dA={class:`flex items-start gap-2.5`},fA={class:`grid size-8 shrink-0 place-items-center rounded-md border border-primary/25 bg-primary/10 text-primary`},pA={class:`rounded-lg border p-3.5`},mA={class:`flex items-center justify-between gap-4`},hA={class:`flex items-start gap-2.5`},gA={class:`grid size-8 shrink-0 place-items-center rounded-md border border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400`},_A={key:0,class:`mt-3 border-t pt-3`},vA={class:`flex flex-wrap gap-2`},yA=[`aria-checked`,`onClick`],bA={class:`mt-2 flex items-center gap-1.5 text-xs text-amber-600 dark:text-amber-400`},xA={class:`mt-2 divide-y rounded-lg border`},SA={class:`flex items-center justify-between gap-4 p-3.5`},CA={class:`flex items-center gap-2`},wA={class:`flex items-center justify-between gap-4 p-3.5`},TA={class:`flex items-center gap-2 text-sm font-medium`},EA={class:`inline-flex items-center gap-1 rounded border border-border bg-muted px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`},DA={class:`inline-flex shrink-0 items-center gap-1 rounded-md border border-primary/25 bg-primary/10 px-2 py-1 text-xs font-medium text-primary`},OA={class:`flex items-center justify-between gap-4 p-3.5`},kA={class:`mt-2 flex flex-col gap-2.5`},AA={key:0,class:`text-sm text-muted-foreground`},jA={key:2,class:`grid gap-4 sm:grid-cols-2`},MA={class:`grid gap-1.5`},NA={class:`text-xs text-muted-foreground`},PA={class:`grid gap-1.5`},FA={key:0,class:`text-xs text-muted-foreground`},IA=[`onClick`],LA={key:0},RA={key:0,class:`grid gap-1.5`},zA={key:1,class:`grid gap-1.5`},BA={class:`grid gap-1.5`},VA={key:3,class:`flex flex-col gap-6`},HA={key:4,class:`flex flex-col gap-4`},UA={class:`flex flex-wrap gap-2`},WA=[`aria-label`,`onClick`],GA={key:0,class:`text-sm text-muted-foreground`},KA={class:`grid max-w-sm gap-1.5`},qA={class:`flex gap-2`},JA={key:5,class:`flex flex-col gap-4`},YA={class:`grid max-w-sm gap-1.5`},XA={class:`flex items-center gap-2`},ZA={key:0,class:`flex items-center gap-1 text-xs text-emerald-600 dark:text-emerald-400`},QA={class:`flex items-center gap-1.5 text-sm text-muted-foreground`},$A={class:`inline-grid h-5 min-w-[20px] shrink-0 place-items-center rounded-full bg-primary px-1.5 text-[11px] font-bold tabular-nums text-primary-foreground`},ej={class:`font-semibold`},tj={class:`relative`},nj={key:0,class:`absolute bottom-full left-1/2 z-50 mb-2.5 w-64 -translate-x-1/2 rounded-xl border bg-card p-3.5 shadow-lg`},rj={class:`mt-1 text-xs leading-relaxed text-muted-foreground`},ij={class:`mt-3 flex justify-end gap-2`},aj={key:0,class:`fixed left-1/2 top-4 z-[80] flex -translate-x-1/2 items-center gap-2 rounded-[11px] bg-foreground px-4 py-2.5 text-[12.5px] font-medium text-background shadow-lg`},oj=F({__name:`SettingsView`,setup(e){let t=[`flutter-arb`,`laravel-php`,`vue-i18n-json`],n=[{value:`anthropic`,label:`Anthropic`},{value:`openai`,label:`OpenAI`},{value:`bedrock`,label:`AWS Bedrock`}],r={anthropic:[`claude-opus-4-8`,`claude-sonnet-4-6`,`claude-haiku-4-5-20251001`],openai:[`gpt-4o-mini`,`gpt-4o`,`gpt-4.1`],bedrock:[`amazon.nova-pro-v1:0`,`anthropic.claude-3-5-sonnet-20241022-v2:0`,`meta.llama3-1-70b-instruct-v1:0`]},i={anthropic:`Set ANTHROPIC_API_KEY in your environment (or a .env file).`,openai:`Set OPENAI_API_KEY in your environment (or a .env file).`,bedrock:`Uses your AWS credentials (env vars, AWS_PROFILE, or an instance/SSO role).`},a=j(null),o=j(null),s=Xt({sourceLocale:``,locales:[],outputs:[],provider:`anthropic`,model:`claude-opus-4-8`,endpoint:``,region:``,batchSize:25,indent:2,sortKeys:!0,finalNewline:!0,autoExport:!0,exportLocales:[],customWords:[],scanAccessors:[],scanPatterns:[],scanInclude:[],scanExclude:[]}),c=j(!1),l=j(!1),u=j(`languages`),d=j(!1),f=j(!1),p=null;function m(e){s.sourceLocale=e.sourceLocale,s.locales=[...e.locales],s.outputs=e.outputs.map(e=>({...e})),s.provider=e.provider,s.model=e.model,s.endpoint=e.endpoint,s.region=e.region,s.batchSize=e.batchSize,s.indent=e.indent,s.sortKeys=e.sortKeys,s.finalNewline=e.finalNewline,s.autoExport=e.autoExport,s.exportLocales=[...e.exportLocales],s.customWords=[...e.customWords],s.scanAccessors=[...e.scanAccessors],s.scanPatterns=[...e.scanPatterns],s.scanInclude=[...e.scanInclude],s.scanExclude=[...e.scanExclude]}function h(){a.value={sourceLocale:s.sourceLocale,locales:[...s.locales],outputs:s.outputs.map(e=>({...e})),provider:s.provider,model:s.model,endpoint:s.endpoint,region:s.region,batchSize:s.batchSize,indent:s.indent,sortKeys:s.sortKeys,finalNewline:s.finalNewline,autoExport:s.autoExport,exportLocales:[...s.exportLocales],customWords:[...s.customWords],scanAccessors:[...s.scanAccessors],scanPatterns:[...s.scanPatterns],scanInclude:[...s.scanInclude],scanExclude:[...s.scanExclude]}}async function g(){let e=await Td();o.value=e.config,m(OO(e.config)),h(),c.value=!0}g();let _=[`languages`,`outputs`,`ai`,`scan`,`dictionary`];function v(e){if(!a.value)return!0;let t=s,n=a.value;return e===`languages`?JSON.stringify(t.locales)===JSON.stringify(n.locales)&&t.sourceLocale===n.sourceLocale:e===`outputs`?JSON.stringify(t.outputs)===JSON.stringify(n.outputs)&&String(t.indent)===String(n.indent)&&t.finalNewline===n.finalNewline&&t.autoExport===n.autoExport&&JSON.stringify(t.exportLocales)===JSON.stringify(n.exportLocales):e===`ai`?t.provider===n.provider&&t.model===n.model&&t.endpoint===n.endpoint&&t.region===n.region&&String(t.batchSize)===String(n.batchSize):e===`scan`?JSON.stringify(t.scanAccessors)===JSON.stringify(n.scanAccessors)&&JSON.stringify(t.scanPatterns)===JSON.stringify(n.scanPatterns)&&JSON.stringify(t.scanInclude)===JSON.stringify(n.scanInclude)&&JSON.stringify(t.scanExclude)===JSON.stringify(n.scanExclude):e===`dictionary`?JSON.stringify(t.customWords)===JSON.stringify(n.customWords):!0}let y=q(()=>_.filter(e=>!v(e))),b=q(()=>y.value.length),x=q(()=>y.value.map(e=>ee[e].title));P(b,e=>{AO.value=e},{immediate:!0}),Yi(()=>{AO.value=0});let S=j(iw()),C=q(()=>tw.find(e=>e.id===S.value)?.label??`VS Code`),w=j(!1),T=null;P(S,e=>{aw(e),w.value=!0,T&&clearTimeout(T),T=setTimeout(()=>{w.value=!1},1700)});let ee={languages:{title:`Languages`},outputs:{title:`Export targets`},ai:{title:`AI`},scan:{title:`Scan`},dictionary:{title:`Custom dictionary`},editor:{title:`Editor`}},E=[{id:`languages`,title:`Languages`},{id:`outputs`,title:`Export targets`},{id:`ai`,title:`AI`},{id:`scan`,title:`Scan`},{id:`dictionary`,title:`Custom dictionary`}];function te(e){if(e===`languages`)return`${s.locales.length} language${s.locales.length===1?``:`s`}`;if(e===`outputs`)return`${s.outputs.length} target${s.outputs.length===1?``:`s`}${s.autoExport?` · auto`:``}${s.exportLocales.length?` · limited`:``}`;if(e===`ai`)return`${s.provider} · ${s.model}`;if(e===`scan`){let e=s.scanAccessors.length,t=s.scanPatterns.length,n=[e&&`${e} accessor${e===1?``:`s`}`,t&&`${t} pattern${t===1?``:`s`}`].filter(Boolean);return n.length?n.join(` · `):`Auto-detect`}return e===`dictionary`?s.customWords.length?`${s.customWords.length} word${s.customWords.length===1?``:`s`}`:`No custom words`:``}async function ne(){if(b.value!==0){l.value=!0;try{await Kd(kO(s,o.value??void 0)),h(),f.value=!0,p&&clearTimeout(p),p=setTimeout(()=>{f.value=!1},1700)}catch(e){$.error(e.message)}finally{l.value=!1}}}function re(){a.value&&m(a.value),d.value=!1}function D(e){(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),ne())}Gi(()=>window.addEventListener(`keydown`,D)),Yi(()=>window.removeEventListener(`keydown`,D));let ie=j(``);function ae(){let e=ie.value.trim().toLowerCase();if(e){if(s.locales.some(t=>t.toLowerCase()===e)){$.error(`${e} is already in the list`);return}s.locales.push(e),ie.value=``}}function oe(e){e!==s.sourceLocale&&(s.locales=s.locales.filter(t=>t!==e))}function se(){s.outputs.push({adapter:`flutter-arb`,path:``,emptyAs:`omit`,style:`nested`,indent:null,finalNewline:null,includeLocale:!0,localeAliases:{}})}function O(e){s.outputs.splice(e,1)}let ce=q(()=>s.exportLocales.length>0);function le(e){s.exportLocales=e?[...s.locales]:[]}function ue(e){s.exportLocales=s.exportLocales.includes(e)?s.exportLocales.filter(t=>t!==e):[...s.exportLocales,e]}let de=q(()=>s.provider===`bedrock`),fe=q(()=>i[s.provider]??``),pe=q(()=>r[s.provider]??[]),me=q(()=>pe.value[0]??``),he=j(``);function ge(){let e=he.value.trim();if(e){if(s.customWords.includes(e)){$.error(`${e} is already in the dictionary`);return}s.customWords=[...s.customWords,e].sort(),he.value=``}}function _e(e){s.customWords=s.customWords.filter(t=>t!==e)}function ve(e){try{return new RegExp(e),null}catch(e){return`Invalid regex: ${e.message}`}}return(e,r)=>(z(),B(R,null,[c.value?(z(),B(`div`,Ok,[H(`nav`,kk,[r[20]||=H(`p`,{class:`px-2.5 pb-2 pt-1 text-[10.5px] font-bold uppercase tracking-widest text-muted-foreground`},` Settings `,-1),(z(),B(R,null,I(E,e=>H(`button`,{key:e.id,type:`button`,class:k([`flex w-full items-center gap-2.5 rounded-[10px] border px-2.5 py-2.5 text-left transition-colors`,u.value===e.id?`border-border bg-card text-foreground shadow-sm`:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-foreground`]),onClick:t=>u.value=e.id},[H(`span`,{class:k([`flex size-[30px] shrink-0 items-center justify-center rounded-lg border`,u.value===e.id?`border-primary/30 bg-primary/10 text-primary`:`border-border/60 bg-background text-muted-foreground`])},[e.id===`languages`?(z(),V(M(Gu),{key:0,class:`size-4`})):e.id===`outputs`?(z(),V(M(Vu),{key:1,class:`size-4`})):e.id===`ai`?(z(),V(M(Pu),{key:2,class:`size-4`})):e.id===`scan`?(z(),V(M(sd),{key:3,class:`size-4`})):(z(),V(M(Su),{key:4,class:`size-4`}))],2),H(`span`,jk,[H(`span`,Mk,A(e.title),1),H(`span`,Nk,A(te(e.id)),1)]),!e.autosave&&y.value.includes(e.id)?(z(),B(`span`,Pk)):G(``,!0),e.autosave?(z(),B(`span`,Fk,`Auto`)):G(``,!0)],10,Ak)),64)),r[21]||=H(`p`,{class:`mt-4 border-t px-2.5 pb-2 pt-3 text-[10.5px] font-bold uppercase tracking-widest text-muted-foreground`},` This browser `,-1),H(`button`,{type:`button`,class:k([`flex w-full items-center gap-2.5 rounded-[10px] border px-2.5 py-2.5 text-left transition-colors`,u.value===`editor`?`border-border bg-card text-foreground shadow-sm`:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-foreground`]),onClick:r[0]||=e=>u.value=`editor`},[H(`span`,{class:k([`flex size-[30px] shrink-0 items-center justify-center rounded-lg border`,u.value===`editor`?`border-primary/30 bg-primary/10 text-primary`:`border-border/60 bg-background text-muted-foreground`])},[U(M(Nu),{class:`size-4`})],2),H(`span`,Ik,[r[19]||=H(`span`,{class:`block text-[13px] font-[570] leading-tight`},`Editor`,-1),H(`span`,Lk,A(C.value),1)])],2)]),H(`div`,Rk,[H(`div`,zk,[H(`div`,Bk,[H(`div`,Vk,[H(`h2`,Hk,[W(A(ee[u.value].title)+` `,1),y.value.includes(u.value)?(z(),B(`span`,Uk)):G(``,!0)]),u.value===`languages`?(z(),B(`p`,Wk,` The source language is translated into every other language. `)):u.value===`outputs`?(z(),B(`p`,Gk,[...r[22]||=[W(` Where compiled translation files are written. Use `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`{locale}`,-1),W(` and `,-1),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-xs`},`{namespace}`,-1),W(` placeholders in the path. `,-1)]])):u.value===`ai`?(z(),B(`p`,Kk,` The provider and model used for machine translation. `)):u.value===`scan`?(z(),B(`p`,qk,` How the usage scanner finds where keys are referenced in code. Auto-detection handles most projects — these settings are for the cases it can't infer. `)):u.value===`dictionary`?(z(),B(`p`,Jk,` Words the spell checker should never flag. Added here or from a cell's warning. `)):u.value===`editor`?(z(),B(`p`,Yk,` Which editor opens when you click a key's code usage. Saved in this browser, not shared with your team. `)):G(``,!0),ee[u.value].autosave?(z(),B(`p`,Xk,[U(M(Tu),{class:`size-3.5`}),r[23]||=W(` This section saves automatically. `,-1)])):G(``,!0)]),u.value===`languages`?(z(),B(`div`,Zk,[H(`div`,Qk,[U(M(dS),{for:`source-locale`},{default:N(()=>[...r[24]||=[W(`Source language`,-1)]]),_:1}),U(M(fy),{modelValue:s.sourceLocale,"onUpdate:modelValue":r[1]||=e=>s.sourceLocale=e},{default:N(()=>[U(M(Nx),{id:`source-locale`},{default:N(()=>[s.sourceLocale?(z(),B(`span`,$k,[U(yC,{code:s.sourceLocale,"show-name":``,size:14},null,8,[`code`])])):(z(),V(M(Ny),{key:1,placeholder:`Select source`}))]),_:1}),U(M(Px),null,{default:N(()=>[(z(!0),B(R,null,I(s.locales,e=>(z(),V(M(Ix),{key:e,value:e},{default:N(()=>[U(yC,{code:e,"show-name":``,size:14},null,8,[`code`])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,eA,[U(M(dS),null,{default:N(()=>[r[25]||=W(` Languages `,-1),H(`span`,tA,A(s.locales.length),1)]),_:1}),H(`div`,nA,[(z(!0),B(R,null,I(s.locales,e=>(z(),B(`span`,{key:e,class:k([`inline-flex items-center gap-1.5 rounded-[9px] border px-2.5 py-1.5 text-sm transition-colors`,e===s.sourceLocale?`border-border/60 bg-accent`:`border-border bg-background`])},[U(yC,{code:e,"show-name":``,size:14},null,8,[`code`]),e===s.sourceLocale?(z(),B(`span`,rA,`source`)):(z(),B(`button`,{key:1,type:`button`,class:`ml-0.5 flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${e}`,onClick:t=>oe(e)},[U(M(Sd),{class:`size-3`})],8,iA))],2))),128))]),H(`p`,aA,[U(M(vd),{class:`size-3.5`}),r[26]||=W(` Removing a language deletes its translations. `,-1)])]),H(`div`,oA,[U(M(dS),{for:`add-locale`},{default:N(()=>[...r[27]||=[W(`Add language`,-1)]]),_:1}),H(`div`,sA,[U(M(Mx),{id:`add-locale`,modelValue:ie.value,"onUpdate:modelValue":r[2]||=e=>ie.value=e,class:`font-mono`,placeholder:`es`,onKeydown:Xl(Jl(ae,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(M(Q),{variant:`outline`,onClick:ae},{default:N(()=>[U(M(rd),{class:`size-4`}),r[28]||=W(` Add`,-1)]),_:1})]),ie.value.trim()?(z(),B(`p`,cA,[r[29]||=W(` Preview: `,-1),U(yC,{code:ie.value.trim(),"show-name":``,size:14},null,8,[`code`])])):G(``,!0)])])):u.value===`outputs`?(z(),B(`div`,lA,[H(`div`,uA,[H(`div`,dA,[H(`span`,fA,[U(M(Cd),{class:`size-4`})]),r[30]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Auto-export on save`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Write locale files to your project automatically as you edit, so your running app picks them up immediately.`)],-1)]),U(M(Hx),{modelValue:s.autoExport,"onUpdate:modelValue":r[3]||=e=>s.autoExport=e},null,8,[`modelValue`])]),H(`div`,pA,[H(`div`,mA,[H(`div`,hA,[H(`span`,gA,[U(M(Yu),{class:`size-4`})]),r[31]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Limit export languages`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Only the selected languages are written to disk, including auto-export. Off exports all languages.`)],-1)]),U(M(Hx),{"model-value":ce.value,"onUpdate:modelValue":le},null,8,[`model-value`])]),ce.value?(z(),B(`div`,_A,[H(`div`,vA,[(z(!0),B(R,null,I(s.locales,e=>(z(),B(`button`,{key:e,type:`button`,role:`checkbox`,"aria-checked":s.exportLocales.includes(e),class:k([`inline-flex items-center gap-1.5 rounded-[9px] border px-2.5 py-1.5 text-sm transition-colors`,s.exportLocales.includes(e)?`border-primary/40 bg-primary/10`:`border-border bg-background text-muted-foreground hover:bg-accent`]),onClick:t=>ue(e)},[H(`span`,{class:k([`flex size-4 items-center justify-center rounded border transition-colors`,s.exportLocales.includes(e)?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground hover:border-primary hover:bg-primary/10`])},[s.exportLocales.includes(e)?(z(),V(M(Tu),{key:0,class:`size-3`})):G(``,!0)],2),U(yC,{code:e,"show-name":``,size:14},null,8,[`code`])],10,yA))),128))]),H(`p`,bA,[U(M(vd),{class:`size-3.5`}),W(` Export limited to `+A(s.exportLocales.length)+` of `+A(s.locales.length)+` languages. `,1)])])):G(``,!0)]),H(`div`,null,[r[39]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Format defaults`,-1),r[40]||=H(`p`,{class:`mt-1 text-xs text-muted-foreground`},`Export targets inherit these. Indent and Final newline can be overridden per target.`,-1),H(`div`,xA,[H(`div`,SA,[r[33]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Indent`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Spaces per nesting level.`)],-1),H(`div`,CA,[U(M(Mx),{modelValue:s.indent,"onUpdate:modelValue":r[4]||=e=>s.indent=e,modelModifiers:{number:!0},type:`number`,min:`0`,max:`8`,class:`w-20`},null,8,[`modelValue`]),r[32]||=H(`span`,{class:`text-xs text-muted-foreground`},`spaces`,-1)])]),H(`div`,wA,[H(`div`,null,[H(`div`,TA,[r[35]||=W(` Sort keys `,-1),H(`span`,EA,[U(M(Qu),{class:`size-2.5`}),r[34]||=W(` Locked`,-1)])]),r[36]||=H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Keys are always written alphabetically so output is deterministic and diffs stay clean.`,-1)]),H(`span`,DA,[U(M(Tu),{class:`size-3`}),r[37]||=W(` Always alphabetical`,-1)])]),H(`div`,OA,[r[38]||=H(`div`,null,[H(`div`,{class:`text-sm font-medium`},`Final newline`),H(`div`,{class:`mt-0.5 text-xs text-muted-foreground`},`Append a trailing newline at the end of every file.`)],-1),U(M(Hx),{modelValue:s.finalNewline,"onUpdate:modelValue":r[5]||=e=>s.finalNewline=e},null,8,[`modelValue`])])])]),H(`div`,null,[r[42]||=H(`div`,{class:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`},`Export targets`,-1),H(`div`,kA,[(z(!0),B(R,null,I(s.outputs,(e,n)=>(z(),V(yk,{key:n,output:e,"format-indent":Number(s.indent)||0,"format-final-newline":s.finalNewline,locales:s.locales,adapters:t,"onUpdate:output":e=>s.outputs.splice(n,1,e),onRemove:e=>O(n)},null,8,[`output`,`format-indent`,`format-final-newline`,`locales`,`onUpdate:output`,`onRemove`]))),128)),s.outputs.length===0?(z(),B(`p`,AA,`No export targets configured.`)):G(``,!0),H(`div`,null,[U(M(Q),{variant:`ghost`,size:`sm`,class:`mt-1 pl-2`,onClick:se},{default:N(()=>[U(M(rd),{class:`size-4`}),r[41]||=W(` Add export target `,-1)]),_:1})])])])])):u.value===`ai`?(z(),B(`div`,jA,[H(`div`,MA,[U(M(dS),{for:`ai-provider`},{default:N(()=>[...r[43]||=[W(`Provider`,-1)]]),_:1}),U(M(fy),{modelValue:s.provider,"onUpdate:modelValue":r[6]||=e=>s.provider=e},{default:N(()=>[U(M(Nx),{id:`ai-provider`},{default:N(()=>[U(M(Ny),{placeholder:`Select provider`})]),_:1}),U(M(Px),null,{default:N(()=>[(z(),B(R,null,I(n,e=>U(M(Ix),{key:e.value,value:e.value},{default:N(()=>[W(A(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),H(`p`,NA,A(fe.value),1)]),H(`div`,PA,[U(M(dS),{for:`ai-model`},{default:N(()=>[...r[44]||=[W(`Model`,-1)]]),_:1}),U(M(Mx),{id:`ai-model`,modelValue:s.model,"onUpdate:modelValue":r[7]||=e=>s.model=e,class:`font-mono`,placeholder:me.value},null,8,[`modelValue`,`placeholder`]),pe.value.length?(z(),B(`p`,FA,[r[45]||=W(` Examples: `,-1),(z(!0),B(R,null,I(pe.value,(e,t)=>(z(),B(R,{key:e},[H(`button`,{type:`button`,class:`font-mono underline-offset-2 hover:text-foreground hover:underline`,onClick:t=>s.model=e},A(e),9,IA),t<pe.value.length-1?(z(),B(`span`,LA,` · `)):G(``,!0)],64))),128))])):G(``,!0)]),de.value?(z(),B(`div`,RA,[U(M(dS),{for:`ai-region`},{default:N(()=>[...r[46]||=[W(`Region`,-1)]]),_:1}),U(M(Mx),{id:`ai-region`,modelValue:s.region,"onUpdate:modelValue":r[8]||=e=>s.region=e,class:`font-mono`,placeholder:`us-east-1`},null,8,[`modelValue`]),r[47]||=H(`p`,{class:`text-xs text-muted-foreground`},[W(` AWS region for Bedrock. Falls back to `),H(`code`,{class:`font-mono`},`AWS_REGION`),W(` if empty. `)],-1)])):(z(),B(`div`,zA,[U(M(dS),{for:`ai-endpoint`},{default:N(()=>[...r[48]||=[W(`Endpoint`,-1)]]),_:1}),U(M(Mx),{id:`ai-endpoint`,modelValue:s.endpoint,"onUpdate:modelValue":r[9]||=e=>s.endpoint=e,class:`font-mono`,placeholder:`Default (leave empty)`},null,8,[`modelValue`]),r[49]||=H(`p`,{class:`text-xs text-muted-foreground`},` Optional — for an in-region or self-hosted / OpenAI-compatible gateway. `,-1)])),H(`div`,BA,[U(M(dS),{for:`ai-batch`},{default:N(()=>[...r[50]||=[W(`Batch size`,-1)]]),_:1}),U(M(Mx),{id:`ai-batch`,modelValue:s.batchSize,"onUpdate:modelValue":r[10]||=e=>s.batchSize=e,modelModifiers:{number:!0},type:`number`,min:`1`},null,8,[`modelValue`]),r[51]||=H(`p`,{class:`text-xs text-muted-foreground`},`Strings sent per request.`,-1)])])):u.value===`scan`?(z(),B(`div`,VA,[U(Ek,{label:`Flutter accessors`,items:s.scanAccessors,mono:``,placeholder:`translations`,"onUpdate:items":r[11]||=e=>s.scanAccessors=e},{help:N(()=>[...r[52]||=[H(`p`,{class:`text-xs text-muted-foreground`},[W(` Accessors assigned from `),H(`code`,{class:`rounded border bg-muted px-1 py-0.5 font-mono text-[11px]`},`AppLocalizations.of(...)`),W(` are detected automatically. Add a name only if yours isn't found. `)],-1)]]),_:1},8,[`items`]),U(Ek,{label:`Custom patterns`,items:s.scanPatterns,mono:``,placeholder:`LocaleKeys\\.(\\w+)\\.tr\\(\\)`,validate:ve,"onUpdate:items":r[12]||=e=>s.scanPatterns=e},{help:N(()=>[...r[53]||=[H(`p`,{class:`text-xs text-muted-foreground`},` Regex applied to every scanned file — capture group 1 is the key. `,-1)]]),_:1},8,[`items`]),U(Ek,{label:`Include globs`,items:s.scanInclude,mono:``,placeholder:`lib/**`,"onUpdate:items":r[13]||=e=>s.scanInclude=e},{help:N(()=>[...r[54]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Limit the scan to these globs. Empty scans everything.`,-1)]]),_:1},8,[`items`]),U(Ek,{label:`Exclude globs`,items:s.scanExclude,mono:``,placeholder:`**/*.g.dart`,"onUpdate:items":r[14]||=e=>s.scanExclude=e},{help:N(()=>[...r[55]||=[H(`p`,{class:`text-xs text-muted-foreground`},`Skipped on top of always-excluded dirs (node_modules, build, …).`,-1)]]),_:1},8,[`items`])])):u.value===`dictionary`?(z(),B(`div`,HA,[H(`div`,UA,[(z(!0),B(R,null,I(s.customWords,e=>(z(),B(`span`,{key:e,class:`inline-flex items-center gap-1.5 rounded-lg border bg-accent px-2.5 py-1.5 font-mono text-sm`},[W(A(e)+` `,1),H(`button`,{type:`button`,class:`flex size-[18px] items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove ${e}`,onClick:t=>_e(e)},[U(M(Sd),{class:`size-3`})],8,WA)]))),128)),s.customWords.length===0?(z(),B(`p`,GA,`No custom words yet.`)):G(``,!0)]),H(`div`,KA,[U(M(dS),{for:`add-word`},{default:N(()=>[...r[56]||=[W(`Add word`,-1)]]),_:1}),H(`div`,qA,[U(M(Mx),{id:`add-word`,modelValue:he.value,"onUpdate:modelValue":r[15]||=e=>he.value=e,class:`font-mono`,placeholder:`Glotfile`,onKeydown:Xl(Jl(ge,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),U(M(Q),{variant:`outline`,onClick:ge},{default:N(()=>[U(M(rd),{class:`size-4`}),r[57]||=W(` Add`,-1)]),_:1})])])])):u.value===`editor`?(z(),B(`div`,JA,[H(`div`,YA,[H(`div`,XA,[U(M(dS),{for:`editor-select`},{default:N(()=>[...r[58]||=[W(`Editor`,-1)]]),_:1}),U(hc,{"enter-active-class":`transition duration-150 ease-out`,"enter-from-class":`opacity-0 translate-y-0.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-300 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0`},{default:N(()=>[w.value?(z(),B(`span`,ZA,[U(M(Tu),{class:`size-3`}),r[59]||=W(` Saved `,-1)])):G(``,!0)]),_:1})]),U(M(fy),{modelValue:S.value,"onUpdate:modelValue":r[16]||=e=>S.value=e},{default:N(()=>[U(M(Nx),{id:`editor-select`},{default:N(()=>[U(M(Ny),{placeholder:`Select editor`})]),_:1}),U(M(Px),null,{default:N(()=>[(z(!0),B(R,null,I(M(tw),e=>(z(),V(M(Ix),{key:e.id,value:e.id},{default:N(()=>[W(A(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`p`,QA,[U(M(Qu),{class:`size-3.5`}),r[60]||=W(` Stored in this browser only — clicking a usage opens the file via its URL scheme. `,-1)])])):G(``,!0)])]),u.value===`editor`?G(``,!0):(z(),B(`div`,{key:0,class:k([`absolute bottom-5 left-1/2 flex min-w-[400px] max-w-[calc(100%-3.5rem)] -translate-x-1/2 items-center gap-3 rounded-[14px] border bg-card px-4 py-2.5 shadow-lg transition-[border-color,box-shadow]`,b.value>0?`border-primary/40 shadow-primary/10`:`border-border`])},[H(`span`,{class:k([`flex min-w-0 flex-1 items-center gap-2 overflow-hidden text-ellipsis whitespace-nowrap text-[13px]`,b.value>0?`text-foreground`:`text-muted-foreground`])},[b.value>0?(z(),B(R,{key:0},[H(`span`,$A,A(b.value),1),W(` Unsaved `+A(b.value===1?`change`:`changes`)+` in `,1),H(`strong`,ej,A(x.value.join(`, `)),1)],64)):(z(),B(R,{key:1},[U(M(Tu),{class:`size-3.5 shrink-0`}),r[61]||=W(` All changes saved `,-1)],64))],2),H(`div`,tj,[U(M(Q),{variant:`ghost`,size:`sm`,disabled:b.value===0,onClick:r[17]||=e=>d.value=!d.value},{default:N(()=>[U(M(yd),{class:`size-4`}),r[62]||=W(` Discard `,-1)]),_:1},8,[`disabled`]),d.value?(z(),B(`div`,nj,[r[65]||=H(`p`,{class:`text-[13px] font-semibold`},`Discard all changes?`,-1),H(`p`,rj,` Reverts every unsaved edit in `+A(x.value.join(`, `))+`. `,1),H(`div`,ij,[U(M(Q),{size:`sm`,variant:`ghost`,onClick:r[18]||=e=>d.value=!1},{default:N(()=>[...r[63]||=[W(`Keep editing`,-1)]]),_:1}),U(M(Q),{size:`sm`,variant:`destructive`,onClick:re},{default:N(()=>[...r[64]||=[W(`Discard`,-1)]]),_:1})])])):G(``,!0)]),U(M(Q),{size:`sm`,disabled:b.value===0||l.value,onClick:ne},{default:N(()=>[U(M(od),{class:`size-4`}),r[66]||=W(` Save changes `,-1)]),_:1},8,[`disabled`])],2))])])):(z(),B(`div`,Dk,` Loading settings… `)),U(hc,{"enter-active-class":`transition duration-200 ease-out`,"enter-from-class":`opacity-0 -translate-y-1.5`,"enter-to-class":`opacity-100 translate-y-0`,"leave-active-class":`transition duration-150 ease-in`,"leave-from-class":`opacity-100 translate-y-0`,"leave-to-class":`opacity-0 -translate-y-1.5`},{default:N(()=>[f.value?(z(),B(`div`,aj,[U(M(Tu),{class:`size-3.5`}),r[67]||=W(` Settings saved `,-1)])):G(``,!0)]),_:1})],64))}}),sj={class:`min-h-0 flex-1 overflow-y-auto`},cj={key:0,class:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`},lj={key:1,class:`flex h-full items-center justify-center p-8`},uj={class:`flex max-w-md flex-col items-center gap-3 text-center text-muted-foreground`},dj={key:2,class:`grid gap-4 p-6 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`},fj=[`onClick`],pj={class:`flex aspect-video items-center justify-center overflow-hidden border-b bg-muted/30`},mj=[`src`,`alt`],hj={class:`flex flex-col gap-1 p-3`},gj=[`title`],_j=[`title`],vj={class:`flex max-h-[70vh] items-center justify-center overflow-auto rounded-md border bg-muted/30 p-2`},yj=[`src`,`alt`],bj={key:0,class:`text-sm text-muted-foreground`},xj=F({__name:`ScreenshotsView`,setup(e){let t=dn(null),n=j(!1),r=j(null);async function i(){t.value=await Td(),n.value=!0}i();let a=q(()=>t.value?.config.sourceLocale??``),o=q(()=>{let e=t.value;return e?Object.entries(e.keys).filter(([,e])=>!!e.screenshot).map(([e,t])=>({key:e,entry:t,screenshot:t.screenshot,source:t.values[a.value]?.value??``})).sort((e,t)=>e.key.localeCompare(t.key)):[]});return(e,t)=>(z(),B(`div`,sj,[n.value?o.value.length===0?(z(),B(`div`,lj,[H(`div`,uj,[U(M(Ku),{class:`size-8 opacity-60`}),t[1]||=H(`p`,{class:`text-sm`},` No screenshots yet — add one from a key's detail panel in the Editor. `,-1)])])):(z(),B(`div`,dj,[(z(!0),B(R,null,I(o.value,e=>(z(),B(`button`,{key:e.key,type:`button`,class:`group flex flex-col overflow-hidden rounded-lg border bg-card text-left shadow-sm transition-colors hover:border-ring focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:t=>r.value=e},[H(`div`,pj,[H(`img`,{src:`/`+e.screenshot,alt:`Screenshot for ${e.key}`,class:`h-full w-full object-contain`},null,8,mj)]),H(`div`,hj,[H(`span`,{class:`truncate font-mono text-xs font-medium`,title:e.key},A(e.key),9,gj),H(`span`,{class:`truncate text-sm text-muted-foreground`,title:e.source},A(e.source||`—`),9,_j)])],8,fj))),128))])):(z(),B(`div`,cj,` Loading screenshots… `)),U(M(Xm),{open:r.value!==null,"onUpdate:open":t[0]||=e=>{e||(r.value=null)}},{default:N(()=>[r.value?(z(),V(M(fS),{key:0,class:`max-w-3xl`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),{class:`break-all font-mono text-sm`},{default:N(()=>[W(A(r.value.key),1)]),_:1}),U(M(gS),null,{default:N(()=>[W(A(r.value.source||`—`),1)]),_:1})]),_:1}),H(`div`,vj,[H(`img`,{src:`/`+r.value.screenshot,alt:`Screenshot for ${r.value.key}`,class:`max-h-[65vh] w-auto object-contain`},null,8,yj)]),r.value.entry.context?(z(),B(`p`,bj,[t[2]||=H(`span`,{class:`font-medium text-foreground`},`Context:`,-1),W(` `+A(r.value.entry.context),1)])):G(``,!0)]),_:1})):G(``,!0)]),_:1},8,[`open`])]))}}),Sj={class:`min-h-0 flex-1 overflow-y-auto p-4`},Cj={key:0,class:`mt-8 text-center text-sm text-muted-foreground`},wj={key:1,class:`mx-auto flex max-w-4xl flex-col gap-4`},Tj={class:`flex flex-wrap items-center gap-3 border-b px-4 py-2.5`},Ej={class:`text-sm font-medium`},Dj={class:`text-xs text-muted-foreground`},Oj={class:`border-b`},kj={class:`overflow-x-auto whitespace-pre-wrap break-words bg-muted/40 px-4 py-3 font-mono text-xs leading-relaxed`},Aj={class:`divide-y`},jj={class:`flex items-center gap-2`},Mj={class:`truncate font-mono text-xs text-muted-foreground`},Nj={class:`flex items-start gap-2 text-sm`},Pj={class:`min-w-0 flex-1 break-words`},Fj={class:`min-w-0 flex-1 break-words`},Ij={key:0,class:`text-destructive`},Lj={key:1},Rj={key:0,class:`text-xs text-muted-foreground`},zj={key:1,class:`flex flex-wrap gap-1`},Bj={key:2,class:`flex items-center gap-1.5 text-xs text-muted-foreground`},Vj={class:`truncate font-mono`},Hj=F({__name:`AiLogView`,setup(e){let t=j([]),n=j(!0);Gi(async()=>{try{t.value=await nf()}catch(e){$.error(e.message)}finally{n.value=!1}});function r(e,t){return e.results.find(e=>e.id===t)}function i(e){return e.doNotTranslate?`${e.term} (do-not-translate)`:e.forced?`${e.term} → ${e.forced}`:e.term}return(e,a)=>(z(),B(`div`,Sj,[!n.value&&t.value.length===0?(z(),B(`p`,Cj,` No AI calls yet — run a translation to see exactly what was sent to Claude here. `)):(z(),B(`div`,wj,[(z(!0),B(R,null,I(t.value,(e,t)=>(z(),B(`article`,{key:`${e.at}-${t}`,class:`rounded-lg border bg-card`},[H(`header`,Tj,[H(`span`,Ej,A(new Date(e.at).toLocaleString()),1),U(M(Bx),{variant:`secondary`,class:`font-mono`},{default:N(()=>[W(A(e.model),1)]),_:2},1024),H(`span`,Dj,A(e.items.length)+` `+A(e.items.length===1?`string`:`strings`),1)]),H(`details`,Oj,[a[0]||=H(`summary`,{class:`cursor-pointer select-none px-4 py-2 text-xs font-medium text-muted-foreground hover:text-foreground`},` System prompt `,-1),H(`pre`,kj,A(e.system),1)]),H(`ul`,Aj,[(z(!0),B(R,null,I(e.items,t=>(z(),B(`li`,{key:t.id,class:`flex flex-col gap-1.5 px-4 py-3`},[H(`div`,jj,[H(`span`,Mj,A(t.key),1),U(M(Bx),{variant:`outline`,class:`shrink-0 font-mono uppercase`},{default:N(()=>[W(A(t.targetLocale),1)]),_:2},1024)]),H(`div`,Nj,[H(`span`,Pj,A(t.source),1),U(M(bu),{class:`mt-0.5 size-4 shrink-0 text-muted-foreground`}),H(`span`,Fj,[r(e,t.id)?.error?(z(),B(`span`,Ij,A(r(e,t.id)?.error),1)):(z(),B(`span`,Lj,A(r(e,t.id)?.translation),1))])]),t.context?(z(),B(`p`,Rj,A(t.context),1)):G(``,!0),t.glossary?.length?(z(),B(`div`,zj,[(z(!0),B(R,null,I(t.glossary,e=>(z(),B(`span`,{key:e.term,class:`rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground`},A(i(e)),1))),128))])):G(``,!0),t.screenshot?(z(),B(`div`,Bj,[U(M(qu),{class:`size-3.5 shrink-0`}),H(`span`,Vj,A(t.screenshot),1)])):G(``,!0)]))),128))])]))),128))]))]))}}),Uj=[{id:`home`,title:`Home`,section:``,html:`<h1>Glotfile</h1>
7
+ <blockquote>
8
+ <p>A <strong>local-first, git-native translation manager</strong>. All of your app&#39;s copy lives in one JSON file you commit to your repo. You edit and AI-translate it through a local web UI, then export to whatever locale formats your apps consume — no SaaS, no hosted database, nothing leaves your machine except the AI calls you choose to make.</p>
9
+ </blockquote>
10
+ <p>This is the home page of the user guide. Everything is linked from here.</p>
11
+ <h2>Start here</h2>
12
+ <ul>
13
+ <li>Installation — requirements and how to run Glotfile</li>
14
+ <li>Quick Start — from zero to translated strings in five minutes</li>
15
+ <li>Translation Workflow — the day-to-day loop, end to end</li>
16
+ </ul>
17
+ <h2>Core concepts</h2>
18
+ <ul>
19
+ <li>The State File — <code>glotfile.json</code>, the single source of truth</li>
20
+ <li>Keys and Locales — how strings and languages are organised</li>
21
+ <li>Review States — <code>source</code> → <code>machine</code> → <code>reviewed</code> / <code>needs-review</code></li>
22
+ <li>Plurals — CLDR plural forms</li>
23
+ <li>Glossary — do-not-translate and forced terms</li>
24
+ <li>Key Context and Metadata — context, notes, tags, length limits, screenshots</li>
25
+ </ul>
26
+ <h2>The web UI</h2>
27
+ <ul>
28
+ <li>Web UI Overview — the panels and how they fit together</li>
29
+ <li>Editor · Analytics · Screenshots · Settings · AI Log</li>
30
+ </ul>
31
+ <h2>The command line</h2>
32
+ <ul>
33
+ <li>CLI Overview — every command at a glance</li>
34
+ <li>serve · translate · export · lint and check · import (🚧 coming soon)</li>
35
+ </ul>
36
+ <h2>AI translation</h2>
37
+ <ul>
38
+ <li>How Translation Works — what the translator does for you</li>
39
+ <li>AI Providers — Anthropic, OpenAI, and AWS Bedrock setup</li>
40
+ </ul>
41
+ <h2>Reference</h2>
42
+ <ul>
43
+ <li>Output Formats — the six export adapters</li>
44
+ <li>Checks and Validation — every rule and what it catches</li>
45
+ <li>Configuration Reference — every field in <code>config</code></li>
46
+ <li>Placeholders and ICU — what&#39;s preserved across formats</li>
47
+ </ul>
48
+ <h2>Guides</h2>
49
+ <ul>
50
+ <li>Translation Workflow — author → translate → review → export</li>
51
+ <li>Continuous Integration — gate merges on translation health</li>
52
+ <li>Keeping Translations Fresh — handling source changes</li>
53
+ </ul>
54
+ <h2>Help</h2>
55
+ <ul>
56
+ <li>Troubleshooting and FAQ</li>
57
+ </ul>
58
+ `},{id:`getting-started/installation`,title:`Installation`,section:`Getting Started`,html:`<h1>Installation</h1>
59
+ <h2>Requirements</h2>
60
+ <ul>
61
+ <li><strong>Node.js</strong> <code>^20.19.0 || &gt;=22.12.0</code></li>
62
+ </ul>
63
+ <p>That&#39;s the only hard requirement. Everything except AI translation runs fully offline, with no account and no network access.</p>
64
+ <h2>Running Glotfile</h2>
65
+ <p>Glotfile is designed to run with <strong>no install</strong> via <code>npx</code>:</p>
66
+ <pre><code class="language-bash">npx glotfile
67
+ </code></pre>
68
+ <blockquote>
69
+ <p><strong>⚠ Pre-1.0: run from a checkout for now</strong> — Glotfile is pre-1.0 and not yet published to npm. Until it is, run it from a clone of the repo:</p>
70
+ <pre><code class="language-bash">npm install
71
+ npm run build # builds the UI + server into dist/
72
+ node bin/glotfile.js # equivalent to the \`glotfile\` command
73
+ </code></pre>
74
+ </blockquote>
75
+ <p>Once published, <code>npx glotfile &lt;command&gt;</code> and a global install will both work. Throughout these docs, <code>glotfile &lt;command&gt;</code> and <code>node bin/glotfile.js &lt;command&gt;</code> are interchangeable.</p>
76
+ <h2>First run</h2>
77
+ <p>Run Glotfile from the root of the project whose copy you want to manage:</p>
78
+ <pre><code class="language-bash">glotfile # same as: glotfile serve
79
+ </code></pre>
80
+ <p>This starts a local server bound to <code>127.0.0.1</code>, opens your browser, and:</p>
81
+ <ul>
82
+ <li>If a <code>glotfile.json</code> already exists in the current directory, it loads it.</li>
83
+ <li>If not, it starts from sensible defaults and <strong>writes the file as soon as you make your first edit</strong>.</li>
84
+ </ul>
85
+ <blockquote>
86
+ <p><strong>Info:</strong> Already have locale files? — Importing an existing project (reading your current <code>.arb</code> / <code>.php</code> / <code>.json</code> files <em>into</em> the catalog) is <strong>🚧 coming soon</strong> — see import. For now, add keys through the Editor or point Glotfile at a fresh directory.</p>
87
+ </blockquote>
88
+ <h2>Targeting a different file</h2>
89
+ <p>Every command accepts <code>--file</code> (<code>-f</code>) to use a state file other than <code>./glotfile.json</code>:</p>
90
+ <pre><code class="language-bash">glotfile serve --file packages/app/glotfile.json
91
+ </code></pre>
92
+ <h2>Developing Glotfile itself</h2>
93
+ <p>If you&#39;re hacking on Glotfile (not just using it), run the Vite UI with hot-reload alongside the server:</p>
94
+ <pre><code class="language-bash">npm run dev
95
+ </code></pre>
96
+ <h2>Next steps</h2>
97
+ <ul>
98
+ <li>Quick Start — translate your first strings</li>
99
+ <li>The State File — understand what <code>glotfile.json</code> holds</li>
100
+ </ul>
101
+ `},{id:`getting-started/quick-start`,title:`Quick Start`,section:`Getting Started`,html:`<h1>Quick Start</h1>
102
+ <p>This walks you from an empty project to translated, exported strings. It assumes you&#39;ve done Installation.</p>
103
+ <h2>1. Start the UI</h2>
104
+ <p>From your project root:</p>
105
+ <pre><code class="language-bash">glotfile
106
+ </code></pre>
107
+ <p>Your browser opens the Editor. If there&#39;s no <code>glotfile.json</code> yet, Glotfile uses defaults and writes the file on your first edit.</p>
108
+ <h2>2. Add your languages</h2>
109
+ <p>Open Settings and set:</p>
110
+ <ul>
111
+ <li><strong>Source locale</strong> — the language you author in (e.g. <code>en</code>).</li>
112
+ <li><strong>Locales</strong> — every language you want to maintain (e.g. <code>en</code>, <code>fr</code>, <code>de</code>).</li>
113
+ </ul>
114
+ <p>See Keys and Locales for how locales work.</p>
115
+ <h2>3. Add keys and source copy</h2>
116
+ <p>In the Editor, add a key in dot notation and type its source string:</p>
117
+ <table>
118
+ <thead>
119
+ <tr>
120
+ <th>Key</th>
121
+ <th><code>en</code> (source)</th>
122
+ </tr>
123
+ </thead>
124
+ <tbody><tr>
125
+ <td><code>auth.signIn.button</code></td>
126
+ <td><code>Sign in</code></td>
127
+ </tr>
128
+ <tr>
129
+ <td><code>auth.signIn.title</code></td>
130
+ <td><code>Welcome back</code></td>
131
+ </tr>
132
+ </tbody></table>
133
+ <p>The source value is saved with the state <code>source</code>.</p>
134
+ <h2>4. AI-translate the rest</h2>
135
+ <blockquote>
136
+ <p><strong>Info:</strong> One-time setup — AI translation needs an API key in your environment. The default provider is Anthropic — set <code>ANTHROPIC_API_KEY</code> (a local <code>.env</code> file works). See AI Providers for OpenAI and AWS Bedrock.</p>
137
+ </blockquote>
138
+ <p>Fill the empty languages — from the Editor&#39;s translate action, or the CLI:</p>
139
+ <pre><code class="language-bash">glotfile translate
140
+ </code></pre>
141
+ <p>New translations are written as <code>machine</code> state. Glotfile never overwrites a value you&#39;ve marked <code>reviewed</code>. See How Translation Works.</p>
142
+ <h2>5. Review</h2>
143
+ <p>Back in the Editor, filter to <strong>machine</strong> to see unreviewed translations. Promote the good ones to <code>reviewed</code>; flag the rest. See Review States.</p>
144
+ <h2>6. Export to your app&#39;s formats</h2>
145
+ <p>Configure where files go in Settings (or Output Formats), then:</p>
146
+ <pre><code class="language-bash">glotfile export
147
+ </code></pre>
148
+ <p>This writes the locale files for every configured output (Flutter ARB, Laravel PHP, i18next JSON, and more — see Output Formats).</p>
149
+ <h2>7. Commit</h2>
150
+ <p>Commit <code>glotfile.json</code> together with your code. The diff <em>is</em> the review:</p>
151
+ <pre><code class="language-bash">git add glotfile.json lib/l10n/
152
+ git commit -m &quot;Add sign-in copy + translations&quot;
153
+ </code></pre>
154
+ <p>Because the catalog is just a file in your repo, branching, pull-request review, and rollback work exactly the way they already do for code.</p>
155
+ <h2>Where to go next</h2>
156
+ <ul>
157
+ <li>Translation Workflow — the same loop, in depth</li>
158
+ <li>Continuous Integration — keep translations healthy in CI</li>
159
+ <li>The State File — what&#39;s actually in <code>glotfile.json</code></li>
160
+ </ul>
161
+ `},{id:`web-ui/ai-log`,title:`AI Log`,section:`Web UI`,html:`<h1>AI Log</h1>
162
+ <p>The AI Log is a record of recent translation runs — what was sent to the provider and what came back. It&#39;s useful for understanding why a translation turned out the way it did, and for auditing what left your machine.</p>
163
+ <h2>What each entry records</h2>
164
+ <p>For every run:</p>
165
+ <ul>
166
+ <li><strong>When</strong> it ran and the <strong>model</strong> used.</li>
167
+ <li>The <strong>system prompt</strong> that framed the request.</li>
168
+ <li>Per string: the <strong>key</strong>, <strong>source</strong>, <strong>target locale</strong>, the <strong>context</strong> and relevant <strong>glossary</strong> hints sent, and whether the key had a <strong>screenshot</strong>.</li>
169
+ <li>The <strong>results</strong> returned (translation or plural forms, or an error).</li>
170
+ </ul>
171
+ <h2>What it deliberately does <em>not</em> record</h2>
172
+ <blockquote>
173
+ <p><strong>⚠ The log is egress-only and credential-free</strong></p>
174
+ <ul>
175
+ <li><strong>No API keys</strong> are ever written to the log (or to <code>glotfile.json</code>).</li>
176
+ <li><strong>No screenshot bytes</strong> — only the fact that a key had one.</li>
177
+ </ul>
178
+ </blockquote>
179
+ <p>In other words: the AI Log shows exactly what crossed the network boundary, and nothing more.</p>
180
+ <h2>Related</h2>
181
+ <ul>
182
+ <li>How Translation Works · AI Providers</li>
183
+ </ul>
184
+ `},{id:`web-ui/analytics`,title:`Analytics`,section:`Web UI`,html:`<h1>Analytics</h1>
185
+ <p>The Analytics panel shows how complete and how reviewed your catalog is, so you know what&#39;s left before a release.</p>
186
+ <h2>Totals</h2>
187
+ <p>At the top: total keys, number of locales, overall <strong>translated %</strong> and <strong>reviewed %</strong>, and the source word count.</p>
188
+ <h2>Per locale</h2>
189
+ <p>For each target locale:</p>
190
+ <ul>
191
+ <li><strong>Translated %</strong> and <strong>reviewed %</strong></li>
192
+ <li>A breakdown of states: reviewed, needs-review, machine, missing</li>
193
+ <li><strong>Word counts</strong> — source words and the words still missing (a rough sense of how much work, and how much AI translation cost, remains)</li>
194
+ </ul>
195
+ <h2>By namespace and by tag</h2>
196
+ <p>Coverage is also grouped:</p>
197
+ <ul>
198
+ <li><strong>By namespace</strong> — the first dot-segment of each key (e.g. <code>auth.*</code>), so you can see which features lag.</li>
199
+ <li><strong>By tag</strong> — your tags, for cross-cutting views like <code>email</code> or <code>legal</code>.</li>
200
+ </ul>
201
+ <blockquote>
202
+ <p><strong>Tip:</strong> Reviewed ≠ translated — a locale can be 100% <em>translated</em> (no missing values) but only 40% <em>reviewed</em>. The two percentages together tell you whether you have copy at all, and whether a human has signed off on it.</p>
203
+ </blockquote>
204
+ <h2>Related</h2>
205
+ <ul>
206
+ <li>Review States · Editor · Checks and Validation</li>
207
+ </ul>
208
+ `},{id:`web-ui/editor`,title:`Editor`,section:`Web UI`,html:`<h1>Editor</h1>
209
+ <p>The Editor is a table of every key with the source string and each target language side by side. It&#39;s built to stay fast with thousands of keys (only visible rows are rendered).</p>
210
+ <h2>Working with keys</h2>
211
+ <ul>
212
+ <li><strong>Add</strong> a key (dot-notation name + source value).</li>
213
+ <li><strong>Rename</strong> a key inline.</li>
214
+ <li><strong>Delete</strong> a key.</li>
215
+ <li><strong>Edit values inline</strong> — click a cell, type, commit.</li>
216
+ </ul>
217
+ <h2>Editing values</h2>
218
+ <ul>
219
+ <li>Press <strong>Enter</strong> to commit an edit, <strong>Escape</strong> to cancel.</li>
220
+ <li>Use <strong>↑ / ↓</strong> arrow keys to move between rows.</li>
221
+ <li>Plural keys open a dedicated per-category form editor.</li>
222
+ </ul>
223
+ <p>Each value shows a state badge you can toggle as you review (<code>machine</code> → <code>reviewed</code> / <code>needs-review</code>).</p>
224
+ <h2>Filtering and search</h2>
225
+ <p>Free-text search plus state facets let you focus:</p>
226
+ <ul>
227
+ <li><strong>missing</strong> — values with no content</li>
228
+ <li><strong>machine</strong> — AI translations not yet reviewed</li>
229
+ <li><strong>needs-review</strong> — flagged values (e.g. source changed)</li>
230
+ <li><strong>reviewed</strong> — human-approved values</li>
231
+ <li><strong>needs attention</strong> — any key with an open issue</li>
232
+ </ul>
233
+ <p>You can also filter by <strong>tag</strong> and narrow to a single locale.</p>
234
+ <h2>Per-key detail panel</h2>
235
+ <p>Selecting a key opens its detail panel for metadata: <strong>context</strong>, <strong>notes</strong>, <strong>tags</strong>, <strong>max length</strong>, <strong>screenshot</strong>, the <strong>skip-translate</strong> flag, and the plural marker.</p>
236
+ <h2>Translating from the Editor</h2>
237
+ <p>The translate action runs AI translation for the current selection/filter — the same engine as <code>glotfile translate</code>. Results come back as <code>machine</code> and never overwrite <code>reviewed</code> values.</p>
238
+ <h2>Exporting from the Editor</h2>
239
+ <p>The export action opens a <strong>preview</strong> of exactly what <code>glotfile export</code> will write, before any files are touched. See Output Formats.</p>
240
+ <h2>Related</h2>
241
+ <ul>
242
+ <li>Review States · Key Context and Metadata · Analytics · translate</li>
243
+ </ul>
244
+ `},{id:`web-ui/screenshots`,title:`Screenshots`,section:`Web UI`,html:`<h1>Screenshots</h1>
245
+ <p>A screenshot attached to a key shows <em>where</em> a string appears in your UI. Vision-capable AI models use it as context, which markedly improves ambiguous strings.</p>
246
+ <h2>Attaching a screenshot</h2>
247
+ <p>Attach an image to a key from its detail panel in the Editor, or manage images across keys in the <strong>Screenshots</strong> panel.</p>
248
+ <h2>How the AI uses them</h2>
249
+ <p>During translation, a key&#39;s screenshot is sent <strong>only to vision-capable models</strong>:</p>
250
+ <ul>
251
+ <li><strong>Supported:</strong> Anthropic, OpenAI (gpt-4o-class), AWS Bedrock (Nova, Claude).</li>
252
+ <li><strong>Not supported:</strong> AWS Bedrock Meta Llama text models — those runs proceed text-only and print a warning noting how many screenshots were skipped.</li>
253
+ </ul>
254
+ <p>So screenshots are always safe to attach: models that can&#39;t see them simply ignore them. See AI Providers for the full support matrix.</p>
255
+ <blockquote>
256
+ <p><strong>Info:</strong> Screenshots never appear in the AI log — the AI Log records what was sent to a provider, but <strong>not</strong> the image bytes themselves — only that a key had a screenshot.</p>
257
+ </blockquote>
258
+ <h2>Related</h2>
259
+ <ul>
260
+ <li>Key Context and Metadata · How Translation Works · AI Providers</li>
261
+ </ul>
262
+ `},{id:`web-ui/settings`,title:`Settings`,section:`Web UI`,html:`<h1>Settings</h1>
263
+ <p>The Settings panel edits the <code>config</code> block of <code>glotfile.json</code>. Every field here is also documented in the Configuration Reference.</p>
264
+ <h2>What you can configure</h2>
265
+ <ul>
266
+ <li><strong>Source locale</strong> — the language you author in.</li>
267
+ <li><strong>Locales</strong> — the languages you maintain (add / remove). See Keys and Locales.</li>
268
+ <li><strong>Outputs</strong> — the export targets: adapter + path template per entry. See Output Formats.</li>
269
+ <li><strong>AI</strong> — provider, model, endpoint, region, and batch size. See AI Providers.</li>
270
+ <li><strong>Formatting</strong> — indent, sort keys, final newline (controls how <code>glotfile.json</code> is written).</li>
271
+ <li><strong>Custom dictionary</strong> — words the spelling check should accept.</li>
272
+ </ul>
273
+ <h2>Save behaviour</h2>
274
+ <p>Most edits across the UI save immediately to <code>glotfile.json</code>. In Settings, some changes are explicit:</p>
275
+ <blockquote>
276
+ <p><strong>⚠ Dictionary changes require an explicit save</strong> — edits to the custom spelling dictionary are staged and only written when you <strong>Save</strong>, so you can add several words without a write (and a git diff) per keystroke.</p>
277
+ </blockquote>
278
+ <h2>Related</h2>
279
+ <ul>
280
+ <li>Configuration Reference · Output Formats · AI Providers · Checks and Validation</li>
281
+ </ul>
282
+ `},{id:`web-ui/web-ui-overview`,title:`Web UI Overview`,section:`Web UI`,html:`<h1>Web UI Overview</h1>
283
+ <p><code>glotfile serve</code> (or just <code>glotfile</code>) opens a single-page app for managing your catalog. It runs locally, bound to <code>127.0.0.1</code>, and writes changes straight back to <code>glotfile.json</code>.</p>
284
+ <h2>The panels</h2>
285
+ <p>A nav rail switches between six panels:</p>
286
+ <table>
287
+ <thead>
288
+ <tr>
289
+ <th>Panel</th>
290
+ <th>What it&#39;s for</th>
291
+ </tr>
292
+ </thead>
293
+ <tbody><tr>
294
+ <td>Editor</td>
295
+ <td>The heart of the app — a searchable, filterable table of every key with the source and each translation side by side.</td>
296
+ </tr>
297
+ <tr>
298
+ <td>Analytics</td>
299
+ <td>Coverage and review progress per locale, namespace, and tag.</td>
300
+ </tr>
301
+ <tr>
302
+ <td>Screenshots</td>
303
+ <td>Attach and review images that give the AI visual context.</td>
304
+ </tr>
305
+ <tr>
306
+ <td><strong>Glossary</strong></td>
307
+ <td>Manage do-not-translate and forced terms — see Glossary.</td>
308
+ </tr>
309
+ <tr>
310
+ <td>Settings</td>
311
+ <td>Edit the <code>config</code> block: locales, outputs, AI provider, formatting, dictionary.</td>
312
+ </tr>
313
+ <tr>
314
+ <td>AI Log</td>
315
+ <td>A record of recent translation runs (egress only).</td>
316
+ </tr>
317
+ </tbody></table>
318
+ <h2>Cross-cutting features</h2>
319
+ <ul>
320
+ <li><strong>Checks</strong> — the UI continuously surfaces issues (missing values, placeholder mismatches, length and glossary violations) so you can fix them as you go.</li>
321
+ <li><strong>Export preview</strong> — before writing files, preview exactly what <code>glotfile export</code> will produce. See Output Formats.</li>
322
+ <li><strong>Save semantics</strong> — most edits save immediately to <code>glotfile.json</code>. A few settings (notably dictionary changes) require an explicit <strong>Save</strong> — see Settings.</li>
323
+ </ul>
324
+ <h2>Privacy</h2>
325
+ <p>Nothing leaves your machine except the AI calls you choose to make. The UI is local; the AI Log never stores your API keys or screenshot bytes.</p>
326
+ <h2>Related</h2>
327
+ <ul>
328
+ <li>CLI Overview — the same operations without the browser</li>
329
+ <li>Quick Start — a guided first run</li>
330
+ </ul>
331
+ `},{id:`cli/cli-overview`,title:`CLI Overview`,section:`CLI`,html:`<h1>CLI Overview</h1>
332
+ <p>Run <code>glotfile &lt;command&gt;</code> (or <code>node bin/glotfile.js &lt;command&gt;</code> from a checkout — see Installation).</p>
333
+ <table>
334
+ <thead>
335
+ <tr>
336
+ <th>Command</th>
337
+ <th>What it does</th>
338
+ <th></th>
339
+ </tr>
340
+ </thead>
341
+ <tbody><tr>
342
+ <td>serve (default)</td>
343
+ <td>Start the local web UI and open the browser.</td>
344
+ <td></td>
345
+ </tr>
346
+ <tr>
347
+ <td>translate</td>
348
+ <td>AI-translate strings, writing results back to <code>glotfile.json</code>.</td>
349
+ <td></td>
350
+ </tr>
351
+ <tr>
352
+ <td>export</td>
353
+ <td>Write the locale files for every configured output.</td>
354
+ <td></td>
355
+ </tr>
356
+ <tr>
357
+ <td>lint</td>
358
+ <td>Report translation problems (states, placeholders, glossary, spelling…).</td>
359
+ <td></td>
360
+ </tr>
361
+ <tr>
362
+ <td>check</td>
363
+ <td>CI gate: lint <strong>and</strong> verify exported files are up to date.</td>
364
+ <td></td>
365
+ </tr>
366
+ <tr>
367
+ <td>import</td>
368
+ <td>Ingest existing locale files into the catalog.</td>
369
+ <td>🚧 coming soon</td>
370
+ </tr>
371
+ </tbody></table>
372
+ <p>Running <code>glotfile</code> with no command is the same as <code>glotfile serve</code>.</p>
373
+ <h2>Global option</h2>
374
+ <p>Every command accepts <code>--file</code> (<code>-f</code>) to target a state file other than <code>./glotfile.json</code>:</p>
375
+ <pre><code class="language-bash">glotfile translate --file packages/app/glotfile.json
376
+ glotfile export -f ./i18n/glotfile.json
377
+ </code></pre>
378
+ <h2>Exit codes</h2>
379
+ <ul>
380
+ <li><code>serve</code>, <code>translate</code>, <code>export</code> exit <code>0</code> on success.</li>
381
+ <li><code>lint</code> exits <code>1</code> when there are errors (or warnings over <code>--max-warnings</code>).</li>
382
+ <li><code>check</code> exits <code>1</code> when there are any errors (including out-of-date exports).</li>
383
+ </ul>
384
+ <p>This is what makes <code>lint</code> and <code>check</code> usable as CI gates — see Continuous Integration.</p>
385
+ <h2>Credentials</h2>
386
+ <p>Only translate needs network access or credentials. Glotfile reads them from the environment, including a local <code>.env</code> file in the project directory. See AI Providers.</p>
387
+ <h2>Related</h2>
388
+ <ul>
389
+ <li>Web UI Overview — the same operations in the browser</li>
390
+ <li>Configuration Reference</li>
391
+ </ul>
392
+ `},{id:`cli/export`,title:"`glotfile export`",section:`CLI`,html:`<h1><code>glotfile export</code></h1>
393
+ <p>Writes the locale files for every output configured in <code>config.outputs</code>, using the adapters you&#39;ve set up.</p>
394
+ <pre><code class="language-bash">glotfile export
395
+ </code></pre>
396
+ <pre><code>Exported 8 file(s).
397
+ </code></pre>
398
+ <h2>Options</h2>
399
+ <table>
400
+ <thead>
401
+ <tr>
402
+ <th>Option</th>
403
+ <th>Description</th>
404
+ </tr>
405
+ </thead>
406
+ <tbody><tr>
407
+ <td><code>--adapter &lt;name&gt;</code></td>
408
+ <td>Export only the outputs using this adapter.</td>
409
+ </tr>
410
+ <tr>
411
+ <td><code>--file</code>, <code>-f &lt;path&gt;</code></td>
412
+ <td>Target a different state file.</td>
413
+ </tr>
414
+ </tbody></table>
415
+ <pre><code class="language-bash">glotfile export --adapter laravel-php # just the Laravel files
416
+ </code></pre>
417
+ <h2>Warnings</h2>
418
+ <p>Where a conversion would be lossy (a construct a target format can&#39;t represent), export prints a <strong>warning</strong> and writes the best safe output rather than corrupting the file:</p>
419
+ <pre><code>warning [icu-unsupported] cart.items @ de: plural select not representable; wrote fallback
420
+ </code></pre>
421
+ <p>See Placeholders and ICU.</p>
422
+ <h2>Zero-diff guarantee</h2>
423
+ <p>Because <code>glotfile.json</code> is written deterministically, re-running <code>export</code> with no real changes produces a <strong>zero-line diff</strong>. That makes it safe to run in CI to confirm your locale files are up to date:</p>
424
+ <pre><code class="language-bash">glotfile export
425
+ git diff --exit-code # non-zero if exports drifted
426
+ </code></pre>
427
+ <blockquote>
428
+ <p><strong>Tip:</strong> Prefer <code>check</code> in CI — <code>glotfile check</code> re-exports in memory and fails if any output file is missing or stale — no <code>git diff</code> dance required. See Continuous Integration.</p>
429
+ </blockquote>
430
+ <h2>Related</h2>
431
+ <ul>
432
+ <li>Output Formats · Placeholders and ICU · lint and check · Continuous Integration</li>
433
+ </ul>
434
+ `},{id:`cli/import`,title:"`glotfile import`",section:`CLI`,html:`<h1><code>glotfile import</code></h1>
435
+ <blockquote>
436
+ <p><strong>Info:</strong> 🚧 Coming soon — import is <strong>not yet available</strong> in the current build. This page describes the planned behaviour so you know what&#39;s on the way. Until it ships, add keys through the Editor.</p>
437
+ </blockquote>
438
+ <p>Import will be the inverse of <code>glotfile export</code>: it reads your <strong>existing</strong> locale files and ingests them <em>into</em> <code>glotfile.json</code>, so you can onboard a project that already has translations without re-keying everything by hand.</p>
439
+ <h2>Planned shape</h2>
440
+ <pre><code class="language-bash">glotfile import --adapter laravel-php --from lang/
441
+ </code></pre>
442
+ <table>
443
+ <thead>
444
+ <tr>
445
+ <th>Option (planned)</th>
446
+ <th>Description</th>
447
+ </tr>
448
+ </thead>
449
+ <tbody><tr>
450
+ <td><code>--adapter &lt;name&gt;</code></td>
451
+ <td>Which format to read (the same adapters used for export, run in reverse).</td>
452
+ </tr>
453
+ <tr>
454
+ <td><code>--from &lt;dir&gt;</code></td>
455
+ <td>The directory to read existing locale files from.</td>
456
+ </tr>
457
+ </tbody></table>
458
+ <p>Imported keys would land with appropriate states (existing translations as already-translated, not raw machine output), ready for review in the Editor.</p>
459
+ <h2>AI-assisted import (future idea)</h2>
460
+ <p>A further enhancement under consideration: an <strong>AI importer</strong> that reads your source language, infers each key&#39;s context, and bootstraps a richer <code>glotfile.json</code> automatically. This is exploratory and not committed.</p>
461
+ <h2>Related</h2>
462
+ <ul>
463
+ <li>export · Output Formats · Installation</li>
464
+ </ul>
465
+ `},{id:`cli/lint-and-check`,title:"`glotfile lint` and `glotfile check`",section:`CLI`,html:`<h1><code>glotfile lint</code> and <code>glotfile check</code></h1>
466
+ <p>Two related commands for finding translation problems. Both are designed to run in CI.</p>
467
+ <ul>
468
+ <li><strong><code>lint</code></strong> runs the rule engine against your catalog.</li>
469
+ <li><strong><code>check</code></strong> runs the same rules <strong>and</strong> verifies that your exported locale files are up to date. It&#39;s the all-in-one CI gate.</li>
470
+ </ul>
471
+ <h2><code>glotfile lint</code></h2>
472
+ <pre><code class="language-bash">glotfile lint
473
+ </code></pre>
474
+ <pre><code>auth.signIn.button
475
+ error placeholder-mismatch de placeholders differ from the source
476
+ warn max-length fr length 28 exceeds maxLength 20
477
+
478
+ ✖ 1 error(s), 1 warning(s)
479
+ </code></pre>
480
+ <p>Exits <code>1</code> if there are any <strong>errors</strong>, or if warnings exceed <code>--max-warnings</code>.</p>
481
+ <h3>Options</h3>
482
+ <table>
483
+ <thead>
484
+ <tr>
485
+ <th>Option</th>
486
+ <th>Description</th>
487
+ </tr>
488
+ </thead>
489
+ <tbody><tr>
490
+ <td><code>--format &lt;fmt&gt;</code></td>
491
+ <td>Output format: <code>text</code> (default), <code>json</code>, or <code>sarif</code>.</td>
492
+ </tr>
493
+ <tr>
494
+ <td><code>--rule &lt;list&gt;</code></td>
495
+ <td>Run only these rule ids, comma-separated.</td>
496
+ </tr>
497
+ <tr>
498
+ <td><code>--locale &lt;list&gt;</code></td>
499
+ <td>Restrict to these locales.</td>
500
+ </tr>
501
+ <tr>
502
+ <td><code>--max-warnings &lt;n&gt;</code></td>
503
+ <td>Exit <code>1</code> if warnings exceed <code>n</code> (errors always fail).</td>
504
+ </tr>
505
+ <tr>
506
+ <td><code>--file</code>, <code>-f &lt;path&gt;</code></td>
507
+ <td>Target a different state file.</td>
508
+ </tr>
509
+ </tbody></table>
510
+ <pre><code class="language-bash">glotfile lint --rule placeholder-mismatch,icu-mismatch
511
+ glotfile lint --max-warnings 0 # treat all warnings as failures
512
+ glotfile lint --format sarif &gt; glotfile.sarif
513
+ </code></pre>
514
+ <blockquote>
515
+ <p><strong>Info:</strong> SARIF for code scanning — <code>--format sarif</code> emits SARIF 2.1.0 with each finding located at its line in <code>glotfile.json</code>. Upload it to GitHub code scanning to see findings inline on the PR. See Continuous Integration.</p>
516
+ </blockquote>
517
+ <h2><code>glotfile check</code></h2>
518
+ <pre><code class="language-bash">glotfile check
519
+ </code></pre>
520
+ <p><code>check</code> does everything <code>lint</code> does, <strong>plus</strong> re-exports every output in memory and compares it to what&#39;s on disk. A missing or out-of-date file is reported as an <code>output-stale</code> <strong>error</strong>:</p>
521
+ <pre><code>lib/l10n/app_fr.arb
522
+ error output-stale output file is out of date; run \`glotfile export\`
523
+ </code></pre>
524
+ <p>It exits <code>1</code> on any error (a lint error <em>or</em> a stale export), and accepts <code>--format</code> like <code>lint</code>. If <code>glotfile.json</code> itself can&#39;t be parsed, <code>check</code> reports a single <code>load-error</code> and exits <code>1</code>.</p>
525
+ <blockquote>
526
+ <p><strong>Tip:</strong> Use <code>check</code> as your one CI step — it catches both &quot;the catalog has problems&quot; and &quot;someone forgot to run <code>glotfile export</code>&quot; in a single command.</p>
527
+ </blockquote>
528
+ <h2>Configuring rules</h2>
529
+ <p>Rule severities, ignored keys, and dictionaries are set in <code>config.lint</code>. See Checks and Validation and Configuration Reference.</p>
530
+ <h2>Related</h2>
531
+ <ul>
532
+ <li>Checks and Validation · Continuous Integration · export · Configuration Reference</li>
533
+ </ul>
534
+ `},{id:`cli/serve`,title:"`glotfile serve`",section:`CLI`,html:`<h1><code>glotfile serve</code></h1>
535
+ <p>Starts the local web UI and opens your browser. This is the <strong>default command</strong> — <code>glotfile</code> on its own does the same thing.</p>
536
+ <pre><code class="language-bash">glotfile
537
+ glotfile serve
538
+ </code></pre>
539
+ <p>It binds a server to <code>127.0.0.1</code>, prints the URL, and opens it. If there&#39;s no <code>glotfile.json</code> in the current directory, it starts from defaults and writes the file on your first edit.</p>
540
+ <h2>Options</h2>
541
+ <table>
542
+ <thead>
543
+ <tr>
544
+ <th>Option</th>
545
+ <th>Description</th>
546
+ </tr>
547
+ </thead>
548
+ <tbody><tr>
549
+ <td><code>--file</code>, <code>-f &lt;path&gt;</code></td>
550
+ <td>Use a state file other than <code>./glotfile.json</code>.</td>
551
+ </tr>
552
+ <tr>
553
+ <td><code>--dev</code></td>
554
+ <td>Developer mode for working on Glotfile itself (used by <code>npm run dev</code>).</td>
555
+ </tr>
556
+ </tbody></table>
557
+ <pre><code class="language-bash">glotfile serve --file packages/app/glotfile.json
558
+ </code></pre>
559
+ <blockquote>
560
+ <p><strong>Note:</strong> Local only — the server binds to <code>127.0.0.1</code> — it is not exposed to your network. Everything stays on your machine except the AI calls you trigger.</p>
561
+ </blockquote>
562
+ <h2>Related</h2>
563
+ <ul>
564
+ <li>Quick Start · Web UI Overview · Installation</li>
565
+ </ul>
566
+ `},{id:`cli/translate`,title:"`glotfile translate`",section:`CLI`,html:`<h1><code>glotfile translate</code></h1>
567
+ <p>AI-translates strings and writes the results back to <code>glotfile.json</code> as <code>machine</code> state. It never overwrites a <code>reviewed</code> value.</p>
568
+ <pre><code class="language-bash">glotfile translate
569
+ </code></pre>
570
+ <p>With no flags, only <strong>empty</strong> values are filled — existing translations are left alone. Pass <code>--all</code> to re-translate every string. The flags below <strong>combine</strong> to narrow the run.</p>
571
+ <h2>Options</h2>
572
+ <table>
573
+ <thead>
574
+ <tr>
575
+ <th>Option</th>
576
+ <th>Description</th>
577
+ </tr>
578
+ </thead>
579
+ <tbody><tr>
580
+ <td><code>--all</code></td>
581
+ <td>Re-translate every string, not just empty values (still never overwrites <code>reviewed</code>).</td>
582
+ </tr>
583
+ <tr>
584
+ <td><code>--locale &lt;list&gt;</code></td>
585
+ <td>Only these target languages, comma-separated (e.g. <code>fr,de</code>).</td>
586
+ </tr>
587
+ <tr>
588
+ <td><code>--key &lt;glob&gt;</code></td>
589
+ <td>Only keys matching a glob (e.g. <code>&quot;auth.*&quot;</code>).</td>
590
+ </tr>
591
+ <tr>
592
+ <td><code>--file</code>, <code>-f &lt;path&gt;</code></td>
593
+ <td>Target a different state file.</td>
594
+ </tr>
595
+ </tbody></table>
596
+ <pre><code class="language-bash">glotfile translate # fill the gaps (only empty values)
597
+ glotfile translate --all # redo every non-reviewed value
598
+ glotfile translate --locale fr,de # only French and German
599
+ glotfile translate --key &quot;auth.*&quot; # only the auth namespace
600
+ glotfile translate --all --locale fr --key &quot;checkout.*&quot;
601
+ </code></pre>
602
+ <h2>What it prints</h2>
603
+ <pre><code>Translating 34 string(s)…
604
+ Wrote 34 machine translation(s).
605
+ </code></pre>
606
+ <p>Rejected translations (a dropped placeholder, a busted length limit) are reported and <strong>skipped</strong>, not written:</p>
607
+ <pre><code>skip checkout.total @ de: placeholder {amount} is missing
608
+ </code></pre>
609
+ <p>See How Translation Works for the validation rules and Placeholders and ICU for what&#39;s checked.</p>
610
+ <h2>Credentials</h2>
611
+ <p><code>translate</code> is the only command that needs network access. Configure the provider in Settings or <code>config.ai</code>, and put credentials in your environment (a local <code>.env</code> works). See AI Providers.</p>
612
+ <blockquote>
613
+ <p><strong>Info:</strong> Egress is logged — what&#39;s sent to the provider is recorded in the AI Log.</p>
614
+ </blockquote>
615
+ <h2>Related</h2>
616
+ <ul>
617
+ <li>How Translation Works · AI Providers · Review States</li>
618
+ </ul>
619
+ `},{id:`concepts/glossary`,title:`Glossary`,section:`Concepts`,html:`<h1>Glossary</h1>
620
+ <p>The <strong>glossary</strong> is a list of terms that get special handling during AI translation and validation. It&#39;s stored at the top level of <code>glotfile.json</code> and edited in the Glossary panel.</p>
621
+ <p>Use it for two things:</p>
622
+ <ol>
623
+ <li><strong>Do-not-translate terms</strong> — brand names, product names, code identifiers that must appear verbatim in every language.</li>
624
+ <li><strong>Forced translations</strong> — a term that must always render a specific way in a given locale.</li>
625
+ </ol>
626
+ <h2>Entry shape</h2>
627
+ <pre><code class="language-json">&quot;glossary&quot;: [
628
+ { &quot;term&quot;: &quot;Glotfile&quot;, &quot;doNotTranslate&quot;: true, &quot;caseSensitive&quot;: true },
629
+ {
630
+ &quot;term&quot;: &quot;dashboard&quot;,
631
+ &quot;translations&quot;: { &quot;fr&quot;: &quot;tableau de bord&quot;, &quot;de&quot;: &quot;Übersicht&quot; },
632
+ &quot;notes&quot;: &quot;Always use the product term, not a literal translation.&quot;
633
+ }
634
+ ]
635
+ </code></pre>
636
+ <table>
637
+ <thead>
638
+ <tr>
639
+ <th>Field</th>
640
+ <th>Meaning</th>
641
+ </tr>
642
+ </thead>
643
+ <tbody><tr>
644
+ <td><code>term</code></td>
645
+ <td>The source-language term to match.</td>
646
+ </tr>
647
+ <tr>
648
+ <td><code>doNotTranslate</code></td>
649
+ <td>Keep the term verbatim in every translation.</td>
650
+ </tr>
651
+ <tr>
652
+ <td><code>caseSensitive</code></td>
653
+ <td>Match the term case-sensitively.</td>
654
+ </tr>
655
+ <tr>
656
+ <td><code>translations</code></td>
657
+ <td>Forced output per locale (<code>{ locale: &quot;translation&quot; }</code>).</td>
658
+ </tr>
659
+ <tr>
660
+ <td><code>notes</code></td>
661
+ <td>Freeform guidance (also passed to the AI).</td>
662
+ </tr>
663
+ </tbody></table>
664
+ <h2>How it&#39;s used</h2>
665
+ <ul>
666
+ <li><strong>During translation:</strong> relevant glossary terms for each string are injected into every AI request, so the model knows what to keep verbatim and what to render a fixed way. See How Translation Works.</li>
667
+ <li><strong>During validation:</strong> the <code>glossary-violation</code> rule flags any translation that drops a do-not-translate term or doesn&#39;t use the forced translation. See Checks and Validation.</li>
668
+ </ul>
669
+ <blockquote>
670
+ <p><strong>Tip:</strong> Only relevant terms are sent — Glotfile matches glossary terms against each source string and includes just the ones that appear — the AI isn&#39;t handed your entire glossary for every key.</p>
671
+ </blockquote>
672
+ <h2>Related</h2>
673
+ <ul>
674
+ <li>How Translation Works · Checks and Validation · Key Context and Metadata</li>
675
+ </ul>
676
+ `},{id:`concepts/key-context-and-metadata`,title:`Key Context and Metadata`,section:`Concepts`,html:`<h1>Key Context and Metadata</h1>
677
+ <p>Beyond its values, each key can carry metadata that improves translation quality and helps reviewers. Edit it in the Editor&#39;s per-key detail panel.</p>
678
+ <table>
679
+ <thead>
680
+ <tr>
681
+ <th>Field</th>
682
+ <th>What it&#39;s for</th>
683
+ </tr>
684
+ </thead>
685
+ <tbody><tr>
686
+ <td><strong>Context</strong></td>
687
+ <td>A note for humans <em>and the AI</em> explaining where/how the string is used. The single highest-leverage field for good machine translation.</td>
688
+ </tr>
689
+ <tr>
690
+ <td><strong>Notes</strong></td>
691
+ <td>Timestamped freeform notes — a running comment thread on the key.</td>
692
+ </tr>
693
+ <tr>
694
+ <td><strong>Tags</strong></td>
695
+ <td>Labels for grouping and filtering (e.g. <code>auth</code>, <code>cta</code>, <code>email</code>). Analytics reports coverage per tag.</td>
696
+ </tr>
697
+ <tr>
698
+ <td><strong>Max length</strong></td>
699
+ <td>A character budget. AI translations that exceed it are rejected, and the <code>max-length</code> check flags any value over the limit.</td>
700
+ </tr>
701
+ <tr>
702
+ <td><strong>Screenshot</strong></td>
703
+ <td>An image showing where the string appears. Sent to vision-capable models for context. See Screenshots.</td>
704
+ </tr>
705
+ <tr>
706
+ <td><strong>Skip translate</strong></td>
707
+ <td>Marks a key to be excluded from translation runs (e.g. a code-like token that should never change).</td>
708
+ </tr>
709
+ </tbody></table>
710
+ <h2>Why context matters most</h2>
711
+ <p>Translators — human or AI — can&#39;t see your UI. A bare string like <code>&quot;Open&quot;</code> could be a verb (open a file) or an adjective (the store is open), and they translate differently. A one-line <strong>context</strong> removes the ambiguity:</p>
712
+ <blockquote>
713
+ <p><strong>Example:</strong> Key <code>store.status.open</code> → context: <em>&quot;Adjective. Shown on a badge when the shop is currently accepting orders.&quot;</em></p>
714
+ </blockquote>
715
+ <p>AI translation sends the context, the relevant Glossary terms, any max length, and the screenshot along with each string.</p>
716
+ <h2>A note on <code>description</code></h2>
717
+ <p>The state file also reserves a <code>description</code> field on keys. It is not yet editable in the UI — prefer <strong>context</strong> (which feeds the AI) and <strong>notes</strong> (for human discussion) today.</p>
718
+ <h2>Related</h2>
719
+ <ul>
720
+ <li>Glossary · Screenshots · How Translation Works · Checks and Validation</li>
721
+ </ul>
722
+ `},{id:`concepts/keys-and-locales`,title:`Keys and Locales`,section:`Concepts`,html:`<h1>Keys and Locales</h1>
723
+ <h2>Keys</h2>
724
+ <p>A <strong>key</strong> is a stable identifier for one piece of copy, written in <strong>dot notation</strong>:</p>
725
+ <pre><code>auth.signIn.button
726
+ auth.signIn.title
727
+ settings.profile.heading
728
+ </code></pre>
729
+ <p>Keys live in a <strong>flat map</strong> in <code>glotfile.json</code> — the dots are just naming convention, not nesting. The first segment usually acts as a <strong>namespace</strong> (a feature, screen, or file group); some export adapters split files by it (Laravel writes <code>auth.*</code> keys into <code>auth.php</code>).</p>
730
+ <p>Each key holds:</p>
731
+ <ul>
732
+ <li>A <strong>value per locale</strong> (or plural forms).</li>
733
+ <li>A review state per locale.</li>
734
+ <li>Optional metadata — context, notes, tags, a max length, a screenshot, and a skip-translation flag.</li>
735
+ </ul>
736
+ <p>Create, rename, and delete keys in the Editor.</p>
737
+ <h2>Locales</h2>
738
+ <p>A <strong>locale</strong> is a language you maintain, identified by a code like <code>en</code>, <code>fr</code>, <code>de</code>, or <code>pt-BR</code>. Two settings define them (Settings panel or config):</p>
739
+ <ul>
740
+ <li><strong><code>sourceLocale</code></strong> — the one language you author in. Its values have the <code>source</code> state and are the basis for every translation.</li>
741
+ <li><strong><code>locales</code></strong> — the full list of languages you maintain, including the source.</li>
742
+ </ul>
743
+ <blockquote>
744
+ <p><strong>⚠ The source locale must be in the list</strong> — <code>sourceLocale</code> must appear in <code>locales</code>, or the file fails validation.</p>
745
+ </blockquote>
746
+ <h3>Adding and removing</h3>
747
+ <p>Manage locales in Settings. Adding a locale gives every key an empty slot for it (which shows up as <strong>missing</strong> until filled). Languages are shown with their flag and name in the UI.</p>
748
+ <h2>Missing values</h2>
749
+ <p>A locale value is <strong>missing</strong> when it has no content for a key. Missing values are:</p>
750
+ <ul>
751
+ <li>highlighted in the Editor (filter to <strong>missing</strong>),</li>
752
+ <li>counted in Analytics,</li>
753
+ <li>what <code>glotfile translate</code> fills by default (see translate),</li>
754
+ <li>flagged by the <code>empty-translation</code> rule in Checks and Validation.</li>
755
+ </ul>
756
+ <h2>Related</h2>
757
+ <ul>
758
+ <li>Review States · Plurals · Key Context and Metadata · The State File</li>
759
+ </ul>
760
+ `},{id:`concepts/plurals`,title:`Plurals`,section:`Concepts`,html:`<h1>Plurals</h1>
761
+ <p>Some strings change shape with a count — &quot;1 file&quot; vs &quot;5 files&quot;. Glotfile models these as <strong>plural keys</strong> using the <a href="https://cldr.unicode.org/index/cldr-spec/plural-rules">CLDR plural categories</a>.</p>
762
+ <h2>How a plural key differs</h2>
763
+ <p>A normal key stores one <code>value</code> per locale. A <strong>plural key</strong> instead stores <strong><code>forms</code></strong> — one entry per category — and is marked with a <code>plural</code> field naming the <strong>count argument</strong>:</p>
764
+ <pre><code class="language-json">&quot;cart.items&quot;: {
765
+ &quot;plural&quot;: { &quot;arg&quot;: &quot;count&quot; },
766
+ &quot;values&quot;: {
767
+ &quot;en&quot;: {
768
+ &quot;state&quot;: &quot;source&quot;,
769
+ &quot;forms&quot;: { &quot;one&quot;: &quot;{count} item&quot;, &quot;other&quot;: &quot;{count} items&quot; }
770
+ },
771
+ &quot;pl&quot;: {
772
+ &quot;state&quot;: &quot;reviewed&quot;,
773
+ &quot;forms&quot;: {
774
+ &quot;one&quot;: &quot;{count} przedmiot&quot;,
775
+ &quot;few&quot;: &quot;{count} przedmioty&quot;,
776
+ &quot;many&quot;: &quot;{count} przedmiotów&quot;,
777
+ &quot;other&quot;: &quot;{count} przedmiotu&quot;
778
+ }
779
+ }
780
+ }
781
+ }
782
+ </code></pre>
783
+ <h2>Plural categories</h2>
784
+ <p>The six CLDR categories are:</p>
785
+ <p><code>zero</code> · <code>one</code> · <code>two</code> · <code>few</code> · <code>many</code> · <code>other</code></p>
786
+ <blockquote>
787
+ <p><strong>⚠ <code>other</code> is always required</strong> — every locale&#39;s plural value <strong>must</strong> include the <code>other</code> form — it&#39;s the fallback every language has. Which of the other categories apply depends on the language (English uses <code>one</code>/<code>other</code>; Polish uses <code>one</code>/<code>few</code>/<code>many</code>/<code>other</code>).</p>
788
+ </blockquote>
789
+ <h2>Editing plurals</h2>
790
+ <p>In the Editor, a plural key shows a dedicated form editor with one field per category that the target language actually uses. AI translation fills every required category at once and validates the result.</p>
791
+ <h2>Across export formats</h2>
792
+ <p>Plural and ICU <code>select</code>/<code>plural</code> structure is preserved when exporting, and converted to each format&#39;s native plural mechanism where one exists. Where a target format can&#39;t represent a construct, <code>glotfile export</code> warns rather than producing broken output. See Output Formats and Placeholders and ICU.</p>
793
+ <h2>Related</h2>
794
+ <ul>
795
+ <li>Placeholders and ICU · How Translation Works · Keys and Locales</li>
796
+ </ul>
797
+ `},{id:`concepts/review-states`,title:`Review States`,section:`Concepts`,html:`<h1>Review States</h1>
798
+ <p>Every locale value carries a <strong>state</strong> that tracks where the translation is in its lifecycle. State is per <em>value</em>, not per key — <code>fr</code> can be <code>reviewed</code> while <code>de</code> is still <code>machine</code>.</p>
799
+ <table>
800
+ <thead>
801
+ <tr>
802
+ <th>State</th>
803
+ <th>Meaning</th>
804
+ </tr>
805
+ </thead>
806
+ <tbody><tr>
807
+ <td><code>source</code></td>
808
+ <td>The value in your source locale. It&#39;s what everything else is translated <em>from</em>.</td>
809
+ </tr>
810
+ <tr>
811
+ <td><code>machine</code></td>
812
+ <td>Produced by AI translation and <strong>not yet reviewed by a human</strong>.</td>
813
+ </tr>
814
+ <tr>
815
+ <td><code>reviewed</code></td>
816
+ <td>A human has checked and approved it. <strong>AI translation never overwrites a <code>reviewed</code> value.</strong></td>
817
+ </tr>
818
+ <tr>
819
+ <td><code>needs-review</code></td>
820
+ <td>Flagged for attention — typically because the source string changed after this translation was made (see Keeping Translations Fresh).</td>
821
+ </tr>
822
+ </tbody></table>
823
+ <h2>The typical flow</h2>
824
+ <pre><code>source ──translate──▶ machine ──approve──▶ reviewed
825
+ ▲ │
826
+ └── source changed ───┘
827
+ (needs-review)
828
+ </code></pre>
829
+ <ol>
830
+ <li>You author a string in the source locale → <code>source</code>.</li>
831
+ <li>AI fills the other languages → <code>machine</code>.</li>
832
+ <li>You review in the Editor and promote good ones → <code>reviewed</code>.</li>
833
+ <li>If the source later changes, dependent translations are marked <code>needs-review</code> so they don&#39;t silently drift. See Keeping Translations Fresh.</li>
834
+ </ol>
835
+ <h2>Why <code>reviewed</code> is protected</h2>
836
+ <p>Marking a value <code>reviewed</code> is a promise: a human owns this translation. Glotfile honours that promise — neither <code>glotfile translate</code> nor the UI&#39;s translate action will overwrite it. To re-translate a reviewed value, change it back first.</p>
837
+ <h2>Filtering by state</h2>
838
+ <p>In the Editor, filter by <strong>missing</strong>, <strong>machine</strong> (unreviewed), <strong>needs-review</strong>, or <strong>reviewed</strong>, plus a <strong>needs-attention</strong> facet for any key with an open issue. Analytics reports translated vs reviewed percentages per locale.</p>
839
+ <h2>Related</h2>
840
+ <ul>
841
+ <li>How Translation Works · Keeping Translations Fresh</li>
842
+ </ul>
843
+ `},{id:`concepts/the-state-file`,title:"The State File — `glotfile.json`",section:`Concepts`,html:`<h1>The State File — <code>glotfile.json</code></h1>
844
+ <p>Everything Glotfile does is derived from one file at the root of your project: <strong><code>glotfile.json</code></strong>. It holds your configuration, your glossary, and every key with its translations. You commit it alongside your code, and versioning, review, and rollback all come from git.</p>
845
+ <blockquote>
846
+ <p><strong>Tip:</strong> You normally never edit this file by hand — the web UI writes it for you. The structure below is documented so you can read diffs and understand what&#39;s stored — not so you can hand-edit it.</p>
847
+ </blockquote>
848
+ <h2>Anatomy</h2>
849
+ <p>A fresh file looks like this:</p>
850
+ <pre><code class="language-json">{
851
+ &quot;$schema&quot;: &quot;https://glotfile.dev/schema/v1.json&quot;,
852
+ &quot;version&quot;: 2,
853
+ &quot;config&quot;: {
854
+ &quot;sourceLocale&quot;: &quot;en&quot;,
855
+ &quot;locales&quot;: [&quot;en&quot;],
856
+ &quot;outputs&quot;: [
857
+ { &quot;adapter&quot;: &quot;flutter-arb&quot;, &quot;path&quot;: &quot;lib/l10n/app_{locale}.arb&quot; },
858
+ { &quot;adapter&quot;: &quot;laravel-php&quot;, &quot;path&quot;: &quot;lang/{locale}/{namespace}.php&quot; }
859
+ ],
860
+ &quot;ai&quot;: { &quot;provider&quot;: &quot;anthropic&quot;, &quot;model&quot;: &quot;claude-opus-4-8&quot;, &quot;endpoint&quot;: null, &quot;region&quot;: null, &quot;batchSize&quot;: 25 },
861
+ &quot;format&quot;: { &quot;indent&quot;: 2, &quot;sortKeys&quot;: true, &quot;finalNewline&quot;: true },
862
+ &quot;spelling&quot;: { &quot;customWords&quot;: [] }
863
+ },
864
+ &quot;glossary&quot;: [],
865
+ &quot;keys&quot;: {}
866
+ }
867
+ </code></pre>
868
+ <table>
869
+ <thead>
870
+ <tr>
871
+ <th>Field</th>
872
+ <th>Purpose</th>
873
+ </tr>
874
+ </thead>
875
+ <tbody><tr>
876
+ <td><code>version</code></td>
877
+ <td>State-file schema version (currently <code>2</code>).</td>
878
+ </tr>
879
+ <tr>
880
+ <td><code>config</code></td>
881
+ <td>All configuration — see Configuration Reference.</td>
882
+ </tr>
883
+ <tr>
884
+ <td><code>glossary</code></td>
885
+ <td>Do-not-translate terms and forced per-locale translations — see Glossary.</td>
886
+ </tr>
887
+ <tr>
888
+ <td><code>keys</code></td>
889
+ <td>A flat map of dot-notation keys to their values and metadata — see Keys and Locales.</td>
890
+ </tr>
891
+ </tbody></table>
892
+ <h2>A populated key</h2>
893
+ <pre><code class="language-json">&quot;keys&quot;: {
894
+ &quot;auth.signIn.button&quot;: {
895
+ &quot;context&quot;: &quot;Primary call-to-action on the login screen&quot;,
896
+ &quot;tags&quot;: [&quot;auth&quot;, &quot;cta&quot;],
897
+ &quot;maxLength&quot;: 20,
898
+ &quot;values&quot;: {
899
+ &quot;en&quot;: { &quot;value&quot;: &quot;Sign in&quot;, &quot;state&quot;: &quot;source&quot; },
900
+ &quot;fr&quot;: { &quot;value&quot;: &quot;Se connecter&quot;, &quot;state&quot;: &quot;reviewed&quot;, &quot;source&quot;: &quot;Sign in&quot; },
901
+ &quot;de&quot;: { &quot;value&quot;: &quot;Anmelden&quot;, &quot;state&quot;: &quot;machine&quot;, &quot;source&quot;: &quot;Sign in&quot; }
902
+ }
903
+ }
904
+ }
905
+ </code></pre>
906
+ <p>Each locale carries a <code>value</code> (or <code>forms</code> for plural keys), a state, and an optional <code>source</code> recording the source string it was translated from (used to detect stale translations).</p>
907
+ <h2>Deterministic writes</h2>
908
+ <p>Glotfile writes the file deterministically — <strong>stable key order, fixed indent, one trailing newline</strong> — so git diffs stay small and reviewable. The <code>config.format</code> block controls this:</p>
909
+ <ul>
910
+ <li><code>indent</code> — spaces per level (default <code>2</code>)</li>
911
+ <li><code>sortKeys</code> — sort keys alphabetically (default <code>true</code>)</li>
912
+ <li><code>finalNewline</code> — end with a single newline (default <code>true</code>)</li>
913
+ </ul>
914
+ <blockquote>
915
+ <p><strong>Info:</strong> Why this matters — because writes are deterministic, re-running <code>glotfile export</code> with no real changes produces a <strong>zero-line diff</strong>. That&#39;s what makes Glotfile safe to run in CI.</p>
916
+ </blockquote>
917
+ <h2>On load</h2>
918
+ <p>When Glotfile reads the file it validates the structure (see Checks and Validation) and normalises values — for example, trimming surrounding whitespace — so legacy data folds to the same shape the UI produces on save. A malformed file fails loudly with a specific message rather than corrupting silently.</p>
919
+ <h2>Split storage: the <code>glotfile/</code> directory</h2>
920
+ <p>For large catalogs, a single <code>glotfile.json</code> can reach several megabytes — making <code>git diff</code> slow, overflowing GitHub&#39;s render limit, and producing noisy conflicts when multiple branches add keys. The <strong>split</strong> layout breaks the catalog into a directory of smaller files, one per locale.</p>
921
+ <p>Run <code>glotfile split</code> once to convert an existing single file:</p>
922
+ <pre><code>glotfile/
923
+ config.json # { $schema, version, config, glossary } — everything except keys
924
+ keys.json # per-key metadata: tags, notes, context, plurals, screenshots
925
+ locales/
926
+ en.json # { &quot;&lt;key&gt;&quot;: { value, state, ... } } for every key present in this locale
927
+ fr.json
928
+ ...
929
+ </code></pre>
930
+ <ul>
931
+ <li><strong><code>config.json</code></strong> holds the configuration and glossary — the parts that change rarely.</li>
932
+ <li><strong><code>keys.json</code></strong> holds per-key metadata (tags, notes, context, plural config, screenshots) but <strong>not</strong> translation values. A tag edit touches only this file.</li>
933
+ <li><strong><code>locales/&lt;locale&gt;.json</code></strong> holds all translation values for one locale. An AI run on French rewrites only <code>fr.json</code>.</li>
934
+ </ul>
935
+ <h3>What controls the layout</h3>
936
+ <p>A <code>config.storage</code> field in the config selects how the catalog is saved:</p>
937
+ <table>
938
+ <thead>
939
+ <tr>
940
+ <th>Value</th>
941
+ <th>Behaviour</th>
942
+ </tr>
943
+ </thead>
944
+ <tbody><tr>
945
+ <td><code>&quot;single&quot;</code> (or absent)</td>
946
+ <td>Write a single <code>glotfile.json</code> — the default for new projects.</td>
947
+ </tr>
948
+ <tr>
949
+ <td><code>&quot;split&quot;</code></td>
950
+ <td>Write the <code>glotfile/</code> directory. Set automatically by <code>glotfile split</code>.</td>
951
+ </tr>
952
+ </tbody></table>
953
+ <p><strong>Load auto-detects:</strong> Glotfile checks for <code>glotfile/config.json</code> first (split), then <code>glotfile.json</code> (single), then starts from defaults. You never need to set this by hand — <code>glotfile split</code> sets it for you.</p>
954
+ <h3>Promotion is an explicit commit</h3>
955
+ <p>There is no silent auto-promotion at a size threshold. Running <code>glotfile split</code> is a deliberate, one-time operation that produces a clearly-labelled commit. Once split, the CLI, web UI, and all export adapters work identically to the single-file layout — the in-memory state is unchanged.</p>
956
+ <h2>Related</h2>
957
+ <ul>
958
+ <li>Configuration Reference · Keys and Locales · Review States</li>
959
+ </ul>
960
+ `},{id:`ai-translation/ai-providers`,title:`AI Providers`,section:`AI Translation`,html:`<h1>AI Providers</h1>
961
+ <p>Glotfile translates via <strong>one provider at a time</strong>, chosen by <code>config.ai.provider</code>. To switch, edit that block in Settings (or <code>glotfile.json</code>) and re-run translate. Credentials are read from the environment, including a local <code>.env</code> file in the project directory.</p>
962
+ <h2>Supported providers</h2>
963
+ <table>
964
+ <thead>
965
+ <tr>
966
+ <th>Provider</th>
967
+ <th><code>provider</code></th>
968
+ <th>Credentials</th>
969
+ <th>Region / endpoint</th>
970
+ <th>SDK</th>
971
+ </tr>
972
+ </thead>
973
+ <tbody><tr>
974
+ <td><strong>Anthropic</strong> (default)</td>
975
+ <td><code>anthropic</code></td>
976
+ <td><code>ANTHROPIC_API_KEY</code></td>
977
+ <td><code>config.ai.endpoint</code> (base URL)</td>
978
+ <td>bundled (<code>@anthropic-ai/sdk</code>)</td>
979
+ </tr>
980
+ <tr>
981
+ <td><strong>OpenAI</strong></td>
982
+ <td><code>openai</code></td>
983
+ <td><code>OPENAI_API_KEY</code></td>
984
+ <td><code>config.ai.endpoint</code> (base URL; also reaches any OpenAI-compatible gateway)</td>
985
+ <td>optional — <code>npm i openai</code></td>
986
+ </tr>
987
+ <tr>
988
+ <td><strong>AWS Bedrock</strong></td>
989
+ <td><code>bedrock</code></td>
990
+ <td>standard AWS chain: <code>AWS_ACCESS_KEY_ID</code> / <code>AWS_SECRET_ACCESS_KEY</code> (/ <code>AWS_SESSION_TOKEN</code>), or <code>AWS_PROFILE</code>, or an SSO / instance role</td>
991
+ <td><code>config.ai.region</code> (falls back to <code>AWS_REGION</code>)</td>
992
+ <td>optional — <code>npm i @aws-sdk/client-bedrock-runtime</code></td>
993
+ </tr>
994
+ </tbody></table>
995
+ <blockquote>
996
+ <p><strong>Info:</strong> Optional SDKs load on demand — the OpenAI and AWS SDKs are optional dependencies, loaded only when their provider is selected — so a default install stays small. If the SDK is missing when you translate, Glotfile tells you exactly what to install.</p>
997
+ </blockquote>
998
+ <h2><code>config.ai</code></h2>
999
+ <pre><code class="language-json">&quot;ai&quot;: { &quot;provider&quot;: &quot;anthropic&quot;, &quot;model&quot;: &quot;claude-opus-4-8&quot;, &quot;endpoint&quot;: null, &quot;region&quot;: null, &quot;batchSize&quot;: 25 }
1000
+ </code></pre>
1001
+ <table>
1002
+ <thead>
1003
+ <tr>
1004
+ <th>Field</th>
1005
+ <th>Meaning</th>
1006
+ </tr>
1007
+ </thead>
1008
+ <tbody><tr>
1009
+ <td><code>provider</code></td>
1010
+ <td><code>anthropic</code>, <code>openai</code>, or <code>bedrock</code>.</td>
1011
+ </tr>
1012
+ <tr>
1013
+ <td><code>model</code></td>
1014
+ <td>The model id for the chosen provider.</td>
1015
+ </tr>
1016
+ <tr>
1017
+ <td><code>endpoint</code></td>
1018
+ <td>Base URL override (Anthropic / OpenAI). <code>null</code> for the provider default.</td>
1019
+ </tr>
1020
+ <tr>
1021
+ <td><code>region</code></td>
1022
+ <td>AWS region (Bedrock). Falls back to <code>AWS_REGION</code>.</td>
1023
+ </tr>
1024
+ <tr>
1025
+ <td><code>batchSize</code></td>
1026
+ <td>Strings per request (default <code>25</code>).</td>
1027
+ </tr>
1028
+ </tbody></table>
1029
+ <h2>Examples</h2>
1030
+ <p><strong>OpenAI:</strong></p>
1031
+ <pre><code class="language-json">&quot;ai&quot;: { &quot;provider&quot;: &quot;openai&quot;, &quot;model&quot;: &quot;gpt-4o-mini&quot;, &quot;endpoint&quot;: null, &quot;batchSize&quot;: 25 }
1032
+ </code></pre>
1033
+ <p><strong>AWS Bedrock — Amazon Nova:</strong></p>
1034
+ <pre><code class="language-json">&quot;ai&quot;: { &quot;provider&quot;: &quot;bedrock&quot;, &quot;model&quot;: &quot;amazon.nova-pro-v1:0&quot;, &quot;endpoint&quot;: null, &quot;region&quot;: &quot;eu-west-1&quot;, &quot;batchSize&quot;: 25 }
1035
+ </code></pre>
1036
+ <p><strong>AWS Bedrock — Claude or Meta Llama</strong> (same provider, different model id):</p>
1037
+ <pre><code class="language-json">&quot;ai&quot;: { &quot;provider&quot;: &quot;bedrock&quot;, &quot;model&quot;: &quot;anthropic.claude-3-5-sonnet-20241022-v2:0&quot;, &quot;region&quot;: &quot;us-east-1&quot;, &quot;endpoint&quot;: null, &quot;batchSize&quot;: 25 }
1038
+ &quot;ai&quot;: { &quot;provider&quot;: &quot;bedrock&quot;, &quot;model&quot;: &quot;meta.llama3-1-70b-instruct-v1:0&quot;, &quot;region&quot;: &quot;us-east-1&quot;, &quot;endpoint&quot;: null, &quot;batchSize&quot;: 25 }
1039
+ </code></pre>
1040
+ <h2>Vision (screenshots)</h2>
1041
+ <p>Keys with a screenshot are sent to vision-capable models for context:</p>
1042
+ <table>
1043
+ <thead>
1044
+ <tr>
1045
+ <th>Model family</th>
1046
+ <th>Vision</th>
1047
+ </tr>
1048
+ </thead>
1049
+ <tbody><tr>
1050
+ <td>Anthropic</td>
1051
+ <td>✅</td>
1052
+ </tr>
1053
+ <tr>
1054
+ <td>OpenAI (gpt-4o-class)</td>
1055
+ <td>✅</td>
1056
+ </tr>
1057
+ <tr>
1058
+ <td>Bedrock — Amazon Nova / Claude</td>
1059
+ <td>✅</td>
1060
+ </tr>
1061
+ <tr>
1062
+ <td>Bedrock — Meta Llama (text)</td>
1063
+ <td>❌ — runs text-only, warns how many screenshots were skipped</td>
1064
+ </tr>
1065
+ </tbody></table>
1066
+ <h2>Data residency</h2>
1067
+ <p>AI translation is the only path by which source strings leave your boundary. To keep strings in-region, <strong>pin AWS Bedrock to a region</strong>, or point the Anthropic / OpenAI <code>endpoint</code> at an in-region or self-hosted gateway. <strong>No credentials are ever written to <code>glotfile.json</code> or logged.</strong></p>
1068
+ <h2>Related</h2>
1069
+ <ul>
1070
+ <li>How Translation Works · translate · Settings · AI Log</li>
1071
+ </ul>
1072
+ `},{id:`ai-translation/how-translation-works`,title:`How Translation Works`,section:`AI Translation`,html:`<h1>How Translation Works</h1>
1073
+ <p>AI translation is the only feature that needs network access or credentials — everything else in Glotfile works offline. You can trigger it from the Editor or with <code>glotfile translate</code>; both use the same engine.</p>
1074
+ <h2>What gets sent</h2>
1075
+ <p>For each string that needs translating, Glotfile sends the provider:</p>
1076
+ <ul>
1077
+ <li>the <strong>source string</strong> (or plural forms),</li>
1078
+ <li>the key&#39;s <strong>context</strong>,</li>
1079
+ <li>the relevant <strong>Glossary</strong> terms (only those that appear in the string),</li>
1080
+ <li>the <strong>target locale</strong>,</li>
1081
+ <li>any <strong>max length</strong>, and</li>
1082
+ <li>for vision-capable models, the key&#39;s <strong>screenshot</strong>.</li>
1083
+ </ul>
1084
+ <p>Strings are sent in batches (<code>config.ai.batchSize</code>, default 25).</p>
1085
+ <h2>Validation on the way back</h2>
1086
+ <p>A translation is only written if it passes validation:</p>
1087
+ <ul>
1088
+ <li><strong>Placeholders</strong> must match the source — a translation that drops or renames <code>{name}</code>, <code>%s</code>, <code>:id</code>, etc. is <strong>rejected</strong>. See Placeholders and ICU.</li>
1089
+ <li><strong>ICU plural/select</strong> structure must be preserved.</li>
1090
+ <li><strong>Max length</strong>, if set, must not be exceeded.</li>
1091
+ </ul>
1092
+ <p>Rejected translations are reported and skipped, not written:</p>
1093
+ <pre><code>skip checkout.total @ de: placeholder {amount} is missing
1094
+ </code></pre>
1095
+ <h2>What it writes</h2>
1096
+ <ul>
1097
+ <li>Accepted translations are written as <strong><code>machine</code></strong> state.</li>
1098
+ <li>A <strong><code>reviewed</code></strong> value is <strong>never overwritten</strong> — your human edits are safe.</li>
1099
+ <li>The source string each translation was made from is recorded, so later source edits can flag the translation as stale.</li>
1100
+ </ul>
1101
+ <h2>Vision and model fit</h2>
1102
+ <p>Screenshots are sent only to models that can see them. For models that can&#39;t (e.g. Bedrock Meta Llama text models), the run proceeds <strong>text-only</strong> and prints how many screenshots were skipped — so any model still works. See AI Providers for the support matrix.</p>
1103
+ <h2>Privacy</h2>
1104
+ <blockquote>
1105
+ <p><strong>⚠ What leaves your machine</strong> — AI translation is the <strong>only</strong> path by which your source strings leave your boundary. No credentials are ever written to <code>glotfile.json</code> or the AI Log. To keep strings in-region, pin a Bedrock region or point an Anthropic/OpenAI endpoint at an in-region gateway — see AI Providers.</p>
1106
+ </blockquote>
1107
+ <h2>Related</h2>
1108
+ <ul>
1109
+ <li>AI Providers · Glossary · Placeholders and ICU · AI Log</li>
1110
+ </ul>
1111
+ `},{id:`reference/checks-and-validation`,title:`Checks and Validation`,section:`Reference`,html:`<h1>Checks and Validation</h1>
1112
+ <p>Glotfile validates your catalog two ways: <strong>live in the UI</strong> as you edit, and via the <strong><code>lint</code> / <code>check</code></strong> commands for CI. Both look for the same kinds of problem.</p>
1113
+ <h2>Lint rules</h2>
1114
+ <p><code>glotfile lint</code> runs these rules. Each has a default severity you can override in <code>config.lint.rules</code>.</p>
1115
+ <table>
1116
+ <thead>
1117
+ <tr>
1118
+ <th>Rule id</th>
1119
+ <th>Default</th>
1120
+ <th>Catches</th>
1121
+ </tr>
1122
+ </thead>
1123
+ <tbody><tr>
1124
+ <td><code>empty-source</code></td>
1125
+ <td><strong>error</strong></td>
1126
+ <td>A key whose source value is empty.</td>
1127
+ </tr>
1128
+ <tr>
1129
+ <td><code>empty-translation</code></td>
1130
+ <td><strong>error</strong></td>
1131
+ <td>A target value that&#39;s missing or whitespace-only.</td>
1132
+ </tr>
1133
+ <tr>
1134
+ <td><code>placeholder-mismatch</code></td>
1135
+ <td><strong>error</strong></td>
1136
+ <td>Translation placeholders differ from the source.</td>
1137
+ </tr>
1138
+ <tr>
1139
+ <td><code>icu-mismatch</code></td>
1140
+ <td><strong>error</strong></td>
1141
+ <td>One side is an ICU plural/select and the other isn&#39;t.</td>
1142
+ </tr>
1143
+ <tr>
1144
+ <td><code>glossary-violation</code></td>
1145
+ <td><strong>error</strong></td>
1146
+ <td>A do-not-translate term is altered, or a forced Glossary translation is missing.</td>
1147
+ </tr>
1148
+ <tr>
1149
+ <td><code>max-length</code></td>
1150
+ <td>warn</td>
1151
+ <td>A value longer than the key&#39;s max length.</td>
1152
+ </tr>
1153
+ <tr>
1154
+ <td><code>identical-to-source</code></td>
1155
+ <td>warn</td>
1156
+ <td>A translation identical to the source string.</td>
1157
+ </tr>
1158
+ <tr>
1159
+ <td><code>whitespace</code></td>
1160
+ <td>warn</td>
1161
+ <td>Leading/trailing whitespace that differs from the source.</td>
1162
+ </tr>
1163
+ <tr>
1164
+ <td><code>spelling</code></td>
1165
+ <td>warn</td>
1166
+ <td>A word the locale&#39;s dictionary doesn&#39;t recognise.</td>
1167
+ </tr>
1168
+ </tbody></table>
1169
+ <p><code>glotfile check</code> adds one more, by re-exporting and comparing to disk:</p>
1170
+ <table>
1171
+ <thead>
1172
+ <tr>
1173
+ <th>Rule id</th>
1174
+ <th>Default</th>
1175
+ <th>Catches</th>
1176
+ </tr>
1177
+ </thead>
1178
+ <tbody><tr>
1179
+ <td><code>output-stale</code></td>
1180
+ <td><strong>error</strong></td>
1181
+ <td>An exported file is missing or out of date — run <code>glotfile export</code>.</td>
1182
+ </tr>
1183
+ </tbody></table>
1184
+ <h2>Configuring rules — <code>config.lint</code></h2>
1185
+ <pre><code class="language-json">&quot;lint&quot;: {
1186
+ &quot;rules&quot;: { &quot;identical-to-source&quot;: &quot;off&quot;, &quot;max-length&quot;: &quot;error&quot; },
1187
+ &quot;ignore&quot;: [&quot;legal.*&quot;, &quot;debug.*&quot;],
1188
+ &quot;dictionary&quot;: [&quot;Glotfile&quot;, &quot;webhook&quot;],
1189
+ &quot;spelling&quot;: { &quot;locales&quot;: { &quot;pt-BR&quot;: &quot;pt&quot; } }
1190
+ }
1191
+ </code></pre>
1192
+ <table>
1193
+ <thead>
1194
+ <tr>
1195
+ <th>Field</th>
1196
+ <th>Meaning</th>
1197
+ </tr>
1198
+ </thead>
1199
+ <tbody><tr>
1200
+ <td><code>rules</code></td>
1201
+ <td>Override a rule&#39;s severity: <code>&quot;error&quot;</code>, <code>&quot;warn&quot;</code>, or <code>&quot;off&quot;</code>.</td>
1202
+ </tr>
1203
+ <tr>
1204
+ <td><code>ignore</code></td>
1205
+ <td>Globs of keys to skip entirely.</td>
1206
+ </tr>
1207
+ <tr>
1208
+ <td><code>dictionary</code></td>
1209
+ <td>Extra words the <code>spelling</code> rule accepts (in addition to the Glossary and <code>config.spelling.customWords</code>).</td>
1210
+ </tr>
1211
+ <tr>
1212
+ <td><code>spelling.locales</code></td>
1213
+ <td>Map a locale to a different dictionary id (e.g. use the <code>pt</code> dictionary for <code>pt-BR</code>).</td>
1214
+ </tr>
1215
+ </tbody></table>
1216
+ <blockquote>
1217
+ <p><strong>Note:</strong> Spelling needs a dictionary — the <code>spelling</code> rule only runs for locales that have a dictionary available. Locales without one are skipped with a notice.</p>
1218
+ </blockquote>
1219
+ <h2>Severities and exit codes</h2>
1220
+ <ul>
1221
+ <li><strong>error</strong> → fails <code>lint</code>/<code>check</code> (exit <code>1</code>).</li>
1222
+ <li><strong>warn</strong> → reported; fails only if over <code>--max-warnings</code>.</li>
1223
+ <li><strong>off</strong> → not run.</li>
1224
+ </ul>
1225
+ <p>See lint and check for <code>--format</code> (text / json / sarif), <code>--rule</code>, <code>--locale</code>, and <code>--max-warnings</code>, and Continuous Integration for wiring it up.</p>
1226
+ <h2>Live UI checks</h2>
1227
+ <p>The Editor continuously surfaces issues — missing values, placeholder mismatches, length and glossary violations, and spelling — so you fix them as you work. The <strong>needs-attention</strong> filter shows every key with an open issue.</p>
1228
+ <h2>Related</h2>
1229
+ <ul>
1230
+ <li>lint and check · Continuous Integration · Placeholders and ICU · Configuration Reference</li>
1231
+ </ul>
1232
+ `},{id:`reference/configuration-reference`,title:`Configuration Reference`,section:`Reference`,html:`<h1>Configuration Reference</h1>
1233
+ <p>Every field in the <code>config</code> block of <code>glotfile.json</code>. Edit these in Settings rather than by hand where you can.</p>
1234
+ <pre><code class="language-json">&quot;config&quot;: {
1235
+ &quot;sourceLocale&quot;: &quot;en&quot;,
1236
+ &quot;locales&quot;: [&quot;en&quot;, &quot;fr&quot;, &quot;de&quot;],
1237
+ &quot;outputs&quot;: [
1238
+ { &quot;adapter&quot;: &quot;flutter-arb&quot;, &quot;path&quot;: &quot;lib/l10n/app_{locale}.arb&quot; }
1239
+ ],
1240
+ &quot;ai&quot;: { &quot;provider&quot;: &quot;anthropic&quot;, &quot;model&quot;: &quot;claude-opus-4-8&quot;, &quot;endpoint&quot;: null, &quot;region&quot;: null, &quot;batchSize&quot;: 25 },
1241
+ &quot;format&quot;: { &quot;indent&quot;: 2, &quot;sortKeys&quot;: true, &quot;finalNewline&quot;: true },
1242
+ &quot;spelling&quot;: { &quot;customWords&quot;: [] },
1243
+ &quot;lint&quot;: { &quot;rules&quot;: {}, &quot;ignore&quot;: [], &quot;dictionary&quot;: [], &quot;spelling&quot;: { &quot;locales&quot;: {} } }
1244
+ }
1245
+ </code></pre>
1246
+ <h2><code>sourceLocale</code> (string, required)</h2>
1247
+ <p>The language you author in. <strong>Must</strong> be one of <code>locales</code>. See Keys and Locales.</p>
1248
+ <h2><code>locales</code> (string[], required)</h2>
1249
+ <p>Every language you maintain, including the source. See Keys and Locales.</p>
1250
+ <h2><code>outputs</code> (array, required)</h2>
1251
+ <p>Export targets. Each entry:</p>
1252
+ <table>
1253
+ <thead>
1254
+ <tr>
1255
+ <th>Field</th>
1256
+ <th>Type</th>
1257
+ <th>Meaning</th>
1258
+ </tr>
1259
+ </thead>
1260
+ <tbody><tr>
1261
+ <td><code>adapter</code></td>
1262
+ <td>string</td>
1263
+ <td>One of the adapters.</td>
1264
+ </tr>
1265
+ <tr>
1266
+ <td><code>path</code></td>
1267
+ <td>string</td>
1268
+ <td>Path template with <code>{locale}</code> / <code>{namespace}</code>.</td>
1269
+ </tr>
1270
+ <tr>
1271
+ <td><code>style</code></td>
1272
+ <td>string?</td>
1273
+ <td>Adapter-specific layout option (e.g. <code>&quot;flat&quot;</code>).</td>
1274
+ </tr>
1275
+ <tr>
1276
+ <td><code>localeCase</code></td>
1277
+ <td><code>&quot;lower-hyphen&quot;</code> | <code>&quot;lower-underscore&quot;</code> | <code>&quot;bcp47-hyphen&quot;</code> | <code>&quot;bcp47-underscore&quot;</code> | null</td>
1278
+ <td>Locale-code rendering style for this output. Default: the adapter&#39;s own convention (<code>bcp47-underscore</code> for ARB, <code>lower-hyphen</code> for all others). Applies to the <code>{locale}</code> path token and any in-file locale token.</td>
1279
+ </tr>
1280
+ <tr>
1281
+ <td><code>localeMap</code></td>
1282
+ <td><code>{ [canonicalCode]: exportToken }</code> | null</td>
1283
+ <td>Per-locale override that wins over <code>localeCase</code>. Keys are canonical (lowercase-hyphen) codes and must be locales in <code>config.locales</code>. E.g. <code>{ &quot;zh-hant&quot;: &quot;zh_HK&quot; }</code>.</td>
1284
+ </tr>
1285
+ </tbody></table>
1286
+ <h2><code>ai</code> (object, required)</h2>
1287
+ <p>Translation provider settings — full detail in AI Providers.</p>
1288
+ <table>
1289
+ <thead>
1290
+ <tr>
1291
+ <th>Field</th>
1292
+ <th>Type</th>
1293
+ <th>Default</th>
1294
+ </tr>
1295
+ </thead>
1296
+ <tbody><tr>
1297
+ <td><code>provider</code></td>
1298
+ <td><code>anthropic</code> | <code>openai</code> | <code>bedrock</code></td>
1299
+ <td><code>anthropic</code></td>
1300
+ </tr>
1301
+ <tr>
1302
+ <td><code>model</code></td>
1303
+ <td>string</td>
1304
+ <td><code>claude-opus-4-8</code></td>
1305
+ </tr>
1306
+ <tr>
1307
+ <td><code>endpoint</code></td>
1308
+ <td>string | null</td>
1309
+ <td><code>null</code></td>
1310
+ </tr>
1311
+ <tr>
1312
+ <td><code>region</code></td>
1313
+ <td>string | null</td>
1314
+ <td><code>null</code></td>
1315
+ </tr>
1316
+ <tr>
1317
+ <td><code>batchSize</code></td>
1318
+ <td>number</td>
1319
+ <td><code>25</code></td>
1320
+ </tr>
1321
+ </tbody></table>
1322
+ <h2><code>format</code> (object, required)</h2>
1323
+ <p>Controls how <code>glotfile.json</code> is written — keeps diffs small. See The State File.</p>
1324
+ <table>
1325
+ <thead>
1326
+ <tr>
1327
+ <th>Field</th>
1328
+ <th>Type</th>
1329
+ <th>Default</th>
1330
+ </tr>
1331
+ </thead>
1332
+ <tbody><tr>
1333
+ <td><code>indent</code></td>
1334
+ <td>number</td>
1335
+ <td><code>2</code></td>
1336
+ </tr>
1337
+ <tr>
1338
+ <td><code>sortKeys</code></td>
1339
+ <td>boolean</td>
1340
+ <td><code>true</code></td>
1341
+ </tr>
1342
+ <tr>
1343
+ <td><code>finalNewline</code></td>
1344
+ <td>boolean</td>
1345
+ <td><code>true</code></td>
1346
+ </tr>
1347
+ </tbody></table>
1348
+ <h2><code>spelling</code> (object, optional)</h2>
1349
+ <table>
1350
+ <thead>
1351
+ <tr>
1352
+ <th>Field</th>
1353
+ <th>Type</th>
1354
+ <th>Meaning</th>
1355
+ </tr>
1356
+ </thead>
1357
+ <tbody><tr>
1358
+ <td><code>customWords</code></td>
1359
+ <td>string[]</td>
1360
+ <td>Words the spelling check always accepts.</td>
1361
+ </tr>
1362
+ </tbody></table>
1363
+ <h2><code>lint</code> (object, optional)</h2>
1364
+ <p>Tune the validation rules.</p>
1365
+ <table>
1366
+ <thead>
1367
+ <tr>
1368
+ <th>Field</th>
1369
+ <th>Type</th>
1370
+ <th>Meaning</th>
1371
+ </tr>
1372
+ </thead>
1373
+ <tbody><tr>
1374
+ <td><code>rules</code></td>
1375
+ <td><code>{ [ruleId]: &quot;error&quot; | &quot;warn&quot; | &quot;off&quot; }</code></td>
1376
+ <td>Per-rule severity overrides.</td>
1377
+ </tr>
1378
+ <tr>
1379
+ <td><code>ignore</code></td>
1380
+ <td>string[]</td>
1381
+ <td>Key globs to skip.</td>
1382
+ </tr>
1383
+ <tr>
1384
+ <td><code>dictionary</code></td>
1385
+ <td>string[]</td>
1386
+ <td>Extra accepted words for spelling.</td>
1387
+ </tr>
1388
+ <tr>
1389
+ <td><code>spelling.locales</code></td>
1390
+ <td><code>{ [locale]: dictId }</code></td>
1391
+ <td>Use a specific dictionary for a locale.</td>
1392
+ </tr>
1393
+ </tbody></table>
1394
+ <blockquote>
1395
+ <p><strong>⚠ Validation on load</strong> — Glotfile validates the whole file when it loads. A bad <code>sourceLocale</code>, an unknown rule id, a plural key missing its <code>other</code> form, or a malformed value fails with a specific message rather than corrupting data.</p>
1396
+ </blockquote>
1397
+ <h2>Related</h2>
1398
+ <ul>
1399
+ <li>The State File · Output Formats · AI Providers · Checks and Validation</li>
1400
+ </ul>
1401
+ `},{id:`reference/output-formats`,title:`Output Formats`,section:`Reference`,html:`<h1>Output Formats</h1>
1402
+ <p>Glotfile exports your catalog to the locale formats your apps consume. You configure outputs in <code>config.outputs</code> (via Settings or the file); each entry names an <strong>adapter</strong> and a <strong>path template</strong>. <code>glotfile export</code> writes them all.</p>
1403
+ <pre><code class="language-json">&quot;outputs&quot;: [
1404
+ { &quot;adapter&quot;: &quot;flutter-arb&quot;, &quot;path&quot;: &quot;lib/l10n/app_{locale}.arb&quot; },
1405
+ { &quot;adapter&quot;: &quot;laravel-php&quot;, &quot;path&quot;: &quot;lang/{locale}/{namespace}.php&quot; },
1406
+ { &quot;adapter&quot;: &quot;i18next-json&quot;, &quot;path&quot;: &quot;public/locales/{locale}/translation.json&quot; }
1407
+ ]
1408
+ </code></pre>
1409
+ <h2>Adapters</h2>
1410
+ <table>
1411
+ <thead>
1412
+ <tr>
1413
+ <th>Adapter</th>
1414
+ <th>Target</th>
1415
+ <th>Placeholder style</th>
1416
+ <th>Files written</th>
1417
+ </tr>
1418
+ </thead>
1419
+ <tbody><tr>
1420
+ <td><code>flutter-arb</code></td>
1421
+ <td>Flutter <code>.arb</code></td>
1422
+ <td>ICU</td>
1423
+ <td>one per locale</td>
1424
+ </tr>
1425
+ <tr>
1426
+ <td><code>laravel-php</code></td>
1427
+ <td>Laravel <code>lang/**/*.php</code> arrays</td>
1428
+ <td><code>:named</code></td>
1429
+ <td>one per locale <strong>per namespace</strong></td>
1430
+ </tr>
1431
+ <tr>
1432
+ <td><code>i18next-json</code></td>
1433
+ <td>i18next / generic JSON</td>
1434
+ <td><code>{{named}}</code></td>
1435
+ <td>one per locale</td>
1436
+ </tr>
1437
+ <tr>
1438
+ <td><code>vue-i18n-json</code></td>
1439
+ <td>Vue I18n JSON</td>
1440
+ <td><code>{named}</code></td>
1441
+ <td>one per locale</td>
1442
+ </tr>
1443
+ <tr>
1444
+ <td><code>gettext-po</code></td>
1445
+ <td>gettext <code>.po</code></td>
1446
+ <td>printf (<code>%s</code>)</td>
1447
+ <td>one per locale</td>
1448
+ </tr>
1449
+ <tr>
1450
+ <td><code>apple-stringsdict</code></td>
1451
+ <td>Apple <code>.stringsdict</code></td>
1452
+ <td>printf</td>
1453
+ <td>one per locale</td>
1454
+ </tr>
1455
+ </tbody></table>
1456
+ <h2>Path templates</h2>
1457
+ <p>Two tokens are substituted in <code>path</code>:</p>
1458
+ <ul>
1459
+ <li><strong><code>{locale}</code></strong> — the locale code (<code>en</code>, <code>fr</code>, …). Used by every adapter.</li>
1460
+ <li><strong><code>{namespace}</code></strong> — the <strong>first dot-segment</strong> of the key. Used by adapters that split files by namespace.</li>
1461
+ </ul>
1462
+ <blockquote>
1463
+ <p><strong>Example:</strong> How <code>{namespace}</code> works — with <code>laravel-php</code> and path <code>lang/{locale}/{namespace}.php</code>, the key <code>auth.signIn.button</code> is written as <code>signIn.button</code> inside <code>lang/fr/auth.php</code>. Keys with no dot fall into a <code>messages</code> namespace.</p>
1464
+ </blockquote>
1465
+ <h2>Locale code rendering</h2>
1466
+ <p>By default each adapter renders locale codes in its own convention: <code>flutter-arb</code> uses BCP-47 with underscores (<code>en_US</code>, <code>zh_Hant_TW</code>); every other adapter uses glotfile&#39;s internal lowercase-hyphen form (<code>en-us</code>).</p>
1467
+ <h3><code>localeCase</code></h3>
1468
+ <p>The optional <code>localeCase</code> field on an output entry overrides the adapter default for <strong>all</strong> locales in that output:</p>
1469
+ <table>
1470
+ <thead>
1471
+ <tr>
1472
+ <th>Value</th>
1473
+ <th>Example</th>
1474
+ </tr>
1475
+ </thead>
1476
+ <tbody><tr>
1477
+ <td><code>lower-hyphen</code></td>
1478
+ <td><code>en-us</code>, <code>zh-hant-tw</code></td>
1479
+ </tr>
1480
+ <tr>
1481
+ <td><code>lower-underscore</code></td>
1482
+ <td><code>en_us</code>, <code>zh_hant_tw</code></td>
1483
+ </tr>
1484
+ <tr>
1485
+ <td><code>bcp47-hyphen</code></td>
1486
+ <td><code>en-US</code>, <code>zh-Hant-TW</code></td>
1487
+ </tr>
1488
+ <tr>
1489
+ <td><code>bcp47-underscore</code></td>
1490
+ <td><code>en_US</code>, <code>zh_Hant_TW</code></td>
1491
+ </tr>
1492
+ </tbody></table>
1493
+ <p><code>localeCase</code> applies to the <code>{locale}</code> filename token <strong>and</strong> any in-file locale token (ARB <code>@@locale</code>, gettext <code>Language:</code>).</p>
1494
+ <h3><code>localeMap</code></h3>
1495
+ <p>The optional <code>localeMap</code> field maps individual canonical locale codes to exact export tokens, overriding <code>localeCase</code> for those locales:</p>
1496
+ <pre><code class="language-json">{ &quot;adapter&quot;: &quot;flutter-arb&quot;, &quot;path&quot;: &quot;lib/l10n/app_{locale}.arb&quot;,
1497
+ &quot;localeMap&quot;: { &quot;zh-hant&quot;: &quot;zh_HK&quot; } }
1498
+ </code></pre>
1499
+ <p>Keys are <strong>canonical</strong> (lowercase-hyphen) codes and must be locales present in <code>config.locales</code>. Use <code>localeMap</code> for semantic remaps that no style can express — for example, Flutter rejects script subtags so <code>zh-hant</code> must ship as <code>zh_HK</code>; Android requires <code>zh-rHK</code>.</p>
1500
+ <blockquote>
1501
+ <p><strong>⚠ Locale collision</strong> — if two locales resolve to the same export token after applying <code>localeCase</code> and <code>localeMap</code>, <code>glotfile export</code> emits a <code>locale-collision</code> warning and writes only the first locale&#39;s file (in config order), skipping the colliding ones rather than silently overwriting.</p>
1502
+ </blockquote>
1503
+ <h3>Round-trip safety</h3>
1504
+ <p><code>glotfile import</code> sets <code>localeCase</code> and <code>localeMap</code> automatically: it inspects the filenames it finds, picks the <code>localeCase</code> that reproduces them, and records only the exceptions in <code>localeMap</code>. A subsequent <code>glotfile export</code> produces byte-identical files.</p>
1505
+ <h2>The <code>style</code> option</h2>
1506
+ <p>Some adapters accept an optional <code>style</code> to tune their output. For example, <code>vue-i18n-json</code> supports a <strong>flat</strong> layout:</p>
1507
+ <pre><code class="language-json">{ &quot;adapter&quot;: &quot;vue-i18n-json&quot;, &quot;path&quot;: &quot;src/locales/{locale}.json&quot;, &quot;style&quot;: &quot;flat&quot; }
1508
+ </code></pre>
1509
+ <p>(Without <code>style</code>, JSON adapters nest keys by their dot segments.)</p>
1510
+ <h2>Lossless where possible, loud where not</h2>
1511
+ <p>Placeholders and ICU <code>plural</code>/<code>select</code> structure are <strong>preserved</strong> and converted to each format&#39;s native mechanism. Where a conversion would be lossy, <code>glotfile export</code> emits a <strong>warning</strong> and writes safe output rather than corrupting the file. See Placeholders and ICU.</p>
1512
+ <h2>Round-tripping (import)</h2>
1513
+ <blockquote>
1514
+ <p><strong>Info:</strong> 🚧 Coming soon — <code>glotfile import</code> will read existing files back into the catalog using these same adapters in reverse.</p>
1515
+ </blockquote>
1516
+ <h2>Related</h2>
1517
+ <ul>
1518
+ <li>export · Placeholders and ICU · Plurals · Configuration Reference</li>
1519
+ </ul>
1520
+ `},{id:`reference/placeholders-and-icu`,title:`Placeholders and ICU`,section:`Reference`,html:`<h1>Placeholders and ICU</h1>
1521
+ <p>Translations must keep the machinery the source string carries: <strong>interpolation placeholders</strong> and <strong>ICU plural/select</strong> structure. Glotfile protects both during translation, validation, and export.</p>
1522
+ <h2>One canonical form, converted on export</h2>
1523
+ <p>Glotfile stores every placeholder in a single <strong>canonical</strong> form — <code>{name}</code> —
1524
+ no matter what style the source file used. Import normalises to it; export
1525
+ converts it to each adapter&#39;s native style. So you edit and validate against one
1526
+ syntax, and each output file still gets the flavour its framework expects.</p>
1527
+ <table>
1528
+ <thead>
1529
+ <tr>
1530
+ <th>Format</th>
1531
+ <th>Native style</th>
1532
+ <th>Example</th>
1533
+ <th>On import → stored</th>
1534
+ <th>On export ← stored</th>
1535
+ </tr>
1536
+ </thead>
1537
+ <tbody><tr>
1538
+ <td>Flutter ARB</td>
1539
+ <td>ICU named</td>
1540
+ <td><code>{name}</code></td>
1541
+ <td><code>{name}</code> (already canonical)</td>
1542
+ <td><code>{name}</code></td>
1543
+ </tr>
1544
+ <tr>
1545
+ <td>Vue I18n</td>
1546
+ <td>single braces</td>
1547
+ <td><code>{name}</code></td>
1548
+ <td><code>{name}</code> (already canonical)</td>
1549
+ <td><code>{name}</code></td>
1550
+ </tr>
1551
+ <tr>
1552
+ <td>Laravel</td>
1553
+ <td>colon</td>
1554
+ <td><code>:name</code></td>
1555
+ <td><code>{name}</code></td>
1556
+ <td><code>:name</code></td>
1557
+ </tr>
1558
+ <tr>
1559
+ <td>i18next</td>
1560
+ <td>double braces</td>
1561
+ <td><code>{{name}}</code></td>
1562
+ <td><code>{name}</code></td>
1563
+ <td><code>{{name}}</code></td>
1564
+ </tr>
1565
+ </tbody></table>
1566
+ <p>A translation that <strong>drops, renames, or adds</strong> a placeholder relative to the
1567
+ source is:</p>
1568
+ <ul>
1569
+ <li><strong>rejected</strong> by AI translation (not written), and</li>
1570
+ <li>flagged by the <code>placeholder-mismatch</code> rule.</li>
1571
+ </ul>
1572
+ <p>Because everything is canonical internally, the editor and the checks only ever
1573
+ look for <code>{name}</code> — they never mistake an unrelated colon or percent sign (a
1574
+ time like <code>(h:m)</code>, a ratio <code>a:b</code>) for a placeholder.</p>
1575
+ <blockquote>
1576
+ <p><strong>printf formats</strong> (<code>%s</code>, <code>%d</code> in gettext and Apple <code>.stringsdict</code>) are
1577
+ <strong>export-only and lossy</strong> — they sit outside the canonical guarantee. See
1578
+ <em>Lossy conversions</em> below.</p>
1579
+ </blockquote>
1580
+ <h2>Escaping a literal <code>{name}</code></h2>
1581
+ <p>To write text that <em>looks</em> like a placeholder but should be left alone, use
1582
+ <strong>ICU apostrophe quoting</strong>:</p>
1583
+ <table>
1584
+ <thead>
1585
+ <tr>
1586
+ <th>You write</th>
1587
+ <th>You get</th>
1588
+ </tr>
1589
+ </thead>
1590
+ <tbody><tr>
1591
+ <td><code>&#39;{&#39;</code></td>
1592
+ <td>a literal <code>{</code></td>
1593
+ </tr>
1594
+ <tr>
1595
+ <td><code>&#39;{name}&#39;</code></td>
1596
+ <td>the literal text <code>{name}</code> (not a token)</td>
1597
+ </tr>
1598
+ <tr>
1599
+ <td><code>&#39;&#39;</code></td>
1600
+ <td>a literal apostrophe <code>&#39;</code></td>
1601
+ </tr>
1602
+ </tbody></table>
1603
+ <p>Quoted spans are treated as plain text, so <code>&#39;{name}&#39;</code> is never flagged by the
1604
+ checks or altered by AI translation. ARB output (ICU) preserves the quoting on
1605
+ round-trip.</p>
1606
+ <h2>ICU plural and select</h2>
1607
+ <p>ICU constructs like:</p>
1608
+ <pre><code>{count, plural, one {# item} other {# items}}
1609
+ {gender, select, male {he} female {she} other {they}}
1610
+ </code></pre>
1611
+ <p>are preserved structurally. The <code>icu-mismatch</code> rule flags a string where one side (source or translation) is an ICU plural/select and the other isn&#39;t. See also Plurals for the dedicated plural-key model.</p>
1612
+ <h2>Lossy conversions</h2>
1613
+ <p>Not every format can represent every construct. When export hits one it can&#39;t faithfully convert, it <strong>warns and writes safe output</strong> rather than emitting something broken:</p>
1614
+ <pre><code>warning [icu-unsupported] cart.items @ de: not representable in target format; wrote fallback
1615
+ </code></pre>
1616
+ <p>Treat these warnings as a prompt to simplify the string or pick a different adapter for that output.</p>
1617
+ <h2>Related</h2>
1618
+ <ul>
1619
+ <li>Plurals · Output Formats · Checks and Validation · How Translation Works</li>
1620
+ </ul>
1621
+ `},{id:`guides/continuous-integration`,title:`Continuous Integration`,section:`Guides`,html:`<h1>Continuous Integration</h1>
1622
+ <p>Glotfile is built to run in CI so a broken or stale translation state can&#39;t reach <code>main</code>. The key command is <code>glotfile check</code>; <code>glotfile lint</code> gives you finer control.</p>
1623
+ <h2>The one-liner</h2>
1624
+ <p>Add a single step that validates the catalog <strong>and</strong> confirms exports are up to date:</p>
1625
+ <pre><code class="language-bash">glotfile check
1626
+ </code></pre>
1627
+ <p><code>check</code> exits non-zero if there are any errors — a lint error <em>or</em> an <code>output-stale</code> finding (someone changed copy but forgot to run <code>glotfile export</code>). That one command is usually all you need.</p>
1628
+ <blockquote>
1629
+ <p><strong>Tip:</strong> Why <code>check</code> over <code>export</code> + <code>git diff</code> — <code>check</code> re-exports in memory and compares to disk, so you don&#39;t need to write files and diff. It also catches catalog problems (placeholder mismatches, empty translations, glossary violations) that a diff wouldn&#39;t.</p>
1630
+ </blockquote>
1631
+ <h2>What gets gated</h2>
1632
+ <table>
1633
+ <thead>
1634
+ <tr>
1635
+ <th>Failure</th>
1636
+ <th>Caught by</th>
1637
+ <th>Default severity</th>
1638
+ </tr>
1639
+ </thead>
1640
+ <tbody><tr>
1641
+ <td>Empty source / empty translation</td>
1642
+ <td><code>lint</code>, <code>check</code></td>
1643
+ <td>error</td>
1644
+ </tr>
1645
+ <tr>
1646
+ <td>Placeholder or ICU mismatch</td>
1647
+ <td><code>lint</code>, <code>check</code></td>
1648
+ <td>error</td>
1649
+ </tr>
1650
+ <tr>
1651
+ <td>Glossary violation</td>
1652
+ <td><code>lint</code>, <code>check</code></td>
1653
+ <td>error</td>
1654
+ </tr>
1655
+ <tr>
1656
+ <td>Length / identical-to-source / whitespace / spelling</td>
1657
+ <td><code>lint</code>, <code>check</code></td>
1658
+ <td>warn</td>
1659
+ </tr>
1660
+ <tr>
1661
+ <td>Exported file missing or stale</td>
1662
+ <td><code>check</code> only</td>
1663
+ <td>error</td>
1664
+ </tr>
1665
+ </tbody></table>
1666
+ <p>Tune severities in <code>config.lint</code> — see Checks and Validation.</p>
1667
+ <h2>GitHub Actions</h2>
1668
+ <pre><code class="language-yaml">name: i18n
1669
+ on: [pull_request]
1670
+ jobs:
1671
+ glotfile:
1672
+ runs-on: ubuntu-latest
1673
+ steps:
1674
+ - uses: actions/checkout@v4
1675
+ - uses: actions/setup-node@v4
1676
+ with:
1677
+ node-version: 22
1678
+ - run: npx glotfile check
1679
+ </code></pre>
1680
+ <blockquote>
1681
+ <p><strong>Note:</strong> No credentials needed in CI — <code>check</code> and <code>lint</code> are fully offline — only translate needs an API key. Don&#39;t put translation secrets in CI just to validate.</p>
1682
+ </blockquote>
1683
+ <h2>Failing on warnings</h2>
1684
+ <p>By default only errors fail the build. To hold the line on warnings too:</p>
1685
+ <pre><code class="language-bash">glotfile lint --max-warnings 0
1686
+ </code></pre>
1687
+ <p><code>lint</code> exits <code>1</code> when warnings exceed the threshold. Combine with <code>check</code> (run both) if you want stale-export gating <em>and</em> zero warnings.</p>
1688
+ <h2>Code scanning (SARIF)</h2>
1689
+ <p>Emit SARIF and upload it so findings appear inline on the PR, each located at its line in <code>glotfile.json</code>:</p>
1690
+ <pre><code class="language-yaml"> - run: npx glotfile lint --format sarif &gt; glotfile.sarif
1691
+ continue-on-error: true
1692
+ - uses: github/codeql-action/upload-sarif@v3
1693
+ with:
1694
+ sarif_file: glotfile.sarif
1695
+ </code></pre>
1696
+ <p><code>--format json</code> is also available for custom tooling.</p>
1697
+ <h2>Scoping a run</h2>
1698
+ <pre><code class="language-bash">glotfile lint --rule placeholder-mismatch,icu-mismatch # only the critical rules
1699
+ glotfile lint --locale fr,de # only some locales
1700
+ </code></pre>
1701
+ <h2>Related</h2>
1702
+ <ul>
1703
+ <li>lint and check · Checks and Validation · export · Translation Workflow</li>
1704
+ </ul>
1705
+ `},{id:`guides/keeping-translations-fresh`,title:`Keeping Translations Fresh`,section:`Guides`,html:`<h1>Keeping Translations Fresh</h1>
1706
+ <p>A translation is only correct relative to the source string it was made from. When you edit a source string, its translations may no longer match — Glotfile tracks this so nothing drifts silently.</p>
1707
+ <h2>How staleness is detected</h2>
1708
+ <p>Each translated value records the <strong>source string it was translated from</strong> (the <code>source</code> field on the value). When you change a source string, any translation whose recorded source no longer matches is flagged <strong><code>needs-review</code></strong>. See Review States.</p>
1709
+ <blockquote>
1710
+ <p><strong>Example:</strong>
1711
+ <code>auth.signIn.button</code> source <code>&quot;Sign in&quot;</code> → <code>fr: &quot;Se connecter&quot;</code> (reviewed, source <code>&quot;Sign in&quot;</code>).
1712
+ You change the source to <code>&quot;Log in&quot;</code>. The French value is now marked <code>needs-review</code> — it was translated from text that no longer exists.</p>
1713
+ </blockquote>
1714
+ <h2>Finding stale translations</h2>
1715
+ <ul>
1716
+ <li>In the Editor, filter to <strong>needs-review</strong>.</li>
1717
+ <li>Analytics counts <code>needs-review</code> per locale.</li>
1718
+ </ul>
1719
+ <h2>Fixing them</h2>
1720
+ <ol>
1721
+ <li>Review the flagged value against the new source.</li>
1722
+ <li>Edit it directly and mark it <code>reviewed</code>, <strong>or</strong></li>
1723
+ <li>Re-translate: a bare <code>glotfile translate</code> only fills <strong>empty</strong> values, so it won&#39;t touch a <code>needs-review</code> value that still has text. To have the AI redo non-empty values, run <code>glotfile translate --all</code> (or clear the stale value first, then <code>glotfile translate</code>). Either way, a value still marked <code>reviewed</code> is protected — unmark it first to have the AI redo it.</li>
1724
+ </ol>
1725
+ <h2>Why not auto-overwrite?</h2>
1726
+ <p>Glotfile flags rather than silently re-translating because a source edit might be cosmetic (a typo fix that doesn&#39;t change meaning) or substantive (a different action entirely). Only you know which — so it surfaces the change and lets you decide.</p>
1727
+ <h2>Related</h2>
1728
+ <ul>
1729
+ <li>Review States · How Translation Works · Translation Workflow</li>
1730
+ </ul>
1731
+ `},{id:`guides/translation-workflow`,title:`Translation Workflow`,section:`Guides`,html:`<h1>Translation Workflow</h1>
1732
+ <p>The day-to-day loop, end to end. This is the same flow as Quick Start, but with the <em>why</em> behind each step.</p>
1733
+ <h2>The loop</h2>
1734
+ <pre><code>author ──▶ translate ──▶ review ──▶ export ──▶ commit
1735
+ ▲ │
1736
+ └──────────────── next feature ───────────────┘
1737
+ </code></pre>
1738
+ <h3>1. Author source copy as you build</h3>
1739
+ <p>Run <code>glotfile serve</code> and add keys with their source strings in the Editor while you build a feature. Add a one-line context for anything ambiguous — it&#39;s the highest-leverage thing you can do for translation quality. Attach a screenshot for UI-heavy strings.</p>
1740
+ <h3>2. Fill the other languages</h3>
1741
+ <pre><code class="language-bash">glotfile translate
1742
+ </code></pre>
1743
+ <p>This fills only the empty values; pass <code>--all</code> to re-translate everything. Or use the Editor&#39;s translate action. New translations land as <code>machine</code>. See How Translation Works.</p>
1744
+ <h3>3. Review</h3>
1745
+ <p>Filter the Editor to <strong>machine</strong> and check the new translations. Promote good ones to <code>reviewed</code> (which protects them from being overwritten); flag the rest as <code>needs-review</code>. Watch the Analytics panel for reviewed-vs-translated coverage.</p>
1746
+ <h3>4. Export</h3>
1747
+ <pre><code class="language-bash">glotfile export
1748
+ </code></pre>
1749
+ <p>This regenerates your apps&#39; locale files from the catalog. See Output Formats.</p>
1750
+ <h3>5. Commit</h3>
1751
+ <p>Commit <code>glotfile.json</code> together with your code and the regenerated locale files. The diff <em>is</em> the review:</p>
1752
+ <pre><code class="language-bash">git add glotfile.json lib/l10n/
1753
+ git commit -m &quot;Checkout copy + translations&quot;
1754
+ </code></pre>
1755
+ <h2>Why git-native pays off</h2>
1756
+ <p>Because the catalog is just a file in your repo:</p>
1757
+ <ul>
1758
+ <li><strong>Branching</strong> — translations live on the feature branch with the code that needs them.</li>
1759
+ <li><strong>Pull-request review</strong> — reviewers see copy changes as a normal diff.</li>
1760
+ <li><strong>Rollback</strong> — reverting a commit reverts the copy too.</li>
1761
+ <li><strong>No drift</strong> — CI can fail the build if exports are stale or the catalog has problems.</li>
1762
+ </ul>
1763
+ <h2>Related</h2>
1764
+ <ul>
1765
+ <li>Continuous Integration · Keeping Translations Fresh · How Translation Works · Review States</li>
1766
+ </ul>
1767
+ `},{id:`troubleshooting-and-faq`,title:`Troubleshooting and FAQ`,section:`Help`,html:`<h1>Troubleshooting and FAQ</h1>
1768
+ <h2>Setup</h2>
1769
+ <p><strong><code>glotfile: command not found</code></strong>
1770
+ It&#39;s pre-1.0 and not yet on npm. Run from a checkout: <code>npm install &amp;&amp; npm run build &amp;&amp; node bin/glotfile.js</code>. See Installation.</p>
1771
+ <p><strong>Wrong Node version</strong>
1772
+ Glotfile needs Node <code>^20.19.0 || &gt;=22.12.0</code>. Check with <code>node -v</code>.</p>
1773
+ <h2>Translation</h2>
1774
+ <p><strong>&quot;Install the SDK for this provider&quot;</strong>
1775
+ OpenAI and Bedrock ship as optional dependencies. Install the one you selected — <code>npm i openai</code> or <code>npm i @aws-sdk/client-bedrock-runtime</code>. See AI Providers.</p>
1776
+ <p><strong>No API key / auth errors</strong>
1777
+ Set the provider&#39;s credentials in your environment or a local <code>.env</code>: <code>ANTHROPIC_API_KEY</code>, <code>OPENAI_API_KEY</code>, or the AWS chain. See AI Providers.</p>
1778
+ <p><strong>A translation was skipped</strong>
1779
+ The result failed validation — a dropped placeholder, broken ICU, or an over-length value. Glotfile prints the reason and leaves the value untranslated. See Placeholders and ICU and How Translation Works.</p>
1780
+ <p><strong>My reviewed translation didn&#39;t change after <code>translate</code></strong>
1781
+ That&#39;s intentional — <code>reviewed</code> values are protected from being overwritten. Unmark it first to re-translate.</p>
1782
+ <p><strong>Screenshots seem ignored</strong>
1783
+ The selected model may not support vision (e.g. Bedrock Meta Llama text models). The run proceeds text-only and warns how many screenshots were skipped. See Screenshots.</p>
1784
+ <h2>Validation and CI</h2>
1785
+ <p><strong><code>check</code> fails with <code>output-stale</code></strong>
1786
+ Your exported files don&#39;t match the catalog. Run <code>glotfile export</code> and commit the result. See Continuous Integration.</p>
1787
+ <p><strong>Spelling flags real words</strong>
1788
+ Add them to the custom dictionary in Settings (<code>config.spelling.customWords</code>) or <code>config.lint.dictionary</code>. Glossary terms are accepted automatically. See Checks and Validation.</p>
1789
+ <p><strong>A rule is too noisy</strong>
1790
+ Override its severity (or turn it off) in <code>config.lint.rules</code>, or <code>ignore</code> certain key globs. See Configuration Reference.</p>
1791
+ <h2>Files and git</h2>
1792
+ <p><strong>Can I edit <code>glotfile.json</code> by hand?</strong>
1793
+ You can, but you rarely need to — the UI writes it for you, deterministically. If you do edit it, keep it valid: it&#39;s validated on load. See The State File.</p>
1794
+ <p><strong>Big diffs on every save</strong>
1795
+ Check <code>config.format</code> (<code>indent</code>, <code>sortKeys</code>, <code>finalNewline</code>). Deterministic formatting keeps diffs minimal. See The State File.</p>
1796
+ <h2>General</h2>
1797
+ <p><strong>Do I already have translations I can import?</strong>
1798
+ Importing existing locale files is <strong>🚧 coming soon</strong> — see import. For now, add keys via the Editor.</p>
1799
+ <p><strong>Does anything leave my machine?</strong>
1800
+ Only the AI calls you trigger. The UI is local-only; no credentials or screenshot bytes are ever logged. See AI Log.</p>
1801
+ <h2>Related</h2>
1802
+ <ul>
1803
+ <li>Home · Installation · AI Providers · Continuous Integration</li>
1804
+ </ul>
1805
+ `}],Wj={class:`flex min-h-0 flex-1 overflow-hidden`},Gj={class:`flex w-56 shrink-0 flex-col gap-1 overflow-y-auto border-r bg-muted/30 px-2 py-3`},Kj=[`onClick`],qj={class:`min-w-0 flex-1 overflow-y-auto`},Jj=[`innerHTML`],Yj=F({__name:`DocsView`,setup(e){let t=[``,`Getting Started`,`Web UI`,`CLI`,`Concepts`,`AI Translation`,`Reference`,`Guides`,`Help`],n=j(Uj[0]?.id??``),r=q(()=>{let e=new Map;for(let n of t)e.set(n,[]);for(let t of Uj)e.has(t.section)||e.set(t.section,[]),e.get(t.section).push(t);return t.map(t=>({section:t,pages:e.get(t)??[]})).filter(e=>e.pages.length>0)}),i=q(()=>Uj.find(e=>e.id===n.value)??Uj[0]);return(e,t)=>(z(),B(`div`,Wj,[H(`nav`,Gj,[(z(!0),B(R,null,I(r.value,(e,t)=>(z(),B(R,{key:e.section},[e.section?(z(),B(`div`,{key:0,class:k([`px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,t>0?`mt-3`:``])},A(e.section),3)):G(``,!0),(z(!0),B(R,null,I(e.pages,e=>(z(),B(`button`,{key:e.id,type:`button`,class:k([`w-full rounded-md px-2 py-1 text-left text-sm transition-colors`,n.value===e.id?`bg-primary text-primary-foreground`:`text-foreground hover:bg-accent hover:text-accent-foreground`]),onClick:t=>n.value=e.id},A(e.title),11,Kj))),128))],64))),128))]),H(`div`,qj,[H(`div`,{class:`prose prose-sm dark:prose-invert mx-auto max-w-3xl px-8 py-6`,innerHTML:i.value?.html},null,8,Jj)])]))}}),Xj={en:{name:`English`,country:`US`},fr:{name:`French`,country:`FR`},de:{name:`German`,country:`DE`},es:{name:`Spanish`,country:`ES`},pt:{name:`Portuguese`,country:`BR`},it:{name:`Italian`,country:`IT`},nl:{name:`Dutch`,country:`NL`},ca:{name:`Catalan`,country:`ES`},pl:{name:`Polish`,country:`PL`},ru:{name:`Russian`,country:`RU`},uk:{name:`Ukrainian`,country:`UA`},cs:{name:`Czech`,country:`CZ`},sk:{name:`Slovak`,country:`SK`},sv:{name:`Swedish`,country:`SE`},da:{name:`Danish`,country:`DK`},no:{name:`Norwegian`,country:`NO`},nb:{name:`Norwegian Bokmål`,country:`NO`},fi:{name:`Finnish`,country:`FI`},tr:{name:`Turkish`,country:`TR`},el:{name:`Greek`,country:`GR`},ro:{name:`Romanian`,country:`RO`},hu:{name:`Hungarian`,country:`HU`},bg:{name:`Bulgarian`,country:`BG`},hr:{name:`Croatian`,country:`HR`},sr:{name:`Serbian`,country:`RS`},sl:{name:`Slovenian`,country:`SI`},ja:{name:`Japanese`,country:`JP`},ko:{name:`Korean`,country:`KR`},zh:{name:`Chinese`,country:`CN`},ar:{name:`Arabic`,country:`SA`},he:{name:`Hebrew`,country:`IL`},hi:{name:`Hindi`,country:`IN`},th:{name:`Thai`,country:`TH`},vi:{name:`Vietnamese`,country:`VN`},id:{name:`Indonesian`,country:`ID`},ms:{name:`Malay`,country:`MY`},fa:{name:`Persian`,country:`IR`}};function Zj(e){let t=e.toUpperCase();if(!/^[A-Z]{2}$/.test(t))return`🌐`;let n=127462;return String.fromCodePoint(n+(t.charCodeAt(0)-65),n+(t.charCodeAt(1)-65))}function Qj(e){let[t=``,n]=e.split(/[-_]/),r=Xj[t.toLowerCase()],i=n&&/^[A-Za-z]{2}$/.test(n)?n.toUpperCase():void 0,a=i??r?.country,o=r?.name??e;return{code:e,name:i?`${o} (${i})`:o,flag:a?Zj(a):`🌐`}}var $j={class:`p-6`},eM={class:`flex items-start gap-3 pr-6`},tM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-lg border border-primary/25 bg-primary/10 font-mono text-[13px] font-semibold leading-none tracking-tight text-primary`},nM={class:`min-w-0`},rM={class:`font-medium text-foreground`},iM={class:`font-mono text-[12px]`},aM={class:`mt-4 flex items-center gap-4 rounded-lg border border-border bg-muted/40 px-3.5 py-2.5`},oM={class:`flex flex-col`},sM={class:`text-[17px] font-semibold leading-none tabular-nums`},cM={class:`flex flex-col`},lM={class:`text-[17px] font-semibold leading-none tabular-nums`},uM={class:`ml-auto flex items-center gap-1.5 whitespace-nowrap text-[11px] text-muted-foreground`},dM={class:`mt-5`},fM={class:`!flex min-w-0 items-center gap-2`},pM={class:`text-[13px] leading-none`},mM={class:`font-mono text-[13px]`},hM={class:`truncate text-[13px] text-muted-foreground`},gM={class:`flex items-center gap-2`},_M={class:`text-[13px] leading-none`},vM={class:`font-mono text-[13px]`},yM={class:`text-[13px] text-muted-foreground`},bM={class:`mt-4`},xM={class:`flex items-center justify-between`},SM={class:`whitespace-nowrap text-[12px] tabular-nums text-muted-foreground`},CM={class:`mt-1.5 flex flex-wrap gap-1.5 rounded-lg border border-border bg-muted/30 p-2.5`},wM=[`disabled`,`title`,`onClick`],TM={class:`text-[13px] leading-none`},EM={class:`font-mono`},DM={key:0,class:`ml-0.5 rounded-sm bg-primary/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-primary`},OM={key:0,class:`mt-4`},kM={class:`overflow-hidden rounded-lg border border-border`},AM={class:`ml-auto font-mono text-[11px] text-muted-foreground/70`},jM={key:0,class:`divide-y divide-border border-t border-border gf-content-fade`},MM={class:`shrink-0 font-mono text-foreground`},NM={class:`ml-auto truncate text-right text-muted-foreground`},PM={key:0,class:`px-3 py-1.5 text-[11px] text-muted-foreground/70`},FM={class:`flex items-center gap-2 border-t border-border px-6 py-4`},IM={class:`ml-1 flex cursor-pointer select-none items-center gap-1.5 text-[12px] text-muted-foreground`,title:`Rewrite exact =N plural selectors (e.g. =1) into each language's CLDR plural categories, the way Crowdin does.`},LM={class:`ml-auto`},RM={class:`flex flex-col items-center justify-center gap-4 p-6 py-8 text-center`},zM={key:0,class:`mt-1 text-[13px] text-muted-foreground`},BM={class:`p-6`},VM={class:`flex flex-col items-center gap-3 pt-1 text-center`},HM={class:`grid h-12 w-12 place-items-center rounded-full bg-success-bg text-success ring-1 ring-success-border`},UM={class:`font-semibold text-foreground tabular-nums`},WM={class:`font-semibold text-foreground`},GM={key:0,class:`mt-5 overflow-hidden rounded-lg border border-warning-border bg-warning-bg/60`},KM={class:`whitespace-nowrap text-[13px] font-medium text-warning`},qM={key:0,class:`max-h-44 divide-y divide-warning-border/40 overflow-auto border-t border-warning-border/70 gf-content-fade`},JM={class:`flex items-center border-t border-border px-6 py-4`},YM={class:`ml-auto`},XM={class:`p-6`},ZM={class:`flex items-start gap-3 pr-6`},QM={class:`grid h-10 w-10 shrink-0 place-items-center rounded-full bg-destructive-soft text-destructive`},$M={class:`min-w-0`},eN={class:`flex items-center border-t border-border px-6 py-4`},tN={class:`ml-auto`},nN=F({__name:`ImportWizard`,emits:[`dismiss`,`imported`],setup(e,{expose:t,emit:n}){let r=n,i=j(!0),a=j(`confirm`),o=j(null),s=j(``),c=j({}),l=j(!1),u=j(!1),d=j(null),f=j(``),p=j(!0);t({init:m});async function m(){try{let e=await uf();if(!e.found){r(`dismiss`);return}o.value=e,s.value=e.sourceLocale}catch{r(`dismiss`)}}let h={"laravel-php":{label:`Laravel PHP`,glyph:`</>`,file:`lang/{locale}/*.php`},"vue-i18n-json":{label:`Vue i18n JSON`,glyph:`{ }`,file:`locales/{locale}.json`},"flutter-arb":{label:`Flutter ARB`,glyph:`arb`,file:`lib/l10n/app_{locale}.arb`}},g=q(()=>h[o.value?.format??``]??{label:o.value?.format??``,glyph:`{}`,file:``});function _(e){return e===s.value||!c.value[e]}function v(e){e!==s.value&&(c.value={...c.value,[e]:!c.value[e]})}let y=q(()=>o.value?o.value.locales.filter(_):[]),b=q(()=>y.value.length),x=q(()=>o.value?Math.max(0,o.value.keyCount-o.value.sampleKeys.length):0);async function S(){if(o.value){a.value=`importing`;try{d.value=await df({format:o.value.format,sourceLocale:s.value,locales:y.value,cldr:p.value}),a.value=`done`}catch(e){f.value=e.message,a.value=`error`}}}function C(e){e||a.value!==`importing`&&(a.value===`done`?r(`imported`):r(`dismiss`))}return(e,t)=>(z(),V(M(Xm),{open:i.value,"onUpdate:open":C},{default:N(()=>[U(M(Lh),null,{default:N(()=>[U(M(Fh),{class:`fixed inset-0 z-50 bg-foreground/40 gf-content-fade`}),U(M(Mh),{class:`fixed left-1/2 top-1/2 z-50 w-[28rem] max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-card text-card-foreground shadow-2xl focus:outline-none gf-content-fade`,onInteractOutside:t[9]||=Jl(()=>{},[`prevent`])},{default:N(()=>[a.value===`confirm`&&o.value?(z(),B(R,{key:0},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[0]||=e=>r(`dismiss`)},[U(M(Sd),{class:`size-4`})]),H(`div`,$j,[H(`div`,eM,[H(`div`,tM,A(g.value.glyph),1),H(`div`,nM,[U(M(Rh),{class:`text-base font-semibold leading-tight`},{default:N(()=>[...t[10]||=[W(`Import your translations`,-1)]]),_:1}),U(M(Nh),{class:`mt-0.5 text-[13px] text-muted-foreground`},{default:N(()=>[t[11]||=W(` Found a `,-1),H(`span`,rM,A(g.value.label),1),t[12]||=W(` setup in `,-1),H(`span`,iM,A(g.value.file),1),t[13]||=W(`. `,-1)]),_:1})])]),H(`div`,aM,[H(`div`,oM,[H(`span`,sM,A(o.value.keyCount.toLocaleString()),1),t[14]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`keys detected`,-1)]),t[17]||=H(`div`,{class:`h-7 w-px bg-border`},null,-1),H(`div`,cM,[H(`span`,lM,A(o.value.locales.length),1),t[15]||=H(`span`,{class:`mt-1 whitespace-nowrap text-[11px] text-muted-foreground`},`locales`,-1)]),H(`div`,uM,[U(M(Uu),{class:`size-3.5 opacity-70`}),t[16]||=W(` Detected automatically `,-1)])]),H(`div`,dM,[U(M(dS),{class:`flex items-center gap-1.5 whitespace-nowrap`},{default:N(()=>[...t[18]||=[W(` Source language `,-1),H(`span`,{class:`text-[12px] font-normal text-muted-foreground`},`· the original text`,-1)]]),_:1}),U(M(fy),{modelValue:s.value,"onUpdate:modelValue":t[1]||=e=>s.value=e},{default:N(()=>[U(M(Nx),{class:`mt-1.5`},{default:N(()=>[H(`span`,fM,[H(`span`,pM,A(M(Qj)(s.value).flag),1),H(`span`,mM,A(s.value),1),H(`span`,hM,A(M(Qj)(s.value).name),1)])]),_:1}),U(M(Px),null,{default:N(()=>[(z(!0),B(R,null,I(o.value.locales,e=>(z(),V(M(Ix),{key:e,value:e},{default:N(()=>[H(`span`,gM,[H(`span`,_M,A(M(Qj)(e).flag),1),H(`span`,vM,A(e),1),H(`span`,yM,A(M(Qj)(e).name),1)])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),H(`div`,bM,[H(`div`,xM,[U(M(dS),{class:`whitespace-nowrap`},{default:N(()=>[...t[19]||=[W(`Locales to import`,-1)]]),_:1}),H(`span`,SM,A(b.value)+` of `+A(o.value.locales.length),1)]),H(`div`,CM,[(z(!0),B(R,null,I(o.value.locales,e=>(z(),B(`button`,{key:e,type:`button`,disabled:e===s.value,title:e===s.value?`Source language — always imported`:_(e)?`Click to exclude`:`Click to include`,class:k([`group inline-flex h-7 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md border pl-1.5 pr-2 text-[12px] transition-colors`,e===s.value?`border-primary/40 bg-primary/10 cursor-default`:_(e)?`border-input bg-card text-foreground hover:bg-muted`:`border-dashed border-border bg-transparent text-muted-foreground hover:bg-muted/50`]),onClick:t=>v(e)},[H(`span`,TM,A(M(Qj)(e).flag),1),H(`span`,EM,A(e),1),e===s.value?(z(),B(`span`,DM,`src`)):(z(),B(`span`,{key:1,class:k([`grid size-3.5 place-items-center rounded-[3px] border`,_(e)?`border-primary bg-primary text-primary-foreground`:`border-border text-transparent`])},[U(M(Tu),{class:`size-2.5`,"stroke-width":3})],2))],10,wM))),128))])]),o.value.sampleKeys.length?(z(),B(`div`,OM,[H(`div`,kM,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2 text-[13px] text-muted-foreground transition-colors hover:bg-muted/50`,onClick:t[2]||=e=>l.value=!l.value},[U(M(Du),{class:k([`size-3.5 shrink-0 transition-transform`,l.value?`rotate-90`:``])},null,8,[`class`]),t[20]||=H(`span`,{class:`whitespace-nowrap`},`Preview sample keys`,-1),H(`span`,AM,A(g.value.glyph),1)]),l.value?(z(),B(`div`,jM,[(z(!0),B(R,null,I(o.value.sampleKeys,e=>(z(),B(`div`,{key:e.key,class:`flex items-baseline gap-3 px-3 py-1.5 text-[12px]`},[H(`span`,MM,A(e.key),1),H(`span`,NM,A(e.value),1)]))),128)),x.value>0?(z(),B(`div`,PM,` + `+A(x.value.toLocaleString())+` more keys `,1)):G(``,!0)])):G(``,!0)])])):G(``,!0)]),H(`div`,FM,[U(M(Q),{variant:`ghost`,size:`sm`,onClick:t[3]||=e=>r(`dismiss`)},{default:N(()=>[...t[21]||=[W(`Skip`,-1)]]),_:1}),H(`label`,IM,[_r(H(`input`,{type:`checkbox`,"data-testid":`cldr-toggle`,"onUpdate:modelValue":t[4]||=e=>p.value=e,class:`size-3.5 accent-primary`},null,512),[[Fl,p.value]]),t[22]||=W(` Convert plurals to CLDR categories `,-1)]),H(`div`,LM,[U(M(Q),{"data-testid":`import-btn`,disabled:b.value===0,onClick:S},{default:N(()=>[U(M(Cd),{class:`size-4`}),W(` Import `+A(b.value)+` `+A(b.value===1?`locale`:`locales`),1)]),_:1},8,[`disabled`])])])],64)):a.value===`importing`?(z(),B(R,{key:1},[U(M(Rh),{class:`sr-only`},{default:N(()=>[...t[23]||=[W(`Importing translations`,-1)]]),_:1}),H(`div`,RM,[U(M(Zu),{class:`size-10 text-primary gf-spin`}),H(`div`,null,[t[24]||=H(`div`,{class:`text-sm font-semibold`},`Importing translations…`,-1),o.value?(z(),B(`div`,zM,` Reading `+A(o.value.keyCount.toLocaleString())+` keys across `+A(b.value)+` locales `,1)):G(``,!0)])])],64)):a.value===`done`&&d.value?(z(),B(R,{key:2},[H(`div`,BM,[H(`div`,VM,[H(`div`,HM,[U(M(Tu),{class:`size-6`,"stroke-width":2.5})]),H(`div`,null,[U(M(Rh),{class:`text-base font-semibold`},{default:N(()=>[...t[25]||=[W(`Import complete`,-1)]]),_:1}),U(M(Nh),{class:`mt-1 text-[13px] text-muted-foreground`},{default:N(()=>[H(`span`,UM,A(d.value.keyCount.toLocaleString())+` keys`,1),t[26]||=W(` across `,-1),H(`span`,WM,A(d.value.localeCount)+` locales`,1),t[27]||=W(` imported. `,-1)]),_:1})])]),d.value.warnings.length?(z(),B(`div`,GM,[H(`button`,{type:`button`,class:`flex w-full items-center gap-2 px-3 py-2.5 text-left`,onClick:t[5]||=e=>u.value=!u.value},[U(M(vd),{class:`size-3.5 shrink-0 text-warning`}),H(`span`,KM,A(d.value.warnings.length)+` `+A(d.value.warnings.length===1?`warning`:`warnings`),1),t[28]||=H(`span`,{class:`whitespace-nowrap text-[12px] text-warning/70`},`· import still succeeded`,-1),U(M(Du),{class:k([`ml-auto size-3.5 shrink-0 text-warning transition-transform`,u.value?`rotate-90`:``])},null,8,[`class`])]),u.value?(z(),B(`ul`,qM,[(z(!0),B(R,null,I(d.value.warnings,(e,t)=>(z(),B(`li`,{key:t,class:`px-3 py-2 text-[12px] text-muted-foreground`},A(e),1))),128))])):G(``,!0)])):G(``,!0)]),H(`div`,JM,[H(`div`,YM,[U(M(Q),{onClick:t[6]||=e=>r(`imported`)},{default:N(()=>[t[29]||=W(`Open editor `,-1),U(M(bu),{class:`size-4`})]),_:1})])])],64)):a.value===`error`?(z(),B(R,{key:3},[H(`button`,{type:`button`,class:`absolute right-3.5 top-3.5 z-10 grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,onClick:t[7]||=e=>r(`dismiss`)},[U(M(Sd),{class:`size-4`})]),H(`div`,XM,[H(`div`,ZM,[H(`div`,QM,[U(M(vd),{class:`size-5`})]),H(`div`,$M,[U(M(Rh),{class:`text-base font-semibold`},{default:N(()=>[...t[30]||=[W(`Couldn't import translations`,-1)]]),_:1}),U(M(Nh),{class:`mt-1 text-[13px] text-muted-foreground`},{default:N(()=>[W(A(f.value),1)]),_:1})])])]),H(`div`,eN,[H(`div`,tN,[U(M(Q),{variant:`outline`,onClick:t[8]||=e=>r(`dismiss`)},{default:N(()=>[...t[31]||=[W(`Dismiss`,-1)]]),_:1})])])],64)):G(``,!0)]),_:1})]),_:1})]),_:1},8,[`open`]))}}),rN=`glotfile-theme`;function iN(){localStorage.getItem(rN)===`dark`&&document.documentElement.classList.add(`dark`)}function aN(){let e=document.documentElement;e.classList.toggle(`dark`),localStorage.setItem(rN,e.classList.contains(`dark`)?`dark`:`light`)}var oN=F({__name:`Kbd`,props:{class:{}},setup(e){return(e,t)=>(z(),B(`kbd`,{class:k(M(Ax)(`inline-flex h-5 min-w-5 items-center justify-center rounded border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground`,e.$props.class))},[L(e.$slots,`default`)],2))}}),sN=[{route:`editor`,keys:[`g`,`e`],label:`Editor`},{route:`analytics`,keys:[`g`,`a`],label:`Analytics`},{route:`glossary`,keys:[`g`,`g`],label:`Glossary`},{route:`screenshots`,keys:[`g`,`i`],label:`Screenshots`},{route:`settings`,keys:[`g`,`s`],label:`Settings`},{route:`ai-log`,keys:[`g`,`l`],label:`AI Log`},{route:`docs`,keys:[`g`,`d`],label:`Docs`}];function cN(e,t){if(e.pending===`g`){let e=sN.find(e=>e.keys[1]===t);return{state:{pending:null},action:e?{type:`navigate`,route:e.route}:null}}return t===`g`?{state:{pending:`g`},action:null}:t===`?`?{state:{pending:null},action:{type:`toggleHelp`}}:{state:{pending:null},action:null}}var lN={class:`flex w-14 shrink-0 flex-col items-center gap-1 bg-rail py-3 text-rail-foreground`},uN=[`aria-label`,`onClick`],dN={key:0,class:`flex items-center gap-0.5`},fN={class:`mt-auto`},pN=F({__name:`NavRail`,setup(e){let t=tp(),n=[{id:`editor`,label:`Editor`,icon:Yu},{id:`analytics`,label:`Analytics`,icon:wu},{id:`glossary`,label:`Glossary`,icon:Cu},{id:`screenshots`,label:`Screenshots`,icon:qu},{id:`settings`,label:`Settings`,icon:ud},{id:`ai-log`,label:`AI Log`,icon:cd},{id:`docs`,label:`Docs`,icon:Su}].map(e=>({...e,keys:sN.find(t=>t.route===e.id)?.keys}));return(e,r)=>(z(),V(M(Jy),{"delay-duration":300},{default:N(()=>[H(`nav`,lN,[r[2]||=H(`div`,{class:`mb-3 flex size-9 items-center justify-center rounded-md bg-primary font-mono text-base font-semibold text-primary-foreground`},` G `,-1),(z(!0),B(R,null,I(M(n),e=>(z(),V(M(Qy),{key:e.id},{default:N(()=>[U(M(rb),{"as-child":``},{default:N(()=>[H(`button`,{type:`button`,"aria-label":e.label,class:k(M(Ax)(`relative flex size-10 items-center justify-center rounded-md transition-colors`,M(t)===e.id?`bg-primary text-primary-foreground`:`text-rail-foreground/70 hover:bg-white/10 hover:text-rail-foreground`)),onClick:t=>M(ep)(e.id)},[(z(),V(ia(e.icon),{class:`size-5`}))],10,uN)]),_:2},1024),U(M(ES),{side:`right`,class:`flex items-center gap-2`},{default:N(()=>[H(`span`,null,A(e.label),1),e.keys?(z(),B(`span`,dN,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(oN,{key:t},{default:N(()=>[W(A(e),1)]),_:2},1024))),128))])):G(``,!0)]),_:2},1024)]),_:2},1024))),128)),H(`div`,fN,[U(M(Qy),null,{default:N(()=>[U(M(rb),{"as-child":``},{default:N(()=>[H(`button`,{type:`button`,"aria-label":`Toggle theme`,class:`flex size-10 items-center justify-center rounded-md text-rail-foreground/70 transition-colors hover:bg-white/10 hover:text-rail-foreground`,onClick:r[0]||=(...e)=>M(aN)&&M(aN)(...e)},[U(M(md),{class:`size-5 dark:hidden`}),U(M(ed),{class:`hidden size-5 dark:block`})])]),_:1}),U(M(ES),{side:`right`},{default:N(()=>[...r[1]||=[W(`Toggle theme`,-1)]]),_:1})]),_:1})])])]),_:1}))}}),mN={class:`flex flex-col gap-1`},hN={class:`flex items-center gap-1`},gN=F({__name:`ShortcutsDialog`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(e){let t=Xa(e,`open`);return(e,n)=>(z(),V(M(Xm),{open:t.value,"onUpdate:open":n[0]||=e=>t.value=e},{default:N(()=>[U(M(fS),{class:`max-w-sm`},{default:N(()=>[U(M(pS),null,{default:N(()=>[U(M(hS),null,{default:N(()=>[...n[1]||=[W(`Keyboard shortcuts`,-1)]]),_:1})]),_:1}),H(`ul`,mN,[(z(!0),B(R,null,I(M(sN),e=>(z(),B(`li`,{key:e.route,class:`flex items-center justify-between py-1 text-sm`},[H(`span`,null,A(e.label),1),H(`span`,hN,[(z(!0),B(R,null,I(e.keys,(e,t)=>(z(),V(oN,{key:t},{default:N(()=>[W(A(e),1)]),_:2},1024))),128))])]))),128))])]),_:1})]),_:1},8,[`open`]))}}),_N=j(!1),vN=1e3;function yN(){let e={pending:null},t=null;function n(){t!==null&&(clearTimeout(t),t=null)}function r(r){if(r.metaKey||r.ctrlKey||r.altKey||r.repeat)return;let i=r.target;if(i&&(i.tagName===`INPUT`||i.tagName===`TEXTAREA`||i.isContentEditable))return;let a=r.key.toLowerCase(),o=!!document.querySelector(`[role="dialog"],[role="menu"],[role="listbox"]`),s=a===`?`&&_N.value;if(o&&!s)return;let c=cN(e,a);e=c.state,n(),e.pending===`g`&&(t=window.setTimeout(()=>{e={pending:null},t=null},vN));let{action:l}=c;l&&(l.type===`navigate`?ep(l.route):_N.value=!_N.value,r.preventDefault())}Gi(()=>window.addEventListener(`keydown`,r)),Yi(()=>{n(),window.removeEventListener(`keydown`,r)})}var bN={class:`flex h-screen bg-background text-foreground`},xN={class:`flex min-w-0 flex-1 flex-col`},SN={class:`flex h-12 shrink-0 items-center justify-between border-b px-4`},CN={class:`flex min-w-0 items-center gap-3`},wN={key:0,class:`flex min-w-0 items-center gap-1.5`},TN={class:`max-w-[12rem] shrink-0 truncate font-mono text-sm font-medium`},EN={class:`truncate`},DN={class:`truncate`},ON={class:`text-sm font-semibold`},kN={class:`font-mono`},AN={class:`flex min-h-0 flex-1 flex-col overflow-hidden`},jN=F({__name:`App`,setup(e){let t=tp();yN();let n=dn(null),r=j(null),i=j([]),a=j(!1),o=j(null);async function s(){n.value=await Td()}Gi(async()=>{await s();try{[r.value,i.value]=await Promise.all([of(),sf()]),document.title=r.value.project?`${r.value.project} — Glotfile`:`Glotfile`}catch(e){$.error(e.message)}n.value&&Object.keys(n.value.keys).length===0&&(a.value=!0)});function c(){location.reload()}async function l(e){if(e!==r.value?.path)try{await cf(e),location.reload()}catch(e){$.error(e.message)}}let u=q(()=>({editor:`Editor`,analytics:`Analytics`,glossary:`Glossary`,screenshots:`Screenshots`,settings:`Settings`,"ai-log":`AI Log`,docs:`Docs`})[t.value]),d=q(()=>{if(!n.value)return null;let{sourceLocale:e,locales:t}=n.value.config;return{source:e,targets:t.filter(t=>t!==e)}});return(e,n)=>(z(),B(`div`,bN,[U(pN),H(`div`,xN,[H(`header`,SN,[H(`div`,CN,[r.value?(z(),B(`div`,wN,[U(M(Jy),{"delay-duration":300},{default:N(()=>[U(M(Qy),null,{default:N(()=>[U(M(rb),{"as-child":``},{default:N(()=>[H(`span`,TN,A(r.value.project),1)]),_:1}),U(M(ES),{side:`bottom`,class:`font-mono`},{default:N(()=>[W(A(r.value.dir),1)]),_:1})]),_:1})]),_:1}),U(M(Du),{class:`size-3.5 shrink-0 text-muted-foreground`}),U(M(Xv),null,{default:N(()=>[U(M(ny),{"as-child":``},{default:N(()=>[U(M(Q),{variant:`outline`,size:`sm`,class:`max-w-[16rem] gap-1.5 font-mono`},{default:N(()=>[H(`span`,EN,A(r.value.name),1),U(M(Ou),{class:`size-3.5 shrink-0 text-muted-foreground`})]),_:1})]),_:1}),U(M(_S),{align:`start`,class:`max-w-[20rem]`},{default:N(()=>[(z(!0),B(R,null,I(i.value,e=>(z(),V(M(vS),{key:e.path,class:`font-mono`,onSelect:t=>l(e.path)},{default:N(()=>[U(M(Tu),{class:k([`size-4`,e.path===r.value.path?`opacity-100`:`opacity-0`])},null,8,[`class`]),H(`span`,DN,A(e.name),1)]),_:2},1032,[`onSelect`]))),128))]),_:1})]),_:1})])):G(``,!0),H(`h1`,ON,A(u.value),1)]),d.value?(z(),V(M(Jy),{key:0,"delay-duration":300},{default:N(()=>[U(M(Qy),null,{default:N(()=>[U(M(rb),{"as-child":``},{default:N(()=>[H(`button`,{type:`button`,class:`shrink-0 font-mono text-xs text-muted-foreground transition-colors hover:text-foreground`,onClick:n[0]||=e=>M(ep)(`settings`)},A(d.value.source)+` → `+A(d.value.targets.length)+` `+A(d.value.targets.length===1?`locale`:`locales`),1)]),_:1}),U(M(ES),{side:`bottom`,class:`max-w-[28rem] leading-relaxed`},{default:N(()=>[H(`div`,kN,A(d.value.targets.join(`, `)||`—`),1),n[4]||=H(`div`,{class:`mt-1 text-background/60`},`Click to manage in Settings`,-1)]),_:1})]),_:1})]),_:1})):G(``,!0)]),H(`main`,AN,[M(t)===`editor`?(z(),V(kE,{key:0})):M(t)===`analytics`?(z(),V(rO,{key:1})):M(t)===`glossary`?(z(),V(EO,{key:2})):M(t)===`screenshots`?(z(),V(xj,{key:3})):M(t)===`settings`?(z(),V(oj,{key:4})):M(t)===`ai-log`?(z(),V(Hj,{key:5})):M(t)===`docs`?(z(),V(Yj,{key:6})):G(``,!0)])]),U(M(aS)),U(gN,{open:M(_N),"onUpdate:open":n[1]||=e=>un(_N)?_N.value=e:null},null,8,[`open`]),a.value?(z(),V(nN,{key:0,ref_key:`wizardRef`,ref:o,onVnodeMounted:n[2]||=e=>o.value?.init(),onDismiss:n[3]||=e=>a.value=!1,onImported:c},null,512)):G(``,!0)]))}});iN(),iu(jN).mount(`#app`);