@oksigenia/share 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.
- package/LICENSE +21 -0
- package/NOTICE.md +9 -0
- package/README.md +122 -0
- package/dist/index.d.ts +104 -0
- package/dist/index.js +361 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +74 -0
- package/dist/web-component.d.ts +17 -0
- package/dist/web-component.js +400 -0
- package/dist/web-component.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/networks.ts","../src/build-link.ts","../src/translations.ts","../src/render.ts","../src/styles.ts","../src/index.ts"],"names":[],"mappings":";AAwBA,IAAM,KAAA,GACJ,gPAAA;AACF,IAAM,MAAA,GACJ,mfAAA;AACF,IAAM,MAAA,GACJ,2uCAAA;AACF,IAAM,MAAA,GACJ,gjCAAA;AACF,IAAM,MAAA,GACJ,oUAAA;AACF,IAAM,MAAA,GACJ,gYAAA;AACF,IAAM,MAAA,GACJ,khCAAA;AACF,IAAM,MAAA,GACJ,inFAAA;AACF,IAAM,MAAA,GACJ,uVAAA;AAEK,IAAM,QAAA,GAAoD;AAAA,EAC/D,CAAA,EAAI,EAAE,EAAA,EAAI,GAAA,EAAM,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,GAAA,EAAK,KAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,SAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,KAAA,EAAS,GAAA,EAAK,MAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,SAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,KAAA,EAAS,GAAA,EAAK,MAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,UAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,KAAA,EAAS,GAAA,EAAK,MAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,UAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,KAAA,EAAS,GAAA,EAAK,MAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,UAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,GAAA,EAAK,MAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,QAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,GAAA,EAAK,MAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,OAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,MAAA,EAAS,GAAA,EAAK,MAAA,EAAO;AAAA,EACnF,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,OAAA,EAAe,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,GAAA,EAAK,MAAA;AAC9E;AAEO,IAAM,YAAA,GAAqC;AAAA,EAChD,GAAA;AAAA,EAAK,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM;AACjD;;;ACxCO,SAAS,eAAe,KAAA,EAA+B;AAC5D,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,KAAK,OAAA,EAAS,MAAA,GAAS,MAAK,GAAI,KAAA;AACxD,EAAA,MAAM,GAAA,GAAM,mBAAmB,KAAK,CAAA;AACpC,EAAA,MAAM,MAAA,GAAS,mBAAmB,GAAG,CAAA;AAErC,EAAA,MAAM,KAAA,GAAQ,OAAA,GACV,kBAAA,CAAmB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA,EAAA,EAAK,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,EAAE,CAAA,GACrE,GAAA;AAEJ,EAAA,QAAQ,OAAA;AAAS,IACf,KAAK,GAAA;AACH,MAAA,OAAO,CAAA,sCAAA,EAAyC,KAAK,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAA;AAAA,IACrE,KAAK,IAAA;AACH,MAAA,OAAO,wCAAwC,kBAAA,CAAmB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,GAAG,EAAE,CAAC,CAAA,CAAA;AAAA,IACtF,KAAK,IAAA;AACH,MAAA,OAAO,4CAA4C,kBAAA,CAAmB,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,GAAG,EAAE,CAAC,CAAA,CAAA;AAAA,IAC1F,KAAK,IAAA;AACH,MAAA,OAAO,CAAA,mCAAA,EAAsC,GAAG,CAAA,GAAA,EAAM,MAAM,CAAA,CAAA;AAAA,IAC9D,KAAK,IAAA;AACH,MAAA,OAAO,CAAA,2BAAA,EAA8B,MAAM,CAAA,MAAA,EAAS,GAAG,CAAA,CAAA;AAAA,IACzD,KAAK,IAAA;AACH,MAAA,OAAO,uDAAuD,MAAM,CAAA,CAAA;AAAA,IACtE,KAAK,IAAA;AACH,MAAA,OAAO,CAAA,kCAAA,EAAqC,MAAM,CAAA,OAAA,EAAU,GAAG,CAAA,CAAA;AAAA,IACjE,KAAK,IAAA;AACH,MAAA,OAAO,CAAA,gBAAA,EAAmB,GAAG,CAAA,MAAA,EAAS,MAAM,CAAA,CAAA;AAAA,IAC9C,KAAK,IAAA;AACH,MAAA,OAAO,EAAA;AAAA;AAEb;AAMO,SAAS,iBAAA,CACd,KAAA,EACA,GAAA,EACA,OAAA,GAAU,WAAA,EACF;AACR,EAAA,OAAO,GAAG,KAAK;AAAA,EAAK,GAAG;AAAA,CAAA,EAAM,OAAO,CAAA,CAAA;AACtC;;;ACpCA,IAAM,IAAA,GAAkD;AAAA,EACtD,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,OAAA;AAAA,IAAS,EAAA,EAAI,IAAA;AAAA,IACpB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,SAAA,EAAY,CAAC,CAAA,CAAA;AAAA,IAC7B,UAAA,EAAY,gBAAA;AAAA,IACZ,QAAA,EAAU,wBAAA;AAAA,IACV,MAAA,EAAQ,qBAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,WAAA;AAAA,IAAa,EAAA,EAAI,KAAA;AAAA,IACxB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,aAAA,EAAgB,CAAC,CAAA,CAAA;AAAA,IACjC,UAAA,EAAY,qBAAA;AAAA,IACZ,QAAA,EAAU,+BAAA;AAAA,IACV,MAAA,EAAQ,yBAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,WAAA;AAAA,IAAa,EAAA,EAAI,IAAA;AAAA,IACxB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,aAAA,EAAgB,CAAC,CAAA,CAAA;AAAA,IACjC,UAAA,EAAY,qBAAA;AAAA,IACZ,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,uBAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,OAAA;AAAA,IAAS,EAAA,EAAI,MAAA;AAAA,IACpB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,QAAA,EAAW,CAAC,CAAA,CAAA;AAAA,IAC5B,UAAA,EAAY,kBAAA;AAAA,IACZ,QAAA,EAAU,gCAAA;AAAA,IACV,MAAA,EAAQ,0BAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,QAAA;AAAA,IAAU,EAAA,EAAI,KAAA;AAAA,IACrB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,IAAA,EAAO,CAAC,CAAA,OAAA,CAAA;AAAA,IACxB,UAAA,EAAY,mBAAA;AAAA,IACZ,QAAA,EAAU,qCAAA;AAAA,IACV,MAAA,EAAQ,+BAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,WAAA;AAAA,IAAa,EAAA,EAAI,KAAA;AAAA,IACxB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,aAAA,EAAgB,CAAC,CAAA,CAAA;AAAA,IACjC,UAAA,EAAY,qBAAA;AAAA,IACZ,QAAA,EAAU,yDAAA;AAAA,IACV,MAAA,EAAQ,4CAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,WAAA;AAAA,IAAU,EAAA,EAAI,KAAA;AAAA,IACrB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,WAAA,EAAW,CAAC,CAAA,GAAA,CAAA;AAAA,IAC5B,UAAA,EAAY,yBAAA;AAAA,IACZ,QAAA,EAAU,6BAAA;AAAA,IACV,MAAA,EAAQ,6BAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,KAAA,EAAO,MAAA;AAAA,IAAQ,EAAA,EAAI,IAAA;AAAA,IACnB,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,WAAA,EAAW,CAAC,CAAA,CAAA;AAAA,IAC5B,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU,8BAAA;AAAA,IACV,MAAA,EAAQ,uBAAA;AAAA,IACR,UAAA,EAAY;AAAA;AAEhB,CAAA;AAOO,SAAS,eAAe,MAAA,EAA6B;AAC1D,EAAA,MAAM,OAAO,MAAA,CAAO,WAAA,GAAc,KAAA,CAAM,MAAM,EAAE,CAAC,CAAA;AACjD,EAAA,OAAO,IAAA,CAAK,IAAI,CAAA,IAAK,IAAA,CAAK,EAAA;AAC5B;AAEO,SAAS,gBAAA,GAA0C;AACxD,EAAA,OAAO,MAAA,CAAO,KAAK,IAAI,CAAA;AACzB;;;ACjEA,SAAS,cAAA,CAAe,MAAoE,CAAA,EAAkC;AAC5H,EAAA,MAAM,IAAA,GAAO,KAAK,QAAA,IAAY,YAAA;AAC9B,EAAA,MAAM,MAAwB,EAAC;AAC/B,EAAA,KAAA,MAAW,MAAM,IAAA,EAAM;AACrB,IAAA,MAAM,GAAA,GAAM,SAAS,EAAE,CAAA;AACvB,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,MAAM,KAAA,GAAQ,EAAA,KAAO,IAAA,GACjB,CAAA,CAAE,UAAA,GACF,EAAA,KAAO,IAAA,GACL,CAAA,CAAE,QAAA,GACF,CAAA,CAAE,OAAA,CAAQ,GAAA,CAAI,KAAK,CAAA;AACzB,IAAA,MAAM,OAAO,cAAA,CAAe;AAAA,MAC1B,OAAA,EAAS,EAAA;AAAA,MACT,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,KAAK,IAAA,CAAK,GAAA;AAAA,MACV,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,QAAQ,CAAA,CAAE;AAAA,KACX,CAAA;AACD,IAAA,MAAM,MAAA,GAAyB;AAAA,MAC7B,EAAA;AAAA,MACA,SAAA,EAAW,KAAA;AAAA,MACX,MAAM,GAAA,CAAI,IAAA;AAAA,MACV,IAAA;AAAA,MACA,SAAS,GAAA,CAAI,KAAA;AAAA,MACb,KAAK,GAAA,CAAI;AAAA,KACX;AACA,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,MAAA,CAAO,cAAc,iBAAA,CAAkB,IAAA,CAAK,OAAO,IAAA,CAAK,GAAA,EAAK,KAAK,YAAY,CAAA;AAAA,IAChF;AACA,IAAA,GAAA,CAAI,KAAK,MAAM,CAAA;AAAA,EACjB;AACA,EAAA,OAAO,GAAA;AACT;AAMO,SAAS,cAAA,CAAe,IAAA,GAAqB,EAAC,EAAW;AAC9D,EAAA,MAAM,QAAA,GAAkG;AAAA,IACtG,OAAO,IAAA,CAAK,KAAA,KAAU,OAAO,QAAA,KAAa,WAAA,GAAc,SAAS,KAAA,GAAQ,EAAA,CAAA;AAAA,IACzE,KAAK,IAAA,CAAK,GAAA,KAAQ,OAAO,QAAA,KAAa,WAAA,GAAc,SAAS,IAAA,GAAO,EAAA,CAAA;AAAA,IACpE,QAAQ,IAAA,CAAK,MAAA,KAAW,OAAO,SAAA,KAAc,WAAA,GAAc,UAAU,QAAA,GAAW,IAAA,CAAA;AAAA,IAChF,SAAA,EAAW,KAAK,SAAA,IAAa,IAAA;AAAA,IAC7B,UAAU,IAAA,CAAK,QAAA;AAAA,IACf,SAAS,IAAA,CAAK,OAAA;AAAA,IACd,cAAc,IAAA,CAAK;AAAA,GACrB;AACA,EAAA,MAAM,CAAA,GAAI,cAAA,CAAe,QAAA,CAAS,MAAM,CAAA;AACxC,EAAA,MAAM,OAAA,GAAU,cAAA,CAAe,QAAA,EAAU,CAAC,CAAA;AAE1C,EAAA,MAAM,SAAA,GAAY,SAAS,SAAA,GACvB,CAAA,iDAAA,EAAoD,WAAW,CAAA,CAAE,KAAK,CAAC,CAAA,OAAA,CAAA,GACvE,EAAA;AAEJ,EAAA,MAAM,WAAA,GAAc,OAAA,CACjB,GAAA,CAAI,CAAC,CAAA,KAAM;AACV,IAAA,MAAM,QAAA,GAAW,EAAE,IAAA,GAAO,CAAA,YAAA,EAAe,WAAW,CAAA,CAAE,IAAI,CAAC,CAAA,CAAA,CAAA,GAAM,EAAA;AACjE,IAAA,MAAM,QAAA,GAAW,EAAE,WAAA,GAAc,CAAA,YAAA,EAAe,WAAW,CAAA,CAAE,WAAW,CAAC,CAAA,CAAA,CAAA,GAAM,EAAA;AAC/E,IAAA,OAAO,CAAA,6CAAA,EAAgD,EAAE,EAAE,CAAA,oBAAA,EAAuB,EAAE,OAAO,CAAA,aAAA,EAAgB,EAAE,IAAI,CAAA,CAAA,EAAI,QAAQ,CAAA,EAAG,QAAQ,gBAAgB,UAAA,CAAW,CAAA,CAAE,SAAS,CAAC,CAAA,EAAA,EAAK,EAAE,GAAG,CAAA,mEAAA,CAAA;AAAA,EAC3L,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AAGV,EAAA,OAAO,CAAA,sDAAA,EAAyD,WAAW,CAAA,CAAE,KAAK,CAAC,CAAA,EAAA,EAAK,SAAS,GAAG,WAAW,CAAA,MAAA,CAAA;AACjH;AAEA,SAAS,WAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CAAE,OAAA,CAAQ,SAAA,EAAW,CAAC,CAAA,KAAA,CAAO;AAAA,IAClC,GAAA,EAAK,OAAA;AAAA,IAAS,GAAA,EAAK,MAAA;AAAA,IAAQ,GAAA,EAAK,MAAA;AAAA,IAAQ,GAAA,EAAK;AAAA,GAC/C,EAAE,CAAC,CAAA,IAAK,CAAE,CAAA;AACZ;AACA,SAAS,WAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,UAAA,CAAW,CAAC,CAAA,CAAE,OAAA,CAAQ,MAAM,OAAO,CAAA;AAC5C;AAMO,SAAS,eAAA,CAAgB,IAAA,EAAkB,IAAA,GAAqB,EAAC,EAAe;AACrF,EAAA,MAAM,SAAS,IAAA,CAAK,MAAA,KAAW,OAAO,SAAA,KAAc,WAAA,GAAc,UAAU,QAAA,GAAW,IAAA,CAAA;AACvF,EAAA,MAAM,CAAA,GAAI,eAAe,MAAM,CAAA;AAC/B,EAAA,MAAM,UAAU,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,gBAAA,CAAoC,gBAAgB,CAAC,CAAA;AACrF,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAa;AAC5B,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAM,MAAM,CAAA,CAAE,aAAA;AACd,IAAA,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,EAClB,CAAA;AACA,EAAA,KAAA,MAAW,CAAA,IAAK,OAAA,EAAS,CAAA,CAAE,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC5D,EAAA,OAAO,MAAM;AACX,IAAA,KAAA,MAAW,CAAA,IAAK,OAAA,EAAS,CAAA,CAAE,mBAAA,CAAoB,SAAS,OAAO,CAAA;AAAA,EACjE,CAAA;AACF;AAEA,SAAS,SAAA,CAAU,KAAwB,CAAA,EAAsB;AAC/D,EAAA,MAAM,IAAA,GAAO,GAAA,CAAI,YAAA,CAAa,WAAW,CAAA,IAAK,EAAA;AAC9C,EAAA,MAAM,IAAA,GAAQ,GAAA,CAAI,YAAA,CAAa,WAAW,CAAA,IAAK,KAAA;AAC/C,EAAA,MAAM,IAAA,GAAO,GAAA,CAAI,aAAA,CAA2B,oBAAoB,CAAA;AAEhE,EAAA,IAAI,SAAS,OAAA,EAAS;AACpB,IAAA,MAAM,CAAA,GAAI,GAAA;AACV,IAAA,MAAM,CAAA,GAAI,GAAA;AACV,IAAA,MAAM,IAAA,GAAA,CAAQ,MAAA,CAAO,UAAA,GAAa,CAAA,IAAK,CAAA;AACvC,IAAA,MAAM,GAAA,GAAA,CAAO,MAAA,CAAO,WAAA,GAAc,CAAA,IAAK,CAAA;AACvC,IAAA,MAAA,CAAO,IAAA,CAAK,IAAA,EAAM,iBAAA,EAAmB,CAAA,MAAA,EAAS,CAAC,CAAA,QAAA,EAAW,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAA,MAAA,EAAS,IAAI,CAAA,cAAA,CAAgB,CAAA;AACnG,IAAA;AAAA,EACF;AACA,EAAA,IAAI,SAAS,KAAA,EAAO;AAClB,IAAA,MAAA,CAAO,IAAA,CAAK,IAAA,EAAM,QAAA,EAAU,UAAU,CAAA;AACtC,IAAA;AAAA,EACF;AACA,EAAA,IAAI,SAAS,OAAA,EAAS;AACpB,IAAA,MAAA,CAAO,SAAS,IAAA,GAAO,IAAA;AACvB,IAAA;AAAA,EACF;AACA,EAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,IAAA,MAAM,IAAA,GAAO,GAAA,CAAI,YAAA,CAAa,WAAW,CAAA,IAAK,EAAA;AAC9C,IAAA,MAAM,OAAO,MAAM;AACjB,MAAA,GAAA,CAAI,SAAA,CAAU,IAAI,QAAQ,CAAA;AAC1B,MAAA,IAAI,IAAA,EAAM,IAAA,CAAK,WAAA,GAAc,CAAA,CAAE,MAAA;AAC/B,MAAA,MAAA,CAAO,WAAW,MAAM;AACtB,QAAA,GAAA,CAAI,SAAA,CAAU,OAAO,QAAQ,CAAA;AAC7B,QAAA,IAAI,IAAA,OAAW,WAAA,GAAc,EAAA;AAAA,MAC/B,GAAG,GAAI,CAAA;AAAA,IACT,CAAA;AACA,IAAA,IAAI,SAAA,CAAU,WAAW,SAAA,EAAW;AAClC,MAAA,SAAA,CAAU,SAAA,CAAU,UAAU,IAAI,CAAA,CAAE,KAAK,IAAI,CAAA,CAAE,MAAM,MAAM;AACzD,QAAA,MAAA,CAAO,MAAA,CAAO,CAAA,CAAE,UAAA,EAAY,IAAI,CAAA;AAAA,MAClC,CAAC,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,MAAA,CAAO,CAAA,CAAE,UAAA,EAAY,IAAI,CAAA;AAAA,IAClC;AAAA,EACF;AACF;;;ACtKO,IAAM,SAAA,GAAY;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC+ClB,SAAS,UAAA,CACd,MAAA,EACA,OAAA,GAAwB,EAAC,EACZ;AACb,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC5C,EAAA,OAAA,CAAQ,SAAA,GAAY,eAAe,OAAO,CAAA;AAC1C,EAAA,MAAM,QAAQ,OAAA,CAAQ,iBAAA;AACtB,EAAA,MAAA,CAAO,YAAY,KAAK,CAAA;AACxB,EAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,KAAA,EAAO,OAAO,CAAA;AAC9C,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,SAAS,MAAM;AACb,MAAA,OAAA,EAAQ;AACR,MAAA,KAAA,CAAM,MAAA,EAAO;AAAA,IACf;AAAA,GACF;AACF","file":"index.js","sourcesContent":["// SVGs y metadatos de las redes. Heredado del plugin WordPress\n// oksigenia-share v7.2 (https://wordpress.org/plugins/oksigenia-share/).\n\nexport type NetworkId =\n | 'x'\n | 'bs'\n | 'th'\n | 'wa'\n | 'tg'\n | 'li'\n | 'rd'\n | 'no'\n | 'em';\n\nexport type OpenStrategy = 'popup' | 'tab' | 'copy' | 'email';\n\nexport interface NetworkDef {\n readonly id: NetworkId;\n readonly label: string;\n readonly color: string;\n readonly open: OpenStrategy;\n readonly svg: string;\n}\n\nconst X_SVG =\n '<svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z\"/></svg>';\nconst BS_SVG =\n '<svg viewBox=\"0 0 600 530\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M135.7 44.4C202.6 94.7 274.6 196.7 301 251.4c26.4-54.7 98.4-156.7 165.3-207C512.7 9.5 587 -16.3 587 67.4c0 16.7-9.6 140.5-15.2 160.6-19.6 70-91 87.8-154.4 77 110.9 18.9 139.1 81.4 78.2 144-115.7 119-166.4-29.8-179.4-67.9-2.4-7-3.5-10.3-3.5-7.5 0 -2.8-1.1 .5-3.5 7.5-13 38.1-63.7 186.9-179.4 67.9-60.9-62.6-32.7-125.1 78.2-144-63.5 10.8-134.8-7.1-154.4-77C48 207.8 38.4 84.1 38.4 67.4 38.4-16.3 112.7 9.5 135.7 44.4z\"/></svg>';\nconst TH_SVG =\n '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.749-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.323.144 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z\"/></svg>';\nconst WA_SVG =\n '<svg viewBox=\"0 0 448 512\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-5.5-2.8-23.4-8.6-44.6-27.5-16.5-14.7-27.6-32.8-30.8-38.4-3.2-5.6-.3-8.6 2.5-11.4 2.5-2.5 5.5-6.5 8.3-9.7 2.8-3.2 3.7-5.5 5.5-9.2 1.9-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 13.2 5.8 23.5 9.2 31.5 11.8 13.3 4.2 25.4 3.6 35 2.2 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"/></svg>';\nconst TG_SVG =\n '<svg viewBox=\"0 0 448 512\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"/></svg>';\nconst LI_SVG =\n '<svg viewBox=\"0 0 448 512\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"/></svg>';\nconst RD_SVG =\n '<svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zm129 41.2c-12.3 12.3-37.8 13.4-45.3 13.4-7.5 0-32.7-1.4-45-13.4-1.8-1.8-1.8-4.8 0-6.9 1.8-1.8 4.8-1.8 6.6 0 7.8 7.8 24.3 10.5 38.4 10.5s30.9-2.7 38.7-10.5c1.8-1.8 4.8-1.8 6.6 0 1.8 2.1 1.8 5.1 0 6.9zm-12.3-41.2c0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6-13.8 0-24.9-11.1-24.9-24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 9.9-22.8-15.6-52.8-25.8-86.1-27l17.4-78.9 55.5 12.3c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.4 24.9-24.9s-11.1-24.9-24.9-24.9c-9.6 0-17.7 5.7-21.6 13.5l-61.5-13.5c-3-.9-6 1.2-6.6 4.2l-19.2 86.7c-32.7 1.5-62.7 11.7-85.5 27.3-6-6.3-14.7-9.9-23.7-9.9-34.8 0-46.2 46.8-14.4 62.7-1.2 5.1-1.8 10.8-1.8 16.2 0 49.5 56.1 89.7 125.4 89.7 69.6 0 125.7-40.2 125.7-89.7 0-5.4-.6-11.4-2.1-16.5 31.5-15.9 19.8-62.4-14.4-62.4z\"/></svg>';\nconst NO_SVG =\n '<svg viewBox=\"0 0 170.66667 170\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M 80.014749,0.78606659 C 73.052769,1.9302826 66.167099,2.3642936 59.348089,4.5268096 38.835519,11.031957 21.050593,25.529048 10.848085,44.52681 -6.8624293,77.505 -0.92508032,121.67898 27.348086,147.13792 c 11.539173,10.3906 24.998793,17.01823 40.000003,20.62963 9.26968,2.23159 19.24599,2.5862 28.66667,1.27777 C 139.11925,163.05859 171.85692,124.19929 169.32958,80.52681 167.31241,45.669937 143.27583,13.848984 109.34809,4.2675526 100.31238,1.7158046 89.426889,-0.76084941 80.014749,0.78606659 M 136.01476,34.52681 c -2.37396,0 -11.65111,-0.914032 -11.03704,3.333333 0.44515,3.078919 4.97786,5.419108 7.01853,7.388886 2.78243,2.685771 4.44989,6.742004 4.6111,10.611114 0.43316,10.395773 -8.18644,14.669088 -14.53704,20.81482 -4.11595,3.983174 -1.16762,10.854736 -6.07406,15.018514 -5.28385,4.484059 -13.33279,3.273844 -19.314831,6.111114 -4.69327,2.226009 -7.84703,7.913129 -10.66667,12.055549 l 14.666681,-4.44443 7.33333,-1.22223 5.98149,6.33333 2.01851,5.33333 c -2.72032,-0.0572 -6.29832,-0.90982 -8.61111,-2.42592 -1.43022,-0.93754 -2.13911,-2.61031 -4.05556,-2.55556 -1.73865,0.0497 -3.687801,1.1301 -5.333331,1.64815 -4.89415,1.54075 -9.77338,3.60264 -14.66667,5.01851 -4.97774,1.44033 -6.14184,-3.22559 -4.5,-7.01851 0.58509,-1.35166 1.3007,-2.70345 2,-4 1.22817,-2.27712 2.8155,-4.29175 3.83333,-6.666667 -14.44897,7.042367 -23.21779,20.075037 -32.57408,32.666667 -2.69666,3.62915 -5.83349,7.00277 -8.44444,10.66667 -0.74469,1.045 -1.43956,3.39244 -3.01852,3.44444 -1.48153,0.0488 -1.89431,-1.62287 -1.88889,-2.77778 0.012,-2.56211 1.55286,-4.83939 1.87038,-7.33333 0.16984,-1.33409 -0.3317,-3.17503 0.53703,-4.33333 1.46427,-1.95236 4.81923,-1.69841 6.5926,-3.68518 4.11706,-4.61253 7.99675,-10.65312 11.12963,-15.98149 1.00019,-1.70113 1.31074,-3.7756 2.62962,-5.27777 4.15881,-4.73677 10.29882,-7.15127 13.83334,-12.72223 -3.78599,-0.77946 -7.81198,-1.877889 -11.33334,-3.5 -2.16788,-0.998637 -4.28318,-2.695353 -6.66666,-3.09259 -4.92365,-0.820608 -7.70844,2.301147 -12,3.59259 -3.55609,1.070119 -9.1464,-2.835714 -11,-5.666667 -2.9074,-4.440389 1.59973,-11.14448 5.66666,-13.055562 7.85432,-3.690796 17.10949,-1.957876 25.33334,-4.185181 8.80831,-2.385589 15.88491,-8.429891 25.33333,-9.370371 6.13412,-0.610576 12.248691,0.007 18.000011,2.203705 5.40278,2.063568 12.35279,5.71113 18,2.462972 3.05718,-1.758433 5.38171,-6.552399 4.35184,-10.055563 -1.22555,-4.168813 -5.35998,-6.611246 -8.35184,-9.388885 -3.4549,-3.20752 -5.13367,-7.241526 -4.61112,-11.944448 0.93488,-8.413696 8.07782,-5.219116 12.61112,-2.333333 2.37224,1.510111 4.74974,1.248728 5.33333,4.333333 z\"/></svg>';\nconst EM_SVG =\n '<svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"/></svg>';\n\nexport const NETWORKS: Readonly<Record<NetworkId, NetworkDef>> = {\n x: { id: 'x', label: 'X (Twitter)', color: '#000000', open: 'popup', svg: X_SVG },\n bs: { id: 'bs', label: 'Bluesky', color: '#0285FF', open: 'tab', svg: BS_SVG },\n th: { id: 'th', label: 'Threads', color: '#000000', open: 'tab', svg: TH_SVG },\n wa: { id: 'wa', label: 'WhatsApp', color: '#25D366', open: 'tab', svg: WA_SVG },\n tg: { id: 'tg', label: 'Telegram', color: '#0088cc', open: 'tab', svg: TG_SVG },\n li: { id: 'li', label: 'LinkedIn', color: '#0077b5', open: 'popup', svg: LI_SVG },\n rd: { id: 'rd', label: 'Reddit', color: '#FF4500', open: 'popup', svg: RD_SVG },\n no: { id: 'no', label: 'Nostr', color: '#8e44ad', open: 'copy', svg: NO_SVG },\n em: { id: 'em', label: 'Email', color: '#666666', open: 'email', svg: EM_SVG },\n} as const;\n\nexport const ALL_NETWORKS: readonly NetworkId[] = [\n 'x', 'bs', 'th', 'wa', 'tg', 'li', 'rd', 'no', 'em',\n] as const;\n","import type { NetworkId } from './networks.js';\n\nexport interface BuildLinkInput {\n network: NetworkId;\n title: string;\n url: string;\n /** Handle X opcional (sin @). Si está, se añade \"{title} by @{handle}\" al tweet. */\n xHandle?: string;\n /** Conector \"by\" según locale (i18n). Default \"by\". */\n byWord?: string;\n}\n\n/**\n * Construye la URL del share-intent de cada red. No abre nada, solo devuelve\n * la cadena. Para Nostr (copy-only) devuelve cadena vacía — el contenido\n * que se copia se construye con `buildNostrPayload()`.\n */\nexport function buildShareLink(input: BuildLinkInput): string {\n const { network, title, url, xHandle, byWord = 'by' } = input;\n const txt = encodeURIComponent(title);\n const urlEnc = encodeURIComponent(url);\n\n const xText = xHandle\n ? encodeURIComponent(`${title} ${byWord} @${xHandle.replace(/^@/, '')}`)\n : txt;\n\n switch (network) {\n case 'x':\n return `https://twitter.com/intent/tweet?text=${xText}&url=${urlEnc}`;\n case 'bs':\n return `https://bsky.app/intent/compose?text=${encodeURIComponent(`${title} ${url}`)}`;\n case 'th':\n return `https://www.threads.net/intent/post?text=${encodeURIComponent(`${title} ${url}`)}`;\n case 'wa':\n return `https://api.whatsapp.com/send?text=${txt}%20${urlEnc}`;\n case 'tg':\n return `https://t.me/share/url?url=${urlEnc}&text=${txt}`;\n case 'li':\n return `https://www.linkedin.com/sharing/share-offsite/?url=${urlEnc}`;\n case 'rd':\n return `https://www.reddit.com/submit?url=${urlEnc}&title=${txt}`;\n case 'em':\n return `mailto:?subject=${txt}&body=${urlEnc}`;\n case 'no':\n return '';\n }\n}\n\n/**\n * Payload Nostr: el botón Nostr copia esto al portapapeles porque no hay\n * un share-intent oficial. Hashtag configurable.\n */\nexport function buildNostrPayload(\n title: string,\n url: string,\n hashtag = 'oksigenia',\n): string {\n return `${title}\\n${url}\\n#${hashtag}`;\n}\n","// Heredado del plugin WP oksigenia-share v7.2.\n// Diccionario in-source para evitar fetch en runtime.\n\nexport type LocaleCode = 'en' | 'es' | 'it' | 'nl' | 'de' | 'pt' | 'gn' | 'sv';\n\nexport interface Translation {\n /** Label \"SHARE\" en caps. */\n share: string;\n /** Conector \"by\" usado en el tweet \"{title} by @user\". */\n by: string;\n /** aria-label \"Share on %s\". %s se reemplaza con el nombre de red. */\n shareOn: (network: string) => string;\n /** aria-label del botón de email. */\n shareEmail: string;\n /** aria-label del botón Nostr (copy-only). */\n copyLink: string;\n /** Anunciado por aria-live cuando se copia algo. */\n copied: string;\n /** Prompt fallback cuando clipboard no disponible. */\n copyPrompt: string;\n}\n\nconst DICT: Readonly<Record<LocaleCode, Translation>> = {\n en: {\n share: 'SHARE', by: 'by',\n shareOn: (n) => `Share on ${n}`,\n shareEmail: 'Share by email',\n copyLink: 'Copy link to clipboard',\n copied: 'Copied to clipboard',\n copyPrompt: 'Copy this:',\n },\n es: {\n share: 'COMPARTIR', by: 'por',\n shareOn: (n) => `Compartir en ${n}`,\n shareEmail: 'Compartir por email',\n copyLink: 'Copiar enlace al portapapeles',\n copied: 'Copiado al portapapeles',\n copyPrompt: 'Copia esto:',\n },\n it: {\n share: 'CONDIVIDI', by: 'da',\n shareOn: (n) => `Condividi su ${n}`,\n shareEmail: 'Condividi via email',\n copyLink: 'Copia il link negli appunti',\n copied: 'Copiato negli appunti',\n copyPrompt: 'Copia questo:',\n },\n nl: {\n share: 'DELEN', by: 'door',\n shareOn: (n) => `Deel op ${n}`,\n shareEmail: 'Per e-mail delen',\n copyLink: 'Link kopiëren naar klembord',\n copied: 'Gekopieerd naar klembord',\n copyPrompt: 'Kopieer dit:',\n },\n de: {\n share: 'TEILEN', by: 'von',\n shareOn: (n) => `Auf ${n} teilen`,\n shareEmail: 'Per E-Mail teilen',\n copyLink: 'Link in die Zwischenablage kopieren',\n copied: 'In die Zwischenablage kopiert',\n copyPrompt: 'Dies kopieren:',\n },\n pt: {\n share: 'PARTILHAR', by: 'por',\n shareOn: (n) => `Partilhar no ${n}`,\n shareEmail: 'Partilhar por email',\n copyLink: 'Copiar ligação para a área de transferência',\n copied: 'Copiado para a área de transferência',\n copyPrompt: 'Copiar isto:',\n },\n gn: {\n share: 'MOASÃI', by: 'por',\n shareOn: (n) => `Emoasãi ${n}-pe`,\n shareEmail: 'Emoasãi email rupive',\n copyLink: 'Ekopia link portapapeles-pe',\n copied: 'Oñekopia portapapeles-pe',\n copyPrompt: 'Ekopia kóva:',\n },\n sv: {\n share: 'DELA', by: 'av',\n shareOn: (n) => `Dela på ${n}`,\n shareEmail: 'Dela via e-post',\n copyLink: 'Kopiera länk till urklipp',\n copied: 'Kopierat till urklipp',\n copyPrompt: 'Kopiera detta:',\n },\n};\n\n/**\n * Devuelve la traducción para un locale. Acepta variantes regionales:\n * `es-PY`, `es-ES`, `pt-BR` → todas caen al código base si existe.\n * Fallback final: `en`.\n */\nexport function getTranslation(locale: string): Translation {\n const base = locale.toLowerCase().split(/[-_]/)[0] as LocaleCode;\n return DICT[base] ?? DICT.en;\n}\n\nexport function supportedLocales(): readonly LocaleCode[] {\n return Object.keys(DICT) as LocaleCode[];\n}\n","import {\n ALL_NETWORKS,\n NETWORKS,\n type NetworkId,\n type OpenStrategy,\n} from './networks.js';\nimport { buildShareLink, buildNostrPayload } from './build-link.js';\nimport { getTranslation, type LocaleCode, type Translation } from './translations.js';\n\nexport interface ShareOptions {\n /** URL absoluta a compartir. Si se omite, `location.href` al render. */\n url?: string;\n /** Título o texto del share. Si se omite, `document.title`. */\n title?: string;\n /** Locale (es, en, gn, …). Default: navegador, fallback en. */\n locale?: LocaleCode | string;\n /** Subconjunto/orden de redes. Default: las 9 en orden canónico. */\n networks?: readonly NetworkId[];\n /** Handle de X opcional (con o sin @). */\n xHandle?: string;\n /** Hashtag opcional para el payload Nostr. Default \"oksigenia\". */\n nostrHashtag?: string;\n /** Mostrar el texto \"SHARE\" a la izquierda. Default true. */\n showLabel?: boolean;\n}\n\ninterface PreparedButton {\n id: NetworkId;\n ariaLabel: string;\n type: OpenStrategy;\n link: string;\n copyPayload?: string;\n bgColor: string;\n svg: string;\n}\n\nfunction prepareButtons(opts: Required<Pick<ShareOptions, 'title' | 'url'>> & ShareOptions, t: Translation): PreparedButton[] {\n const list = opts.networks ?? ALL_NETWORKS;\n const out: PreparedButton[] = [];\n for (const id of list) {\n const def = NETWORKS[id];\n if (!def) continue;\n const label = id === 'em'\n ? t.shareEmail\n : id === 'no'\n ? t.copyLink\n : t.shareOn(def.label);\n const link = buildShareLink({\n network: id,\n title: opts.title,\n url: opts.url,\n xHandle: opts.xHandle,\n byWord: t.by,\n });\n const button: PreparedButton = {\n id,\n ariaLabel: label,\n type: def.open,\n link,\n bgColor: def.color,\n svg: def.svg,\n };\n if (id === 'no') {\n button.copyPayload = buildNostrPayload(opts.title, opts.url, opts.nostrHashtag);\n }\n out.push(button);\n }\n return out;\n}\n\n/**\n * Construye el markup HTML del panel de botones. NO lo monta en el DOM;\n * el consumidor decide dónde inyectarlo y si quiere shadow DOM o no.\n */\nexport function buildShareHtml(opts: ShareOptions = {}): string {\n const resolved: Required<Pick<ShareOptions, 'title' | 'url' | 'locale' | 'showLabel'>> & ShareOptions = {\n title: opts.title ?? (typeof document !== 'undefined' ? document.title : ''),\n url: opts.url ?? (typeof location !== 'undefined' ? location.href : ''),\n locale: opts.locale ?? (typeof navigator !== 'undefined' ? navigator.language : 'en'),\n showLabel: opts.showLabel ?? true,\n networks: opts.networks,\n xHandle: opts.xHandle,\n nostrHashtag: opts.nostrHashtag,\n };\n const t = getTranslation(resolved.locale);\n const buttons = prepareButtons(resolved, t);\n\n const labelHtml = resolved.showLabel\n ? `<span class=\"oksigenia-label\" aria-hidden=\"true\">${escapeHtml(t.share)}</span>`\n : '';\n\n const buttonsHtml = buttons\n .map((b) => {\n const dataLink = b.link ? ` data-link=\"${escapeAttr(b.link)}\"` : '';\n const dataCopy = b.copyPayload ? ` data-copy=\"${escapeAttr(b.copyPayload)}\"` : '';\n return `<button type=\"button\" class=\"oksigenia-btn o-${b.id}\" style=\"background:${b.bgColor}\" data-type=\"${b.type}\"${dataLink}${dataCopy} aria-label=\"${escapeAttr(b.ariaLabel)}\">${b.svg}<span class=\"oksigenia-sr-only\" aria-live=\"polite\"></span></button>`;\n })\n .join('');\n\n // role=\"group\" + aria-label cumplen recomendaciones de A11Y / W3C.\n return `<div class=\"oksigenia-panel\" role=\"group\" aria-label=\"${escapeAttr(t.share)}\">${labelHtml}${buttonsHtml}</div>`;\n}\n\nfunction escapeHtml(s: string): string {\n return s.replace(/[&<>\"]/g, (c) => ({\n '&': '&', '<': '<', '>': '>', '\"': '"',\n }[c] ?? c));\n}\nfunction escapeAttr(s: string): string {\n return escapeHtml(s).replace(/'/g, ''');\n}\n\n/**\n * Engancha los listeners de click a los botones renderizados dentro de\n * `root`. Devuelve un dispose para limpiar.\n */\nexport function bindShareEvents(root: ParentNode, opts: ShareOptions = {}): () => void {\n const locale = opts.locale ?? (typeof navigator !== 'undefined' ? navigator.language : 'en');\n const t = getTranslation(locale);\n const buttons = Array.from(root.querySelectorAll<HTMLButtonElement>('.oksigenia-btn'));\n const handler = (e: Event) => {\n e.preventDefault();\n const btn = e.currentTarget as HTMLButtonElement;\n openShare(btn, t);\n };\n for (const b of buttons) b.addEventListener('click', handler);\n return () => {\n for (const b of buttons) b.removeEventListener('click', handler);\n };\n}\n\nfunction openShare(btn: HTMLButtonElement, t: Translation): void {\n const link = btn.getAttribute('data-link') ?? '';\n const type = (btn.getAttribute('data-type') ?? 'tab') as OpenStrategy;\n const live = btn.querySelector<HTMLElement>('.oksigenia-sr-only');\n\n if (type === 'popup') {\n const w = 600;\n const h = 400;\n const left = (window.innerWidth - w) / 2;\n const top = (window.innerHeight - h) / 2;\n window.open(link, 'oksigenia_share', `width=${w},height=${h},top=${top},left=${left},scrollbars=no`);\n return;\n }\n if (type === 'tab') {\n window.open(link, '_blank', 'noopener');\n return;\n }\n if (type === 'email') {\n window.location.href = link;\n return;\n }\n if (type === 'copy') {\n const text = btn.getAttribute('data-copy') ?? '';\n const done = () => {\n btn.classList.add('copied');\n if (live) live.textContent = t.copied;\n window.setTimeout(() => {\n btn.classList.remove('copied');\n if (live) live.textContent = '';\n }, 2000);\n };\n if (navigator.clipboard?.writeText) {\n navigator.clipboard.writeText(text).then(done).catch(() => {\n window.prompt(t.copyPrompt, text);\n });\n } else {\n window.prompt(t.copyPrompt, text);\n }\n }\n}\n","// CSS del panel de botones. Se inyecta inline en el Shadow DOM\n// (cuando se usa el web component) o se importa como `dist/styles.css`\n// si se usa el helper imperativo en light DOM.\n\nexport const SHARE_CSS = `\n:host { display: block; }\n.oksigenia-panel {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 30px 0;\n padding: 10px 18px;\n background: rgba(0,0,0,0.03);\n border-radius: 60px;\n width: fit-content;\n flex-wrap: wrap;\n font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n}\n.oksigenia-label {\n font-weight: 800;\n font-size: 11px;\n margin-right: 12px;\n text-transform: uppercase;\n color: #555;\n letter-spacing: 1.5px;\n}\n.oksigenia-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border-radius: 50%;\n border: none;\n cursor: pointer;\n transition: transform .2s, filter .2s, box-shadow .2s;\n box-shadow: 0 3px 6px rgba(0,0,0,0.1);\n position: relative;\n text-decoration: none !important;\n padding: 0;\n overflow: visible;\n}\n.oksigenia-btn:hover {\n transform: translateY(-3px);\n filter: brightness(1.1);\n box-shadow: 0 5px 12px rgba(0,0,0,0.2);\n}\n.oksigenia-btn:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 3px;\n}\n.oksigenia-btn svg {\n width: 22px;\n height: 22px;\n fill: #fff;\n pointer-events: none;\n}\n.oksigenia-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0,0,0,0);\n white-space: nowrap;\n border: 0;\n}\n.o-no.copied { background: #00a884 !important; }\n@media (max-width: 480px) {\n .oksigenia-panel { padding: 8px 12px; gap: 8px; justify-content: center; }\n .oksigenia-btn { width: 38px; height: 38px; }\n .oksigenia-btn svg { width: 18px; height: 18px; }\n .oksigenia-label { margin-right: 6px; }\n}\n@media (prefers-reduced-motion: reduce) {\n .oksigenia-btn { transition: none; }\n .oksigenia-btn:hover { transform: none; }\n}\n`;\n","// Punto de entrada principal · API imperativa + tipos.\n// Para el web component <oksigenia-share>, importar\n// '@oksigenia/share/web-component'.\n\nexport {\n NETWORKS,\n ALL_NETWORKS,\n type NetworkId,\n type OpenStrategy,\n type NetworkDef,\n} from './networks.js';\n\nexport {\n buildShareLink,\n buildNostrPayload,\n type BuildLinkInput,\n} from './build-link.js';\n\nexport {\n getTranslation,\n supportedLocales,\n type LocaleCode,\n type Translation,\n} from './translations.js';\n\nexport {\n buildShareHtml,\n bindShareEvents,\n type ShareOptions,\n} from './render.js';\n\nexport { SHARE_CSS } from './styles.js';\n\nimport { buildShareHtml, bindShareEvents, type ShareOptions } from './render.js';\nimport { SHARE_CSS } from './styles.js';\n\nexport interface MountResult {\n /** Elemento .oksigenia-panel insertado. */\n panel: HTMLElement;\n /** Limpia listeners y remueve el panel del DOM. */\n destroy: () => void;\n}\n\n/**\n * Inserta el panel de botones dentro de `target` (light DOM) y engancha\n * listeners. El CSS NO se inyecta — asegurate de cargar\n * `@oksigenia/share/styles.css` o de inyectar `SHARE_CSS` por tu cuenta.\n *\n * Para inyección automática con shadow DOM aislado, usa el web component:\n * `import '@oksigenia/share/web-component'` y `<oksigenia-share>`.\n */\nexport function mountShare(\n target: HTMLElement,\n options: ShareOptions = {},\n): MountResult {\n const wrapper = document.createElement('div');\n wrapper.innerHTML = buildShareHtml(options);\n const panel = wrapper.firstElementChild as HTMLElement;\n target.appendChild(panel);\n const dispose = bindShareEvents(panel, options);\n return {\n panel,\n destroy: () => {\n dispose();\n panel.remove();\n },\n };\n}\n"]}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
:host { display: block; }
|
|
2
|
+
.oksigenia-panel {
|
|
3
|
+
display: flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 10px;
|
|
6
|
+
margin: 30px 0;
|
|
7
|
+
padding: 10px 18px;
|
|
8
|
+
background: rgba(0,0,0,0.03);
|
|
9
|
+
border-radius: 60px;
|
|
10
|
+
width: fit-content;
|
|
11
|
+
flex-wrap: wrap;
|
|
12
|
+
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
13
|
+
}
|
|
14
|
+
.oksigenia-label {
|
|
15
|
+
font-weight: 800;
|
|
16
|
+
font-size: 11px;
|
|
17
|
+
margin-right: 12px;
|
|
18
|
+
text-transform: uppercase;
|
|
19
|
+
color: #555;
|
|
20
|
+
letter-spacing: 1.5px;
|
|
21
|
+
}
|
|
22
|
+
.oksigenia-btn {
|
|
23
|
+
display: inline-flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
width: 44px;
|
|
27
|
+
height: 44px;
|
|
28
|
+
border-radius: 50%;
|
|
29
|
+
border: none;
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
transition: transform .2s, filter .2s, box-shadow .2s;
|
|
32
|
+
box-shadow: 0 3px 6px rgba(0,0,0,0.1);
|
|
33
|
+
position: relative;
|
|
34
|
+
text-decoration: none !important;
|
|
35
|
+
padding: 0;
|
|
36
|
+
overflow: visible;
|
|
37
|
+
}
|
|
38
|
+
.oksigenia-btn:hover {
|
|
39
|
+
transform: translateY(-3px);
|
|
40
|
+
filter: brightness(1.1);
|
|
41
|
+
box-shadow: 0 5px 12px rgba(0,0,0,0.2);
|
|
42
|
+
}
|
|
43
|
+
.oksigenia-btn:focus-visible {
|
|
44
|
+
outline: 2px solid currentColor;
|
|
45
|
+
outline-offset: 3px;
|
|
46
|
+
}
|
|
47
|
+
.oksigenia-btn svg {
|
|
48
|
+
width: 22px;
|
|
49
|
+
height: 22px;
|
|
50
|
+
fill: #fff;
|
|
51
|
+
pointer-events: none;
|
|
52
|
+
}
|
|
53
|
+
.oksigenia-sr-only {
|
|
54
|
+
position: absolute;
|
|
55
|
+
width: 1px;
|
|
56
|
+
height: 1px;
|
|
57
|
+
padding: 0;
|
|
58
|
+
margin: -1px;
|
|
59
|
+
overflow: hidden;
|
|
60
|
+
clip: rect(0,0,0,0);
|
|
61
|
+
white-space: nowrap;
|
|
62
|
+
border: 0;
|
|
63
|
+
}
|
|
64
|
+
.o-no.copied { background: #00a884 !important; }
|
|
65
|
+
@media (max-width: 480px) {
|
|
66
|
+
.oksigenia-panel { padding: 8px 12px; gap: 8px; justify-content: center; }
|
|
67
|
+
.oksigenia-btn { width: 38px; height: 38px; }
|
|
68
|
+
.oksigenia-btn svg { width: 18px; height: 18px; }
|
|
69
|
+
.oksigenia-label { margin-right: 6px; }
|
|
70
|
+
}
|
|
71
|
+
@media (prefers-reduced-motion: reduce) {
|
|
72
|
+
.oksigenia-btn { transition: none; }
|
|
73
|
+
.oksigenia-btn:hover { transform: none; }
|
|
74
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare class OksigeniaShareElement extends HTMLElement {
|
|
2
|
+
static get observedAttributes(): readonly string[];
|
|
3
|
+
private _dispose;
|
|
4
|
+
constructor();
|
|
5
|
+
connectedCallback(): void;
|
|
6
|
+
disconnectedCallback(): void;
|
|
7
|
+
attributeChangedCallback(): void;
|
|
8
|
+
private parseNetworks;
|
|
9
|
+
private render;
|
|
10
|
+
}
|
|
11
|
+
declare global {
|
|
12
|
+
interface HTMLElementTagNameMap {
|
|
13
|
+
'oksigenia-share': OksigeniaShareElement;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { OksigeniaShareElement };
|
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
// src/networks.ts
|
|
2
|
+
var X_SVG = '<svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>';
|
|
3
|
+
var BS_SVG = '<svg viewBox="0 0 600 530" aria-hidden="true" focusable="false"><path d="M135.7 44.4C202.6 94.7 274.6 196.7 301 251.4c26.4-54.7 98.4-156.7 165.3-207C512.7 9.5 587 -16.3 587 67.4c0 16.7-9.6 140.5-15.2 160.6-19.6 70-91 87.8-154.4 77 110.9 18.9 139.1 81.4 78.2 144-115.7 119-166.4-29.8-179.4-67.9-2.4-7-3.5-10.3-3.5-7.5 0 -2.8-1.1 .5-3.5 7.5-13 38.1-63.7 186.9-179.4 67.9-60.9-62.6-32.7-125.1 78.2-144-63.5 10.8-134.8-7.1-154.4-77C48 207.8 38.4 84.1 38.4 67.4 38.4-16.3 112.7 9.5 135.7 44.4z"/></svg>';
|
|
4
|
+
var TH_SVG = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.749-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.323.144 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z"/></svg>';
|
|
5
|
+
var WA_SVG = '<svg viewBox="0 0 448 512" aria-hidden="true" focusable="false"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-5.5-2.8-23.4-8.6-44.6-27.5-16.5-14.7-27.6-32.8-30.8-38.4-3.2-5.6-.3-8.6 2.5-11.4 2.5-2.5 5.5-6.5 8.3-9.7 2.8-3.2 3.7-5.5 5.5-9.2 1.9-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 13.2 5.8 23.5 9.2 31.5 11.8 13.3 4.2 25.4 3.6 35 2.2 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg>';
|
|
6
|
+
var TG_SVG = '<svg viewBox="0 0 448 512" aria-hidden="true" focusable="false"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"/></svg>';
|
|
7
|
+
var LI_SVG = '<svg viewBox="0 0 448 512" aria-hidden="true" focusable="false"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"/></svg>';
|
|
8
|
+
var RD_SVG = '<svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zm129 41.2c-12.3 12.3-37.8 13.4-45.3 13.4-7.5 0-32.7-1.4-45-13.4-1.8-1.8-1.8-4.8 0-6.9 1.8-1.8 4.8-1.8 6.6 0 7.8 7.8 24.3 10.5 38.4 10.5s30.9-2.7 38.7-10.5c1.8-1.8 4.8-1.8 6.6 0 1.8 2.1 1.8 5.1 0 6.9zm-12.3-41.2c0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6-13.8 0-24.9-11.1-24.9-24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 9.9-22.8-15.6-52.8-25.8-86.1-27l17.4-78.9 55.5 12.3c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.4 24.9-24.9s-11.1-24.9-24.9-24.9c-9.6 0-17.7 5.7-21.6 13.5l-61.5-13.5c-3-.9-6 1.2-6.6 4.2l-19.2 86.7c-32.7 1.5-62.7 11.7-85.5 27.3-6-6.3-14.7-9.9-23.7-9.9-34.8 0-46.2 46.8-14.4 62.7-1.2 5.1-1.8 10.8-1.8 16.2 0 49.5 56.1 89.7 125.4 89.7 69.6 0 125.7-40.2 125.7-89.7 0-5.4-.6-11.4-2.1-16.5 31.5-15.9 19.8-62.4-14.4-62.4z"/></svg>';
|
|
9
|
+
var NO_SVG = '<svg viewBox="0 0 170.66667 170" aria-hidden="true" focusable="false"><path d="M 80.014749,0.78606659 C 73.052769,1.9302826 66.167099,2.3642936 59.348089,4.5268096 38.835519,11.031957 21.050593,25.529048 10.848085,44.52681 -6.8624293,77.505 -0.92508032,121.67898 27.348086,147.13792 c 11.539173,10.3906 24.998793,17.01823 40.000003,20.62963 9.26968,2.23159 19.24599,2.5862 28.66667,1.27777 C 139.11925,163.05859 171.85692,124.19929 169.32958,80.52681 167.31241,45.669937 143.27583,13.848984 109.34809,4.2675526 100.31238,1.7158046 89.426889,-0.76084941 80.014749,0.78606659 M 136.01476,34.52681 c -2.37396,0 -11.65111,-0.914032 -11.03704,3.333333 0.44515,3.078919 4.97786,5.419108 7.01853,7.388886 2.78243,2.685771 4.44989,6.742004 4.6111,10.611114 0.43316,10.395773 -8.18644,14.669088 -14.53704,20.81482 -4.11595,3.983174 -1.16762,10.854736 -6.07406,15.018514 -5.28385,4.484059 -13.33279,3.273844 -19.314831,6.111114 -4.69327,2.226009 -7.84703,7.913129 -10.66667,12.055549 l 14.666681,-4.44443 7.33333,-1.22223 5.98149,6.33333 2.01851,5.33333 c -2.72032,-0.0572 -6.29832,-0.90982 -8.61111,-2.42592 -1.43022,-0.93754 -2.13911,-2.61031 -4.05556,-2.55556 -1.73865,0.0497 -3.687801,1.1301 -5.333331,1.64815 -4.89415,1.54075 -9.77338,3.60264 -14.66667,5.01851 -4.97774,1.44033 -6.14184,-3.22559 -4.5,-7.01851 0.58509,-1.35166 1.3007,-2.70345 2,-4 1.22817,-2.27712 2.8155,-4.29175 3.83333,-6.666667 -14.44897,7.042367 -23.21779,20.075037 -32.57408,32.666667 -2.69666,3.62915 -5.83349,7.00277 -8.44444,10.66667 -0.74469,1.045 -1.43956,3.39244 -3.01852,3.44444 -1.48153,0.0488 -1.89431,-1.62287 -1.88889,-2.77778 0.012,-2.56211 1.55286,-4.83939 1.87038,-7.33333 0.16984,-1.33409 -0.3317,-3.17503 0.53703,-4.33333 1.46427,-1.95236 4.81923,-1.69841 6.5926,-3.68518 4.11706,-4.61253 7.99675,-10.65312 11.12963,-15.98149 1.00019,-1.70113 1.31074,-3.7756 2.62962,-5.27777 4.15881,-4.73677 10.29882,-7.15127 13.83334,-12.72223 -3.78599,-0.77946 -7.81198,-1.877889 -11.33334,-3.5 -2.16788,-0.998637 -4.28318,-2.695353 -6.66666,-3.09259 -4.92365,-0.820608 -7.70844,2.301147 -12,3.59259 -3.55609,1.070119 -9.1464,-2.835714 -11,-5.666667 -2.9074,-4.440389 1.59973,-11.14448 5.66666,-13.055562 7.85432,-3.690796 17.10949,-1.957876 25.33334,-4.185181 8.80831,-2.385589 15.88491,-8.429891 25.33333,-9.370371 6.13412,-0.610576 12.248691,0.007 18.000011,2.203705 5.40278,2.063568 12.35279,5.71113 18,2.462972 3.05718,-1.758433 5.38171,-6.552399 4.35184,-10.055563 -1.22555,-4.168813 -5.35998,-6.611246 -8.35184,-9.388885 -3.4549,-3.20752 -5.13367,-7.241526 -4.61112,-11.944448 0.93488,-8.413696 8.07782,-5.219116 12.61112,-2.333333 2.37224,1.510111 4.74974,1.248728 5.33333,4.333333 z"/></svg>';
|
|
10
|
+
var EM_SVG = '<svg viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"/></svg>';
|
|
11
|
+
var NETWORKS = {
|
|
12
|
+
x: { id: "x", label: "X (Twitter)", color: "#000000", open: "popup", svg: X_SVG },
|
|
13
|
+
bs: { id: "bs", label: "Bluesky", color: "#0285FF", open: "tab", svg: BS_SVG },
|
|
14
|
+
th: { id: "th", label: "Threads", color: "#000000", open: "tab", svg: TH_SVG },
|
|
15
|
+
wa: { id: "wa", label: "WhatsApp", color: "#25D366", open: "tab", svg: WA_SVG },
|
|
16
|
+
tg: { id: "tg", label: "Telegram", color: "#0088cc", open: "tab", svg: TG_SVG },
|
|
17
|
+
li: { id: "li", label: "LinkedIn", color: "#0077b5", open: "popup", svg: LI_SVG },
|
|
18
|
+
rd: { id: "rd", label: "Reddit", color: "#FF4500", open: "popup", svg: RD_SVG },
|
|
19
|
+
no: { id: "no", label: "Nostr", color: "#8e44ad", open: "copy", svg: NO_SVG },
|
|
20
|
+
em: { id: "em", label: "Email", color: "#666666", open: "email", svg: EM_SVG }
|
|
21
|
+
};
|
|
22
|
+
var ALL_NETWORKS = [
|
|
23
|
+
"x",
|
|
24
|
+
"bs",
|
|
25
|
+
"th",
|
|
26
|
+
"wa",
|
|
27
|
+
"tg",
|
|
28
|
+
"li",
|
|
29
|
+
"rd",
|
|
30
|
+
"no",
|
|
31
|
+
"em"
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
// src/build-link.ts
|
|
35
|
+
function buildShareLink(input) {
|
|
36
|
+
const { network, title, url, xHandle, byWord = "by" } = input;
|
|
37
|
+
const txt = encodeURIComponent(title);
|
|
38
|
+
const urlEnc = encodeURIComponent(url);
|
|
39
|
+
const xText = xHandle ? encodeURIComponent(`${title} ${byWord} @${xHandle.replace(/^@/, "")}`) : txt;
|
|
40
|
+
switch (network) {
|
|
41
|
+
case "x":
|
|
42
|
+
return `https://twitter.com/intent/tweet?text=${xText}&url=${urlEnc}`;
|
|
43
|
+
case "bs":
|
|
44
|
+
return `https://bsky.app/intent/compose?text=${encodeURIComponent(`${title} ${url}`)}`;
|
|
45
|
+
case "th":
|
|
46
|
+
return `https://www.threads.net/intent/post?text=${encodeURIComponent(`${title} ${url}`)}`;
|
|
47
|
+
case "wa":
|
|
48
|
+
return `https://api.whatsapp.com/send?text=${txt}%20${urlEnc}`;
|
|
49
|
+
case "tg":
|
|
50
|
+
return `https://t.me/share/url?url=${urlEnc}&text=${txt}`;
|
|
51
|
+
case "li":
|
|
52
|
+
return `https://www.linkedin.com/sharing/share-offsite/?url=${urlEnc}`;
|
|
53
|
+
case "rd":
|
|
54
|
+
return `https://www.reddit.com/submit?url=${urlEnc}&title=${txt}`;
|
|
55
|
+
case "em":
|
|
56
|
+
return `mailto:?subject=${txt}&body=${urlEnc}`;
|
|
57
|
+
case "no":
|
|
58
|
+
return "";
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function buildNostrPayload(title, url, hashtag = "oksigenia") {
|
|
62
|
+
return `${title}
|
|
63
|
+
${url}
|
|
64
|
+
#${hashtag}`;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// src/translations.ts
|
|
68
|
+
var DICT = {
|
|
69
|
+
en: {
|
|
70
|
+
share: "SHARE",
|
|
71
|
+
by: "by",
|
|
72
|
+
shareOn: (n) => `Share on ${n}`,
|
|
73
|
+
shareEmail: "Share by email",
|
|
74
|
+
copyLink: "Copy link to clipboard",
|
|
75
|
+
copied: "Copied to clipboard",
|
|
76
|
+
copyPrompt: "Copy this:"
|
|
77
|
+
},
|
|
78
|
+
es: {
|
|
79
|
+
share: "COMPARTIR",
|
|
80
|
+
by: "por",
|
|
81
|
+
shareOn: (n) => `Compartir en ${n}`,
|
|
82
|
+
shareEmail: "Compartir por email",
|
|
83
|
+
copyLink: "Copiar enlace al portapapeles",
|
|
84
|
+
copied: "Copiado al portapapeles",
|
|
85
|
+
copyPrompt: "Copia esto:"
|
|
86
|
+
},
|
|
87
|
+
it: {
|
|
88
|
+
share: "CONDIVIDI",
|
|
89
|
+
by: "da",
|
|
90
|
+
shareOn: (n) => `Condividi su ${n}`,
|
|
91
|
+
shareEmail: "Condividi via email",
|
|
92
|
+
copyLink: "Copia il link negli appunti",
|
|
93
|
+
copied: "Copiato negli appunti",
|
|
94
|
+
copyPrompt: "Copia questo:"
|
|
95
|
+
},
|
|
96
|
+
nl: {
|
|
97
|
+
share: "DELEN",
|
|
98
|
+
by: "door",
|
|
99
|
+
shareOn: (n) => `Deel op ${n}`,
|
|
100
|
+
shareEmail: "Per e-mail delen",
|
|
101
|
+
copyLink: "Link kopi\xEBren naar klembord",
|
|
102
|
+
copied: "Gekopieerd naar klembord",
|
|
103
|
+
copyPrompt: "Kopieer dit:"
|
|
104
|
+
},
|
|
105
|
+
de: {
|
|
106
|
+
share: "TEILEN",
|
|
107
|
+
by: "von",
|
|
108
|
+
shareOn: (n) => `Auf ${n} teilen`,
|
|
109
|
+
shareEmail: "Per E-Mail teilen",
|
|
110
|
+
copyLink: "Link in die Zwischenablage kopieren",
|
|
111
|
+
copied: "In die Zwischenablage kopiert",
|
|
112
|
+
copyPrompt: "Dies kopieren:"
|
|
113
|
+
},
|
|
114
|
+
pt: {
|
|
115
|
+
share: "PARTILHAR",
|
|
116
|
+
by: "por",
|
|
117
|
+
shareOn: (n) => `Partilhar no ${n}`,
|
|
118
|
+
shareEmail: "Partilhar por email",
|
|
119
|
+
copyLink: "Copiar liga\xE7\xE3o para a \xE1rea de transfer\xEAncia",
|
|
120
|
+
copied: "Copiado para a \xE1rea de transfer\xEAncia",
|
|
121
|
+
copyPrompt: "Copiar isto:"
|
|
122
|
+
},
|
|
123
|
+
gn: {
|
|
124
|
+
share: "MOAS\xC3I",
|
|
125
|
+
by: "por",
|
|
126
|
+
shareOn: (n) => `Emoas\xE3i ${n}-pe`,
|
|
127
|
+
shareEmail: "Emoas\xE3i email rupive",
|
|
128
|
+
copyLink: "Ekopia link portapapeles-pe",
|
|
129
|
+
copied: "O\xF1ekopia portapapeles-pe",
|
|
130
|
+
copyPrompt: "Ekopia k\xF3va:"
|
|
131
|
+
},
|
|
132
|
+
sv: {
|
|
133
|
+
share: "DELA",
|
|
134
|
+
by: "av",
|
|
135
|
+
shareOn: (n) => `Dela p\xE5 ${n}`,
|
|
136
|
+
shareEmail: "Dela via e-post",
|
|
137
|
+
copyLink: "Kopiera l\xE4nk till urklipp",
|
|
138
|
+
copied: "Kopierat till urklipp",
|
|
139
|
+
copyPrompt: "Kopiera detta:"
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
function getTranslation(locale) {
|
|
143
|
+
const base = locale.toLowerCase().split(/[-_]/)[0];
|
|
144
|
+
return DICT[base] ?? DICT.en;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// src/render.ts
|
|
148
|
+
function prepareButtons(opts, t) {
|
|
149
|
+
const list = opts.networks ?? ALL_NETWORKS;
|
|
150
|
+
const out = [];
|
|
151
|
+
for (const id of list) {
|
|
152
|
+
const def = NETWORKS[id];
|
|
153
|
+
if (!def) continue;
|
|
154
|
+
const label = id === "em" ? t.shareEmail : id === "no" ? t.copyLink : t.shareOn(def.label);
|
|
155
|
+
const link = buildShareLink({
|
|
156
|
+
network: id,
|
|
157
|
+
title: opts.title,
|
|
158
|
+
url: opts.url,
|
|
159
|
+
xHandle: opts.xHandle,
|
|
160
|
+
byWord: t.by
|
|
161
|
+
});
|
|
162
|
+
const button = {
|
|
163
|
+
id,
|
|
164
|
+
ariaLabel: label,
|
|
165
|
+
type: def.open,
|
|
166
|
+
link,
|
|
167
|
+
bgColor: def.color,
|
|
168
|
+
svg: def.svg
|
|
169
|
+
};
|
|
170
|
+
if (id === "no") {
|
|
171
|
+
button.copyPayload = buildNostrPayload(opts.title, opts.url, opts.nostrHashtag);
|
|
172
|
+
}
|
|
173
|
+
out.push(button);
|
|
174
|
+
}
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
177
|
+
function buildShareHtml(opts = {}) {
|
|
178
|
+
const resolved = {
|
|
179
|
+
title: opts.title ?? (typeof document !== "undefined" ? document.title : ""),
|
|
180
|
+
url: opts.url ?? (typeof location !== "undefined" ? location.href : ""),
|
|
181
|
+
locale: opts.locale ?? (typeof navigator !== "undefined" ? navigator.language : "en"),
|
|
182
|
+
showLabel: opts.showLabel ?? true,
|
|
183
|
+
networks: opts.networks,
|
|
184
|
+
xHandle: opts.xHandle,
|
|
185
|
+
nostrHashtag: opts.nostrHashtag
|
|
186
|
+
};
|
|
187
|
+
const t = getTranslation(resolved.locale);
|
|
188
|
+
const buttons = prepareButtons(resolved, t);
|
|
189
|
+
const labelHtml = resolved.showLabel ? `<span class="oksigenia-label" aria-hidden="true">${escapeHtml(t.share)}</span>` : "";
|
|
190
|
+
const buttonsHtml = buttons.map((b) => {
|
|
191
|
+
const dataLink = b.link ? ` data-link="${escapeAttr(b.link)}"` : "";
|
|
192
|
+
const dataCopy = b.copyPayload ? ` data-copy="${escapeAttr(b.copyPayload)}"` : "";
|
|
193
|
+
return `<button type="button" class="oksigenia-btn o-${b.id}" style="background:${b.bgColor}" data-type="${b.type}"${dataLink}${dataCopy} aria-label="${escapeAttr(b.ariaLabel)}">${b.svg}<span class="oksigenia-sr-only" aria-live="polite"></span></button>`;
|
|
194
|
+
}).join("");
|
|
195
|
+
return `<div class="oksigenia-panel" role="group" aria-label="${escapeAttr(t.share)}">${labelHtml}${buttonsHtml}</div>`;
|
|
196
|
+
}
|
|
197
|
+
function escapeHtml(s) {
|
|
198
|
+
return s.replace(/[&<>"]/g, (c) => ({
|
|
199
|
+
"&": "&",
|
|
200
|
+
"<": "<",
|
|
201
|
+
">": ">",
|
|
202
|
+
'"': """
|
|
203
|
+
})[c] ?? c);
|
|
204
|
+
}
|
|
205
|
+
function escapeAttr(s) {
|
|
206
|
+
return escapeHtml(s).replace(/'/g, "'");
|
|
207
|
+
}
|
|
208
|
+
function bindShareEvents(root, opts = {}) {
|
|
209
|
+
const locale = opts.locale ?? (typeof navigator !== "undefined" ? navigator.language : "en");
|
|
210
|
+
const t = getTranslation(locale);
|
|
211
|
+
const buttons = Array.from(root.querySelectorAll(".oksigenia-btn"));
|
|
212
|
+
const handler = (e) => {
|
|
213
|
+
e.preventDefault();
|
|
214
|
+
const btn = e.currentTarget;
|
|
215
|
+
openShare(btn, t);
|
|
216
|
+
};
|
|
217
|
+
for (const b of buttons) b.addEventListener("click", handler);
|
|
218
|
+
return () => {
|
|
219
|
+
for (const b of buttons) b.removeEventListener("click", handler);
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
function openShare(btn, t) {
|
|
223
|
+
const link = btn.getAttribute("data-link") ?? "";
|
|
224
|
+
const type = btn.getAttribute("data-type") ?? "tab";
|
|
225
|
+
const live = btn.querySelector(".oksigenia-sr-only");
|
|
226
|
+
if (type === "popup") {
|
|
227
|
+
const w = 600;
|
|
228
|
+
const h = 400;
|
|
229
|
+
const left = (window.innerWidth - w) / 2;
|
|
230
|
+
const top = (window.innerHeight - h) / 2;
|
|
231
|
+
window.open(link, "oksigenia_share", `width=${w},height=${h},top=${top},left=${left},scrollbars=no`);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
if (type === "tab") {
|
|
235
|
+
window.open(link, "_blank", "noopener");
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (type === "email") {
|
|
239
|
+
window.location.href = link;
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (type === "copy") {
|
|
243
|
+
const text = btn.getAttribute("data-copy") ?? "";
|
|
244
|
+
const done = () => {
|
|
245
|
+
btn.classList.add("copied");
|
|
246
|
+
if (live) live.textContent = t.copied;
|
|
247
|
+
window.setTimeout(() => {
|
|
248
|
+
btn.classList.remove("copied");
|
|
249
|
+
if (live) live.textContent = "";
|
|
250
|
+
}, 2e3);
|
|
251
|
+
};
|
|
252
|
+
if (navigator.clipboard?.writeText) {
|
|
253
|
+
navigator.clipboard.writeText(text).then(done).catch(() => {
|
|
254
|
+
window.prompt(t.copyPrompt, text);
|
|
255
|
+
});
|
|
256
|
+
} else {
|
|
257
|
+
window.prompt(t.copyPrompt, text);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// src/styles.ts
|
|
263
|
+
var SHARE_CSS = `
|
|
264
|
+
:host { display: block; }
|
|
265
|
+
.oksigenia-panel {
|
|
266
|
+
display: flex;
|
|
267
|
+
align-items: center;
|
|
268
|
+
gap: 10px;
|
|
269
|
+
margin: 30px 0;
|
|
270
|
+
padding: 10px 18px;
|
|
271
|
+
background: rgba(0,0,0,0.03);
|
|
272
|
+
border-radius: 60px;
|
|
273
|
+
width: fit-content;
|
|
274
|
+
flex-wrap: wrap;
|
|
275
|
+
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
276
|
+
}
|
|
277
|
+
.oksigenia-label {
|
|
278
|
+
font-weight: 800;
|
|
279
|
+
font-size: 11px;
|
|
280
|
+
margin-right: 12px;
|
|
281
|
+
text-transform: uppercase;
|
|
282
|
+
color: #555;
|
|
283
|
+
letter-spacing: 1.5px;
|
|
284
|
+
}
|
|
285
|
+
.oksigenia-btn {
|
|
286
|
+
display: inline-flex;
|
|
287
|
+
align-items: center;
|
|
288
|
+
justify-content: center;
|
|
289
|
+
width: 44px;
|
|
290
|
+
height: 44px;
|
|
291
|
+
border-radius: 50%;
|
|
292
|
+
border: none;
|
|
293
|
+
cursor: pointer;
|
|
294
|
+
transition: transform .2s, filter .2s, box-shadow .2s;
|
|
295
|
+
box-shadow: 0 3px 6px rgba(0,0,0,0.1);
|
|
296
|
+
position: relative;
|
|
297
|
+
text-decoration: none !important;
|
|
298
|
+
padding: 0;
|
|
299
|
+
overflow: visible;
|
|
300
|
+
}
|
|
301
|
+
.oksigenia-btn:hover {
|
|
302
|
+
transform: translateY(-3px);
|
|
303
|
+
filter: brightness(1.1);
|
|
304
|
+
box-shadow: 0 5px 12px rgba(0,0,0,0.2);
|
|
305
|
+
}
|
|
306
|
+
.oksigenia-btn:focus-visible {
|
|
307
|
+
outline: 2px solid currentColor;
|
|
308
|
+
outline-offset: 3px;
|
|
309
|
+
}
|
|
310
|
+
.oksigenia-btn svg {
|
|
311
|
+
width: 22px;
|
|
312
|
+
height: 22px;
|
|
313
|
+
fill: #fff;
|
|
314
|
+
pointer-events: none;
|
|
315
|
+
}
|
|
316
|
+
.oksigenia-sr-only {
|
|
317
|
+
position: absolute;
|
|
318
|
+
width: 1px;
|
|
319
|
+
height: 1px;
|
|
320
|
+
padding: 0;
|
|
321
|
+
margin: -1px;
|
|
322
|
+
overflow: hidden;
|
|
323
|
+
clip: rect(0,0,0,0);
|
|
324
|
+
white-space: nowrap;
|
|
325
|
+
border: 0;
|
|
326
|
+
}
|
|
327
|
+
.o-no.copied { background: #00a884 !important; }
|
|
328
|
+
@media (max-width: 480px) {
|
|
329
|
+
.oksigenia-panel { padding: 8px 12px; gap: 8px; justify-content: center; }
|
|
330
|
+
.oksigenia-btn { width: 38px; height: 38px; }
|
|
331
|
+
.oksigenia-btn svg { width: 18px; height: 18px; }
|
|
332
|
+
.oksigenia-label { margin-right: 6px; }
|
|
333
|
+
}
|
|
334
|
+
@media (prefers-reduced-motion: reduce) {
|
|
335
|
+
.oksigenia-btn { transition: none; }
|
|
336
|
+
.oksigenia-btn:hover { transform: none; }
|
|
337
|
+
}
|
|
338
|
+
`;
|
|
339
|
+
|
|
340
|
+
// src/web-component.ts
|
|
341
|
+
var OBSERVED = [
|
|
342
|
+
"url",
|
|
343
|
+
"title",
|
|
344
|
+
"locale",
|
|
345
|
+
"networks",
|
|
346
|
+
"x-handle",
|
|
347
|
+
"nostr-hashtag",
|
|
348
|
+
"no-label"
|
|
349
|
+
];
|
|
350
|
+
var OksigeniaShareElement = class extends HTMLElement {
|
|
351
|
+
static get observedAttributes() {
|
|
352
|
+
return OBSERVED;
|
|
353
|
+
}
|
|
354
|
+
_dispose = null;
|
|
355
|
+
constructor() {
|
|
356
|
+
super();
|
|
357
|
+
this.attachShadow({ mode: "open" });
|
|
358
|
+
}
|
|
359
|
+
connectedCallback() {
|
|
360
|
+
this.render();
|
|
361
|
+
}
|
|
362
|
+
disconnectedCallback() {
|
|
363
|
+
this._dispose?.();
|
|
364
|
+
this._dispose = null;
|
|
365
|
+
}
|
|
366
|
+
attributeChangedCallback() {
|
|
367
|
+
if (this.isConnected) this.render();
|
|
368
|
+
}
|
|
369
|
+
parseNetworks() {
|
|
370
|
+
const attr = this.getAttribute("networks");
|
|
371
|
+
if (!attr) return void 0;
|
|
372
|
+
const ids = attr.split(/[,\s]+/).filter(Boolean);
|
|
373
|
+
return ids.filter((id) => ALL_NETWORKS.includes(id));
|
|
374
|
+
}
|
|
375
|
+
render() {
|
|
376
|
+
const shadow = this.shadowRoot;
|
|
377
|
+
if (!shadow) return;
|
|
378
|
+
this._dispose?.();
|
|
379
|
+
const html = buildShareHtml({
|
|
380
|
+
url: this.getAttribute("url") ?? void 0,
|
|
381
|
+
title: this.getAttribute("title") ?? void 0,
|
|
382
|
+
locale: this.getAttribute("locale") ?? void 0,
|
|
383
|
+
networks: this.parseNetworks(),
|
|
384
|
+
xHandle: this.getAttribute("x-handle") ?? void 0,
|
|
385
|
+
nostrHashtag: this.getAttribute("nostr-hashtag") ?? void 0,
|
|
386
|
+
showLabel: !this.hasAttribute("no-label")
|
|
387
|
+
});
|
|
388
|
+
shadow.innerHTML = `<style>${SHARE_CSS}</style>${html}`;
|
|
389
|
+
this._dispose = bindShareEvents(shadow, {
|
|
390
|
+
locale: this.getAttribute("locale") ?? void 0
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
if (typeof customElements !== "undefined" && !customElements.get("oksigenia-share")) {
|
|
395
|
+
customElements.define("oksigenia-share", OksigeniaShareElement);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
export { OksigeniaShareElement };
|
|
399
|
+
//# sourceMappingURL=web-component.js.map
|
|
400
|
+
//# sourceMappingURL=web-component.js.map
|