aeo.js 0.0.2 → 0.0.3

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 (62) hide show
  1. package/README.md +132 -17
  2. package/dist/angular.d.mts +29 -0
  3. package/dist/angular.d.ts +29 -0
  4. package/dist/angular.js +1314 -0
  5. package/dist/angular.js.map +1 -0
  6. package/dist/angular.mjs +1310 -0
  7. package/dist/angular.mjs.map +1 -0
  8. package/dist/astro.d.mts +8 -2
  9. package/dist/astro.d.ts +8 -2
  10. package/dist/astro.js +342 -100
  11. package/dist/astro.js.map +1 -1
  12. package/dist/astro.mjs +342 -100
  13. package/dist/astro.mjs.map +1 -1
  14. package/dist/cli.d.mts +1 -0
  15. package/dist/cli.d.ts +1 -0
  16. package/dist/cli.js +1880 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/cli.mjs +1878 -0
  19. package/dist/cli.mjs.map +1 -0
  20. package/dist/index.d.mts +178 -4
  21. package/dist/index.d.ts +178 -4
  22. package/dist/index.js +972 -19
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +952 -20
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/next.d.mts +2 -17
  27. package/dist/next.d.ts +2 -17
  28. package/dist/next.js +262 -73
  29. package/dist/next.js.map +1 -1
  30. package/dist/next.mjs +262 -73
  31. package/dist/next.mjs.map +1 -1
  32. package/dist/nuxt.d.mts +13 -0
  33. package/dist/nuxt.d.ts +13 -0
  34. package/dist/nuxt.js +1344 -0
  35. package/dist/nuxt.js.map +1 -0
  36. package/dist/nuxt.mjs +1337 -0
  37. package/dist/nuxt.mjs.map +1 -0
  38. package/dist/react.d.mts +1 -1
  39. package/dist/react.d.ts +1 -1
  40. package/dist/{types-BTY-v-7i.d.mts → types-Cn_Qbkmg.d.mts} +34 -0
  41. package/dist/{types-BTY-v-7i.d.ts → types-Cn_Qbkmg.d.ts} +34 -0
  42. package/dist/vite.d.mts +5 -0
  43. package/dist/vite.d.ts +5 -0
  44. package/dist/vite.js +1370 -0
  45. package/dist/vite.js.map +1 -0
  46. package/dist/vite.mjs +1366 -0
  47. package/dist/vite.mjs.map +1 -0
  48. package/dist/vue.d.mts +19 -0
  49. package/dist/vue.d.ts +19 -0
  50. package/dist/vue.js +1078 -0
  51. package/dist/vue.js.map +1 -0
  52. package/dist/vue.mjs +1072 -0
  53. package/dist/vue.mjs.map +1 -0
  54. package/dist/webpack.d.mts +1 -1
  55. package/dist/webpack.d.ts +1 -1
  56. package/dist/webpack.js +178 -18
  57. package/dist/webpack.js.map +1 -1
  58. package/dist/webpack.mjs +178 -18
  59. package/dist/webpack.mjs.map +1 -1
  60. package/dist/widget.d.mts +1 -1
  61. package/dist/widget.d.ts +1 -1
  62. package/package.json +48 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/widget/styles.ts","../src/widget/icons.ts","../src/widget/extract.ts","../src/widget/core.ts","../src/widget/vue.ts"],"names":[],"mappings":";;;;;;;;AAOO,SAAS,UAAU,KAAA,EAA6B;AACrD,EAAA,MAAM,CAAA,GAAI;AAAA,IACR,UAAA,EAAA,CAAY,+BAAO,UAAA,KAAc,SAAA;AAAA,IACjC,IAAA,EAAA,CAAM,+BAAO,IAAA,KAAQ,SAAA;AAAA,IACrB,MAAA,EAAA,CAAQ,+BAAO,MAAA,KAAU,SAAA;AAAA,IACzB,KAAA,EAAA,CAAO,+BAAO,KAAA,KAAS;AAAA,GACzB;AAEA,EAAA,OAAO;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,kBAAA,EAiCW,EAAE,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAejB,EAAE,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,kBAAA,EAoBD,EAAE,MAAM,CAAA;AAAA,aAAA,EACb,EAAE,UAAU,CAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAA,EAUP,EAAE,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAwBjB,EAAE,KAAK,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,kBAAA,EAaF,EAAE,KAAK,CAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAUZ,EAAE,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAuBR,EAAE,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,aAAA,EAaN,EAAE,MAAM,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAqBR,EAAE,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EA2CN,EAAE,IAAI,CAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,YAAA,EAMP,EAAE,IAAI,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAcL,EAAE,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,aAAA,EAoBN,EAAE,MAAM,CAAA;AAAA;AAAA;;AAAA;AAAA,aAAA,EAKR,EAAE,MAAM,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,aAAA,EAMR,EAAE,MAAM,CAAA;AAAA;AAAA;;AAAA;AAAA,aAAA,EAKR,EAAE,KAAK,CAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,aAAA,EAQP,EAAE,KAAK,CAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,aAAA,EAQP,EAAE,IAAI,CAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,aAAA,EAYN,EAAE,IAAI,CAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,aAAA,EASN,EAAE,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAA,EAqBH,EAAE,UAAU,CAAA;AAAA,aAAA,EACjB,EAAE,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAAA,CAsEnB,IAAA,EAAK;AACT;;;AClaO,SAAS,QAAA,GAAkB;AAChC,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,CAAA;AAAA;AAAA,UAAA,CAAA;AAAA,IAIP,EAAA,EAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAAA,CAAA;AAAA,IAOJ,KAAA,EAAO,CAAA;AAAA;AAAA,UAAA,CAAA;AAAA,IAIP,IAAA,EAAM,CAAA;AAAA;AAAA,UAAA,CAAA;AAAA,IAIN,QAAA,EAAU,CAAA;AAAA;AAAA,UAAA,CAAA;AAAA,IAIV,OAAA,EAAS,CAAA;AAAA;AAAA,UAAA;AAAA,GAGX;AACF;;;ACtCO,SAAS,oBAAA,GAA+B;AAC7C,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,MAAM,SAAA,uBAAgB,OAAA,EAAQ;AAG9B,EAAA,MAAM,QAAQ,QAAA,CAAS,KAAA;AACvB,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,EAAI,EAAE,CAAA;AAAA,EAC7B;AAGA,EAAA,MAAM,WAAA,GAAc,QAAA,CAAS,aAAA,CAAc,0BAA0B,CAAA;AACrE,EAAA,IAAI,2CAAa,OAAA,EAAS;AACxB,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAA,EAAK,WAAA,CAAY,OAAO,IAAI,EAAE,CAAA;AAAA,EAC3C;AAGA,EAAA,MAAM,cAAc,eAAA,EAAgB;AACpC,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,WAAA,CAAY,WAAA,EAAa,OAAO,SAAS,CAAA;AAAA,EAC3C,CAAA,MAAO;AAEL,IAAA,WAAA,CAAY,QAAA,CAAS,IAAA,EAAM,KAAA,EAAO,SAAS,CAAA;AAAA,EAC7C;AAEA,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,CAAE,IAAA,EAAK;AAC/B;AAEA,SAAS,eAAA,GAAkC;AACzC,EAAA,MAAM,SAAA,GAAY;AAAA,IAChB,MAAA;AAAA,IACA,eAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,eAAA;AAAA,IACA,UAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC/C,IAAA,IAAI,SAAS,OAAO,OAAA;AAAA,EACtB;AAEA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,WAAA,CAAY,IAAA,EAAY,KAAA,EAAiB,SAAA,EAAkC;AAjDpF,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAkDE,EAAA,IAAI,SAAA,CAAU,GAAA,CAAI,IAAI,CAAA,EAAG;AACzB,EAAA,SAAA,CAAU,IAAI,IAAI,CAAA;AAGlB,EAAA,IAAI,gBAAgB,WAAA,EAAa;AAC/B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,WAAA,EAAY;AACzC,IAAA,MAAM,QAAA,GAAW,CAAC,QAAA,EAAU,OAAA,EAAS,YAAY,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,OAAA,EAAS,OAAO,CAAA;AAC5F,IAAA,IAAI,QAAA,CAAS,QAAA,CAAS,OAAO,CAAA,EAAG;AAGhC,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,gBAAA,CAAiB,IAAI,CAAA;AAC1C,IAAA,IAAI,KAAA,CAAM,OAAA,KAAY,MAAA,IAAU,KAAA,CAAM,eAAe,QAAA,EAAU;AAG/D,IAAA,IAAI,OAAA,KAAY,KAAA,IAAS,OAAA,KAAY,QAAA,IAAY,IAAA,CAAK,SAAA,CAAU,QAAA,CAAS,KAAK,CAAA,IAAK,IAAA,CAAK,SAAA,CAAU,QAAA,CAAS,QAAQ,CAAA,EAAG;AACpH,MAAA,IAAI,CAAC,mBAAA,CAAoB,IAAI,CAAA,EAAG;AAAA,IAClC;AAGA,IAAA,IAAI,IAAA,CAAK,UAAU,QAAA,CAAS,YAAY,KAAK,IAAA,CAAK,SAAA,CAAU,QAAA,CAAS,aAAa,CAAA,EAAG;AAAA,EACvF;AAEA,EAAA,IAAI,gBAAgB,WAAA,EAAa;AAC/B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,WAAA,EAAY;AAEzC,IAAA,QAAQ,OAAA;AAAS,MACf,KAAK,IAAA;AACH,QAAA,KAAA,CAAM,KAAK,EAAA,EAAI,CAAA,EAAA,EAAK,eAAe,IAAI,CAAC,IAAI,EAAE,CAAA;AAC9C,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,KAAA,CAAM,KAAK,EAAA,EAAI,CAAA,GAAA,EAAM,eAAe,IAAI,CAAC,IAAI,EAAE,CAAA;AAC/C,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,KAAA,CAAM,KAAK,EAAA,EAAI,CAAA,IAAA,EAAO,eAAe,IAAI,CAAC,IAAI,EAAE,CAAA;AAChD,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,KAAA,CAAM,KAAK,EAAA,EAAI,CAAA,KAAA,EAAQ,eAAe,IAAI,CAAC,IAAI,EAAE,CAAA;AACjD,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,KAAA,CAAM,KAAK,EAAA,EAAI,CAAA,MAAA,EAAS,eAAe,IAAI,CAAC,IAAI,EAAE,CAAA;AAClD,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,KAAA,CAAM,KAAK,EAAA,EAAI,CAAA,OAAA,EAAU,eAAe,IAAI,CAAC,IAAI,EAAE,CAAA;AACnD,QAAA;AAAA,MACF,KAAK,GAAA;AACH,QAAA,MAAM,IAAA,GAAO,eAAe,IAAI,CAAA;AAChC,QAAA,IAAI,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,EAAA,EAAI,MAAM,EAAE,CAAA;AACjC,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,MAAM,SAAA,GAAY,eAAe,IAAI,CAAA;AACrC,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,KAAA,CAAM,IAAA,CAAK,EAAA,EAAI,GAAG,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA,CAAE,GAAA,CAAI,CAAA,IAAA,KAAQ,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,GAAG,EAAE,CAAA;AAAA,QACtE;AACA,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAA,MAAM,WAAA,GAAc,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;AAC7C,QAAA,IAAI,WAAA,EAAa;AACf,UAAA,MAAM,IAAA,GAAO,gBAAgB,WAAW,CAAA;AACxC,UAAA,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,MAAA,EAAS,IAAI,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG,KAAA,EAAU,EAAE,CAAA;AAAA,QAC3E,CAAA,MAAO;AACL,UAAA,KAAA,CAAM,KAAK,EAAA,EAAI,KAAA,EAAU,eAAe,IAAI,CAAA,EAAG,OAAU,EAAE,CAAA;AAAA,QAC7D;AACA,QAAA;AAAA,MACF,KAAK,MAAA;AACH,QAAA,IAAA,CAAA,CAAI,EAAA,GAAA,IAAA,CAAK,aAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,OAAA,CAAQ,mBAAkB,KAAA,EAAO;AACvD,UAAA,MAAM,QAAA,GAAW,eAAe,IAAI,CAAA;AACpC,UAAA,IAAI,QAAA,IAAY,GAAC,EAAA,GAAA,KAAA,CAAM,KAAA,CAAM,SAAS,CAAC,CAAA,KAAtB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAyB,QAAA,CAAS,QAAA,CAAA,CAAA,EAAW;AAC5D,YAAA,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,GAAA,CAAK,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,IAAK,EAAA,IAAM,CAAA,GAAA,EAAM,QAAQ,CAAA,GAAA,CAAA;AAAA,UAC5E;AAAA,QACF;AACA,QAAA;AAAA,MACF,KAAK,IAAA;AAAA,MACL,KAAK,IAAA;AACH,QAAA,gBAAA,CAAiB,IAAA,EAA6C,KAAA,EAAO,SAAA,EAAW,OAAA,KAAY,IAAI,CAAA;AAChG,QAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AACb,QAAA;AAAA,MACF,KAAK,GAAA;AACH,QAAA,MAAM,OAAQ,IAAA,CAA2B,IAAA;AACzC,QAAA,MAAM,QAAA,GAAW,eAAe,IAAI,CAAA;AACpC,QAAA,IAAI,YAAY,IAAA,IAAQ,CAAC,IAAA,CAAK,UAAA,CAAW,aAAa,CAAA,EAAG;AACvD,UAAA,MAAM,QAAA,GAAW,CAAA,CAAA,EAAI,QAAQ,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,CAAA;AACtC,UAAA,IAAI,EAAA,CAAC,WAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,KAAtB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAyB,SAAS,QAAA,CAAA,CAAA,EAAW;AAChD,YAAA,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,GAAA,CAAK,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,IAAK,EAAA,IAAM,GAAA,GAAM,QAAA,GAAW,GAAA;AAAA,UAC/E;AAAA,QACF,CAAA,MAAO;AACL,UAAA,eAAA,CAAgB,IAAA,EAAM,OAAO,SAAS,CAAA;AAAA,QACxC;AACA,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAA,MAAM,GAAA,GAAM,IAAA;AACZ,QAAA,IAAI,GAAA,CAAI,GAAA,IAAO,GAAA,CAAI,GAAA,EAAK;AACtB,UAAA,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,GAAA,CAAI,GAAG,CAAA,EAAA,EAAK,GAAA,CAAI,GAAG,CAAA,CAAA,CAAA,EAAK,EAAE,CAAA;AAAA,QAChD;AACA,QAAA;AAAA,MACF,KAAK,OAAA;AACH,QAAA,YAAA,CAAa,MAA0B,KAAK,CAAA;AAC5C,QAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AACb,QAAA;AAAA,MACF,KAAK,QAAA;AAAA,MACL,KAAK,GAAA;AACH,QAAA,MAAM,QAAA,GAAW,eAAe,IAAI,CAAA;AACpC,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,GAAA,CAAK,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,IAAK,EAAA,IAAM,CAAA,GAAA,EAAM,QAAQ,CAAA,GAAA,CAAA;AAAA,QAC5E;AACA,QAAA;AAAA,MACF,KAAK,IAAA;AAAA,MACL,KAAK,GAAA;AACH,QAAA,MAAM,UAAA,GAAa,eAAe,IAAI,CAAA;AACtC,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,GAAA,CAAK,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,IAAK,EAAA,IAAM,CAAA,EAAA,EAAK,UAAU,CAAA,EAAA,CAAA;AAAA,QAC7E;AACA,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,KAAA,CAAM,IAAA,CAAK,EAAA,EAAI,KAAA,EAAO,EAAE,CAAA;AACxB,QAAA;AAAA,MACF;AACE,QAAA,eAAA,CAAgB,IAAA,EAAM,OAAO,SAAS,CAAA;AAAA;AAC1C,EACF,CAAA,MAAA,IAAW,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,SAAA,EAAW;AAC3C,IAAA,MAAM,IAAA,GAAA,CAAO,EAAA,GAAA,IAAA,CAAK,WAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,IAAA,EAAA;AAC/B,IAAA,IAAI,IAAA,IAAQ,CAAC,gBAAA,CAAiB,IAAI,CAAA,EAAG;AACnC,MAAA,IAAI,KAAA,CAAM,WAAW,CAAA,IAAK,KAAA,CAAM,MAAM,MAAA,GAAS,CAAC,MAAM,EAAA,EAAI;AACxD,QAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,MACjB,CAAA,MAAO;AACL,QAAA,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,IAAK,GAAA,GAAM,IAAA;AAAA,MACnC;AAAA,IACF;AAAA,EACF,CAAA,MAAO;AACL,IAAA,eAAA,CAAgB,IAAA,EAAM,OAAO,SAAS,CAAA;AAAA,EACxC;AACF;AAEA,SAAS,eAAA,CAAgB,IAAA,EAAY,KAAA,EAAiB,SAAA,EAAkC;AACtF,EAAA,KAAA,MAAW,KAAA,IAAS,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,UAAU,CAAA,EAAG;AAC/C,IAAA,WAAA,CAAY,KAAA,EAAO,OAAO,SAAS,CAAA;AAAA,EACrC;AACF;AAEA,SAAS,gBAAA,CAAiB,IAAA,EAA2C,KAAA,EAAiB,SAAA,EAA4B,SAAA,EAA0B;AAC1I,EAAA,MAAM,QAAQ,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,gBAAA,CAAiB,aAAa,CAAC,CAAA;AAC7D,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AAC7B,IAAA,MAAM,MAAA,GAAS,SAAA,GAAY,CAAA,EAAG,KAAA,GAAQ,CAAC,CAAA,EAAA,CAAA,GAAO,IAAA;AAC9C,IAAA,MAAM,IAAA,GAAO,eAAe,IAAI,CAAA;AAChC,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,KAAA,CAAM,IAAA,CAAK,SAAS,IAAI,CAAA;AAAA,IAC1B;AACA,IAAA,SAAA,CAAU,IAAI,IAAI,CAAA;AAAA,EACpB,CAAC,CAAA;AACH;AAEA,SAAS,YAAA,CAAa,OAAyB,KAAA,EAAuB;AACpE,EAAA,MAAM,OAAO,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,gBAAA,CAAiB,IAAI,CAAC,CAAA;AACpD,EAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AAEvB,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,CAAE,gBAAA,CAAiB,QAAQ,CAAC,CAAA,CAAE,GAAA,CAAI,CAAA,IAAA,KAAQ,cAAA,CAAe,IAAI,CAAC,CAAA;AAC/F,EAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,IAAA,KAAA,CAAM,KAAK,EAAA,EAAI,IAAA,GAAO,QAAQ,IAAA,CAAK,KAAK,IAAI,IAAI,CAAA;AAChD,IAAA,KAAA,CAAM,IAAA,CAAK,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,MAAM,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,GAAG,CAAA;AAE3D,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,CAAE,gBAAA,CAAiB,IAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAA,IAAA,KAAQ,cAAA,CAAe,IAAI,CAAC,CAAA;AACzF,MAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,QAAA,KAAA,CAAM,KAAK,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,KAAK,IAAI,IAAI,CAAA;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,eAAe,IAAA,EAAoB;AA1N5C,EAAA,IAAA,EAAA,EAAA,EAAA;AA6NE,EAAA,IAAI,gBAAgB,WAAA,EAAa;AAC/B,IAAA,OAAA,CAAA,CAAO,UAAK,SAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgB,IAAA,EAAA,CAAO,OAAA,CAAQ,QAAQ,GAAA,CAAA,KAAQ,EAAA;AAAA,EACxD;AACA,EAAA,OAAA,CAAA,CAAO,UAAK,WAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,IAAA,EAAA,CAAO,OAAA,CAAQ,QAAQ,GAAA,CAAA,KAAQ,EAAA;AAC1D;AAEA,SAAS,iBAAiB,IAAA,EAAuB;AAC/C,EAAA,OAAO,OAAA,CAAQ,KAAK,IAAI,CAAA;AAC1B;AAEA,SAAS,oBAAoB,IAAA,EAA4B;AAvOzD,EAAA,IAAA,EAAA;AAwOE,EAAA,MAAM,oBAAoB,CAAC,eAAA,EAAiB,QAAQ,KAAA,EAAO,OAAA,EAAS,YAAY,WAAW,CAAA;AAC3F,EAAA,MAAM,IAAA,GAAA,CAAA,CAAO,EAAA,GAAA,IAAA,CAAK,WAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,WAAA,EAAA,KAAiB,EAAA;AAChD,EAAA,OAAO,kBAAkB,IAAA,CAAK,CAAA,OAAA,KAAW,IAAA,CAAK,QAAA,CAAS,OAAO,CAAC,CAAA;AACjE;AAEA,SAAS,gBAAgB,WAAA,EAA8B;AACrD,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,WAAA,CAAY,SAAS,CAAA;AAChD,EAAA,KAAA,MAAW,OAAO,OAAA,EAAS;AACzB,IAAA,IAAI,GAAA,CAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC/B,MAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAA;AAAA,IACpC;AACA,IAAA,IAAI,GAAA,CAAI,UAAA,CAAW,OAAO,CAAA,EAAG;AAC3B,MAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,OAAA,EAAS,EAAE,CAAA;AAAA,IAChC;AAAA,EACF;AAEA,EAAA,MAAM,GAAA,GAAM,WAAA,CAAY,OAAA,CAAQ,KAAK,CAAA;AACrC,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA;AAC3C,IAAA,KAAA,MAAW,OAAO,UAAA,EAAY;AAC5B,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC/B,QAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAA;AAAA,MACpC;AACA,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,OAAO,CAAA,EAAG;AAC3B,QAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,OAAA,EAAS,EAAE,CAAA;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,EAAA;AACT;;;AC5PO,IAAM,YAAN,MAAgB;AAAA,EAQrB,WAAA,CAAY,OAAA,GAA4B,EAAC,EAAG;AAL5C,IAAA,IAAA,CAAQ,QAAA,GAAoB,KAAA;AAb9B,IAAA,IAAA,EAAA;AAmBI,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA;AAC/C,IAAA,IAAA,CAAK,SAAA,GAAY,OAAA,CAAQ,SAAA,IAAa,QAAA,CAAS,IAAA;AAE/C,IAAA,IAAA,CAAA,CAAI,EAAA,GAAA,IAAA,CAAK,MAAA,CAAO,MAAA,KAAZ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,aAAY,KAAA,EAAO;AACzC,MAAA,IAAA,CAAK,IAAA,EAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAEQ,cAAc,MAAA,EAAwC;AAC5D,IAAA,MAAM,aAAA,GAA2B;AAAA,MAC/B,KAAA,EAAO,SAAS,KAAA,IAAS,SAAA;AAAA,MACzB,WAAA,EAAa,EAAA;AAAA,MACb,GAAA,EAAK,OAAO,QAAA,CAAS,MAAA;AAAA,MACrB,UAAA,EAAY,MAAA;AAAA,MACZ,MAAA,EAAQ,MAAA;AAAA,MACR,UAAA,EAAY;AAAA,QACV,SAAA,EAAW,IAAA;AAAA,QACX,OAAA,EAAS,IAAA;AAAA,QACT,WAAA,EAAa,IAAA;AAAA,QACb,WAAA,EAAa,IAAA;AAAA,QACb,QAAA,EAAU,IAAA;AAAA,QACV,OAAA,EAAS,IAAA;AAAA,QACT,OAAA,EAAS;AAAA,OACX;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,OAAA,EAAS,IAAA;AAAA,QACT,QAAA,EAAU,cAAA;AAAA,QACV,KAAA,EAAO;AAAA,UACL,UAAA,EAAY,SAAA;AAAA,UACZ,IAAA,EAAM,SAAA;AAAA,UACN,MAAA,EAAQ,SAAA;AAAA,UACR,KAAA,EAAO;AAAA,SACT;AAAA,QACA,UAAA,EAAY,OAAA;AAAA,QACZ,OAAA,EAAS,IAAA;AAAA,QACT,SAAA,EAAW;AAAA;AACb,KACF;AAEA,IAAA,OAAO,EAAE,GAAG,aAAA,EAAe,GAAG,MAAA,EAAO;AAAA,EACvC;AAAA,EAEQ,IAAA,GAAa;AACnB,IAAA,IAAA,CAAK,YAAA,EAAa;AAClB,IAAA,IAAA,CAAK,YAAA,EAAa;AAClB,IAAA,IAAA,CAAK,UAAA,EAAW;AAAA,EAClB;AAAA,EAEQ,YAAA,GAAqB;AAnE/B,IAAA,IAAA,EAAA;AAoEI,IAAA,IAAI,KAAK,YAAA,EAAc;AAEvB,IAAA,IAAA,CAAK,YAAA,GAAe,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAClD,IAAA,IAAA,CAAK,aAAa,WAAA,GAAc,SAAA,CAAA,CAAU,UAAK,MAAA,CAAO,MAAA,KAAZ,mBAAoB,KAAK,CAAA;AACnE,IAAA,QAAA,CAAS,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,YAAY,CAAA;AAAA,EAC7C;AAAA,EAEQ,YAAA,GAAqB;AA3E/B,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA4EI,IAAA,MAAM,QAAA,GAAA,CAAA,CAAW,EAAA,GAAA,IAAA,CAAK,MAAA,CAAO,MAAA,KAAZ,mBAAoB,QAAA,KAAY,cAAA;AACjD,IAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,IAAA,IAAA,CAAK,aAAA,GAAgB,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACjD,IAAA,IAAA,CAAK,aAAA,CAAc,SAAA,GAAY,CAAA,eAAA,EAAkB,QAAQ,CAAA,CAAA;AACzD,IAAA,IAAA,CAAK,cAAc,SAAA,GAAY;AAAA;AAAA;AAAA,UAAA,EAGvB,MAAM,KAAK;AAAA,gBAAA,EAAA,CAAA,CACL,EAAA,GAAA,IAAA,CAAK,MAAA,CAAO,MAAA,KAAZ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,eAAc,OAAO,CAAA;AAAA;AAAA;AAAA,UAAA,EAG/C,MAAM,EAAE;AAAA,gBAAA,EAAA,CAAA,CACF,EAAA,GAAA,IAAA,CAAK,MAAA,CAAO,MAAA,KAAZ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,YAAW,IAAI,CAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAKjD,IAAA,IAAA,CAAK,SAAA,CAAU,WAAA,CAAY,IAAA,CAAK,aAAa,CAAA;AAAA,EAC/C;AAAA,EAEQ,UAAA,GAAmB;AACzB,IAAA,IAAI,CAAC,KAAK,aAAA,EAAe;AAEzB,IAAA,IAAA,CAAK,aAAA,CAAc,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA,KAAM;AAClD,MAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,MAAA,MAAM,GAAA,GAAM,MAAA,CAAO,OAAA,CAAQ,iBAAiB,CAAA;AAC5C,MAAA,IAAI,CAAC,GAAA,EAAK;AAEV,MAAA,MAAM,IAAA,GAAO,IAAI,OAAA,CAAQ,IAAA;AACzB,MAAA,IAAI,IAAA,KAAS,IAAA,IAAQ,CAAC,IAAA,CAAK,QAAA,EAAU;AACnC,QAAA,IAAA,CAAK,UAAA,EAAW;AAAA,MAClB,CAAA,MAAA,IAAW,IAAA,KAAS,OAAA,IAAW,IAAA,CAAK,QAAA,EAAU;AAC5C,QAAA,IAAA,CAAK,aAAA,EAAc;AAAA,MACrB;AAAA,IACF,CAAC,CAAA;AAED,IAAA,QAAA,CAAS,gBAAA,CAAiB,SAAA,EAAW,CAAC,CAAA,KAAM;AAC1C,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,IAAY,IAAA,CAAK,cAAA,EAAgB;AAC7C,QAAA,IAAA,CAAK,YAAA,EAAa;AAAA,MACpB;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,MAAc,UAAA,GAA4B;AACxC,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,IAAA,IAAA,CAAK,iBAAA,EAAkB;AACvB,IAAA,MAAM,KAAK,WAAA,EAAY;AAAA,EACzB;AAAA,EAEQ,aAAA,GAAsB;AAC5B,IAAA,IAAA,CAAK,QAAA,GAAW,KAAA;AAChB,IAAA,IAAA,CAAK,iBAAA,EAAkB;AACvB,IAAA,IAAA,CAAK,YAAA,EAAa;AAAA,EACpB;AAAA,EAEQ,iBAAA,GAA0B;AAChC,IAAA,IAAI,CAAC,KAAK,aAAA,EAAe;AAEzB,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,aAAA,CAAc,aAAA,CAAc,gBAAgB,CAAA;AAClE,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,aAAA,CAAc,aAAA,CAAc,aAAa,CAAA;AAE5D,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,UAAU,MAAA,CAAO,YAAA,CAAA;AAC3B,MAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,UAAU,GAAA,CAAI,YAAA,CAAA;AAAA,IACvB,CAAA,MAAO;AACL,MAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,UAAU,GAAA,CAAI,YAAA,CAAA;AACxB,MAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,UAAU,MAAA,CAAO,YAAA,CAAA;AAAA,IAC1B;AAAA,EACF;AAAA,EAEQ,eAAA,GAA0B;AAChC,IAAA,MAAM,WAAA,GAAc,OAAO,QAAA,CAAS,QAAA;AACpC,IAAA,IAAI,WAAA,KAAgB,GAAA,IAAO,WAAA,CAAY,QAAA,CAAS,GAAG,CAAA,EAAG;AACpD,MAAA,OAAO,GAAG,WAAW,CAAA,QAAA,CAAA;AAAA,IACvB;AACA,IAAA,OAAO,GAAG,WAAW,CAAA,GAAA,CAAA;AAAA,EACvB;AAAA,EAEA,MAAc,WAAA,GAA6B;AA3J7C,IAAA,IAAA,EAAA;AA4JI,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,MAAA,GAAS,KAAK,eAAA,EAAgB;AAEpC,IAAA,IAAA,CAAK,cAAA,GAAiB,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAClD,IAAA,IAAA,CAAK,eAAe,SAAA,GAAY,aAAA;AAChC,IAAA,IAAA,CAAK,eAAe,SAAA,GAAY;AAAA;AAAA,QAAA,EAAA,CAAA,CAE1B,UAAK,MAAA,CAAO,MAAA,KAAZ,mBAAoB,SAAA,MAAc,KAAA,GAAQ,gFAAgF,EAAE;AAAA,oCAAA,EAChG,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAI9B,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA,YAAA,EAIV,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,YAAA,EAId,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAQX,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAOvB,IAAA,IAAA,CAAK,SAAA,CAAU,WAAA,CAAY,IAAA,CAAK,cAAc,CAAA;AAE9C,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,cAAA,CAAe,aAAA,CAAc,gBAAgB,CAAA;AACnE,IAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,gBAAA,CAAiB,OAAA,EAAS,MAAM,IAAA,CAAK,YAAA,EAAa,CAAA;AAE5D,IAAA,MAAM,KAAK,WAAA,EAAY;AAAA,EACzB;AAAA,EAEA,MAAc,WAAA,GAA6B;AACzC,IAAA,IAAI,CAAC,KAAK,cAAA,EAAgB;AAE1B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,aAAA,CAAc,sBAAsB,CAAA;AACxE,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,KAAK,eAAA,EAAgB;AACpC,MAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,MAAM,CAAA;AACnC,MAAA,IAAI,OAAA;AAEJ,MAAA,IAAI,SAAS,EAAA,EAAI;AACf,QAAA,OAAA,GAAU,MAAM,SAAS,IAAA,EAAK;AAAA,MAChC,CAAA,MAAO;AACL,QAAA,OAAA,GAAU,oBAAA,EAAqB;AAAA,MACjC;AAEA,MAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,+CAAA,EACuB,IAAA,CAAK,iBAAA,CAAkB,OAAO,CAAC,CAAA;AAAA,MAAA,CAAA;AAG1E,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,aAAA,CAAc,eAAe,CAAA;AACjE,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,cAAA,CAAe,aAAA,CAAc,mBAAmB,CAAA;AAEzE,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,OAAA,CAAQ,QAAA,GAAW,KAAA;AACnB,QAAA,OAAA,CAAQ,iBAAiB,OAAA,EAAS,MAAM,IAAA,CAAK,eAAA,CAAgB,OAAO,CAAC,CAAA;AAAA,MACvE;AAEA,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,WAAA,CAAY,QAAA,GAAW,KAAA;AACvB,QAAA,WAAA,CAAY,iBAAiB,OAAA,EAAS,MAAM,IAAA,CAAK,gBAAA,CAAiB,OAAO,CAAC,CAAA;AAAA,MAC5E;AAAA,IAEF,CAAA,CAAA,MAAQ;AACN,MAAA,OAAA,CAAQ,SAAA,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAAA;AAAA,IAUtB;AAAA,EACF;AAAA,EAEQ,kBAAkB,EAAA,EAAoB;AAvPhD,IAAA,IAAA,EAAA;AAwPI,IAAA,MAAM,GAAA,GAAM,CAAC,CAAA,KAAc,CAAA,CAAE,QAAQ,IAAA,EAAM,OAAO,CAAA,CAAE,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CAAE,OAAA,CAAQ,MAAM,MAAM,CAAA;AAE9F,IAAA,MAAM,KAAA,GAAQ,EAAA,CAAG,KAAA,CAAM,IAAI,CAAA;AAC3B,IAAA,MAAM,MAAgB,EAAC;AACvB,IAAA,IAAI,aAAA,GAAgB,KAAA;AACpB,IAAA,IAAI,MAAA,GAAS,KAAA;AACb,IAAA,IAAI,gBAAA,GAAA,CAAA,CAAmB,EAAA,GAAA,KAAA,CAAM,CAAC,CAAA,KAAP,mBAAU,IAAA,EAAA,MAAW,KAAA;AAE5C,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,MAAA,MAAM,IAAA,GAAO,MAAM,CAAC,CAAA;AACpB,MAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAG1B,MAAA,IAAI,CAAA,KAAM,KAAK,gBAAA,EAAkB;AAC/B,QAAA,aAAA,GAAgB,IAAA;AAChB,QAAA,GAAA,CAAI,IAAA,CAAK,CAAA,oBAAA,EAAuB,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AAClD,QAAA;AAAA,MACF;AACA,MAAA,IAAI,aAAA,EAAe;AACjB,QAAA,IAAI,YAAY,KAAA,EAAO;AACrB,UAAA,aAAA,GAAgB,KAAA;AAChB,UAAA,GAAA,CAAI,IAAA,CAAK,CAAA,oBAAA,EAAuB,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AAAA,QACpD,CAAA,MAAO;AACL,UAAA,GAAA,CAAI,IAAA,CAAK,CAAA,oBAAA,EAAuB,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AAAA,QACpD;AACA,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,KAAK,CAAA,EAAG;AAC7B,QAAA,MAAA,GAAS,CAAC,MAAA;AACV,QAAA,GAAA,CAAI,IAAA,CAAK,CAAA,sBAAA,EAAyB,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AACpD,QAAA;AAAA,MACF;AACA,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,GAAA,CAAI,IAAA,CAAK,CAAA,sBAAA,EAAyB,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AACpD,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,WAAA,CAAY,IAAA,CAAK,OAAO,CAAA,EAAG;AAC7B,QAAA,GAAA,CAAI,IAAA,CAAK,CAAA,yBAAA,EAA4B,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AACvD,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,wBAAA,CAAyB,IAAA,CAAK,OAAO,CAAA,EAAG;AAC1C,QAAA,GAAA,CAAI,IAAA,CAAK,CAAA,oBAAA,EAAuB,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AAClD,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,EAAG;AAC3B,QAAA,GAAA,CAAI,IAAA,CAAK,CAAA,uBAAA,EAA0B,GAAA,CAAI,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AACrD,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,WAAW,IAAA,CAAK,OAAO,KAAK,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA,EAAG;AACxD,QAAA,GAAA,CAAI,KAAK,IAAA,CAAK,eAAA,CAAgB,GAAA,CAAI,IAAI,CAAC,CAAC,CAAA;AACxC,QAAA;AAAA,MACF;AAGA,MAAA,GAAA,CAAI,KAAK,IAAA,CAAK,eAAA,CAAgB,GAAA,CAAI,IAAI,CAAC,CAAC,CAAA;AAAA,IAC1C;AAEA,IAAA,OAAO,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,EACtB;AAAA,EAEQ,gBAAgB,OAAA,EAAyB;AAE/C,IAAA,IAAI,IAAA,GAAO,OAAA,CAAQ,OAAA,CAAQ,gBAAA,EAAkB,qCAAqC,CAAA;AAElF,IAAA,IAAA,GAAO,IAAA,CAAK,OAAA,CAAQ,sCAAA,EAAwC,qCAAqC,CAAA;AAEjG,IAAA,IAAA,GAAO,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,mCAAmC,CAAA;AAErE,IAAA,IAAA,GAAO,IAAA,CAAK,OAAA,CAAQ,0BAAA,EAA4B,0GAA0G,CAAA;AAC1J,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEQ,YAAA,GAAqB;AAC3B,IAAA,IAAI,KAAK,cAAA,EAAgB;AACvB,MAAA,IAAA,CAAK,eAAe,MAAA,EAAO;AAC3B,MAAA,IAAA,CAAK,cAAA,GAAiB,MAAA;AAAA,IACxB;AACA,IAAA,IAAA,CAAK,aAAA,EAAc;AAAA,EACrB;AAAA,EAEA,MAAc,gBAAgB,IAAA,EAA6B;AACzD,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA;AACxC,MAAA,IAAA,CAAK,UAAU,sBAAsB,CAAA;AAAA,IACvC,CAAA,CAAA,MAAQ;AACN,MAAA,IAAA,CAAK,UAAU,gBAAgB,CAAA;AAAA,IACjC;AAAA,EACF;AAAA,EAEQ,iBAAiB,OAAA,EAAuB;AAC9C,IAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,CAAC,OAAO,CAAA,EAAG,EAAE,IAAA,EAAM,eAAA,EAAiB,CAAA;AAC1D,IAAA,MAAM,GAAA,GAAM,GAAA,CAAI,eAAA,CAAgB,IAAI,CAAA;AACpC,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACpC,IAAA,CAAA,CAAE,IAAA,GAAO,GAAA;AACT,IAAA,CAAA,CAAE,WAAW,CAAA,EAAG,IAAA,CAAK,gBAAA,CAAiB,QAAA,CAAS,KAAK,CAAC,CAAA,GAAA,CAAA;AACrD,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,CAAC,CAAA;AAC3B,IAAA,CAAA,CAAE,KAAA,EAAM;AACR,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,CAAC,CAAA;AAC3B,IAAA,GAAA,CAAI,gBAAgB,GAAG,CAAA;AAAA,EACzB;AAAA,EAEQ,iBAAiB,IAAA,EAAsB;AAC7C,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,aAAA,EAAe,GAAG,EAAE,WAAA,EAAY;AAAA,EACtD;AAAA,EAEQ,UAAU,OAAA,EAAuB;AACvC,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC1C,IAAA,KAAA,CAAM,SAAA,GAAY,WAAA;AAClB,IAAA,KAAA,CAAM,WAAA,GAAc,OAAA;AACpB,IAAA,IAAA,CAAK,SAAA,CAAU,YAAY,KAAK,CAAA;AAEhC,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,KAAA,CAAM,SAAA,CAAU,IAAI,gBAAgB,CAAA;AAAA,IACtC,GAAG,EAAE,CAAA;AAEL,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,KAAA,CAAM,SAAA,CAAU,OAAO,gBAAgB,CAAA;AACvC,MAAA,UAAA,CAAW,MAAM,KAAA,CAAM,MAAA,EAAO,EAAG,GAAG,CAAA;AAAA,IACtC,GAAG,GAAI,CAAA;AAAA,EACT;AAAA,EAEO,OAAA,GAAgB;AA3XzB,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA4XI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,kBAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,MAAA,EAAA;AACpB,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,mBAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,MAAA,EAAA;AACrB,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,iBAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmB,MAAA,EAAA;AAAA,EACrB;AACF,CAAA;;;AC7XO,IAAM,YAAA,GAAe;AAAA,EAC1B,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS,OAAO,EAAC;AAAA;AACnB,GACF;AAAA,EACA,MAAM,KAAA,EAAY;AAChB,IAAA,MAAM,GAAA,GAAM,UAAQ,KAAK,CAAA;AACzB,IAAA,MAAM,cAAA,GAAiB,GAAA,CAAI,GAAA,CAAI,IAAwB,CAAA;AACvD,IAAA,MAAM,YAAA,GAAe,GAAA,CAAI,GAAA,CAAI,IAA6B,CAAA;AAE1D,IAAA,GAAA,CAAI,UAAU,MAAM;AAClB,MAAA,IAAI,CAAC,aAAa,KAAA,EAAO;AAEzB,MAAA,MAAM,OAAA,GAA4B;AAAA,QAChC,QAAQ,KAAA,CAAM,MAAA;AAAA,QACd,WAAW,YAAA,CAAa;AAAA,OAC1B;AAEA,MAAA,cAAA,CAAe,KAAA,GAAQ,IAAI,SAAA,CAAU,OAAO,CAAA;AAAA,IAC9C,CAAC,CAAA;AAED,IAAA,GAAA,CAAI,YAAY,MAAM;AACpB,MAAA,IAAI,eAAe,KAAA,EAAO;AACxB,QAAA,cAAA,CAAe,MAAM,OAAA,EAAQ;AAC7B,QAAA,cAAA,CAAe,KAAA,GAAQ,IAAA;AAAA,MACzB;AAAA,IACF,CAAC,CAAA;AAED,IAAA,OAAO,MAAM,GAAA,CAAI,CAAA,CAAE,KAAA,EAAO;AAAA,MACxB,GAAA,EAAK,YAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,EACH;AACF;AAEO,SAAS,aAAa,MAAA,EAA6B;AACxD,EAAA,MAAM,GAAA,GAAM,UAAQ,KAAK,CAAA;AACzB,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,GAAA,CAAI,IAAwB,CAAA;AAE/C,EAAA,MAAM,IAAA,GAAO,CAAC,YAAA,KAAsC;AAClD,IAAA,IAAI,OAAO,KAAA,EAAO;AAChB,MAAA,MAAA,CAAO,MAAM,OAAA,EAAQ;AAAA,IACvB;AAEA,IAAA,MAAM,OAAA,GAA4B;AAAA,MAChC,QAAQ,YAAA,IAAgB;AAAA,KAC1B;AAEA,IAAA,MAAA,CAAO,KAAA,GAAQ,IAAI,SAAA,CAAU,OAAO,CAAA;AAAA,EACtC,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,IAAI,OAAO,KAAA,EAAO;AAChB,MAAA,MAAA,CAAO,MAAM,OAAA,EAAQ;AACrB,MAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AAAA,IACjB;AAAA,EACF,CAAA;AAEA,EAAA,GAAA,CAAI,UAAU,MAAM;AAClB,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,IAAA,EAAK;AAAA,IACP;AAAA,EACF,CAAC,CAAA;AAED,EAAA,GAAA,CAAI,YAAY,MAAM;AACpB,IAAA,OAAA,EAAQ;AAAA,EACV,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACF;AACF;AAEA,IAAO,WAAA,GAAQ","file":"vue.mjs","sourcesContent":["export interface ThemeConfig {\n background?: string;\n text?: string;\n accent?: string;\n badge?: string;\n}\n\nexport function getStyles(theme?: ThemeConfig): string {\n const t = {\n background: theme?.background || '#0a0a0f',\n text: theme?.text || '#a0a0a8',\n accent: theme?.accent || '#e8e8ea',\n badge: theme?.badge || '#4ADE80',\n };\n\n return `\n @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap');\n\n .aeo-toggle {\n position: fixed;\n z-index: 10001;\n font-family: 'JetBrains Mono', monospace;\n font-size: 14px;\n animation: aeo-fade-in 0.3s ease;\n }\n\n .aeo-toggle.aeo-bottom-right {\n bottom: 20px;\n right: 20px;\n }\n\n .aeo-toggle.aeo-bottom-left {\n bottom: 20px;\n left: 20px;\n }\n\n .aeo-toggle.aeo-top-right {\n top: 20px;\n right: 20px;\n }\n\n .aeo-toggle.aeo-top-left {\n top: 20px;\n left: 20px;\n }\n\n .aeo-toggle-inner {\n display: flex;\n background: ${t.background};\n backdrop-filter: blur(10px);\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 24px;\n padding: 4px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\n }\n\n .aeo-toggle-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n border: none;\n background: transparent;\n color: ${t.text};\n cursor: pointer;\n border-radius: 20px;\n transition: all 0.2s ease;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n }\n\n .aeo-toggle-btn svg {\n width: 16px;\n height: 16px;\n fill: currentColor;\n }\n\n .aeo-toggle-btn:hover {\n background: rgba(255, 255, 255, 0.05);\n }\n\n .aeo-toggle-btn.aeo-active {\n background: ${t.accent};\n color: ${t.background};\n }\n\n /* Full-screen overlay */\n .aeo-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${t.background};\n z-index: 10000;\n display: flex;\n flex-direction: column;\n animation: aeo-fade-in 0.2s ease;\n font-family: 'JetBrains Mono', monospace;\n }\n\n /* Top bar */\n .aeo-topbar {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n background: rgba(255, 255, 255, 0.02);\n flex-shrink: 0;\n }\n\n .aeo-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n background: rgba(74, 222, 128, 0.1);\n color: ${t.badge};\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.8px;\n border: 1px solid rgba(74, 222, 128, 0.2);\n }\n\n .aeo-badge-dot {\n width: 6px;\n height: 6px;\n background: ${t.badge};\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .aeo-route-tab {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: rgba(255, 255, 255, 0.05);\n color: ${t.accent};\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n border: 1px solid rgba(255, 255, 255, 0.08);\n }\n\n .aeo-topbar-spacer {\n flex: 1;\n }\n\n .aeo-topbar-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .aeo-topbar-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: transparent;\n color: ${t.text};\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n font-family: inherit;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .aeo-topbar-btn:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.05);\n color: ${t.accent};\n border-color: rgba(255, 255, 255, 0.2);\n }\n\n .aeo-topbar-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .aeo-topbar-btn svg {\n width: 14px;\n height: 14px;\n fill: currentColor;\n }\n\n .aeo-close-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background: transparent;\n color: ${t.text};\n border: 1px solid rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n font-family: inherit;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .aeo-close-btn:hover {\n background: rgba(255, 60, 60, 0.1);\n color: #ff6b6b;\n border-color: rgba(255, 60, 60, 0.3);\n }\n\n .aeo-close-btn svg {\n width: 14px;\n height: 14px;\n fill: none;\n stroke: currentColor;\n }\n\n /* Content area */\n .aeo-content-area {\n flex: 1;\n overflow-y: auto;\n padding: 40px 24px;\n }\n\n .aeo-content-wrapper {\n max-width: 800px;\n margin: 0 auto;\n }\n\n .aeo-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n padding: 80px 24px;\n color: ${t.text};\n }\n\n .aeo-loading svg {\n width: 24px;\n height: 24px;\n fill: ${t.text};\n animation: aeo-spin 1s linear infinite;\n }\n\n .aeo-loading span {\n font-size: 13px;\n opacity: 0.6;\n }\n\n /* Markdown source display */\n .aeo-markdown-source {\n font-family: 'JetBrains Mono', monospace;\n font-size: 13px;\n line-height: 1.7;\n color: ${t.text};\n background: transparent;\n margin: 0;\n padding: 0;\n border: none;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-x: auto;\n }\n\n .aeo-markdown-source code {\n font-family: inherit;\n background: transparent;\n }\n\n .aeo-markdown-source .hl-fm {\n color: rgba(160, 160, 168, 0.5);\n }\n\n .aeo-markdown-source .hl-heading {\n color: ${t.accent};\n font-weight: 600;\n }\n\n .aeo-markdown-source .hl-bold {\n color: ${t.accent};\n font-weight: 600;\n }\n\n .aeo-markdown-source .hl-italic {\n font-style: italic;\n color: ${t.accent};\n opacity: 0.85;\n }\n\n .aeo-markdown-source .hl-code {\n color: ${t.badge};\n }\n\n .aeo-markdown-source .hl-link {\n color: rgba(160, 160, 168, 0.6);\n }\n\n .aeo-markdown-source .hl-link-text {\n color: ${t.badge};\n }\n\n .aeo-markdown-source .hl-link-url {\n color: rgba(160, 160, 168, 0.4);\n }\n\n .aeo-markdown-source .hl-quote {\n color: ${t.text};\n opacity: 0.7;\n font-style: italic;\n }\n\n .aeo-markdown-source .hl-hr {\n color: rgba(160, 160, 168, 0.3);\n }\n\n .aeo-error {\n text-align: center;\n padding: 80px 24px;\n color: ${t.text};\n }\n\n .aeo-error p {\n margin: 0 0 16px;\n font-size: 14px;\n }\n\n .aeo-error a {\n color: ${t.accent};\n text-decoration: none;\n padding: 8px 16px;\n border: 1px solid rgba(255, 255, 255, 0.15);\n border-radius: 8px;\n display: inline-block;\n margin: 4px;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .aeo-error a:hover {\n background: rgba(255, 255, 255, 0.05);\n border-color: rgba(255, 255, 255, 0.25);\n }\n\n .aeo-toast {\n position: fixed;\n bottom: 100px;\n left: 50%;\n transform: translateX(-50%) translateY(20px);\n background: ${t.background};\n color: ${t.accent};\n padding: 10px 20px;\n border-radius: 8px;\n border: 1px solid rgba(255, 255, 255, 0.15);\n font-family: 'JetBrains Mono', monospace;\n font-size: 13px;\n opacity: 0;\n transition: all 0.3s ease;\n z-index: 10002;\n }\n\n .aeo-toast.aeo-toast-show {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n\n @keyframes aeo-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n @keyframes aeo-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n @media (max-width: 640px) {\n .aeo-toggle {\n bottom: 12px !important;\n right: 12px !important;\n left: auto !important;\n top: auto !important;\n }\n\n .aeo-toggle-btn {\n padding: 6px 12px;\n font-size: 13px;\n }\n\n .aeo-toggle-btn span {\n display: none;\n }\n\n .aeo-topbar {\n padding: 10px 16px;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .aeo-topbar-btn span {\n display: none;\n }\n\n .aeo-close-btn span {\n display: none;\n }\n\n .aeo-content-area {\n padding: 24px 16px;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .aeo-toggle,\n .aeo-overlay,\n .aeo-toast {\n animation: none;\n transition: none;\n }\n }\n `.trim();\n}\n","export interface Icons {\n human: string;\n ai: string;\n close: string;\n copy: string;\n download: string;\n spinner: string;\n}\n\nexport function getIcons(): Icons {\n return {\n human: `<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 2C10.9 2 10 2.9 10 4C10 5.1 10.9 6 12 6C13.1 6 14 5.1 14 4C14 2.9 13.1 2 12 2ZM10 7C10 7 8 7 8 9V13C8 13 8 14 9 14H10V21C10 21 10 22 11 22H13C13 22 14 22 14 21V14H15C15 14 16 14 16 13V9C16 7 14 7 14 7H10Z\" fill=\"currentColor\"/>\n </svg>`,\n\n ai: `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 2a1 1 0 0 1 2 0v2h3a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h3V2ZM9.5 7a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm5 0a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z\"/>\n <rect x=\"6\" y=\"17\" width=\"12\" height=\"5\" rx=\"2\"/>\n <rect x=\"1\" y=\"8\" width=\"3\" height=\"4\" rx=\"1.5\"/>\n <rect x=\"20\" y=\"8\" width=\"3\" height=\"4\" rx=\"1.5\"/>\n </svg>`,\n\n close: `<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 6L6 18M6 6L18 18\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>`,\n\n copy: `<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"/>\n </svg>`,\n\n download: `<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 20H19V18H5V20ZM19 9H15V3H9V9H5L12 16L19 9Z\" fill=\"currentColor\"/>\n </svg>`,\n\n spinner: `<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 2V6M12 18V22M4.93 4.93L7.76 7.76M16.24 16.24L19.07 19.07M2 12H6M18 12H22M4.93 19.07L7.76 16.24M16.24 7.76L19.07 4.93\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>`,\n };\n}\n","export function extractDOMToMarkdown(): string {\n const lines: string[] = [];\n const processed = new WeakSet();\n\n // Add page title\n const title = document.title;\n if (title) {\n lines.push(`# ${title}`, '');\n }\n\n // Add meta description\n const description = document.querySelector('meta[name=\"description\"]') as HTMLMetaElement;\n if (description?.content) {\n lines.push(`> ${description.content}`, '');\n }\n\n // Find main content area\n const mainContent = findMainContent();\n if (mainContent) {\n processNode(mainContent, lines, processed);\n } else {\n // Fallback to body\n processNode(document.body, lines, processed);\n }\n\n return lines.join('\\n').trim();\n}\n\nfunction findMainContent(): Element | null {\n const selectors = [\n 'main',\n '[role=\"main\"]',\n 'article',\n '.content',\n '.main-content',\n '#content',\n '#main-content',\n '.container',\n '.wrapper',\n ];\n\n for (const selector of selectors) {\n const element = document.querySelector(selector);\n if (element) return element;\n }\n\n return null;\n}\n\nfunction processNode(node: Node, lines: string[], processed: WeakSet<object>): void {\n if (processed.has(node)) return;\n processed.add(node);\n\n // Skip certain elements\n if (node instanceof HTMLElement) {\n const tagName = node.tagName.toLowerCase();\n const skipTags = ['script', 'style', 'noscript', 'iframe', 'svg', 'canvas', 'video', 'audio'];\n if (skipTags.includes(tagName)) return;\n\n // Skip hidden elements\n const style = window.getComputedStyle(node);\n if (style.display === 'none' || style.visibility === 'hidden') return;\n\n // Skip navigation and footer elements (unless they contain important content)\n if (tagName === 'nav' || tagName === 'footer' || node.classList.contains('nav') || node.classList.contains('footer')) {\n if (!hasImportantContent(node)) return;\n }\n\n // Skip the aeo widget itself\n if (node.classList.contains('aeo-toggle') || node.classList.contains('aeo-overlay')) return;\n }\n\n if (node instanceof HTMLElement) {\n const tagName = node.tagName.toLowerCase();\n\n switch (tagName) {\n case 'h1':\n lines.push('', `# ${getTextContent(node)}`, '');\n break;\n case 'h2':\n lines.push('', `## ${getTextContent(node)}`, '');\n break;\n case 'h3':\n lines.push('', `### ${getTextContent(node)}`, '');\n break;\n case 'h4':\n lines.push('', `#### ${getTextContent(node)}`, '');\n break;\n case 'h5':\n lines.push('', `##### ${getTextContent(node)}`, '');\n break;\n case 'h6':\n lines.push('', `###### ${getTextContent(node)}`, '');\n break;\n case 'p':\n const text = getTextContent(node);\n if (text) lines.push('', text, '');\n break;\n case 'blockquote':\n const quoteText = getTextContent(node);\n if (quoteText) {\n lines.push('', ...quoteText.split('\\n').map(line => `> ${line}`), '');\n }\n break;\n case 'pre':\n const codeElement = node.querySelector('code');\n if (codeElement) {\n const lang = extractLanguage(codeElement);\n lines.push('', `\\`\\`\\`${lang}`, getTextContent(codeElement), '\\`\\`\\`', '');\n } else {\n lines.push('', '\\`\\`\\`', getTextContent(node), '\\`\\`\\`', '');\n }\n break;\n case 'code':\n if (node.parentElement?.tagName.toLowerCase() !== 'pre') {\n const codeText = getTextContent(node);\n if (codeText && !lines[lines.length - 1]?.includes(codeText)) {\n lines[lines.length - 1] = (lines[lines.length - 1] || '') + ` \\`${codeText}\\` `;\n }\n }\n break;\n case 'ul':\n case 'ol':\n processListItems(node as HTMLUListElement | HTMLOListElement, lines, processed, tagName === 'ol');\n lines.push('');\n break;\n case 'a':\n const href = (node as HTMLAnchorElement).href;\n const linkText = getTextContent(node);\n if (linkText && href && !href.startsWith('javascript:')) {\n const markdown = `[${linkText}](${href})`;\n if (!lines[lines.length - 1]?.includes(markdown)) {\n lines[lines.length - 1] = (lines[lines.length - 1] || '') + ' ' + markdown + ' ';\n }\n } else {\n processChildren(node, lines, processed);\n }\n break;\n case 'img':\n const img = node as HTMLImageElement;\n if (img.src && img.alt) {\n lines.push('', `![${img.alt}](${img.src})`, '');\n }\n break;\n case 'table':\n processTable(node as HTMLTableElement, lines);\n lines.push('');\n break;\n case 'strong':\n case 'b':\n const boldText = getTextContent(node);\n if (boldText) {\n lines[lines.length - 1] = (lines[lines.length - 1] || '') + ` **${boldText}** `;\n }\n break;\n case 'em':\n case 'i':\n const italicText = getTextContent(node);\n if (italicText) {\n lines[lines.length - 1] = (lines[lines.length - 1] || '') + ` *${italicText}* `;\n }\n break;\n case 'hr':\n lines.push('', '---', '');\n break;\n default:\n processChildren(node, lines, processed);\n }\n } else if (node.nodeType === Node.TEXT_NODE) {\n const text = node.textContent?.trim();\n if (text && !isWhitespaceOnly(text)) {\n if (lines.length === 0 || lines[lines.length - 1] === '') {\n lines.push(text);\n } else {\n lines[lines.length - 1] += ' ' + text;\n }\n }\n } else {\n processChildren(node, lines, processed);\n }\n}\n\nfunction processChildren(node: Node, lines: string[], processed: WeakSet<object>): void {\n for (const child of Array.from(node.childNodes)) {\n processNode(child, lines, processed);\n }\n}\n\nfunction processListItems(list: HTMLUListElement | HTMLOListElement, lines: string[], processed: WeakSet<object>, isOrdered: boolean): void {\n const items = Array.from(list.querySelectorAll(':scope > li'));\n items.forEach((item, index) => {\n const prefix = isOrdered ? `${index + 1}. ` : '- ';\n const text = getTextContent(item);\n if (text) {\n lines.push(prefix + text);\n }\n processed.add(item);\n });\n}\n\nfunction processTable(table: HTMLTableElement, lines: string[]): void {\n const rows = Array.from(table.querySelectorAll('tr'));\n if (rows.length === 0) return;\n\n const headers = Array.from(rows[0].querySelectorAll('th, td')).map(cell => getTextContent(cell));\n if (headers.length > 0) {\n lines.push('', '| ' + headers.join(' | ') + ' |');\n lines.push('|' + headers.map(() => ' --- ').join('|') + '|');\n\n for (let i = 1; i < rows.length; i++) {\n const cells = Array.from(rows[i].querySelectorAll('td')).map(cell => getTextContent(cell));\n if (cells.length > 0) {\n lines.push('| ' + cells.join(' | ') + ' |');\n }\n }\n }\n}\n\nfunction getTextContent(node: Node): string {\n // Use innerText for elements — it inserts spaces at element boundaries\n // (e.g. <span>with</span><span>modern</span> → \"with modern\" not \"withmodern\")\n if (node instanceof HTMLElement) {\n return node.innerText?.trim().replace(/\\s+/g, ' ') || '';\n }\n return node.textContent?.trim().replace(/\\s+/g, ' ') || '';\n}\n\nfunction isWhitespaceOnly(text: string): boolean {\n return /^\\s*$/.test(text);\n}\n\nfunction hasImportantContent(node: HTMLElement): boolean {\n const importantKeywords = ['documentation', 'docs', 'api', 'guide', 'tutorial', 'reference'];\n const text = node.textContent?.toLowerCase() || '';\n return importantKeywords.some(keyword => text.includes(keyword));\n}\n\nfunction extractLanguage(codeElement: Element): string {\n const classes = Array.from(codeElement.classList);\n for (const cls of classes) {\n if (cls.startsWith('language-')) {\n return cls.replace('language-', '');\n }\n if (cls.startsWith('lang-')) {\n return cls.replace('lang-', '');\n }\n }\n\n const pre = codeElement.closest('pre');\n if (pre) {\n const preClasses = Array.from(pre.classList);\n for (const cls of preClasses) {\n if (cls.startsWith('language-')) {\n return cls.replace('language-', '');\n }\n if (cls.startsWith('lang-')) {\n return cls.replace('lang-', '');\n }\n }\n }\n\n return '';\n}\n","import type { AeoConfig } from '../types';\nimport { getStyles } from './styles';\nimport { getIcons } from './icons';\nimport { extractDOMToMarkdown } from './extract';\n\nexport interface AeoWidgetOptions {\n config?: Partial<AeoConfig>;\n container?: HTMLElement;\n}\n\nexport class AeoWidget {\n private config: AeoConfig;\n private container: HTMLElement;\n private isAIMode: boolean = false;\n private toggleElement?: HTMLElement;\n private overlayElement?: HTMLElement;\n private styleElement?: HTMLStyleElement;\n\n constructor(options: AeoWidgetOptions = {}) {\n this.config = this.resolveConfig(options.config);\n this.container = options.container || document.body;\n\n if (this.config.widget?.enabled !== false) {\n this.init();\n }\n }\n\n private resolveConfig(config?: Partial<AeoConfig>): AeoConfig {\n const defaultConfig: AeoConfig = {\n title: document.title || 'Website',\n description: '',\n url: window.location.origin,\n contentDir: 'docs',\n outDir: 'dist',\n generators: {\n robotsTxt: true,\n llmsTxt: true,\n llmsFullTxt: true,\n rawMarkdown: true,\n manifest: true,\n sitemap: true,\n aiIndex: true,\n },\n widget: {\n enabled: true,\n position: 'bottom-right',\n theme: {\n background: '#0a0a0f',\n text: '#a0a0a8',\n accent: '#e8e8ea',\n badge: '#4ADE80',\n },\n humanLabel: 'Human',\n aiLabel: 'AI',\n showBadge: true,\n },\n };\n\n return { ...defaultConfig, ...config };\n }\n\n private init(): void {\n this.injectStyles();\n this.createToggle();\n this.bindEvents();\n }\n\n private injectStyles(): void {\n if (this.styleElement) return;\n\n this.styleElement = document.createElement('style');\n this.styleElement.textContent = getStyles(this.config.widget?.theme);\n document.head.appendChild(this.styleElement);\n }\n\n private createToggle(): void {\n const position = this.config.widget?.position || 'bottom-right';\n const icons = getIcons();\n\n this.toggleElement = document.createElement('div');\n this.toggleElement.className = `aeo-toggle aeo-${position}`;\n this.toggleElement.innerHTML = `\n <div class=\"aeo-toggle-inner\">\n <button class=\"aeo-toggle-btn aeo-human-btn aeo-active\" data-mode=\"human\">\n ${icons.human}\n <span>${this.config.widget?.humanLabel || 'Human'}</span>\n </button>\n <button class=\"aeo-toggle-btn aeo-ai-btn\" data-mode=\"ai\">\n ${icons.ai}\n <span>${this.config.widget?.aiLabel || 'AI'}</span>\n </button>\n </div>\n `;\n\n this.container.appendChild(this.toggleElement);\n }\n\n private bindEvents(): void {\n if (!this.toggleElement) return;\n\n this.toggleElement.addEventListener('click', (e) => {\n const target = e.target as HTMLElement;\n const btn = target.closest('.aeo-toggle-btn') as HTMLElement;\n if (!btn) return;\n\n const mode = btn.dataset.mode;\n if (mode === 'ai' && !this.isAIMode) {\n this.switchToAI();\n } else if (mode === 'human' && this.isAIMode) {\n this.switchToHuman();\n }\n });\n\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape' && this.overlayElement) {\n this.closeOverlay();\n }\n });\n }\n\n private async switchToAI(): Promise<void> {\n this.isAIMode = true;\n this.updateToggleState();\n await this.showOverlay();\n }\n\n private switchToHuman(): void {\n this.isAIMode = false;\n this.updateToggleState();\n this.closeOverlay();\n }\n\n private updateToggleState(): void {\n if (!this.toggleElement) return;\n\n const humanBtn = this.toggleElement.querySelector('.aeo-human-btn');\n const aiBtn = this.toggleElement.querySelector('.aeo-ai-btn');\n\n if (this.isAIMode) {\n humanBtn?.classList.remove('aeo-active');\n aiBtn?.classList.add('aeo-active');\n } else {\n humanBtn?.classList.add('aeo-active');\n aiBtn?.classList.remove('aeo-active');\n }\n }\n\n private getMarkdownPath(): string {\n const currentPath = window.location.pathname;\n if (currentPath === '/' || currentPath.endsWith('/')) {\n return `${currentPath}index.md`;\n }\n return `${currentPath}.md`;\n }\n\n private async showOverlay(): Promise<void> {\n const icons = getIcons();\n const mdPath = this.getMarkdownPath();\n\n this.overlayElement = document.createElement('div');\n this.overlayElement.className = 'aeo-overlay';\n this.overlayElement.innerHTML = `\n <div class=\"aeo-topbar\">\n ${this.config.widget?.showBadge !== false ? '<span class=\"aeo-badge\"><span class=\"aeo-badge-dot\"></span>LLM-READY</span>' : ''}\n <span class=\"aeo-route-tab\">${mdPath}</span>\n <div class=\"aeo-topbar-spacer\"></div>\n <div class=\"aeo-topbar-actions\">\n <button class=\"aeo-topbar-btn aeo-copy-btn\" disabled>\n ${icons.copy}\n <span>Copy</span>\n </button>\n <button class=\"aeo-topbar-btn aeo-download-btn\" disabled>\n ${icons.download}\n <span>Download .md</span>\n </button>\n <button class=\"aeo-close-btn\">\n ${icons.close}\n <span>Close</span>\n </button>\n </div>\n </div>\n <div class=\"aeo-content-area\">\n <div class=\"aeo-content-wrapper\">\n <div class=\"aeo-loading\">\n ${icons.spinner}\n <span>Loading AI-optimized content...</span>\n </div>\n </div>\n </div>\n `;\n\n this.container.appendChild(this.overlayElement);\n\n const closeBtn = this.overlayElement.querySelector('.aeo-close-btn');\n closeBtn?.addEventListener('click', () => this.closeOverlay());\n\n await this.loadContent();\n }\n\n private async loadContent(): Promise<void> {\n if (!this.overlayElement) return;\n\n const wrapper = this.overlayElement.querySelector('.aeo-content-wrapper');\n if (!wrapper) return;\n\n try {\n const mdPath = this.getMarkdownPath();\n const response = await fetch(mdPath);\n let content: string;\n\n if (response.ok) {\n content = await response.text();\n } else {\n content = extractDOMToMarkdown();\n }\n\n wrapper.innerHTML = `\n <pre class=\"aeo-markdown-source\"><code>${this.highlightMarkdown(content)}</code></pre>\n `;\n\n const copyBtn = this.overlayElement.querySelector('.aeo-copy-btn') as HTMLButtonElement;\n const downloadBtn = this.overlayElement.querySelector('.aeo-download-btn') as HTMLButtonElement;\n\n if (copyBtn) {\n copyBtn.disabled = false;\n copyBtn.addEventListener('click', () => this.copyToClipboard(content));\n }\n\n if (downloadBtn) {\n downloadBtn.disabled = false;\n downloadBtn.addEventListener('click', () => this.downloadMarkdown(content));\n }\n\n } catch {\n wrapper.innerHTML = `\n <div class=\"aeo-error\">\n <p>Unable to load AI-optimized content.</p>\n <p>Try these alternatives:</p>\n <div>\n <a href=\"/llms.txt\" target=\"_blank\">llms.txt</a>\n <a href=\"/llms-full.txt\" target=\"_blank\">llms-full.txt</a>\n </div>\n </div>\n `;\n }\n }\n\n private highlightMarkdown(md: string): string {\n const esc = (s: string) => s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\n const lines = md.split('\\n');\n const out: string[] = [];\n let inFrontmatter = false;\n let inCode = false;\n let frontmatterStart = lines[0]?.trim() === '---';\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n\n // Frontmatter handling\n if (i === 0 && frontmatterStart) {\n inFrontmatter = true;\n out.push(`<span class=\"hl-fm\">${esc(line)}</span>`);\n continue;\n }\n if (inFrontmatter) {\n if (trimmed === '---') {\n inFrontmatter = false;\n out.push(`<span class=\"hl-fm\">${esc(line)}</span>`);\n } else {\n out.push(`<span class=\"hl-fm\">${esc(line)}</span>`);\n }\n continue;\n }\n\n // Code block\n if (trimmed.startsWith('```')) {\n inCode = !inCode;\n out.push(`<span class=\"hl-code\">${esc(line)}</span>`);\n continue;\n }\n if (inCode) {\n out.push(`<span class=\"hl-code\">${esc(line)}</span>`);\n continue;\n }\n\n // Headings\n if (/^#{1,6}\\s/.test(trimmed)) {\n out.push(`<span class=\"hl-heading\">${esc(line)}</span>`);\n continue;\n }\n\n // Horizontal rule\n if (/^(-{3,}|\\*{3,}|_{3,})$/.test(trimmed)) {\n out.push(`<span class=\"hl-hr\">${esc(line)}</span>`);\n continue;\n }\n\n // Blockquote\n if (trimmed.startsWith('>')) {\n out.push(`<span class=\"hl-quote\">${esc(line)}</span>`);\n continue;\n }\n\n // List items\n if (/^[-*+]\\s/.test(trimmed) || /^\\d+\\.\\s/.test(trimmed)) {\n out.push(this.highlightInline(esc(line)));\n continue;\n }\n\n // Regular text with inline highlights\n out.push(this.highlightInline(esc(line)));\n }\n\n return out.join('\\n');\n }\n\n private highlightInline(escaped: string): string {\n // Bold **text**\n let text = escaped.replace(/\\*\\*(.+?)\\*\\*/g, '<span class=\"hl-bold\">**$1**</span>');\n // Italic *text*\n text = text.replace(/(?<!\\*)\\*(?!\\*)(.+?)(?<!\\*)\\*(?!\\*)/g, '<span class=\"hl-italic\">*$1*</span>');\n // Inline code `text`\n text = text.replace(/`([^`]+)`/g, '<span class=\"hl-code\">`$1`</span>');\n // Links [text](url)\n text = text.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<span class=\"hl-link\">[<span class=\"hl-link-text\">$1</span>](<span class=\"hl-link-url\">$2</span>)</span>');\n return text;\n }\n\n private closeOverlay(): void {\n if (this.overlayElement) {\n this.overlayElement.remove();\n this.overlayElement = undefined;\n }\n this.switchToHuman();\n }\n\n private async copyToClipboard(text: string): Promise<void> {\n try {\n await navigator.clipboard.writeText(text);\n this.showToast('Copied to clipboard!');\n } catch {\n this.showToast('Failed to copy');\n }\n }\n\n private downloadMarkdown(content: string): void {\n const blob = new Blob([content], { type: 'text/markdown' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${this.sanitizeFilename(document.title)}.md`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n }\n\n private sanitizeFilename(name: string): string {\n return name.replace(/[^a-z0-9]/gi, '-').toLowerCase();\n }\n\n private showToast(message: string): void {\n const toast = document.createElement('div');\n toast.className = 'aeo-toast';\n toast.textContent = message;\n this.container.appendChild(toast);\n\n setTimeout(() => {\n toast.classList.add('aeo-toast-show');\n }, 10);\n\n setTimeout(() => {\n toast.classList.remove('aeo-toast-show');\n setTimeout(() => toast.remove(), 300);\n }, 2000);\n }\n\n public destroy(): void {\n this.toggleElement?.remove();\n this.overlayElement?.remove();\n this.styleElement?.remove();\n }\n}\n\nexport function createAeoWidget(options?: AeoWidgetOptions): AeoWidget {\n return new AeoWidget(options);\n}\n","import type { AeoConfig } from '../types';\nimport { AeoWidget, type AeoWidgetOptions } from './core';\n\nexport const AeoWidgetVue = {\n name: 'AeoWidget',\n props: {\n config: {\n type: Object as any,\n default: () => ({}),\n },\n },\n setup(props: any) {\n const vue = require('vue');\n const widgetInstance = vue.ref(null as AeoWidget | null);\n const containerRef = vue.ref(null as HTMLDivElement | null);\n\n vue.onMounted(() => {\n if (!containerRef.value) return;\n\n const options: AeoWidgetOptions = {\n config: props.config,\n container: containerRef.value,\n };\n\n widgetInstance.value = new AeoWidget(options);\n });\n\n vue.onUnmounted(() => {\n if (widgetInstance.value) {\n widgetInstance.value.destroy();\n widgetInstance.value = null;\n }\n });\n\n return () => vue.h('div', {\n ref: containerRef,\n class: 'aeo-widget-vue-container',\n });\n },\n};\n\nexport function useAeoWidget(config?: Partial<AeoConfig>) {\n const vue = require('vue');\n const widget = vue.ref(null as AeoWidget | null);\n\n const init = (customConfig?: Partial<AeoConfig>) => {\n if (widget.value) {\n widget.value.destroy();\n }\n\n const options: AeoWidgetOptions = {\n config: customConfig || config,\n };\n\n widget.value = new AeoWidget(options);\n };\n\n const destroy = () => {\n if (widget.value) {\n widget.value.destroy();\n widget.value = null;\n }\n };\n\n vue.onMounted(() => {\n if (config) {\n init();\n }\n });\n\n vue.onUnmounted(() => {\n destroy();\n });\n\n return {\n widget,\n init,\n destroy,\n };\n}\n\nexport default AeoWidgetVue;\n"]}
@@ -1,4 +1,4 @@
1
- import { A as AeoConfig } from './types-BTY-v-7i.mjs';
1
+ import { A as AeoConfig } from './types-Cn_Qbkmg.mjs';
2
2
 
3
3
  declare class AeoWebpackPlugin {
4
4
  private options;
package/dist/webpack.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as AeoConfig } from './types-BTY-v-7i.js';
1
+ import { A as AeoConfig } from './types-Cn_Qbkmg.js';
2
2
 
3
3
  declare class AeoWebpackPlugin {
4
4
  private options;
package/dist/webpack.js CHANGED
@@ -173,7 +173,7 @@ function detectFramework(projectRoot = process.cwd()) {
173
173
  };
174
174
  }
175
175
  function resolveConfig(config = {}) {
176
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
176
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M;
177
177
  const frameworkInfo = detectFramework();
178
178
  return {
179
179
  title: config.title || "My Site",
@@ -189,26 +189,43 @@ function resolveConfig(config = {}) {
189
189
  rawMarkdown: ((_d = config.generators) == null ? void 0 : _d.rawMarkdown) !== false,
190
190
  manifest: ((_e = config.generators) == null ? void 0 : _e.manifest) !== false,
191
191
  sitemap: ((_f = config.generators) == null ? void 0 : _f.sitemap) !== false,
192
- aiIndex: ((_g = config.generators) == null ? void 0 : _g.aiIndex) !== false
192
+ aiIndex: ((_g = config.generators) == null ? void 0 : _g.aiIndex) !== false,
193
+ schema: ((_h = config.generators) == null ? void 0 : _h.schema) !== false
193
194
  },
194
195
  robots: {
195
- allow: ((_h = config.robots) == null ? void 0 : _h.allow) || ["/"],
196
- disallow: ((_i = config.robots) == null ? void 0 : _i.disallow) || [],
197
- crawlDelay: ((_j = config.robots) == null ? void 0 : _j.crawlDelay) || 0,
198
- sitemap: ((_k = config.robots) == null ? void 0 : _k.sitemap) || ""
196
+ allow: ((_i = config.robots) == null ? void 0 : _i.allow) || ["/"],
197
+ disallow: ((_j = config.robots) == null ? void 0 : _j.disallow) || [],
198
+ crawlDelay: ((_k = config.robots) == null ? void 0 : _k.crawlDelay) || 0,
199
+ sitemap: ((_l = config.robots) == null ? void 0 : _l.sitemap) || ""
200
+ },
201
+ schema: {
202
+ enabled: ((_m = config.schema) == null ? void 0 : _m.enabled) !== false,
203
+ organization: {
204
+ name: ((_o = (_n = config.schema) == null ? void 0 : _n.organization) == null ? void 0 : _o.name) || config.title || "My Site",
205
+ url: ((_q = (_p = config.schema) == null ? void 0 : _p.organization) == null ? void 0 : _q.url) || config.url || "https://example.com",
206
+ logo: ((_s = (_r = config.schema) == null ? void 0 : _r.organization) == null ? void 0 : _s.logo) || "",
207
+ sameAs: ((_u = (_t = config.schema) == null ? void 0 : _t.organization) == null ? void 0 : _u.sameAs) || []
208
+ },
209
+ defaultType: ((_v = config.schema) == null ? void 0 : _v.defaultType) || "WebPage"
210
+ },
211
+ og: {
212
+ enabled: ((_w = config.og) == null ? void 0 : _w.enabled) !== false,
213
+ image: ((_x = config.og) == null ? void 0 : _x.image) || "",
214
+ twitterHandle: ((_y = config.og) == null ? void 0 : _y.twitterHandle) || "",
215
+ type: ((_z = config.og) == null ? void 0 : _z.type) || "website"
199
216
  },
200
217
  widget: {
201
- enabled: ((_l = config.widget) == null ? void 0 : _l.enabled) !== false,
202
- position: ((_m = config.widget) == null ? void 0 : _m.position) || "bottom-right",
218
+ enabled: ((_A = config.widget) == null ? void 0 : _A.enabled) !== false,
219
+ position: ((_B = config.widget) == null ? void 0 : _B.position) || "bottom-right",
203
220
  theme: {
204
- background: ((_o = (_n = config.widget) == null ? void 0 : _n.theme) == null ? void 0 : _o.background) || "rgba(18, 18, 24, 0.9)",
205
- text: ((_q = (_p = config.widget) == null ? void 0 : _p.theme) == null ? void 0 : _q.text) || "#C0C0C5",
206
- accent: ((_s = (_r = config.widget) == null ? void 0 : _r.theme) == null ? void 0 : _s.accent) || "#E8E8EA",
207
- badge: ((_u = (_t = config.widget) == null ? void 0 : _t.theme) == null ? void 0 : _u.badge) || "#4ADE80"
221
+ background: ((_D = (_C = config.widget) == null ? void 0 : _C.theme) == null ? void 0 : _D.background) || "rgba(18, 18, 24, 0.9)",
222
+ text: ((_F = (_E = config.widget) == null ? void 0 : _E.theme) == null ? void 0 : _F.text) || "#C0C0C5",
223
+ accent: ((_H = (_G = config.widget) == null ? void 0 : _G.theme) == null ? void 0 : _H.accent) || "#E8E8EA",
224
+ badge: ((_J = (_I = config.widget) == null ? void 0 : _I.theme) == null ? void 0 : _J.badge) || "#4ADE80"
208
225
  },
209
- humanLabel: ((_v = config.widget) == null ? void 0 : _v.humanLabel) || "Human",
210
- aiLabel: ((_w = config.widget) == null ? void 0 : _w.aiLabel) || "AI",
211
- showBadge: ((_x = config.widget) == null ? void 0 : _x.showBadge) !== false
226
+ humanLabel: ((_K = config.widget) == null ? void 0 : _K.humanLabel) || "Human",
227
+ aiLabel: ((_L = config.widget) == null ? void 0 : _L.aiLabel) || "AI",
228
+ showBadge: ((_M = config.widget) == null ? void 0 : _M.showBadge) !== false
212
229
  }
213
230
  };
214
231
  }
@@ -507,8 +524,8 @@ function generatePageMarkdownFiles(config) {
507
524
  const generated = [];
508
525
  const pages = config.pages || [];
509
526
  for (const page of pages) {
527
+ if (!page.content) continue;
510
528
  const pageTitle = page.title || (page.pathname === "/" ? config.title : void 0);
511
- if (!page.content && !pageTitle) continue;
512
529
  let filename;
513
530
  if (page.pathname === "/") {
514
531
  filename = "index.md";
@@ -778,6 +795,140 @@ function generateAIIndex(config) {
778
795
  };
779
796
  return JSON.stringify(index, null, 2);
780
797
  }
798
+
799
+ // src/core/schema.ts
800
+ function generateSchema(config) {
801
+ const output = generateSchemaObjects(config);
802
+ return JSON.stringify(output, null, 2);
803
+ }
804
+ function generateSchemaObjects(config) {
805
+ const siteSchemas = generateSiteSchemas(config);
806
+ const pageSchemas = {};
807
+ for (const page of config.pages) {
808
+ const schemas = generatePageSchemas(page, config);
809
+ if (schemas.length > 0) {
810
+ pageSchemas[page.pathname] = schemas;
811
+ }
812
+ }
813
+ return { site: siteSchemas, pages: pageSchemas };
814
+ }
815
+ function generateSiteSchemas(config) {
816
+ const schemas = [];
817
+ schemas.push({
818
+ "@context": "https://schema.org",
819
+ "@type": "WebSite",
820
+ name: config.title,
821
+ description: config.description || void 0,
822
+ url: config.url
823
+ });
824
+ const org = config.schema.organization;
825
+ if (org.name || org.sameAs.length > 0) {
826
+ const orgSchema = {
827
+ "@context": "https://schema.org",
828
+ "@type": "Organization",
829
+ name: org.name,
830
+ url: org.url
831
+ };
832
+ if (org.logo) orgSchema.logo = org.logo;
833
+ if (org.sameAs.length > 0) orgSchema.sameAs = org.sameAs;
834
+ schemas.push(orgSchema);
835
+ }
836
+ return schemas;
837
+ }
838
+ function generatePageSchemas(page, config) {
839
+ const schemas = [];
840
+ const pageUrl = page.pathname === "/" ? config.url : `${config.url.replace(/\/$/, "")}${page.pathname}`;
841
+ const faqItems = detectFaqPatterns(page.content || "");
842
+ if (faqItems.length > 0) {
843
+ schemas.push({
844
+ "@context": "https://schema.org",
845
+ "@type": "FAQPage",
846
+ mainEntity: faqItems.map(({ question, answer }) => ({
847
+ "@type": "Question",
848
+ name: question,
849
+ acceptedAnswer: {
850
+ "@type": "Answer",
851
+ text: answer
852
+ }
853
+ }))
854
+ });
855
+ }
856
+ const pageType = config.schema.defaultType;
857
+ const pageSchema = {
858
+ "@context": "https://schema.org",
859
+ "@type": pageType,
860
+ name: page.title || config.title,
861
+ url: pageUrl
862
+ };
863
+ if (page.description) pageSchema.description = page.description;
864
+ if (pageType === "Article") {
865
+ pageSchema.headline = page.title || config.title;
866
+ pageSchema.author = {
867
+ "@type": "Organization",
868
+ name: config.schema.organization.name
869
+ };
870
+ }
871
+ schemas.push(pageSchema);
872
+ if (page.pathname !== "/") {
873
+ const breadcrumbs = generateBreadcrumbs(page.pathname, config);
874
+ if (breadcrumbs.length > 1) {
875
+ schemas.push({
876
+ "@context": "https://schema.org",
877
+ "@type": "BreadcrumbList",
878
+ itemListElement: breadcrumbs.map((crumb, i) => ({
879
+ "@type": "ListItem",
880
+ position: i + 1,
881
+ name: crumb.name,
882
+ item: crumb.url
883
+ }))
884
+ });
885
+ }
886
+ }
887
+ return schemas;
888
+ }
889
+ function generateBreadcrumbs(pathname, config) {
890
+ const baseUrl = config.url.replace(/\/$/, "");
891
+ const parts = pathname.split("/").filter(Boolean);
892
+ const crumbs = [
893
+ { name: "Home", url: baseUrl + "/" }
894
+ ];
895
+ let currentPath = "";
896
+ for (const part of parts) {
897
+ currentPath += "/" + part;
898
+ crumbs.push({
899
+ name: part.charAt(0).toUpperCase() + part.slice(1).replace(/-/g, " "),
900
+ url: baseUrl + currentPath
901
+ });
902
+ }
903
+ return crumbs;
904
+ }
905
+ function detectFaqPatterns(content) {
906
+ const items = [];
907
+ const lines = content.split("\n");
908
+ for (let i = 0; i < lines.length; i++) {
909
+ const line = lines[i].trim();
910
+ const headingMatch = line.match(/^#{1,6}\s+(.+\?)\s*$/);
911
+ if (headingMatch) {
912
+ const answerLines = [];
913
+ for (let j = i + 1; j < lines.length; j++) {
914
+ const nextLine = lines[j].trim();
915
+ if (!nextLine) {
916
+ if (answerLines.length > 0) break;
917
+ continue;
918
+ }
919
+ if (/^#{1,6}\s/.test(nextLine)) break;
920
+ answerLines.push(nextLine);
921
+ }
922
+ if (answerLines.length > 0) {
923
+ items.push({
924
+ question: headingMatch[1],
925
+ answer: answerLines.join(" ").slice(0, 500)
926
+ });
927
+ }
928
+ }
929
+ }
930
+ return items;
931
+ }
781
932
  async function generateAEOFiles(configOrRoot, maybeConfig) {
782
933
  var _a;
783
934
  let config;
@@ -806,7 +957,7 @@ async function generateAEOFiles(configOrRoot, maybeConfig) {
806
957
  if (config.generators.llmsTxt) {
807
958
  try {
808
959
  const content = generateLlmsTxt(config);
809
- fs.writeFileSync(path.join(outDir, "llms.txt"), "\uFEFF" + content, "utf-8");
960
+ fs.writeFileSync(path.join(outDir, "llms.txt"), content, "utf-8");
810
961
  files.push("llms.txt");
811
962
  } catch (e) {
812
963
  errors.push(`llms.txt: ${e.message}`);
@@ -815,7 +966,7 @@ async function generateAEOFiles(configOrRoot, maybeConfig) {
815
966
  if (config.generators.llmsFullTxt) {
816
967
  try {
817
968
  const content = generateLlmsFullTxt(config);
818
- fs.writeFileSync(path.join(outDir, "llms-full.txt"), "\uFEFF" + content, "utf-8");
969
+ fs.writeFileSync(path.join(outDir, "llms-full.txt"), content, "utf-8");
819
970
  files.push("llms-full.txt");
820
971
  } catch (e) {
821
972
  errors.push(`llms-full.txt: ${e.message}`);
@@ -866,6 +1017,15 @@ async function generateAEOFiles(configOrRoot, maybeConfig) {
866
1017
  errors.push(`ai-index.json: ${e.message}`);
867
1018
  }
868
1019
  }
1020
+ if (config.generators.schema && config.schema.enabled) {
1021
+ try {
1022
+ const content = generateSchema(config);
1023
+ fs.writeFileSync(path.join(outDir, "schema.json"), content, "utf-8");
1024
+ files.push("schema.json");
1025
+ } catch (e) {
1026
+ errors.push(`schema.json: ${e.message}`);
1027
+ }
1028
+ }
869
1029
  return { files, errors };
870
1030
  }
871
1031
  function scanHtmlAssets(compilation) {