@fluix-ui/vanilla 0.0.2
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/dist/index.cjs +748 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +16 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.global.js +1208 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +743 -0
- package/dist/index.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/toast.ts"],"names":["CoreToaster"],"mappings":";;;;AAqBA,IAAM,KAAA,GAAQ,GAAA;AACd,IAAM,MAAA,GAAS,EAAA;AACf,IAAM,YAAA,GAAe,EAAA;AACrB,IAAM,gBAAA,GAAmB,IAAA;AACzB,IAAM,iBAAiB,GAAA,GAAM,GAAA;AAC7B,IAAM,kBAAA,GAAqB,CAAA;AAE3B,IAAM,MAAA,GAAS,4BAAA;AAmCf,SAAS,cAAc,KAAA,EAAsD;AAC5E,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,KAAK,CAAA;AAClD,EAAA,GAAA,CAAI,YAAA,CAAa,SAAS,IAAI,CAAA;AAC9B,EAAA,GAAA,CAAI,YAAA,CAAa,UAAU,IAAI,CAAA;AAC/B,EAAA,GAAA,CAAI,YAAA,CAAa,WAAW,WAAW,CAAA;AACvC,EAAA,GAAA,CAAI,YAAA,CAAa,QAAQ,MAAM,CAAA;AAC/B,EAAA,GAAA,CAAI,YAAA,CAAa,UAAU,cAAc,CAAA;AACzC,EAAA,GAAA,CAAI,YAAA,CAAa,gBAAgB,KAAK,CAAA;AACtC,EAAA,GAAA,CAAI,YAAA,CAAa,kBAAkB,OAAO,CAAA;AAC1C,EAAA,GAAA,CAAI,YAAA,CAAa,mBAAmB,OAAO,CAAA;AAC3C,EAAA,GAAA,CAAI,YAAA,CAAa,eAAe,MAAM,CAAA;AAEtC,EAAA,QAAQ,KAAA;AAAO,IACd,KAAK,SAAA,EAAW;AACf,MAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACrD,MAAA,CAAA,CAAE,YAAA,CAAa,UAAU,gBAAgB,CAAA;AACzC,MAAA,GAAA,CAAI,YAAY,CAAC,CAAA;AACjB,MAAA;AAAA,IACD;AAAA,IACA,KAAK,OAAA,EAAS;AACb,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AAClD,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,GAAG,CAAA;AACzB,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,GAAG,CAAA;AACzB,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AAClD,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,GAAG,CAAA;AACzB,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,GAAG,CAAA;AACzB,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,GAAA,CAAI,YAAY,EAAE,CAAA;AAClB,MAAA,GAAA,CAAI,YAAY,EAAE,CAAA;AAClB,MAAA;AAAA,IACD;AAAA,IACA,KAAK,SAAA,EAAW;AACf,MAAA,MAAM,IAAA,GAAO,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACpD,MAAA,IAAA,CAAK,YAAA;AAAA,QACJ,GAAA;AAAA,QACA;AAAA,OACD;AACA,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AAClD,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,GAAG,CAAA;AACzB,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AAClD,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,OAAO,CAAA;AAC7B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AACpB,MAAA,GAAA,CAAI,YAAY,EAAE,CAAA;AAClB,MAAA,GAAA,CAAI,YAAY,EAAE,CAAA;AAClB,MAAA;AAAA,IACD;AAAA,IACA,KAAK,MAAA,EAAQ;AACZ,MAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,QAAQ,CAAA;AACnD,MAAA,CAAA,CAAE,YAAA,CAAa,MAAM,IAAI,CAAA;AACzB,MAAA,CAAA,CAAE,YAAA,CAAa,MAAM,IAAI,CAAA;AACzB,MAAA,CAAA,CAAE,YAAA,CAAa,KAAK,IAAI,CAAA;AACxB,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AAClD,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AAClD,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,IAAI,CAAA;AAC1B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,GAAG,CAAA;AACzB,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,OAAO,CAAA;AAC7B,MAAA,EAAA,CAAG,YAAA,CAAa,MAAM,GAAG,CAAA;AACzB,MAAA,GAAA,CAAI,YAAY,CAAC,CAAA;AACjB,MAAA,GAAA,CAAI,YAAY,EAAE,CAAA;AAClB,MAAA,GAAA,CAAI,YAAY,EAAE,CAAA;AAClB,MAAA;AAAA,IACD;AAAA,IACA,KAAK,SAAA,EAAW;AACf,MAAA,GAAA,CAAI,YAAA,CAAa,mBAAmB,MAAM,CAAA;AAC1C,MAAA,MAAM,KAAA,GAA4C;AAAA,QACjD,CAAC,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,GAAG,CAAA;AAAA,QACrB,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,QACvB,CAAC,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,MAAM,CAAA;AAAA,QAC/B,CAAC,OAAA,EAAS,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA;AAAA,QACnC,CAAC,GAAA,EAAK,IAAA,EAAM,GAAA,EAAK,IAAI,CAAA;AAAA,QACrB,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,QACvB,CAAC,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAQ,OAAO,CAAA;AAAA,QACjC,CAAC,OAAA,EAAS,MAAA,EAAQ,OAAA,EAAS,MAAM;AAAA,OAClC;AACA,MAAA,KAAA,MAAW,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,KAAK,KAAA,EAAO;AACrC,QAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACjD,QAAA,CAAA,CAAE,YAAA,CAAa,MAAM,EAAE,CAAA;AACvB,QAAA,CAAA,CAAE,YAAA,CAAa,MAAM,EAAE,CAAA;AACvB,QAAA,CAAA,CAAE,YAAA,CAAa,MAAM,EAAE,CAAA;AACvB,QAAA,CAAA,CAAE,YAAA,CAAa,MAAM,EAAE,CAAA;AACvB,QAAA,GAAA,CAAI,YAAY,CAAC,CAAA;AAAA,MAClB;AACA,MAAA;AAAA,IACD;AAAA,IACA,KAAK,QAAA,EAAU;AACd,MAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,QAAQ,CAAA;AACnD,MAAA,CAAA,CAAE,YAAA,CAAa,MAAM,IAAI,CAAA;AACzB,MAAA,CAAA,CAAE,YAAA,CAAa,MAAM,IAAI,CAAA;AACzB,MAAA,CAAA,CAAE,YAAA,CAAa,KAAK,IAAI,CAAA;AACxB,MAAA,MAAM,IAAA,GAAO,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,SAAS,CAAA;AACvD,MAAA,IAAA,CAAK,YAAA,CAAa,UAAU,uBAAuB,CAAA;AACnD,MAAA,IAAA,CAAK,YAAA,CAAa,QAAQ,cAAc,CAAA;AACxC,MAAA,IAAA,CAAK,YAAA,CAAa,UAAU,MAAM,CAAA;AAClC,MAAA,GAAA,CAAI,YAAY,CAAC,CAAA;AACjB,MAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AACpB,MAAA;AAAA,IACD;AAAA,IACA;AACC,MAAA,OAAO,IAAA;AAAA;AAET,EAAA,OAAO,GAAA;AACR;AAEA,SAAS,cAAA,CAAe,SAAA,EAAwB,IAAA,EAAe,KAAA,EAAgC;AAC9F,EAAA,SAAA,CAAU,WAAA,GAAc,EAAA;AACxB,EAAA,IAAI,QAAQ,IAAA,EAAM;AACjB,IAAA,IAAI,IAAA,YAAgB,WAAA,IAAe,IAAA,YAAgB,UAAA,EAAY;AAC9D,MAAA,SAAA,CAAU,YAAY,IAAI,CAAA;AAAA,IAC3B,CAAA,MAAO;AACN,MAAA,MAAM,IAAA,GAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC1C,MAAA,IAAA,CAAK,YAAA,CAAa,eAAe,MAAM,CAAA;AACvC,MAAA,IAAA,CAAK,WAAA,GAAc,OAAO,IAAI,CAAA;AAC9B,MAAA,SAAA,CAAU,YAAY,IAAI,CAAA;AAAA,IAC3B;AACA,IAAA;AAAA,EACD;AACA,EAAA,MAAM,OAAA,GAAU,cAAc,KAAK,CAAA;AACnC,EAAA,IAAI,OAAA,EAAS,SAAA,CAAU,WAAA,CAAY,OAAO,CAAA;AAC3C;AAIA,SAAS,aAAa,QAAA,EAAsD;AAC3E,EAAA,IAAI,QAAA,CAAS,QAAA,CAAS,OAAO,CAAA,EAAG,OAAO,OAAA;AACvC,EAAA,IAAI,QAAA,CAAS,QAAA,CAAS,QAAQ,CAAA,EAAG,OAAO,QAAA;AACxC,EAAA,OAAO,MAAA;AACR;AAEA,SAAS,UAAA,CAAW,IAAa,KAAA,EAA+B;AAC/D,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AACjD,IAAA,EAAA,CAAG,YAAA,CAAa,KAAK,KAAK,CAAA;AAAA,EAC3B;AACD;AAEA,SAAS,mBAAmB,CAAA,EAA4B;AACvD,EAAA,OAAO,OAAO,CAAA,KAAM,QAAA,GAAW,CAAA,EAAG,CAAC,CAAA,EAAA,CAAA,GAAO,CAAA;AAC3C;AAEA,SAAS,mBAAA,CACR,EAAA,EACA,MAAA,EACA,QAAA,EACC;AACD,EAAA,EAAA,CAAG,MAAM,GAAA,GAAM,EAAA;AACf,EAAA,EAAA,CAAG,MAAM,KAAA,GAAQ,EAAA;AACjB,EAAA,EAAA,CAAG,MAAM,MAAA,GAAS,EAAA;AAClB,EAAA,EAAA,CAAG,MAAM,IAAA,GAAO,EAAA;AAChB,EAAA,EAAA,CAAG,MAAM,WAAA,GAAc,EAAA;AACvB,EAAA,EAAA,CAAG,MAAM,YAAA,GAAe,EAAA;AAExB,EAAA,IAAI,UAAU,IAAA,EAAM;AAEpB,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI,KAAA;AACJ,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI,IAAA;AAEJ,EAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,OAAO,WAAW,QAAA,EAAU;AAC7D,IAAA,MAAM,CAAA,GAAI,mBAAmB,MAAyB,CAAA;AACtD,IAAA,GAAA,GAAM,CAAA;AACN,IAAA,KAAA,GAAQ,CAAA;AACR,IAAA,MAAA,GAAS,CAAA;AACT,IAAA,IAAA,GAAO,CAAA;AAAA,EACR,CAAA,MAAO;AACN,IAAA,IAAI,OAAO,GAAA,IAAO,IAAA,EAAM,GAAA,GAAM,kBAAA,CAAmB,OAAO,GAAG,CAAA;AAC3D,IAAA,IAAI,OAAO,KAAA,IAAS,IAAA,EAAM,KAAA,GAAQ,kBAAA,CAAmB,OAAO,KAAK,CAAA;AACjE,IAAA,IAAI,OAAO,MAAA,IAAU,IAAA,EAAM,MAAA,GAAS,kBAAA,CAAmB,OAAO,MAAM,CAAA;AACpE,IAAA,IAAI,OAAO,IAAA,IAAQ,IAAA,EAAM,IAAA,GAAO,kBAAA,CAAmB,OAAO,IAAI,CAAA;AAAA,EAC/D;AAEA,EAAA,IAAI,SAAS,UAAA,CAAW,KAAK,KAAK,GAAA,EAAK,EAAA,CAAG,MAAM,GAAA,GAAM,GAAA;AACtD,EAAA,IAAI,SAAS,UAAA,CAAW,QAAQ,KAAK,MAAA,EAAQ,EAAA,CAAG,MAAM,MAAA,GAAS,MAAA;AAC/D,EAAA,IAAI,SAAS,QAAA,CAAS,OAAO,KAAK,KAAA,EAAO,EAAA,CAAG,MAAM,KAAA,GAAQ,KAAA;AAC1D,EAAA,IAAI,SAAS,QAAA,CAAS,MAAM,KAAK,IAAA,EAAM,EAAA,CAAG,MAAM,IAAA,GAAO,IAAA;AACvD,EAAA,IAAI,QAAA,CAAS,QAAA,CAAS,QAAQ,CAAA,EAAG;AAChC,IAAA,IAAI,IAAA,EAAM,EAAA,CAAG,KAAA,CAAM,WAAA,GAAc,IAAA;AACjC,IAAA,IAAI,KAAA,EAAO,EAAA,CAAG,KAAA,CAAM,YAAA,GAAe,KAAA;AAAA,EACpC;AACD;AAEA,SAAS,QAAA,CAAS,IAAA,EAAqB,EAAA,EAAgB,EAAA,EAA2C;AACjG,EAAA,MAAM,EAAA,GAAK,WAAW,MAAM;AAC3B,IAAA,IAAA,CAAK,MAAA,CAAO,OAAO,EAAE,CAAA;AACrB,IAAA,EAAA,EAAG;AAAA,EACJ,GAAG,EAAE,CAAA;AACL,EAAA,IAAA,CAAK,MAAA,CAAO,IAAI,EAAE,CAAA;AAClB,EAAA,OAAO,EAAA;AACR;AAIA,SAAS,aAAA,CAAc,MAAsB,IAAA,EAAqB;AACjE,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,UAAA,KAAe,IAAA,CAAK,UAAA;AAC7C,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,SAAA,IAAa,cAAA,CAAe,SAAA;AACnD,EAAA,MAAM,IAAA,GAAO,KAAK,GAAA,CAAI,EAAA,EAAI,KAAK,GAAA,CAAI,CAAA,EAAG,SAAA,GAAY,IAAI,CAAC,CAAA;AACvD,EAAA,MAAM,UAAU,OAAA,CAAQ,IAAA,CAAK,WAAW,CAAA,IAAK,OAAA,CAAQ,KAAK,MAAM,CAAA;AAChE,EAAA,MAAM,SAAA,GAAY,KAAK,KAAA,KAAU,SAAA;AACjC,EAAA,MAAM,IAAA,GAAO,OAAA,IAAW,UAAA,IAAc,CAAC,SAAA;AACvC,EAAA,MAAM,QAAA,GAAW,YAAA,CAAa,IAAA,CAAK,QAAQ,CAAA;AAC3C,EAAA,MAAM,OAAO,IAAA,CAAK,QAAA,CAAS,UAAA,CAAW,KAAK,IAAI,QAAA,GAAW,KAAA;AAE1D,EAAA,MAAM,oBAAoB,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,SAAA,IAAa,QAAQ,MAAM,CAAA;AACnE,EAAA,MAAM,UAAA,GAAa,SAAS,IAAA,GAAO,CAAA;AACnC,EAAA,MAAM,KAAA,GACL,aAAa,OAAA,GACV,KAAA,GAAQ,oBACR,QAAA,KAAa,QAAA,GAAA,CACX,KAAA,GAAQ,iBAAA,IAAqB,CAAA,GAC9B,CAAA;AAEL,EAAA,MAAM,cAAc,MAAA,GAAS,gBAAA;AAC7B,EAAA,MAAM,WAAA,GAAc,UAAU,IAAA,CAAK,GAAA,CAAI,aAAa,MAAA,GAAS,IAAA,CAAK,aAAa,CAAA,GAAI,WAAA;AACnF,EAAA,IAAI,IAAA,EAAM;AACT,IAAA,IAAA,CAAK,cAAA,GAAiB,WAAA;AAAA,EACvB;AACA,EAAA,MAAM,QAAA,GAAW,IAAA,GAAO,WAAA,GAAc,IAAA,CAAK,cAAA;AAC3C,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,WAAW,MAAM,CAAA;AACrD,EAAA,MAAM,YAAY,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,QAAA,EAAU,WAAW,CAAA,GAAI,MAAA;AAE9D,EAAA,OAAO;AAAA,IACN,KAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,iBAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACD;AACD;AAIA,SAAS,cAAA,CAAe,MAAsB,OAAA,EAAsC;AACnF,EAAA,MAAM,UAAA,GAAa,EAAE,KAAA,EAAO,KAAA,EAAO,UAAU,KAAA,EAAM;AACnD,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,SAAA,IAAa,cAAA,CAAe,SAAA;AACnD,EAAA,MAAM,IAAA,GAAO,KAAK,GAAA,CAAI,EAAA,EAAI,KAAK,GAAA,CAAI,CAAA,EAAG,SAAA,GAAY,IAAI,CAAC,CAAA;AACvD,EAAA,MAAM,WAAW,CAAA,YAAA,EAAe,IAAA,CAAK,GAAG,OAAA,CAAQ,cAAA,EAAgB,GAAG,CAAC,CAAA,CAAA;AACpE,EAAA,MAAM,UAAU,OAAA,CAAQ,IAAA,CAAK,WAAW,CAAA,IAAK,OAAA,CAAQ,KAAK,MAAM,CAAA;AAGhE,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC1C,EAAA,EAAA,CAAG,IAAA,GAAO,QAAA;AAGV,EAAA,MAAM,SAAA,GAAY,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAG9C,EAAA,MAAM,cAAc,MAAA,GAAS,gBAAA;AAC7B,EAAA,MAAM,gBAAA,GAAmB,UAAU,WAAA,GAAc,MAAA;AACjD,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,KAAK,CAAA;AAClD,EAAA,GAAA,CAAI,YAAA,CAAa,kBAAkB,EAAE,CAAA;AACrC,EAAA,GAAA,CAAI,YAAA,CAAa,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AACvC,EAAA,GAAA,CAAI,YAAA,CAAa,QAAA,EAAU,MAAA,CAAO,gBAAgB,CAAC,CAAA;AACnD,EAAA,GAAA,CAAI,aAAa,SAAA,EAAW,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAE,CAAA;AAC9D,EAAA,GAAA,CAAI,YAAA,CAAa,eAAe,MAAM,CAAA;AAGtC,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACpD,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,QAAQ,CAAA;AACxD,EAAA,MAAA,CAAO,YAAA,CAAa,MAAM,QAAQ,CAAA;AAClC,EAAA,MAAA,CAAO,YAAA,CAAa,KAAK,MAAM,CAAA;AAC/B,EAAA,MAAA,CAAO,YAAA,CAAa,KAAK,MAAM,CAAA;AAC/B,EAAA,MAAA,CAAO,YAAA,CAAa,SAAS,MAAM,CAAA;AACnC,EAAA,MAAA,CAAO,YAAA,CAAa,UAAU,MAAM,CAAA;AACpC,EAAA,MAAA,CAAO,YAAA,CAAa,+BAA+B,MAAM,CAAA;AAEzD,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,gBAAgB,CAAA;AAChE,EAAA,MAAA,CAAO,YAAA,CAAa,MAAM,eAAe,CAAA;AACzC,EAAA,MAAA,CAAO,YAAA,CAAa,cAAA,EAAgB,MAAA,CAAO,IAAI,CAAC,CAAA;AAChD,EAAA,MAAA,CAAO,YAAA,CAAa,UAAU,MAAM,CAAA;AAEpC,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,eAAe,CAAA;AAC7D,EAAA,IAAA,CAAK,YAAA,CAAa,MAAM,MAAM,CAAA;AAC9B,EAAA,IAAA,CAAK,YAAA,CAAa,QAAQ,QAAQ,CAAA;AAClC,EAAA,IAAA,CAAK,YAAA,CAAa,UAAU,+CAA+C,CAAA;AAC3E,EAAA,IAAA,CAAK,YAAA,CAAa,UAAU,KAAK,CAAA;AAEjC,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,aAAa,CAAA;AAC7D,EAAA,MAAA,CAAO,YAAA,CAAa,MAAM,eAAe,CAAA;AACzC,EAAA,MAAA,CAAO,YAAA,CAAa,OAAO,KAAK,CAAA;AAChC,EAAA,MAAA,CAAO,YAAA,CAAa,YAAY,MAAM,CAAA;AAEtC,EAAA,MAAA,CAAO,YAAY,MAAM,CAAA;AACzB,EAAA,MAAA,CAAO,YAAY,IAAI,CAAA;AACvB,EAAA,MAAA,CAAO,YAAY,MAAM,CAAA;AACzB,EAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AACvB,EAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AAEpB,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,CAAA,CAAE,YAAA,CAAa,QAAA,EAAU,CAAA,KAAA,EAAQ,QAAQ,CAAA,CAAA,CAAG,CAAA;AAG5C,EAAA,MAAM,YAAA,GACL,YAAA,CAAa,IAAA,CAAK,QAAQ,MAAM,OAAA,GAC7B,KAAA,GAAQ,MAAA,GACR,YAAA,CAAa,KAAK,QAAQ,CAAA,KAAM,QAAA,GAAA,CAC9B,KAAA,GAAQ,UAAU,CAAA,GACnB,CAAA;AACL,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACtD,EAAA,MAAA,CAAO,YAAA,CAAa,mBAAmB,EAAE,CAAA;AACzC,EAAA,MAAA,CAAO,YAAA,CAAa,GAAA,EAAK,MAAA,CAAO,YAAY,CAAC,CAAA;AAC7C,EAAA,MAAA,CAAO,YAAA,CAAa,KAAK,GAAG,CAAA;AAC5B,EAAA,MAAA,CAAO,YAAA,CAAa,OAAA,EAAS,MAAA,CAAO,MAAM,CAAC,CAAA;AAC3C,EAAA,MAAA,CAAO,YAAA,CAAa,QAAA,EAAU,MAAA,CAAO,MAAM,CAAC,CAAA;AAC5C,EAAA,MAAA,CAAO,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,SAAS,CAAC,CAAA;AAC3C,EAAA,MAAA,CAAO,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,SAAS,CAAC,CAAA;AAC3C,EAAA,MAAA,CAAO,YAAA,CAAa,MAAA,EAAQ,IAAA,CAAK,IAAA,IAAQ,SAAS,CAAA;AAGlD,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACtD,EAAA,MAAA,CAAO,YAAA,CAAa,mBAAmB,EAAE,CAAA;AACzC,EAAA,MAAA,CAAO,YAAA,CAAa,KAAK,GAAG,CAAA;AAC5B,EAAA,MAAA,CAAO,YAAA,CAAa,GAAA,EAAK,MAAA,CAAO,MAAM,CAAC,CAAA;AACvC,EAAA,MAAA,CAAO,YAAA,CAAa,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAC1C,EAAA,MAAA,CAAO,YAAA,CAAa,UAAU,GAAG,CAAA;AACjC,EAAA,MAAA,CAAO,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,SAAS,CAAC,CAAA;AAC3C,EAAA,MAAA,CAAO,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,SAAS,CAAC,CAAA;AAC3C,EAAA,MAAA,CAAO,YAAA,CAAa,MAAA,EAAQ,IAAA,CAAK,IAAA,IAAQ,SAAS,CAAA;AAClD,EAAA,MAAA,CAAO,YAAA,CAAa,WAAW,GAAG,CAAA;AAElC,EAAA,CAAA,CAAE,YAAY,MAAM,CAAA;AACpB,EAAA,CAAA,CAAE,YAAY,MAAM,CAAA;AACpB,EAAA,GAAA,CAAI,YAAY,CAAC,CAAA;AACjB,EAAA,SAAA,CAAU,YAAY,GAAG,CAAA;AACzB,EAAA,EAAA,CAAG,YAAY,SAAS,CAAA;AAGxB,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC7C,EAAA,MAAM,aAAA,GAAgB,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAClD,EAAA,aAAA,CAAc,YAAA,CAAa,2BAA2B,EAAE,CAAA;AAExD,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC5C,EAAA,OAAA,CAAQ,YAAA,CAAa,2BAA2B,EAAE,CAAA;AAClD,EAAA,OAAA,CAAQ,YAAA,CAAa,cAAc,SAAS,CAAA;AAE5C,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC5C,EAAA,cAAA,CAAe,OAAA,EAAS,IAAA,CAAK,IAAA,EAAM,IAAA,CAAK,KAAK,CAAA;AAE7C,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC7C,EAAA,OAAA,CAAQ,WAAA,GAAc,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,KAAA;AAEzC,EAAA,OAAA,CAAQ,YAAY,OAAO,CAAA;AAC3B,EAAA,OAAA,CAAQ,YAAY,OAAO,CAAA;AAC3B,EAAA,aAAA,CAAc,YAAY,OAAO,CAAA;AACjC,EAAA,QAAA,CAAS,YAAY,aAAa,CAAA;AAClC,EAAA,EAAA,CAAG,YAAY,QAAQ,CAAA;AAGvB,EAAA,IAAI,SAAA,GAAmC,IAAA;AACvC,EAAA,IAAI,aAAA,GAAuC,IAAA;AAE3C,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,SAAA,GAAY,QAAA,CAAS,cAAc,KAAK,CAAA;AACxC,IAAA,aAAA,GAAgB,QAAA,CAAS,cAAc,KAAK,CAAA;AAC5C,IAAA,IAAI,IAAA,CAAK,QAAQ,WAAA,EAAa;AAC7B,MAAA,aAAA,CAAc,SAAA,GAAY,KAAK,MAAA,CAAO,WAAA;AAAA,IACvC;AAEA,IAAA,IAAI,IAAA,CAAK,eAAe,IAAA,EAAM;AAC7B,MAAA,IAAI,OAAO,IAAA,CAAK,WAAA,KAAgB,QAAA,EAAU;AACzC,QAAA,aAAA,CAAc,cAAc,IAAA,CAAK,WAAA;AAAA,MAClC,CAAA,MAAA,IAAW,IAAA,CAAK,WAAA,YAAuB,WAAA,EAAa;AACnD,QAAA,aAAA,CAAc,WAAA,CAAY,KAAK,WAAW,CAAA;AAAA,MAC3C;AAAA,IACD;AAEA,IAAA,IAAI,KAAK,MAAA,EAAQ;AAChB,MAAA,MAAM,GAAA,GAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC3C,MAAA,GAAA,CAAI,IAAA,GAAO,QAAA;AACX,MAAA,GAAA,CAAI,WAAA,GAAc,KAAK,MAAA,CAAO,KAAA;AAC9B,MAAA,IAAI,IAAA,CAAK,QAAQ,MAAA,EAAQ;AACxB,QAAA,GAAA,CAAI,SAAA,GAAY,KAAK,MAAA,CAAO,MAAA;AAAA,MAC7B;AACA,MAAA,GAAA,CAAI,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA,KAAM;AACpC,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,IAAA,CAAK,QAAQ,OAAA,EAAQ;AAAA,MACtB,CAAC,CAAA;AACD,MAAA,aAAA,CAAc,YAAY,GAAG,CAAA;AAAA,IAC9B;AAEA,IAAA,SAAA,CAAU,YAAY,aAAa,CAAA;AACnC,IAAA,EAAA,CAAG,YAAY,SAAS,CAAA;AAAA,EACzB;AAGA,EAAA,MAAM,KAAA,GAAQA,OAAA,CAAY,QAAA,CAAS,IAAA,EAAM,UAAU,CAAA;AACnD,EAAA,UAAA,CAAW,EAAA,EAAI,MAAM,IAAI,CAAA;AACzB,EAAA,UAAA,CAAW,SAAA,EAAW,MAAM,MAAM,CAAA;AAClC,EAAA,UAAA,CAAW,QAAA,EAAU,MAAM,MAAM,CAAA;AACjC,EAAA,UAAA,CAAW,OAAA,EAAS,MAAM,KAAK,CAAA;AAC/B,EAAA,IAAI,KAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,CAAQ,SAAA,GAAY,KAAK,MAAA,CAAO,KAAA;AACxD,EAAA,UAAA,CAAW,OAAA,EAAS,MAAM,KAAK,CAAA;AAC/B,EAAA,IAAI,KAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,CAAQ,SAAA,GAAY,KAAK,MAAA,CAAO,KAAA;AACxD,EAAA,IAAI,SAAA,EAAW,UAAA,CAAW,SAAA,EAAW,KAAA,CAAM,OAAO,CAAA;AAClD,EAAA,IAAI,aAAA,EAAe,UAAA,CAAW,aAAA,EAAe,KAAA,CAAM,WAAW,CAAA;AAG9D,EAAA,IAAI,IAAA,CAAK,UAAU,aAAA,EAAe;AACjC,IAAA,MAAM,KAAA,GAAQ,aAAA,CAAc,aAAA,CAAc,QAAQ,CAAA;AAClD,IAAA,IAAI,KAAA,EAAO,UAAA,CAAW,KAAA,EAAO,KAAA,CAAM,MAAM,CAAA;AAAA,EAC1C;AAEA,EAAA,MAAM,SAAA,GAAY,GAAG,IAAA,CAAK,KAAK,IAAI,IAAA,CAAK,KAAA,IAAS,KAAK,KAAK,CAAA,CAAA;AAE3D,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC3B,EAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA,EAAO,GAAA;AAAA,IACP,QAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,CAAA;AAAA,IACX,aAAA,EAAe,CAAA;AAAA,IACf,gBAAgB,MAAA,GAAS,gBAAA;AAAA,IACzB,QAAA,EAAU,KAAA;AAAA,IACV,cAAA,EAAgB,KAAA;AAAA,IAChB,gBAAA,EAAkB,KAAA;AAAA,IAClB,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,IAAA;AAAA,IACX,QAAA,EAAU,IAAA;AAAA,IACV,UAAU,EAAE,CAAA,EAAG,cAAc,KAAA,EAAO,MAAA,EAAQ,QAAQ,MAAA,EAAO;AAAA,IAC3D,SAAA,EAAW,IAAA;AAAA,IACX,SAAA;AAAA,IACA,SAAA,EAAW,IAAA;AAAA,IACX,aAAA,EAAe,IAAA;AAAA,IACf,MAAA,sBAAY,GAAA,EAAI;AAAA,IAChB;AAAA,GACD;AAGA,EAAA,IAAA,CAAK,MAAA,GAAS,IAAI,cAAA,CAAe,MAAM;AACtC,IAAA,qBAAA,CAAsB,MAAM;AAC3B,MAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,MAAA,SAAA,CAAU,IAAA,EAAM,KAAK,IAAI,CAAA;AACzB,MAAA,WAAA,CAAY,IAAA,EAAM,KAAK,IAAI,CAAA;AAAA,IAC5B,CAAC,CAAA;AAAA,EACF,CAAC,CAAA;AACD,EAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,OAAO,CAAA;AAG3B,EAAA,IAAI,aAAA,EAAe;AAClB,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,cAAA,CAAe,MAAM;AACzC,MAAA,qBAAA,CAAsB,MAAM;AAC3B,QAAA,MAAM,IAAI,aAAA,CAAe,YAAA;AACzB,QAAA,IAAI,CAAA,KAAM,KAAK,aAAA,EAAe;AAC7B,UAAA,IAAA,CAAK,aAAA,GAAgB,CAAA;AACrB,UAAA,SAAA,CAAU,IAAA,EAAM,KAAK,IAAI,CAAA;AAAA,QAC1B;AAAA,MACD,CAAC,CAAA;AAAA,IACF,CAAC,CAAA;AACD,IAAA,IAAA,CAAK,SAAA,CAAU,QAAQ,aAAa,CAAA;AAAA,EACrC;AAGA,EAAA,IAAA,CAAK,gBAAgBA,OAAA,CAAY,OAAA;AAAA,IAChC,EAAA;AAAA,IACA;AAAA,MACC,UAAU,MAAM;AACf,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,gBAAA,EAAkB;AAChD,QAAA,IAAA,CAAK,WAAW,QAAA,GAAW,IAAA;AAC3B,QAAA,WAAA,CAAY,IAAA,EAAM,IAAA,CAAK,IAAa,CAAA;AAAA,MACrC,CAAA;AAAA,MACA,YAAY,MAAM;AACjB,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,gBAAA,EAAkB;AAChD,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,SAAA,KAAc,KAAA,EAAO;AACnC,QAAA,IAAA,CAAK,WAAW,QAAA,GAAW,KAAA;AAC3B,QAAA,WAAA,CAAY,IAAA,EAAM,IAAA,CAAK,IAAa,CAAA;AAAA,MACrC,CAAA;AAAA,MACA,WAAW,MAAM;AAChB,QAAA,IAAI,KAAK,gBAAA,EAAkB;AAC3B,QAAA,IAAA,CAAK,gBAAA,GAAmB,IAAA;AACxB,QAAA,OAAA,CAAQ,OAAA,CAAQ,KAAK,EAAE,CAAA;AAAA,MACxB,CAAA;AAAA,MACA,cAAc,MAAM;AACnB,QAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,MACjB,CAAA;AAAA,MACA,YAAY,MAAM;AACjB,QAAA,IAAA,CAAK,QAAA,GAAW,KAAA;AAChB,QAAA,IAAI,KAAK,cAAA,EAAgB;AACxB,UAAA,IAAA,CAAK,cAAA,GAAiB,KAAA;AACtB,UAAA,IAAI,KAAK,gBAAA,EAAkB;AAC3B,UAAA,IAAA,CAAK,gBAAA,GAAmB,IAAA;AACxB,UAAA,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA;AAAA,QAC7B;AAAA,MACD;AAAA,KACD;AAAA,IACA;AAAA,GACD;AAGA,EAAA,SAAA,CAAU,MAAM,IAAI,CAAA;AAGpB,EAAA,QAAA;AAAA,IACC,IAAA;AAAA,IACA,MAAM;AACL,MAAA,IAAA,CAAK,WAAW,KAAA,GAAQ,IAAA;AACxB,MAAA,WAAA,CAAY,IAAA,EAAM,IAAA,CAAK,IAAa,CAAA;AAAA,IACrC,CAAA;AAAA,IACA;AAAA,GACD;AAGA,EAAA,gBAAA,CAAiB,IAAA,EAAM,MAAM,OAAO,CAAA;AAGpC,EAAA,cAAA,CAAe,IAAA,EAAM,IAAa,CAAA;AAGlC,EAAA,gBAAA,CAAiB,IAAI,CAAA;AAErB,EAAA,OAAO,IAAA;AACR;AAIA,SAAS,iBAAiB,IAAA,EAAqB;AAE9C,EAAA,IAAI,CAAC,IAAA,CAAK,EAAA,CAAG,WAAA,EAAa;AAE1B,EAAA,IAAI,IAAA,CAAK,cAAc,IAAA,EAAM;AAC5B,IAAA,MAAM,EAAA,GAAK,gBAAA,CAAiB,IAAA,CAAK,QAAQ,CAAA;AACzC,IAAA,IAAA,CAAK,SAAA,GAAY,OAAO,UAAA,CAAW,EAAA,CAAG,WAAW,CAAA,GAAI,MAAA,CAAO,UAAA,CAAW,EAAA,CAAG,YAAY,CAAA;AAAA,EACvF;AAEA,EAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,OAAA,CAAQ,qBAAA,EAAsB,CAAE,KAAA;AAC5D,EAAA,MAAM,CAAA,GAAI,cAAA,GAAiB,IAAA,CAAK,SAAA,GAAY,YAAA;AAC5C,EAAA,IAAI,CAAA,GAAI,YAAA,IAAgB,CAAA,KAAM,IAAA,CAAK,SAAA,EAAW;AAC7C,IAAA,IAAA,CAAK,SAAA,GAAY,CAAA;AAAA,EAClB;AACD;AAIA,SAAS,SAAA,CAAU,MAAqB,IAAA,EAAsB;AAC7D,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,IAAA,EAAM,IAAI,CAAA;AACvC,EAAA,MAAM,EAAE,MAAM,QAAA,EAAU,iBAAA,EAAmB,OAAO,IAAA,EAAM,eAAA,EAAiB,WAAU,GAAI,MAAA;AAEvF,EAAA,MAAM,IAAA,GAA+B;AAAA,IACpC,MAAA,EAAQ,CAAA,EAAG,IAAA,GAAO,QAAA,GAAW,MAAM,CAAA,EAAA,CAAA;AAAA,IACnC,OAAA,EAAS,GAAG,iBAAiB,CAAA,EAAA,CAAA;AAAA,IAC7B,OAAA,EAAS,GAAG,KAAK,CAAA,EAAA,CAAA;AAAA,IACjB,OAAA,EAAS,CAAA,WAAA,EAAc,IAAA,GAAQ,IAAA,KAAS,QAAA,GAAW,CAAA,GAAI,EAAA,GAAM,CAAC,CAAA,UAAA,EAAa,IAAA,GAAO,GAAA,GAAM,CAAC,CAAA,CAAA,CAAA;AAAA,IACzF,OAAA,EAAS,CAAA,EAAG,IAAA,GAAO,CAAA,GAAI,CAAC,CAAA,CAAA;AAAA,IACxB,OAAA,EAAS,CAAA,EAAG,IAAA,GAAO,CAAA,GAAI,GAAG,CAAA,EAAA,CAAA;AAAA,IAC1B,OAAA,EAAS,CAAA,EAAG,IAAA,GAAO,eAAA,GAAkB,CAAC,CAAA,EAAA,CAAA;AAAA,IACtC,OAAA,EAAS,CAAA,EAAG,IAAA,GAAO,MAAA,GAAS,qBAAqB,MAAM,CAAA,EAAA,CAAA;AAAA,IACvD,OAAA,EAAS,CAAA,EAAG,IAAA,GAAO,eAAA,GAAkB,CAAC,CAAA,EAAA,CAAA;AAAA,IACtC,OAAA,EAAS,CAAA,EAAG,IAAA,GAAO,CAAA,GAAI,CAAC,CAAA;AAAA,GACzB;AAEA,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AAChD,IAAA,IAAA,CAAK,EAAA,CAAG,KAAA,CAAM,WAAA,CAAY,GAAA,EAAK,KAAK,CAAA;AAAA,EACrC;AAGA,EAAA,IAAA,CAAK,KAAA,CAAM,YAAA,CAAa,QAAA,EAAU,MAAA,CAAO,SAAS,CAAC,CAAA;AACnD,EAAA,IAAA,CAAK,MAAM,YAAA,CAAa,SAAA,EAAW,OAAO,KAAK,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAA;AAC/D;AAIA,SAAS,WAAA,CAAY,MAAqB,IAAA,EAAsB;AAC/D,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,IAAA,EAAM,IAAI,CAAA;AACvC,EAAA,MAAM,EAAE,IAAA,EAAM,iBAAA,EAAmB,KAAA,EAAO,YAAW,GAAI,MAAA;AAEvD,EAAA,MAAM,OAAO,IAAA,CAAK,QAAA;AAClB,EAAA,MAAM,IAAA,GAAO,EAAE,CAAA,EAAG,KAAA,EAAO,OAAO,iBAAA,EAAmB,MAAA,EAAQ,IAAA,GAAO,UAAA,GAAa,MAAA,EAAO;AAEtF,EAAA,IAAI,IAAA,CAAK,CAAA,KAAM,IAAA,CAAK,CAAA,IAAK,IAAA,CAAK,KAAA,KAAU,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,MAAA,KAAW,IAAA,CAAK,MAAA,EAAQ;AAEnF,EAAA,IAAA,CAAK,UAAU,MAAA,EAAO;AAGtB,EAAA,IAAI,CAAC,IAAA,CAAK,UAAA,CAAW,KAAA,IAAS,KAAK,SAAA,EAAW;AAC7C,IAAA,IAAA,CAAK,SAAA,GAAY,KAAA;AACjB,IAAA,IAAA,CAAK,OAAO,YAAA,CAAa,GAAA,EAAK,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA;AAC5C,IAAA,IAAA,CAAK,OAAO,YAAA,CAAa,OAAA,EAAS,MAAA,CAAO,IAAA,CAAK,KAAK,CAAC,CAAA;AACpD,IAAA,IAAA,CAAK,OAAO,YAAA,CAAa,QAAA,EAAU,MAAA,CAAO,IAAA,CAAK,MAAM,CAAC,CAAA;AACtD,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,IAAA;AAAA,EACD;AAEA,EAAA,MAAM,IAAA,GAAO,aAAA;AAAA,IACZ,IAAA,CAAK,MAAA;AAAA,IACL;AAAA,MACC,CAAA,EAAG,EAAE,IAAA,EAAM,IAAA,CAAK,GAAG,EAAA,EAAI,IAAA,CAAK,CAAA,EAAG,IAAA,EAAM,IAAA,EAAK;AAAA,MAC1C,KAAA,EAAO,EAAE,IAAA,EAAM,IAAA,CAAK,OAAO,EAAA,EAAI,IAAA,CAAK,KAAA,EAAO,IAAA,EAAM,IAAA,EAAK;AAAA,MACtD,MAAA,EAAQ,EAAE,IAAA,EAAM,IAAA,CAAK,QAAQ,EAAA,EAAI,IAAA,CAAK,MAAA,EAAQ,IAAA,EAAM,IAAA;AAAK,KAC1D;AAAA,IACA;AAAA,GACD;AAEA,EAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,EAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AACjB;AAIA,SAAS,gBAAA,CAAiB,IAAA,EAAqB,IAAA,EAAsB,OAAA,EAAuB;AAC3F,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AACtB,EAAA,IAAI,QAAA,IAAY,IAAA,IAAQ,QAAA,IAAY,CAAA,EAAG;AAEvC,EAAA,QAAA;AAAA,IACC,IAAA;AAAA,IACA,MAAM;AACL,MAAA,IAAI,KAAK,QAAA,EAAU;AAClB,QAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AACtB,QAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACA,MAAM;AACL,YAAA,IAAI,KAAK,gBAAA,EAAkB;AAC3B,YAAA,IAAA,CAAK,gBAAA,GAAmB,IAAA;AACxB,YAAA,IAAA,CAAK,cAAA,GAAiB,KAAA;AACtB,YAAA,OAAA,CAAQ,OAAA,CAAQ,KAAK,EAAE,CAAA;AAAA,UACxB,CAAA;AAAA,UACA;AAAA,SACD;AACA,QAAA;AAAA,MACD;AACA,MAAA,IAAA,CAAK,cAAA,GAAiB,KAAA;AACtB,MAAA,IAAA,CAAK,gBAAA,GAAmB,IAAA;AACxB,MAAA,OAAA,CAAQ,OAAA,CAAQ,KAAK,EAAE,CAAA;AAAA,IACxB,CAAA;AAAA,IACA;AAAA,GACD;AACD;AAIA,SAAS,cAAA,CAAe,IAAA,EAAqB,IAAA,EAAsB,OAAA,EAAuB;AACzF,EAAA,IAAI,CAAC,IAAA,CAAK,UAAA,CAAW,KAAA,EAAO;AAE5B,EAAA,IAAI,IAAA,CAAK,iBAAA,IAAqB,IAAA,IAAQ,IAAA,CAAK,oBAAoB,CAAA,EAAG;AACjE,IAAA,QAAA;AAAA,MACC,IAAA;AAAA,MACA,MAAM;AACL,QAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AACnB,UAAA,IAAA,CAAK,WAAW,QAAA,GAAW,IAAA;AAC3B,UAAA,WAAA,CAAY,IAAA,EAAM,IAAA,CAAK,IAAa,CAAA;AAAA,QACrC;AAAA,MACD,CAAA;AAAA,MACA,IAAA,CAAK;AAAA,KACN;AAAA,EACD;AAEA,EAAA,IAAI,IAAA,CAAK,mBAAA,IAAuB,IAAA,IAAQ,IAAA,CAAK,sBAAsB,CAAA,EAAG;AACrE,IAAA,QAAA;AAAA,MACC,IAAA;AAAA,MACA,MAAM;AACL,QAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AACnB,UAAA,IAAA,CAAK,WAAW,QAAA,GAAW,KAAA;AAC3B,UAAA,WAAA,CAAY,IAAA,EAAM,IAAA,CAAK,IAAa,CAAA;AAAA,QACrC;AAAA,MACD,CAAA;AAAA,MACA,IAAA,CAAK;AAAA,KACN;AAAA,EACD;AACD;AAIA,SAAS,WAAA,CAAY,IAAA,EAAqB,IAAA,EAAsB,QAAA,EAAwB;AACvF,EAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAEZ,EAAA,MAAM,KAAA,GAAQA,OAAA,CAAY,QAAA,CAAS,IAAA,EAAM,KAAK,UAAU,CAAA;AACxD,EAAA,UAAA,CAAW,IAAA,CAAK,EAAA,EAAI,KAAA,CAAM,IAAI,CAAA;AAG9B,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,EAAA,CAAG,aAAA,CAAc,qBAAqB,CAAA;AAC5D,EAAA,IAAI,QAAA,EAAU,UAAA,CAAW,QAAA,EAAU,KAAA,CAAM,MAAM,CAAA;AAG/C,EAAA,UAAA,CAAW,IAAA,CAAK,QAAA,EAAU,KAAA,CAAM,MAAM,CAAA;AAGtC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,oBAAoB,CAAA;AAC/D,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,UAAA,CAAW,OAAA,EAAS,MAAM,KAAK,CAAA;AAC/B,IAAA,IAAI,KAAK,MAAA,EAAQ,KAAA,EAAQ,OAAA,CAAwB,SAAA,GAAY,KAAK,MAAA,CAAO,KAAA;AAAA,EAC1E;AACA,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,oBAAoB,CAAA;AAC/D,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,UAAA,CAAW,OAAA,EAAS,MAAM,KAAK,CAAA;AAC/B,IAAA,IAAI,KAAK,MAAA,EAAQ,KAAA,EAAQ,OAAA,CAAwB,SAAA,GAAY,KAAK,MAAA,CAAO,KAAA;AAAA,EAC1E;AAGA,EAAA,IAAI,KAAK,SAAA,EAAW,UAAA,CAAW,IAAA,CAAK,SAAA,EAAW,MAAM,OAAO,CAAA;AAC5D,EAAA,IAAI,KAAK,aAAA,EAAe,UAAA,CAAW,IAAA,CAAK,aAAA,EAAe,MAAM,WAAW,CAAA;AAGxE,EAAA,IAAI,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,aAAA,EAAe;AACtC,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,aAAA,CAAc,aAAA,CAAc,QAAQ,CAAA;AACvD,IAAA,IAAI,KAAA,EAAO,UAAA,CAAW,KAAA,EAAO,KAAA,CAAM,MAAM,CAAA;AAAA,EAC1C;AAGA,EAAA,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,MAAA,EAAQ,IAAA,CAAK,QAAQ,SAAS,CAAA;AACvD,EAAA,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,MAAA,EAAQ,IAAA,CAAK,QAAQ,SAAS,CAAA;AAGvD,EAAA,MAAM,YAAA,GAAe,GAAG,IAAA,CAAK,KAAK,IAAI,IAAA,CAAK,KAAA,IAAS,KAAK,KAAK,CAAA,CAAA;AAC9D,EAAA,IAAI,YAAA,KAAiB,KAAK,SAAA,EAAW;AACpC,IAAA,eAAA,CAAgB,IAAA,EAAM,MAAM,KAAK,CAAA;AACjC,IAAA,IAAA,CAAK,SAAA,GAAY,YAAA;AAAA,EAClB;AAEA,EAAA,SAAA,CAAU,MAAM,IAAI,CAAA;AACpB,EAAA,WAAA,CAAY,MAAM,IAAI,CAAA;AACvB;AAIA,SAAS,eAAA,CACR,IAAA,EACA,IAAA,EACA,KAAA,EACC;AAED,EAAA,MAAM,WAAW,IAAA,CAAK,OAAA;AACtB,EAAA,QAAA,CAAS,YAAA,CAAa,cAAc,MAAM,CAAA;AAC1C,EAAA,QAAA,CAAS,YAAA,CAAa,gBAAgB,MAAM,CAAA;AAG5C,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC7C,EAAA,QAAA,CAAS,YAAA,CAAa,2BAA2B,EAAE,CAAA;AACnD,EAAA,QAAA,CAAS,YAAA,CAAa,cAAc,SAAS,CAAA;AAE7C,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC5C,EAAA,UAAA,CAAW,OAAA,EAAS,MAAM,KAAK,CAAA;AAC/B,EAAA,IAAI,KAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,CAAQ,SAAA,GAAY,KAAK,MAAA,CAAO,KAAA;AACxD,EAAA,cAAA,CAAe,OAAA,EAAS,IAAA,CAAK,IAAA,EAAM,IAAA,CAAK,KAAK,CAAA;AAE7C,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC7C,EAAA,UAAA,CAAW,OAAA,EAAS,MAAM,KAAK,CAAA;AAC/B,EAAA,IAAI,KAAK,MAAA,EAAQ,KAAA,EAAO,OAAA,CAAQ,SAAA,GAAY,KAAK,MAAA,CAAO,KAAA;AACxD,EAAA,OAAA,CAAQ,WAAA,GAAc,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,KAAA;AAEzC,EAAA,QAAA,CAAS,YAAY,OAAO,CAAA;AAC5B,EAAA,QAAA,CAAS,YAAY,OAAO,CAAA;AAC5B,EAAA,IAAA,CAAK,aAAA,CAAc,YAAA,CAAa,QAAA,EAAU,QAAQ,CAAA;AAClD,EAAA,IAAA,CAAK,OAAA,GAAU,QAAA;AAGf,EAAA,IAAA,CAAK,MAAA,CAAO,UAAU,QAAQ,CAAA;AAC9B,EAAA,IAAA,CAAK,MAAA,CAAO,QAAQ,QAAQ,CAAA;AAG5B,EAAA,QAAA;AAAA,IACC,IAAA;AAAA,IACA,MAAM;AACL,MAAA,QAAA,CAAS,MAAA,EAAO;AAAA,IACjB,CAAA;AAAA,IACA;AAAA,GACD;AAGA,EAAA,qBAAA,CAAsB,MAAM;AAC3B,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,SAAA,CAAU,IAAA,EAAM,KAAK,IAAI,CAAA;AACzB,IAAA,WAAA,CAAY,IAAA,EAAM,KAAK,IAAI,CAAA;AAAA,EAC5B,CAAC,CAAA;AACF;AAIA,SAAS,gBAAgB,IAAA,EAAqB;AAC7C,EAAA,KAAA,MAAW,CAAA,IAAK,IAAA,CAAK,MAAA,EAAQ,YAAA,CAAa,CAAC,CAAA;AAC3C,EAAA,IAAA,CAAK,OAAO,KAAA,EAAM;AAClB,EAAA,IAAA,CAAK,UAAU,MAAA,EAAO;AACtB,EAAA,IAAA,CAAK,OAAO,UAAA,EAAW;AACvB,EAAA,IAAA,CAAK,WAAW,UAAA,EAAW;AAC3B,EAAA,IAAA,CAAK,cAAc,OAAA,EAAQ;AAC3B,EAAA,IAAA,CAAK,GAAG,MAAA,EAAO;AAChB;AAIO,SAAS,cAAc,MAAA,EAG5B;AACD,EAAA,MAAM,OAAA,GAAUA,QAAY,UAAA,EAAW;AACvC,EAAA,IAAI,aAAA,GAAgB,MAAA;AACpB,EAAA,IAAI,aAAA,EAAe,OAAA,CAAQ,SAAA,CAAU,aAAa,CAAA;AAElD,EAAA,MAAM,SAAA,uBAAgB,GAAA,EAA2B;AACjD,EAAA,MAAM,SAAA,uBAAgB,GAAA,EAAgC;AAEtD,EAAA,SAAS,cAAA,CACR,QAAA,EACA,MAAA,EACA,MAAA,EACc;AACd,IAAA,IAAI,EAAA,GAAK,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA;AAC/B,IAAA,IAAI,CAAC,EAAA,EAAI;AACR,MAAA,EAAA,GAAK,QAAA,CAAS,cAAc,SAAS,CAAA;AACrC,MAAA,MAAM,OAAA,GAAUA,OAAA,CAAY,gBAAA,CAAiB,QAAA,EAAU,MAAM,CAAA;AAC7D,MAAA,UAAA,CAAW,IAAI,OAAO,CAAA;AACtB,MAAA,mBAAA,CAAoB,EAAA,EAAI,QAAQ,QAAQ,CAAA;AACxC,MAAA,QAAA,CAAS,IAAA,CAAK,YAAY,EAAE,CAAA;AAC5B,MAAA,SAAA,CAAU,GAAA,CAAI,UAAU,EAAE,CAAA;AAAA,IAC3B;AACA,IAAA,OAAO,EAAA;AAAA,EACR;AAEA,EAAA,SAAS,eAAe,QAAA,EAAyB;AAChD,IAAA,MAAM,EAAA,GAAK,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA;AACjC,IAAA,IAAI,EAAA,EAAI;AACP,MAAA,EAAA,CAAG,MAAA,EAAO;AACV,MAAA,SAAA,CAAU,OAAO,QAAQ,CAAA;AAAA,IAC1B;AAAA,EACD;AAEA,EAAA,SAAS,IAAA,GAAO;AACf,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,KAAA,CAAM,WAAA,EAAY;AACvC,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,MAAA,EAAQ,MAAA,IAAU,eAAe,MAAA,IAAU,OAAA;AACvE,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,MAAA,EAAQ,MAAA,IAAU,aAAA,EAAe,MAAA;AAG7D,IAAA,MAAM,eAAA,uBAAsB,GAAA,EAAmB;AAC/C,IAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAGpD,IAAA,KAAA,MAAW,CAAC,EAAA,EAAI,IAAI,CAAA,IAAK,SAAA,EAAW;AACnC,MAAA,IAAI,CAAC,OAAA,CAAQ,GAAA,CAAI,EAAE,CAAA,EAAG;AACrB,QAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,QAAA,SAAA,CAAU,OAAO,EAAE,CAAA;AAAA,MACpB;AAAA,IACD;AAGA,IAAA,KAAA,MAAW,IAAA,IAAQ,KAAK,MAAA,EAAQ;AAC/B,MAAA,eAAA,CAAgB,GAAA,CAAI,KAAK,QAAQ,CAAA;AACjC,MAAA,MAAM,EAAA,GAAK,cAAA,CAAe,IAAA,CAAK,QAAA,EAAU,gBAAgB,cAAc,CAAA;AAEvE,MAAA,MAAM,QAAA,GAAW,SAAA,CAAU,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA;AACtC,MAAA,IAAI,CAAC,QAAA,EAAU;AAEd,QAAA,MAAM,IAAA,GAAO,cAAA,CAAe,IAAA,EAAM,OAAO,CAAA;AACzC,QAAA,SAAA,CAAU,GAAA,CAAI,IAAA,CAAK,EAAA,EAAI,IAAI,CAAA;AAC3B,QAAA,EAAA,CAAG,WAAA,CAAY,KAAK,EAAE,CAAA;AAAA,MACvB,CAAA,MAAA,IAAW,QAAA,CAAS,IAAA,CAAK,UAAA,KAAe,KAAK,UAAA,EAAY;AAExD,QAAA,eAAA,CAAgB,QAAQ,CAAA;AACxB,QAAA,MAAM,IAAA,GAAO,cAAA,CAAe,IAAA,EAAM,OAAO,CAAA;AACzC,QAAA,SAAA,CAAU,GAAA,CAAI,IAAA,CAAK,EAAA,EAAI,IAAI,CAAA;AAC3B,QAAA,EAAA,CAAG,WAAA,CAAY,KAAK,EAAE,CAAA;AAAA,MACvB,CAAA,MAAO;AAEN,QAAA,WAAA,CAAY,QAAA,EAAU,IAAa,CAAA;AAEnC,QAAA,IAAI,QAAA,CAAS,EAAA,CAAG,aAAA,KAAkB,EAAA,EAAI;AACrC,UAAA,EAAA,CAAG,WAAA,CAAY,SAAS,EAAE,CAAA;AAAA,QAC3B;AAAA,MACD;AAAA,IACD;AAGA,IAAA,KAAA,MAAW,CAAC,QAAA,EAAU,EAAE,CAAA,IAAK,SAAA,EAAW;AACvC,MAAA,MAAM,OAAA,GAAUA,OAAA,CAAY,gBAAA,CAAiB,QAAA,EAAU,cAAc,CAAA;AACrE,MAAA,UAAA,CAAW,IAAI,OAAO,CAAA;AACtB,MAAA,mBAAA,CAAoB,EAAA,EAAI,gBAAgB,QAAQ,CAAA;AAAA,IACjD;AAGA,IAAA,KAAA,MAAW,CAAC,QAAQ,CAAA,IAAK,SAAA,EAAW;AACnC,MAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,QAAQ,CAAA,EAAG;AACnC,QAAA,cAAA,CAAe,QAAQ,CAAA;AAAA,MACxB;AAAA,IACD;AAAA,EACD;AAGA,EAAA,IAAA,EAAK;AAGL,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,KAAA,CAAM,SAAA,CAAU,IAAI,CAAA;AAEhD,EAAA,OAAO;AAAA,IACN,OAAA,GAAU;AACT,MAAA,WAAA,EAAY;AACZ,MAAA,KAAA,MAAW,IAAA,IAAQ,SAAA,CAAU,MAAA,EAAO,EAAG;AACtC,QAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,MACrB;AACA,MAAA,SAAA,CAAU,KAAA,EAAM;AAChB,MAAA,KAAA,MAAW,EAAA,IAAM,SAAA,CAAU,MAAA,EAAO,EAAG;AACpC,QAAA,EAAA,CAAG,MAAA,EAAO;AAAA,MACX;AACA,MAAA,SAAA,CAAU,KAAA,EAAM;AAAA,IACjB,CAAA;AAAA,IACA,OAAO,SAAA,EAA+B;AACrC,MAAA,aAAA,GAAgB,SAAA;AAChB,MAAA,OAAA,CAAQ,UAAU,SAAS,CAAA;AAAA,IAC5B;AAAA,GACD;AACD","file":"index.js","sourcesContent":["/**\n * Vanilla JS Toaster — imperative DOM adapter for the Fluix toast system.\n *\n * Subscribes to the core store and diffs snapshots to create, update, and\n * destroy toast DOM elements without any framework dependency.\n */\n\nimport {\n\tToaster as CoreToaster,\n\tFLUIX_SPRING,\n\ttype FluixPosition,\n\ttype FluixToastItem,\n\ttype FluixToastLayout,\n\ttype FluixToasterConfig,\n\tTOAST_DEFAULTS,\n\ttype ToastMachine,\n\tanimateSpring,\n} from \"@fluix-ui/core\";\n\n/* ----------------------------- Constants ----------------------------- */\n\nconst WIDTH = 350;\nconst HEIGHT = 40;\nconst PILL_PADDING = 10;\nconst MIN_EXPAND_RATIO = 2.25;\nconst HEADER_EXIT_MS = 600 * 0.7;\nconst BODY_MERGE_OVERLAP = 6;\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n/* ----------------------------- Types ----------------------------- */\n\ninterface ToastInstance {\n\tel: HTMLButtonElement;\n\tpillEl: SVGRectElement;\n\tbodyEl: SVGRectElement;\n\tsvgEl: SVGSVGElement;\n\theaderEl: HTMLDivElement;\n\tinnerEl: HTMLDivElement;\n\theaderStackEl: HTMLDivElement;\n\tcontentEl: HTMLDivElement | null;\n\tdescriptionEl: HTMLDivElement | null;\n\tlocalState: { ready: boolean; expanded: boolean };\n\tpillWidth: number;\n\tcontentHeight: number;\n\tfrozenExpanded: number;\n\thovering: boolean;\n\tpendingDismiss: boolean;\n\tdismissRequested: boolean;\n\tpillRo: ResizeObserver;\n\tcontentRo: ResizeObserver | null;\n\tpillAnim: Animation | null;\n\tprevPill: { x: number; width: number; height: number };\n\tpillFirst: boolean;\n\theaderKey: string;\n\theaderPad: number | null;\n\tconnectHandle: { destroy(): void };\n\ttimers: Set<ReturnType<typeof setTimeout>>;\n\titem: FluixToastItem;\n}\n\n/* ----------------------------- SVG icon builders ----------------------------- */\n\nfunction createSvgIcon(state: FluixToastItem[\"state\"]): SVGSVGElement | null {\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tsvg.setAttribute(\"width\", \"14\");\n\tsvg.setAttribute(\"height\", \"14\");\n\tsvg.setAttribute(\"viewBox\", \"0 0 24 24\");\n\tsvg.setAttribute(\"fill\", \"none\");\n\tsvg.setAttribute(\"stroke\", \"currentColor\");\n\tsvg.setAttribute(\"stroke-width\", \"2.5\");\n\tsvg.setAttribute(\"stroke-linecap\", \"round\");\n\tsvg.setAttribute(\"stroke-linejoin\", \"round\");\n\tsvg.setAttribute(\"aria-hidden\", \"true\");\n\n\tswitch (state) {\n\t\tcase \"success\": {\n\t\t\tconst p = document.createElementNS(SVG_NS, \"polyline\");\n\t\t\tp.setAttribute(\"points\", \"20 6 9 17 4 12\");\n\t\t\tsvg.appendChild(p);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"error\": {\n\t\t\tconst l1 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl1.setAttribute(\"x1\", \"18\");\n\t\t\tl1.setAttribute(\"y1\", \"6\");\n\t\t\tl1.setAttribute(\"x2\", \"6\");\n\t\t\tl1.setAttribute(\"y2\", \"18\");\n\t\t\tconst l2 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl2.setAttribute(\"x1\", \"6\");\n\t\t\tl2.setAttribute(\"y1\", \"6\");\n\t\t\tl2.setAttribute(\"x2\", \"18\");\n\t\t\tl2.setAttribute(\"y2\", \"18\");\n\t\t\tsvg.appendChild(l1);\n\t\t\tsvg.appendChild(l2);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"warning\": {\n\t\t\tconst path = document.createElementNS(SVG_NS, \"path\");\n\t\t\tpath.setAttribute(\n\t\t\t\t\"d\",\n\t\t\t\t\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\",\n\t\t\t);\n\t\t\tconst l1 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl1.setAttribute(\"x1\", \"12\");\n\t\t\tl1.setAttribute(\"y1\", \"9\");\n\t\t\tl1.setAttribute(\"x2\", \"12\");\n\t\t\tl1.setAttribute(\"y2\", \"13\");\n\t\t\tconst l2 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl2.setAttribute(\"x1\", \"12\");\n\t\t\tl2.setAttribute(\"y1\", \"17\");\n\t\t\tl2.setAttribute(\"x2\", \"12.01\");\n\t\t\tl2.setAttribute(\"y2\", \"17\");\n\t\t\tsvg.appendChild(path);\n\t\t\tsvg.appendChild(l1);\n\t\t\tsvg.appendChild(l2);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"info\": {\n\t\t\tconst c = document.createElementNS(SVG_NS, \"circle\");\n\t\t\tc.setAttribute(\"cx\", \"12\");\n\t\t\tc.setAttribute(\"cy\", \"12\");\n\t\t\tc.setAttribute(\"r\", \"10\");\n\t\t\tconst l1 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl1.setAttribute(\"x1\", \"12\");\n\t\t\tl1.setAttribute(\"y1\", \"16\");\n\t\t\tl1.setAttribute(\"x2\", \"12\");\n\t\t\tl1.setAttribute(\"y2\", \"12\");\n\t\t\tconst l2 = document.createElementNS(SVG_NS, \"line\");\n\t\t\tl2.setAttribute(\"x1\", \"12\");\n\t\t\tl2.setAttribute(\"y1\", \"8\");\n\t\t\tl2.setAttribute(\"x2\", \"12.01\");\n\t\t\tl2.setAttribute(\"y2\", \"8\");\n\t\t\tsvg.appendChild(c);\n\t\t\tsvg.appendChild(l1);\n\t\t\tsvg.appendChild(l2);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"loading\": {\n\t\t\tsvg.setAttribute(\"data-fluix-icon\", \"spin\");\n\t\t\tconst lines: [string, string, string, string][] = [\n\t\t\t\t[\"12\", \"2\", \"12\", \"6\"],\n\t\t\t\t[\"12\", \"18\", \"12\", \"22\"],\n\t\t\t\t[\"4.93\", \"4.93\", \"7.76\", \"7.76\"],\n\t\t\t\t[\"16.24\", \"16.24\", \"19.07\", \"19.07\"],\n\t\t\t\t[\"2\", \"12\", \"6\", \"12\"],\n\t\t\t\t[\"18\", \"12\", \"22\", \"12\"],\n\t\t\t\t[\"4.93\", \"19.07\", \"7.76\", \"16.24\"],\n\t\t\t\t[\"16.24\", \"7.76\", \"19.07\", \"4.93\"],\n\t\t\t];\n\t\t\tfor (const [x1, y1, x2, y2] of lines) {\n\t\t\t\tconst l = document.createElementNS(SVG_NS, \"line\");\n\t\t\t\tl.setAttribute(\"x1\", x1);\n\t\t\t\tl.setAttribute(\"y1\", y1);\n\t\t\t\tl.setAttribute(\"x2\", x2);\n\t\t\t\tl.setAttribute(\"y2\", y2);\n\t\t\t\tsvg.appendChild(l);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase \"action\": {\n\t\t\tconst c = document.createElementNS(SVG_NS, \"circle\");\n\t\t\tc.setAttribute(\"cx\", \"12\");\n\t\t\tc.setAttribute(\"cy\", \"12\");\n\t\t\tc.setAttribute(\"r\", \"10\");\n\t\t\tconst poly = document.createElementNS(SVG_NS, \"polygon\");\n\t\t\tpoly.setAttribute(\"points\", \"10 8 16 12 10 16 10 8\");\n\t\t\tpoly.setAttribute(\"fill\", \"currentColor\");\n\t\t\tpoly.setAttribute(\"stroke\", \"none\");\n\t\t\tsvg.appendChild(c);\n\t\t\tsvg.appendChild(poly);\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t\treturn null;\n\t}\n\treturn svg;\n}\n\nfunction renderIconInto(container: HTMLElement, icon: unknown, state: FluixToastItem[\"state\"]) {\n\tcontainer.textContent = \"\";\n\tif (icon != null) {\n\t\tif (icon instanceof HTMLElement || icon instanceof SVGElement) {\n\t\t\tcontainer.appendChild(icon);\n\t\t} else {\n\t\t\tconst span = document.createElement(\"span\");\n\t\t\tspan.setAttribute(\"aria-hidden\", \"true\");\n\t\t\tspan.textContent = String(icon);\n\t\t\tcontainer.appendChild(span);\n\t\t}\n\t\treturn;\n\t}\n\tconst svgIcon = createSvgIcon(state);\n\tif (svgIcon) container.appendChild(svgIcon);\n}\n\n/* ----------------------------- Helpers ----------------------------- */\n\nfunction getPillAlign(position: FluixPosition): \"left\" | \"center\" | \"right\" {\n\tif (position.includes(\"right\")) return \"right\";\n\tif (position.includes(\"center\")) return \"center\";\n\treturn \"left\";\n}\n\nfunction applyAttrs(el: Element, attrs: Record<string, string>) {\n\tfor (const [key, value] of Object.entries(attrs)) {\n\t\tel.setAttribute(key, value);\n\t}\n}\n\nfunction resolveOffsetValue(v: number | string): string {\n\treturn typeof v === \"number\" ? `${v}px` : v;\n}\n\nfunction applyViewportOffset(\n\tel: HTMLElement,\n\toffset: FluixToasterConfig[\"offset\"],\n\tposition: FluixPosition,\n) {\n\tel.style.top = \"\";\n\tel.style.right = \"\";\n\tel.style.bottom = \"\";\n\tel.style.left = \"\";\n\tel.style.paddingLeft = \"\";\n\tel.style.paddingRight = \"\";\n\n\tif (offset == null) return;\n\n\tlet top: string | undefined;\n\tlet right: string | undefined;\n\tlet bottom: string | undefined;\n\tlet left: string | undefined;\n\n\tif (typeof offset === \"number\" || typeof offset === \"string\") {\n\t\tconst v = resolveOffsetValue(offset as number | string);\n\t\ttop = v;\n\t\tright = v;\n\t\tbottom = v;\n\t\tleft = v;\n\t} else {\n\t\tif (offset.top != null) top = resolveOffsetValue(offset.top);\n\t\tif (offset.right != null) right = resolveOffsetValue(offset.right);\n\t\tif (offset.bottom != null) bottom = resolveOffsetValue(offset.bottom);\n\t\tif (offset.left != null) left = resolveOffsetValue(offset.left);\n\t}\n\n\tif (position.startsWith(\"top\") && top) el.style.top = top;\n\tif (position.startsWith(\"bottom\") && bottom) el.style.bottom = bottom;\n\tif (position.endsWith(\"right\") && right) el.style.right = right;\n\tif (position.endsWith(\"left\") && left) el.style.left = left;\n\tif (position.endsWith(\"center\")) {\n\t\tif (left) el.style.paddingLeft = left;\n\t\tif (right) el.style.paddingRight = right;\n\t}\n}\n\nfunction setTimer(inst: ToastInstance, fn: () => void, ms: number): ReturnType<typeof setTimeout> {\n\tconst id = setTimeout(() => {\n\t\tinst.timers.delete(id);\n\t\tfn();\n\t}, ms);\n\tinst.timers.add(id);\n\treturn id;\n}\n\n/* ----------------------------- Compute layout values ----------------------------- */\n\nfunction computeLayout(item: FluixToastItem, inst: ToastInstance) {\n\tconst { ready, expanded: isExpanded } = inst.localState;\n\tconst roundness = item.roundness ?? TOAST_DEFAULTS.roundness;\n\tconst blur = Math.min(10, Math.max(6, roundness * 0.45));\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\tconst isLoading = item.state === \"loading\";\n\tconst open = hasDesc && isExpanded && !isLoading;\n\tconst position = getPillAlign(item.position);\n\tconst edge = item.position.startsWith(\"top\") ? \"bottom\" : \"top\";\n\n\tconst resolvedPillWidth = Math.max(inst.pillWidth || HEIGHT, HEIGHT);\n\tconst pillHeight = HEIGHT + blur * 3;\n\tconst pillX =\n\t\tposition === \"right\"\n\t\t\t? WIDTH - resolvedPillWidth\n\t\t\t: position === \"center\"\n\t\t\t\t? (WIDTH - resolvedPillWidth) / 2\n\t\t\t\t: 0;\n\n\tconst minExpanded = HEIGHT * MIN_EXPAND_RATIO;\n\tconst rawExpanded = hasDesc ? Math.max(minExpanded, HEIGHT + inst.contentHeight) : minExpanded;\n\tif (open) {\n\t\tinst.frozenExpanded = rawExpanded;\n\t}\n\tconst expanded = open ? rawExpanded : inst.frozenExpanded;\n\tconst expandedContent = Math.max(0, expanded - HEIGHT);\n\tconst svgHeight = hasDesc ? Math.max(expanded, minExpanded) : HEIGHT;\n\n\treturn {\n\t\tready,\n\t\tisExpanded,\n\t\troundness,\n\t\tblur,\n\t\thasDesc,\n\t\tisLoading,\n\t\topen,\n\t\tposition,\n\t\tedge,\n\t\tresolvedPillWidth,\n\t\tpillHeight,\n\t\tpillX,\n\t\tminExpanded,\n\t\texpanded,\n\t\texpandedContent,\n\t\tsvgHeight,\n\t};\n}\n\n/* ----------------------------- createInstance ----------------------------- */\n\nfunction createInstance(item: FluixToastItem, machine: ToastMachine): ToastInstance {\n\tconst localState = { ready: false, expanded: false };\n\tconst roundness = item.roundness ?? TOAST_DEFAULTS.roundness;\n\tconst blur = Math.min(10, Math.max(6, roundness * 0.45));\n\tconst filterId = `fluix-gooey-${item.id.replace(/[^a-z0-9-]/gi, \"-\")}`;\n\tconst hasDesc = Boolean(item.description) || Boolean(item.button);\n\n\t// Root button\n\tconst el = document.createElement(\"button\");\n\tel.type = \"button\";\n\n\t// Canvas div\n\tconst canvasDiv = document.createElement(\"div\");\n\n\t// SVG — initial height accounts for description area (matches React/Vue)\n\tconst minExpanded = HEIGHT * MIN_EXPAND_RATIO;\n\tconst initialSvgHeight = hasDesc ? minExpanded : HEIGHT;\n\tconst svg = document.createElementNS(SVG_NS, \"svg\");\n\tsvg.setAttribute(\"data-fluix-svg\", \"\");\n\tsvg.setAttribute(\"width\", String(WIDTH));\n\tsvg.setAttribute(\"height\", String(initialSvgHeight));\n\tsvg.setAttribute(\"viewBox\", `0 0 ${WIDTH} ${initialSvgHeight}`);\n\tsvg.setAttribute(\"aria-hidden\", \"true\");\n\n\t// Defs + filter\n\tconst defs = document.createElementNS(SVG_NS, \"defs\");\n\tconst filter = document.createElementNS(SVG_NS, \"filter\");\n\tfilter.setAttribute(\"id\", filterId);\n\tfilter.setAttribute(\"x\", \"-20%\");\n\tfilter.setAttribute(\"y\", \"-20%\");\n\tfilter.setAttribute(\"width\", \"140%\");\n\tfilter.setAttribute(\"height\", \"140%\");\n\tfilter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n\n\tconst feBlur = document.createElementNS(SVG_NS, \"feGaussianBlur\");\n\tfeBlur.setAttribute(\"in\", \"SourceGraphic\");\n\tfeBlur.setAttribute(\"stdDeviation\", String(blur));\n\tfeBlur.setAttribute(\"result\", \"blur\");\n\n\tconst feCM = document.createElementNS(SVG_NS, \"feColorMatrix\");\n\tfeCM.setAttribute(\"in\", \"blur\");\n\tfeCM.setAttribute(\"type\", \"matrix\");\n\tfeCM.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10\");\n\tfeCM.setAttribute(\"result\", \"goo\");\n\n\tconst feComp = document.createElementNS(SVG_NS, \"feComposite\");\n\tfeComp.setAttribute(\"in\", \"SourceGraphic\");\n\tfeComp.setAttribute(\"in2\", \"goo\");\n\tfeComp.setAttribute(\"operator\", \"atop\");\n\n\tfilter.appendChild(feBlur);\n\tfilter.appendChild(feCM);\n\tfilter.appendChild(feComp);\n\tdefs.appendChild(filter);\n\tsvg.appendChild(defs);\n\n\tconst g = document.createElementNS(SVG_NS, \"g\");\n\tg.setAttribute(\"filter\", `url(#${filterId})`);\n\n\t// Pill rect — initial position matches React/Vue (computed from position)\n\tconst initialPillX =\n\t\tgetPillAlign(item.position) === \"right\"\n\t\t\t? WIDTH - HEIGHT\n\t\t\t: getPillAlign(item.position) === \"center\"\n\t\t\t\t? (WIDTH - HEIGHT) / 2\n\t\t\t\t: 0;\n\tconst pillEl = document.createElementNS(SVG_NS, \"rect\");\n\tpillEl.setAttribute(\"data-fluix-pill\", \"\");\n\tpillEl.setAttribute(\"x\", String(initialPillX));\n\tpillEl.setAttribute(\"y\", \"0\");\n\tpillEl.setAttribute(\"width\", String(HEIGHT));\n\tpillEl.setAttribute(\"height\", String(HEIGHT));\n\tpillEl.setAttribute(\"rx\", String(roundness));\n\tpillEl.setAttribute(\"ry\", String(roundness));\n\tpillEl.setAttribute(\"fill\", item.fill ?? \"#FFFFFF\");\n\n\t// Body rect\n\tconst bodyEl = document.createElementNS(SVG_NS, \"rect\");\n\tbodyEl.setAttribute(\"data-fluix-body\", \"\");\n\tbodyEl.setAttribute(\"x\", \"0\");\n\tbodyEl.setAttribute(\"y\", String(HEIGHT));\n\tbodyEl.setAttribute(\"width\", String(WIDTH));\n\tbodyEl.setAttribute(\"height\", \"0\");\n\tbodyEl.setAttribute(\"rx\", String(roundness));\n\tbodyEl.setAttribute(\"ry\", String(roundness));\n\tbodyEl.setAttribute(\"fill\", item.fill ?? \"#FFFFFF\");\n\tbodyEl.setAttribute(\"opacity\", \"0\");\n\n\tg.appendChild(pillEl);\n\tg.appendChild(bodyEl);\n\tsvg.appendChild(g);\n\tcanvasDiv.appendChild(svg);\n\tel.appendChild(canvasDiv);\n\n\t// Header div\n\tconst headerEl = document.createElement(\"div\");\n\tconst headerStackEl = document.createElement(\"div\");\n\theaderStackEl.setAttribute(\"data-fluix-header-stack\", \"\");\n\n\tconst innerEl = document.createElement(\"div\");\n\tinnerEl.setAttribute(\"data-fluix-header-inner\", \"\");\n\tinnerEl.setAttribute(\"data-layer\", \"current\");\n\n\tconst badgeEl = document.createElement(\"div\");\n\trenderIconInto(badgeEl, item.icon, item.state);\n\n\tconst titleEl = document.createElement(\"span\");\n\ttitleEl.textContent = item.title ?? item.state;\n\n\tinnerEl.appendChild(badgeEl);\n\tinnerEl.appendChild(titleEl);\n\theaderStackEl.appendChild(innerEl);\n\theaderEl.appendChild(headerStackEl);\n\tel.appendChild(headerEl);\n\n\t// Content div (optional)\n\tlet contentEl: HTMLDivElement | null = null;\n\tlet descriptionEl: HTMLDivElement | null = null;\n\n\tif (hasDesc) {\n\t\tcontentEl = document.createElement(\"div\");\n\t\tdescriptionEl = document.createElement(\"div\");\n\t\tif (item.styles?.description) {\n\t\t\tdescriptionEl.className = item.styles.description;\n\t\t}\n\n\t\tif (item.description != null) {\n\t\t\tif (typeof item.description === \"string\") {\n\t\t\t\tdescriptionEl.textContent = item.description;\n\t\t\t} else if (item.description instanceof HTMLElement) {\n\t\t\t\tdescriptionEl.appendChild(item.description);\n\t\t\t}\n\t\t}\n\n\t\tif (item.button) {\n\t\t\tconst btn = document.createElement(\"button\");\n\t\t\tbtn.type = \"button\";\n\t\t\tbtn.textContent = item.button.title;\n\t\t\tif (item.styles?.button) {\n\t\t\t\tbtn.className = item.styles.button;\n\t\t\t}\n\t\t\tbtn.addEventListener(\"click\", (e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\titem.button?.onClick();\n\t\t\t});\n\t\t\tdescriptionEl.appendChild(btn);\n\t\t}\n\n\t\tcontentEl.appendChild(descriptionEl);\n\t\tel.appendChild(contentEl);\n\t}\n\n\t// Apply initial attrs\n\tconst attrs = CoreToaster.getAttrs(item, localState);\n\tapplyAttrs(el, attrs.root);\n\tapplyAttrs(canvasDiv, attrs.canvas);\n\tapplyAttrs(headerEl, attrs.header);\n\tapplyAttrs(badgeEl, attrs.badge);\n\tif (item.styles?.badge) badgeEl.className = item.styles.badge;\n\tapplyAttrs(titleEl, attrs.title);\n\tif (item.styles?.title) titleEl.className = item.styles.title;\n\tif (contentEl) applyAttrs(contentEl, attrs.content);\n\tif (descriptionEl) applyAttrs(descriptionEl, attrs.description);\n\n\t// Apply button attrs\n\tif (item.button && descriptionEl) {\n\t\tconst btnEl = descriptionEl.querySelector(\"button\");\n\t\tif (btnEl) applyAttrs(btnEl, attrs.button);\n\t}\n\n\tconst headerKey = `${item.state}-${item.title ?? item.state}`;\n\n\tconst inst: ToastInstance = {\n\t\tel,\n\t\tpillEl,\n\t\tbodyEl,\n\t\tsvgEl: svg,\n\t\theaderEl,\n\t\tinnerEl,\n\t\theaderStackEl,\n\t\tcontentEl,\n\t\tdescriptionEl,\n\t\tlocalState,\n\t\tpillWidth: 0,\n\t\tcontentHeight: 0,\n\t\tfrozenExpanded: HEIGHT * MIN_EXPAND_RATIO,\n\t\thovering: false,\n\t\tpendingDismiss: false,\n\t\tdismissRequested: false,\n\t\tpillRo: null!,\n\t\tcontentRo: null,\n\t\tpillAnim: null,\n\t\tprevPill: { x: initialPillX, width: HEIGHT, height: HEIGHT },\n\t\tpillFirst: true,\n\t\theaderKey,\n\t\theaderPad: null,\n\t\tconnectHandle: null!,\n\t\ttimers: new Set(),\n\t\titem,\n\t};\n\n\t// Set up pill ResizeObserver\n\tinst.pillRo = new ResizeObserver(() => {\n\t\trequestAnimationFrame(() => {\n\t\t\tmeasurePillWidth(inst);\n\t\t\tapplyVars(inst, inst.item);\n\t\t\tanimatePill(inst, inst.item);\n\t\t});\n\t});\n\tinst.pillRo.observe(innerEl);\n\n\t// Set up content ResizeObserver\n\tif (descriptionEl) {\n\t\tinst.contentRo = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst h = descriptionEl!.scrollHeight;\n\t\t\t\tif (h !== inst.contentHeight) {\n\t\t\t\t\tinst.contentHeight = h;\n\t\t\t\t\tapplyVars(inst, inst.item);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tinst.contentRo.observe(descriptionEl);\n\t}\n\n\t// Wire connect\n\tinst.connectHandle = CoreToaster.connect(\n\t\tel,\n\t\t{\n\t\t\tonExpand: () => {\n\t\t\t\tif (inst.item.exiting || inst.dismissRequested) return;\n\t\t\t\tinst.localState.expanded = true;\n\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t},\n\t\t\tonCollapse: () => {\n\t\t\t\tif (inst.item.exiting || inst.dismissRequested) return;\n\t\t\t\tif (inst.item.autopilot !== false) return;\n\t\t\t\tinst.localState.expanded = false;\n\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t},\n\t\t\tonDismiss: () => {\n\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\tinst.dismissRequested = true;\n\t\t\t\tmachine.dismiss(item.id);\n\t\t\t},\n\t\t\tonHoverStart: () => {\n\t\t\t\tinst.hovering = true;\n\t\t\t},\n\t\t\tonHoverEnd: () => {\n\t\t\t\tinst.hovering = false;\n\t\t\t\tif (inst.pendingDismiss) {\n\t\t\t\t\tinst.pendingDismiss = false;\n\t\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\t\tinst.dismissRequested = true;\n\t\t\t\t\tmachine.dismiss(inst.item.id);\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\titem,\n\t);\n\n\t// Apply initial CSS vars\n\tapplyVars(inst, item);\n\n\t// Ready timer\n\tsetTimer(\n\t\tinst,\n\t\t() => {\n\t\t\tinst.localState.ready = true;\n\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t},\n\t\t32,\n\t);\n\n\t// Auto-dismiss timer\n\tsetupAutoDismiss(inst, item, machine);\n\n\t// Autopilot timers\n\tsetupAutopilot(inst, item, machine);\n\n\t// Initial pill measurement\n\tmeasurePillWidth(inst);\n\n\treturn inst;\n}\n\n/* ----------------------------- measurePillWidth ----------------------------- */\n\nfunction measurePillWidth(inst: ToastInstance) {\n\t// Skip measurement if the element is not connected to the DOM yet\n\tif (!inst.el.isConnected) return;\n\n\tif (inst.headerPad === null) {\n\t\tconst cs = getComputedStyle(inst.headerEl);\n\t\tinst.headerPad = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t}\n\t// Use getBoundingClientRect for accurate measurement (matches Vue adapter)\n\tconst intrinsicWidth = inst.innerEl.getBoundingClientRect().width;\n\tconst w = intrinsicWidth + inst.headerPad + PILL_PADDING;\n\tif (w > PILL_PADDING && w !== inst.pillWidth) {\n\t\tinst.pillWidth = w;\n\t}\n}\n\n/* ----------------------------- applyVars ----------------------------- */\n\nfunction applyVars(inst: ToastInstance, item: FluixToastItem) {\n\tconst layout = computeLayout(item, inst);\n\tconst { open, expanded, resolvedPillWidth, pillX, edge, expandedContent, svgHeight } = layout;\n\n\tconst vars: Record<string, string> = {\n\t\t\"--_h\": `${open ? expanded : HEIGHT}px`,\n\t\t\"--_pw\": `${resolvedPillWidth}px`,\n\t\t\"--_px\": `${pillX}px`,\n\t\t\"--_ht\": `translateY(${open ? (edge === \"bottom\" ? 3 : -3) : 0}px) scale(${open ? 0.9 : 1})`,\n\t\t\"--_co\": `${open ? 1 : 0}`,\n\t\t\"--_cy\": `${open ? 0 : -14}px`,\n\t\t\"--_cm\": `${open ? expandedContent : 0}px`,\n\t\t\"--_by\": `${open ? HEIGHT - BODY_MERGE_OVERLAP : HEIGHT}px`,\n\t\t\"--_bh\": `${open ? expandedContent : 0}px`,\n\t\t\"--_bo\": `${open ? 1 : 0}`,\n\t};\n\n\tfor (const [key, value] of Object.entries(vars)) {\n\t\tinst.el.style.setProperty(key, value);\n\t}\n\n\t// Update SVG dimensions\n\tinst.svgEl.setAttribute(\"height\", String(svgHeight));\n\tinst.svgEl.setAttribute(\"viewBox\", `0 0 ${WIDTH} ${svgHeight}`);\n}\n\n/* ----------------------------- animatePill ----------------------------- */\n\nfunction animatePill(inst: ToastInstance, item: FluixToastItem) {\n\tconst layout = computeLayout(item, inst);\n\tconst { open, resolvedPillWidth, pillX, pillHeight } = layout;\n\n\tconst prev = inst.prevPill;\n\tconst next = { x: pillX, width: resolvedPillWidth, height: open ? pillHeight : HEIGHT };\n\n\tif (prev.x === next.x && prev.width === next.width && prev.height === next.height) return;\n\n\tinst.pillAnim?.cancel();\n\n\t// Before ready or on first measurement, set attributes directly (no spring)\n\tif (!inst.localState.ready || inst.pillFirst) {\n\t\tinst.pillFirst = false;\n\t\tinst.pillEl.setAttribute(\"x\", String(next.x));\n\t\tinst.pillEl.setAttribute(\"width\", String(next.width));\n\t\tinst.pillEl.setAttribute(\"height\", String(next.height));\n\t\tinst.prevPill = next;\n\t\treturn;\n\t}\n\n\tconst anim = animateSpring(\n\t\tinst.pillEl,\n\t\t{\n\t\t\tx: { from: prev.x, to: next.x, unit: \"px\" },\n\t\t\twidth: { from: prev.width, to: next.width, unit: \"px\" },\n\t\t\theight: { from: prev.height, to: next.height, unit: \"px\" },\n\t\t},\n\t\tFLUIX_SPRING,\n\t);\n\n\tinst.pillAnim = anim;\n\tinst.prevPill = next;\n}\n\n/* ----------------------------- setupAutoDismiss ----------------------------- */\n\nfunction setupAutoDismiss(inst: ToastInstance, item: FluixToastItem, machine: ToastMachine) {\n\tconst duration = item.duration;\n\tif (duration == null || duration <= 0) return;\n\n\tsetTimer(\n\t\tinst,\n\t\t() => {\n\t\t\tif (inst.hovering) {\n\t\t\t\tinst.pendingDismiss = true;\n\t\t\t\tsetTimer(\n\t\t\t\t\tinst,\n\t\t\t\t\t() => {\n\t\t\t\t\t\tif (inst.dismissRequested) return;\n\t\t\t\t\t\tinst.dismissRequested = true;\n\t\t\t\t\t\tinst.pendingDismiss = false;\n\t\t\t\t\t\tmachine.dismiss(item.id);\n\t\t\t\t\t},\n\t\t\t\t\t1200,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinst.pendingDismiss = false;\n\t\t\tinst.dismissRequested = true;\n\t\t\tmachine.dismiss(item.id);\n\t\t},\n\t\tduration,\n\t);\n}\n\n/* ----------------------------- setupAutopilot ----------------------------- */\n\nfunction setupAutopilot(inst: ToastInstance, item: FluixToastItem, machine: ToastMachine) {\n\tif (!inst.localState.ready) return;\n\n\tif (item.autoExpandDelayMs != null && item.autoExpandDelayMs > 0) {\n\t\tsetTimer(\n\t\t\tinst,\n\t\t\t() => {\n\t\t\t\tif (!inst.hovering) {\n\t\t\t\t\tinst.localState.expanded = true;\n\t\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t\t}\n\t\t\t},\n\t\t\titem.autoExpandDelayMs,\n\t\t);\n\t}\n\n\tif (item.autoCollapseDelayMs != null && item.autoCollapseDelayMs > 0) {\n\t\tsetTimer(\n\t\t\tinst,\n\t\t\t() => {\n\t\t\t\tif (!inst.hovering) {\n\t\t\t\t\tinst.localState.expanded = false;\n\t\t\t\t\tapplyUpdate(inst, inst.item, machine);\n\t\t\t\t}\n\t\t\t},\n\t\t\titem.autoCollapseDelayMs,\n\t\t);\n\t}\n}\n\n/* ----------------------------- applyUpdate ----------------------------- */\n\nfunction applyUpdate(inst: ToastInstance, item: FluixToastItem, _machine: ToastMachine) {\n\tinst.item = item;\n\n\tconst attrs = CoreToaster.getAttrs(item, inst.localState);\n\tapplyAttrs(inst.el, attrs.root);\n\n\t// Canvas\n\tconst canvasEl = inst.el.querySelector(\"[data-fluix-canvas]\");\n\tif (canvasEl) applyAttrs(canvasEl, attrs.canvas);\n\n\t// Header\n\tapplyAttrs(inst.headerEl, attrs.header);\n\n\t// Badge & title in current layer\n\tconst badgeEl = inst.innerEl.querySelector(\"[data-fluix-badge]\");\n\tif (badgeEl) {\n\t\tapplyAttrs(badgeEl, attrs.badge);\n\t\tif (item.styles?.badge) (badgeEl as HTMLElement).className = item.styles.badge;\n\t}\n\tconst titleEl = inst.innerEl.querySelector(\"[data-fluix-title]\");\n\tif (titleEl) {\n\t\tapplyAttrs(titleEl, attrs.title);\n\t\tif (item.styles?.title) (titleEl as HTMLElement).className = item.styles.title;\n\t}\n\n\t// Content\n\tif (inst.contentEl) applyAttrs(inst.contentEl, attrs.content);\n\tif (inst.descriptionEl) applyAttrs(inst.descriptionEl, attrs.description);\n\n\t// Button attrs\n\tif (item.button && inst.descriptionEl) {\n\t\tconst btnEl = inst.descriptionEl.querySelector(\"button\");\n\t\tif (btnEl) applyAttrs(btnEl, attrs.button);\n\t}\n\n\t// Update pill fill\n\tinst.pillEl.setAttribute(\"fill\", item.fill ?? \"#FFFFFF\");\n\tinst.bodyEl.setAttribute(\"fill\", item.fill ?? \"#FFFFFF\");\n\n\t// Header crossfade\n\tconst newHeaderKey = `${item.state}-${item.title ?? item.state}`;\n\tif (newHeaderKey !== inst.headerKey) {\n\t\tcrossfadeHeader(inst, item, attrs);\n\t\tinst.headerKey = newHeaderKey;\n\t}\n\n\tapplyVars(inst, item);\n\tanimatePill(inst, item);\n}\n\n/* ----------------------------- crossfadeHeader ----------------------------- */\n\nfunction crossfadeHeader(\n\tinst: ToastInstance,\n\titem: FluixToastItem,\n\tattrs: ReturnType<typeof CoreToaster.getAttrs>,\n) {\n\t// Move current → prev (exiting)\n\tconst oldInner = inst.innerEl;\n\toldInner.setAttribute(\"data-layer\", \"prev\");\n\toldInner.setAttribute(\"data-exiting\", \"true\");\n\n\t// Create new current\n\tconst newInner = document.createElement(\"div\");\n\tnewInner.setAttribute(\"data-fluix-header-inner\", \"\");\n\tnewInner.setAttribute(\"data-layer\", \"current\");\n\n\tconst badgeEl = document.createElement(\"div\");\n\tapplyAttrs(badgeEl, attrs.badge);\n\tif (item.styles?.badge) badgeEl.className = item.styles.badge;\n\trenderIconInto(badgeEl, item.icon, item.state);\n\n\tconst titleEl = document.createElement(\"span\");\n\tapplyAttrs(titleEl, attrs.title);\n\tif (item.styles?.title) titleEl.className = item.styles.title;\n\ttitleEl.textContent = item.title ?? item.state;\n\n\tnewInner.appendChild(badgeEl);\n\tnewInner.appendChild(titleEl);\n\tinst.headerStackEl.insertBefore(newInner, oldInner);\n\tinst.innerEl = newInner;\n\n\t// Re-observe for pill measurement\n\tinst.pillRo.unobserve(oldInner);\n\tinst.pillRo.observe(newInner);\n\n\t// Remove old after exit animation\n\tsetTimer(\n\t\tinst,\n\t\t() => {\n\t\t\toldInner.remove();\n\t\t},\n\t\tHEADER_EXIT_MS,\n\t);\n\n\t// Re-measure pill\n\trequestAnimationFrame(() => {\n\t\tmeasurePillWidth(inst);\n\t\tapplyVars(inst, inst.item);\n\t\tanimatePill(inst, inst.item);\n\t});\n}\n\n/* ----------------------------- destroyInstance ----------------------------- */\n\nfunction destroyInstance(inst: ToastInstance) {\n\tfor (const t of inst.timers) clearTimeout(t);\n\tinst.timers.clear();\n\tinst.pillAnim?.cancel();\n\tinst.pillRo.disconnect();\n\tinst.contentRo?.disconnect();\n\tinst.connectHandle.destroy();\n\tinst.el.remove();\n}\n\n/* ----------------------------- createToaster ----------------------------- */\n\nexport function createToaster(config?: FluixToasterConfig): {\n\tdestroy(): void;\n\tupdate(config: FluixToasterConfig): void;\n} {\n\tconst machine = CoreToaster.getMachine();\n\tlet currentConfig = config;\n\tif (currentConfig) machine.configure(currentConfig);\n\n\tconst instances = new Map<string, ToastInstance>();\n\tconst viewports = new Map<FluixPosition, HTMLElement>();\n\n\tfunction ensureViewport(\n\t\tposition: FluixPosition,\n\t\tlayout: FluixToastLayout,\n\t\toffset: FluixToasterConfig[\"offset\"],\n\t): HTMLElement {\n\t\tlet vp = viewports.get(position);\n\t\tif (!vp) {\n\t\t\tvp = document.createElement(\"section\");\n\t\t\tconst vpAttrs = CoreToaster.getViewportAttrs(position, layout);\n\t\t\tapplyAttrs(vp, vpAttrs);\n\t\t\tapplyViewportOffset(vp, offset, position);\n\t\t\tdocument.body.appendChild(vp);\n\t\t\tviewports.set(position, vp);\n\t\t}\n\t\treturn vp;\n\t}\n\n\tfunction removeViewport(position: FluixPosition) {\n\t\tconst vp = viewports.get(position);\n\t\tif (vp) {\n\t\t\tvp.remove();\n\t\t\tviewports.delete(position);\n\t\t}\n\t}\n\n\tfunction sync() {\n\t\tconst next = machine.store.getSnapshot();\n\t\tconst resolvedLayout = next.config?.layout ?? currentConfig?.layout ?? \"stack\";\n\t\tconst resolvedOffset = next.config?.offset ?? currentConfig?.offset;\n\n\t\t// Track which positions are active\n\t\tconst activePositions = new Set<FluixPosition>();\n\t\tconst nextIds = new Set(next.toasts.map((t) => t.id));\n\n\t\t// Remove instances for toasts that are gone\n\t\tfor (const [id, inst] of instances) {\n\t\t\tif (!nextIds.has(id)) {\n\t\t\t\tdestroyInstance(inst);\n\t\t\t\tinstances.delete(id);\n\t\t\t}\n\t\t}\n\n\t\t// Create/update instances\n\t\tfor (const item of next.toasts) {\n\t\t\tactivePositions.add(item.position);\n\t\t\tconst vp = ensureViewport(item.position, resolvedLayout, resolvedOffset);\n\n\t\t\tconst existing = instances.get(item.id);\n\t\t\tif (!existing) {\n\t\t\t\t// New toast\n\t\t\t\tconst inst = createInstance(item, machine);\n\t\t\t\tinstances.set(item.id, inst);\n\t\t\t\tvp.appendChild(inst.el);\n\t\t\t} else if (existing.item.instanceId !== item.instanceId) {\n\t\t\t\t// Content swapped (e.g., promise resolution) - rebuild\n\t\t\t\tdestroyInstance(existing);\n\t\t\t\tconst inst = createInstance(item, machine);\n\t\t\t\tinstances.set(item.id, inst);\n\t\t\t\tvp.appendChild(inst.el);\n\t\t\t} else {\n\t\t\t\t// Same instance, update attrs/vars\n\t\t\t\tapplyUpdate(existing, item, machine);\n\t\t\t\t// Ensure it's in the right viewport\n\t\t\t\tif (existing.el.parentElement !== vp) {\n\t\t\t\t\tvp.appendChild(existing.el);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update viewport attrs (layout may have changed)\n\t\tfor (const [position, vp] of viewports) {\n\t\t\tconst vpAttrs = CoreToaster.getViewportAttrs(position, resolvedLayout);\n\t\t\tapplyAttrs(vp, vpAttrs);\n\t\t\tapplyViewportOffset(vp, resolvedOffset, position);\n\t\t}\n\n\t\t// Remove empty viewports\n\t\tfor (const [position] of viewports) {\n\t\t\tif (!activePositions.has(position)) {\n\t\t\t\tremoveViewport(position);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Initial sync\n\tsync();\n\n\t// Subscribe to store changes\n\tconst unsubscribe = machine.store.subscribe(sync);\n\n\treturn {\n\t\tdestroy() {\n\t\t\tunsubscribe();\n\t\t\tfor (const inst of instances.values()) {\n\t\t\t\tdestroyInstance(inst);\n\t\t\t}\n\t\t\tinstances.clear();\n\t\t\tfor (const vp of viewports.values()) {\n\t\t\t\tvp.remove();\n\t\t\t}\n\t\t\tviewports.clear();\n\t\t},\n\t\tupdate(newConfig: FluixToasterConfig) {\n\t\t\tcurrentConfig = newConfig;\n\t\t\tmachine.configure(newConfig);\n\t\t},\n\t};\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fluix-ui/vanilla",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Vanilla JS adapter for Fluix UI components. Zero framework dependencies.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"require": {
|
|
14
|
+
"types": "./dist/index.d.cts",
|
|
15
|
+
"default": "./dist/index.cjs"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"main": "./dist/index.cjs",
|
|
20
|
+
"module": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"@fluix-ui/core": "0.0.2",
|
|
28
|
+
"@fluix-ui/css": "0.0.2"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"tsup": "^8.3.0",
|
|
32
|
+
"typescript": "^5.7.0",
|
|
33
|
+
"@fluix-ui/core": "0.0.2"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsup",
|
|
37
|
+
"dev": "tsup --watch",
|
|
38
|
+
"typecheck": "tsc --noEmit"
|
|
39
|
+
}
|
|
40
|
+
}
|