narraleaf-react 0.1.4 → 0.1.6
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/README.md +2 -2
- package/dist/game/nlcore/common/game.d.ts +2 -1
- package/dist/game/nlcore/elements/script.d.ts +2 -1
- package/dist/game/nlcore/game/preference.d.ts +31 -0
- package/dist/game/nlcore/game.d.ts +13 -37
- package/dist/game/nlcore/gameTypes.d.ts +4 -0
- package/dist/game/nlcore/liveGame.d.ts +37 -0
- package/dist/game/nlcore/types.d.ts +0 -3
- package/dist/game/player/elements/Player.d.ts +1 -1
- package/dist/game/player/elements/type.d.ts +5 -3
- package/dist/game/player/lib/PlayerFrames.d.ts +25 -0
- package/dist/game/player/lib/UtilComponents.d.ts +5 -0
- package/dist/game/player/libElements.d.ts +3 -1
- package/dist/main.js +6 -30678
- package/dist/util/data.d.ts +9 -0
- package/package.json +2 -2
- package/dist/main.js.map +0 -1
package/dist/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","mappings":"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EAAE;MAC7FwM,OAAO,CAACxM,GAAG,CAAC,CAAC2gB,GAAG,CAAC3gB,GAAG,CAAC,EAAEA,GAAG,CAAC;IAC/B;EACJ;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEnbA;AACsH;AACjB;AACrG,8BAA8B,mFAA2B,CAAC,4FAAqC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B,mBAAmB;AACnB,uBAAuB;AACvB,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB,kCAAkC;AAClC,oBAAoB;AACpB;AACA,kBAAkB;AAClB,mIAAmI;AACnI,iCAAiC;AACjC,mCAAmC;AACnC,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,kBAAkB;AAClB,yBAAyB;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mHAAmH;AACnH,iCAAiC;AACjC,mCAAmC;AACnC,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,yBAAyB;AACzB,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,kCAAkC;AAClC,oCAAoC;AACpC,mBAAmB;AACnB,wBAAwB;AACxB,wBAAwB;AACxB,2BAA2B;AAC3B,kBAAkB;AAClB,aAAa;AACb,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,iCAAiC;AACjC,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,kBAAkB;AAClB;;AAEA;AACA;AACA,cAAc;AACd,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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,gDAAgD;AAChD;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sFAAsF,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,iDAAiD,qBAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpFa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;;AAEA;AACA,0BAA0B,cAAc;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;;AAEA;AACA,wBAAwB,cAAc;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA,uCAAuC,MAAM;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6EAA6E;AAC7E;AACA,kDAAkD;AAClD,iDAAiD;AACjD,iDAAiD;AACjD,kDAAkD;AAClD,gDAAgD;AAChD,kDAAkD;AAClD,mDAAmD,uCAAuC,uCAAuC;AACjI,mDAAmD,uCAAuC,uCAAuC;AACjI,mDAAmD,uCAAuC,uCAAuC;AACjI,oEAAoE;AACpE,oEAAoE;AACpE,mDAAmD;AACnD,qDAAqD,wCAAwC;AAC7F;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;;AAEA;AACA,0BAA0B,cAAc;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,sBAAsB;AAC1C;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,YAAY;AAC5C,kCAAkC,aAAa;AAC/C,kCAAkC,aAAa;AAC/C,4CAA4C,kBAAkB;AAC9D,4CAA4C,kBAAkB;AAC9D,oCAAoC,cAAc;AAClD,kCAAkC,aAAa;AAC/C,kCAAkC,aAAa;AAC/C,kCAAkC,aAAa;AAC/C,sCAAsC,eAAe;AACrD,kCAAkC,aAAa;AAC/C,kCAAkC,aAAa;AAC/C,sCAAsC,eAAe;AACrD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,SAAS;AACzB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,4BAA4B,GAAG,eAAe;AAC1E;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,MAAM;AACxC;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B;AACA;AACA;;AAEA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;;AAEA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,oDAAoD;AACpE;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,GAAG;AACrB;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,cAAc,MAAM;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,mCAAE;AACf;AACA;AACA;AACA;AACA,KAAK;AAAA,kGAAC;AACN;;AAEA;AACA,MAAM,IAA8B;AACpC,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB;;AAEA;AACA,aAAa,qBAAM;AACnB,IAAI,qBAAM;AACV,IAAI,qBAAM;AACV,IAAI,qBAAM;AACV,IAAI,qBAAM;AACV,IAAI,2CAA2C;AAC/C;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,mBAAmB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,MAAM;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,gBAAgB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,kBAAkB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,UAAU;AACxB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,eAAe;AACrD,gCAAgC,YAAY;AAC5C,gDAAgD,oBAAoB;;AAEpE;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,gBAAgB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,eAAe;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,eAAe;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,cAAc;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,UAAU;AACxB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,cAAc,UAAU;AACxB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC/qGD;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA,YAAY,mBAAO,CAAC,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,0EAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,UAAU,mBAAO,CAAC,uDAAW;AAC7B,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,CAAM;AAC7I;AACA;;AAEA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACjmBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,0EAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,EAAE,KAAK,EAIN;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;ACXA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wJAAyD;AAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLA,MAA2G;AAC3G,MAAiG;AACjG,MAAwG;AACxG,MAA2H;AAC3H,MAAoH;AACpH,MAAoH;AACpH,MAAsK;AACtK;AACA;;AAEA;;AAEA,4BAA4B,qGAAmB;AAC/C,wBAAwB,kHAAa;AACrC,iBAAiB,uGAAa;AAC9B,iBAAiB,+FAAM;AACvB,6BAA6B,sGAAkB;;AAE/C,aAAa,0GAAG,CAAC,8HAAO;;;;AAIgH;AACxI,OAAO,iEAAe,8HAAO,IAAI,8HAAO,UAAU,8HAAO,mBAAmB,EAAC;;;;;;;;;;;;ACxBhE;;AAEb;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnFa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;AACjF;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTa;;AAEb;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5Da;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,oBAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4BAA4B;AAC5B;AACA,qCAAqC;;AAErC,gCAAgC;AAChC;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,sBAAsB;AACtB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,iCAAiC;AACjC;AACA,SAAS;AACT,2BAA2B;AAC3B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;;AAE3D;AACA;;AAEA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,gFAAgF;AAChF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;;AAGlB;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2HAA2H;AAC3H;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,oEAAoE;;AAEpE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,oBAAoB;AACpB,2DAA2D,UAAU;AACrE,yBAAyB,UAAU;AACnC;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,4CAA4C;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0DAA0D;AAC1D;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gDAAgD,gDAAgD,MAAM,aAAa;;AAEnH;AACA,iDAAiD,kCAAkC,OAAO;;AAE1F,yGAAyG,cAAc,UAAU,gGAAgG,kBAAkB,UAAU,UAAU;;AAEvQ;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;;AAEA,gBAAgB;AAChB,WAAW;AACX,YAAY;AACZ,GAAG;AACH;;;;;;;;;;;;ACpzCa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,uMAAkE;AACpE;;;;;;;;;;;;ACNA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;ACAxT;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA,gBAAgB,uFAAsB;AACtC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEiC;;;;;;;;;;;;;;;;;;;;AC7EoC;AACpB;AACF;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAe;AACxC;AACA;AACA,yBAAyB,4DAAc;AACvC;AACA,8BAA8B,6EAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwC;;;;;;;;;;;;;;;;;;ACjCqC;AACd;;AAE/D;AACA,uCAAuC,2EAAc;AACrD,eAAe,sFAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2B;;;;;;;;;;;;;;;;;;;AClB6B;AACc;AACvB;;AAE/C;AACA;AACA,iCAAiC,kFAA4B,6BAA6B,MAAM,oEAAE;AAClG,oCAAoC,uBAAuB;AAC3D,2BAA2B,4DAAc;AACzC,KAAK;AACL;AACA;;AAE2B;;;;;;;;;;;;;;;;;;;ACbyC;AAChB;AACkB;;AAEtE;AACA,0BAA0B,+EAAa,kBAAkB,6DAAW;AACpE,wBAAwB,gFAAkB;AAC1C;AACA;;AAE8B;;;;;;;;;;;;;;;;;;;;;;;;ACV8B;AACT;AACmB;AACE;AAC+B;AACxC;AACN;AACD;;AAExD;AACA,YAAY,+EAAa;AACzB;AACA,yCAAyC,2EAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAkB,UAAU,2EAAc;AAClE;AACA;AACA;AACA;AACA,yBAAyB,sEAAe;AACxC;AACA,QAAQ,4DAAS;AACjB,wBAAwB,iBAAiB;AACzC;AACA;AACA,kBAAkB,oFAAsB;AACxC,kBAAkB,uFAAyB;AAC3C,iBAAiB,iEAAkB;AACnC;AACA;AACA,kCAAkC,iEAAkB;AACpD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oFAAa,kBAAkB,0BAA0B,IAAI;AAC5F;AACA;AACA;AACA;;AAE0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnD+B;AACP;AACA;AAC+B;AACrC;AACmD;AAC5B;AACf;AACY;AACG;AACX;AACI;AACO;AACK;AACQ;AACf;;AAEjE;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+EAAW;AACvB;AACA,SAAS,yEAAsB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yEAAmB;AACnD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,aAAa;AACb,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,6DAAa;AAChD;AACA;AACA,gBAAgB,wCAAwC;AACxD,4BAA4B,sFAAoB;AAChD;AACA;AACA;AACA;AACA,cAAc,mEAAmE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6FAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yDAAyD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qEAAmB,+CAA+C,wCAAwC;AACpI;AACA;AACA;AACA;AACA,YAAY,iFAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,gCAAgC,sFAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,kFAAqB;AACpC;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B,eAAe,kFAAqB;AACpC;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B,gCAAgC,kFAAqB;AACrD;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA,uBAAuB,kDAAI;AAC3B,oBAAoB,YAAY;AAChC,YAAY,iFAAc;AAC1B;AACA,eAAe,kDAAI;AACnB;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,oDAAoD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yDAAyD;AAC7E,wCAAwC,yEAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+BAA+B,kFAAqB;AACpD;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAA4D;AAC5E,gBAAgB,+EAAa;AAC7B;AACA,YAAY,6EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgC;;;;;;;;;;;;;;;;;;;;;AC7TqB;AAC6B;AACG;AAChC;AACmB;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8GAA8G;AAChI;AACA;AACA;AACA,yBAAyB,0DAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2FAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAI;AAC9B;AACA,gBAAgB,kEAAkE;AAClF;AACA;AACA;AACA;AACA,6BAA6B,kEAAU;AACvC;AACA,gBAAgB,0FAAqB;AACrC,6EAA6E,qFAAgB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChHmD;AACpB;AACJ;AACI;AACJ;AACR;AACI;AAC8B;AACiB;AACjD;AACK;AACc;AACO;AACL;;AAEnE;AACA,WAAW,4DAAO;AAClB,WAAW;AACX,WAAW,gEAAS;AACpB,eAAe,gEAAS;AACxB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6DAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,gBAAgB,wCAAwC;AACxD,mHAAmH,iFAAgB;AACnI;AACA;AACA;AACA;AACA;AACA,gBAAgB,6EAA6E;AAC7F,iCAAiC,+EAAW;AAC5C;AACA,kCAAkC,gEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gEAAS;AAC1C;AACA,gBAAgB,IAAqC;AACrD,gBAAgB,4DAAS,2HAA2H,YAAY;AAChK;AACA,oCAAoC,qDAAI,oBAAoB,yDAAG;AAC/D;AACA;AACA,6CAA6C,yCAAyC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0FAAqB;AAChE;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,oBAAoB,YAAY;AAChC,qBAAqB;AACrB;AACA,gBAAgB,sIAAsI;AACtJ;AACA;AACA,gBAAgB,mDAAmD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sFAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,0BAA0B,kFAAqB;AAC/C;AACA;AACA,eAAe,kFAAqB;AACpC;AACA;AACA,kBAAkB,kFAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kFAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS,2EAAe,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6C;;;;;;;;;;;;;;;;;;AC/XW;AACqB;;AAE7E;AACA,6BAA6B,WAAW;AACxC;AACA,qBAAqB,uDAAK;AAC1B,oBAAoB,iEAAW;AAC/B;AACA;AACA;AACA;AACA,oBAAoB,2DAAS,gBAAgB,2DAAS,aAAa,0DAAI;AACvE;AACA;;AAE2B;;;;;;;;;;;;;;;;AChB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;;;;ACbuB;AACkB;AACT;;AAE7D;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAY;AAC3C,+BAA+B,sEAAY;AAC3C,IAAI,0DAAO,yEAAyE,MAAM,QAAQ,eAAe,QAAQ,eAAe,KAAK,gBAAgB,4DAA4D,gBAAgB,2BAA2B,gBAAgB;AACpR;AACA;AACA;AACA;AACA;AACA,+BAA+B,+EAAW;AAC1C;;AAEsB;;;;;;;;;;;;;;;;;;;;;;ACzC8D;AAC1B;AACgB;;AAE1E;AACA,oDAAoD,uFAAoB;AACxE;AACA;AACA,+CAA+C,uFAAoB;AACnE,QAAQ,0FAAkB;AAC1B;AACA;AACA,8DAA8D,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uFAAoB;AACjE,eAAe,uEAAoB;AACnC;AACA,aAAa,0FAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEsG;;;;;;;;;;;;;;;;;AC3C/C;;AAEvD,8DAA8D,2EAA2E,IAAI;AAC7I,8BAA8B;AAC9B;AACA;AACA,mBAAmB,oEAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAE+B;;;;;;;;;;;;;;;;ACtB/B;AACA;AACA;AACA;;AAE0B;;;;;;;;;;;;;;;;ACL1B;AACA,uCAAuC,6BAA6B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4B;;;;;;;;;;;;;;;;;ACX8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,yBAAyB,6DAAQ;AACjC;AACA,qBAAqB,uCAAuC;AAC5D;;AAEgC;;;;;;;;;;;;;;;;;;ACdkB;AACG;;AAErD;AACA,qBAAqB,qDAAI;AACzB,mBAAmB,QAAQ,aAAa,8DAAa;AACrD;;AAEwB;;;;;;;;;;;;;;;;ACRxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;;ACR0B;;AAEnD,2CAA2C,gEAAY;AACvD;AACA;AACA;AACA,uBAAuB,YAAY,IAAI,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA,CAAC;;AAE+B;;;;;;;;;;;;;;;;;ACdkB;;AAElD,oCAAoC,qDAAI;;AAEf;;;;;;;;;;;;;;;;;;ACJmB;AACiB;;AAE7D,mBAAmB,4JAA4J;AAC/K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yDAAM;AACzB;AACA,sBAAsB,0EAAqB;AAC3C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEmB;;;;;;;;;;;;;;;;;;;;;;;ACtF+B;AACqB;AACC;AACd;AACM;AACI;;AAEpE;AACA,sCAAsC,uDAAS;AAC/C;AACA,qBAAqB,uEAAuE;AAC5F;AACA;AACA;AACA;AACA,4BAA4B,gFAAa;AACzC,mBAAmB,6EAA0B;AAC7C,UAAU,iFAA0B;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6EAAoB;AAC9C;AACA;AACA;AACA;AACA,UAAU,yEAAa;AACvB,8BAA8B,mEAAW;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEoC;;;;;;;;;;;;;;;;;;;;;;;;AClDgB;AACH;AACiD;;AAElG;AACA;AACA;AACA;AACA;AACA,sBAAsB,wDAAwD;AAC9E;AACA;AACA,IAAI,0DAAO,aAAa,iFAAqB;AAC7C;AACA;AACA;AACA;AACA,mBAAmB,uDAAK;AACxB,eAAe,uDAAK,2BAA2B,iFAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyF;;;;;;;;;;;;;;;;;;;ACxFS;AACpC;AACL;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,YAAY,wEAAwE;AACpF;AACA,mBAAmB,iFAAqB;AACxC,KAAK;AACL;AACA;AACA;AACA,gCAAgC,iFAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iFAAqB;AACnD,8BAA8B,0EAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEkB;;;;;;;;;;;;;;;;;AChIlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuD;;;;;;;;;;;;;;;;AChBvD;AACA;AACA;;AAEuB;;;;;;;;;;;;;;;;;ACJoD;;AAE3E,kCAAkC;AAClC;AACA;AACA,WAAW,iFAAiB;AAC5B;;AAEiC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRuC;AACA;AACD;AACL;AACmB;AACF;AACjC;AAC2B;AACF;AACN;AACI;;AAEzE,gEAAgE;AAChE,4BAA4B,mFAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,cAAc;AACxB,wBAAwB,iFAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qFAAmB;AAC5B;AACA;AACA,eAAe,oFAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAqB;AAChD;AACA;AACA,8BAA8B,iFAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0FAAqB;AAC7B,QAAQ,uEAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+FAAgB;AAC9C;AACA,YAAY,uDAAK;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,6EAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAoB;AAC1C,mBAAmB,qFAAoB;AACvC;AACA;AACA,mBAAmB,oFAAmB;AACtC;AACA;;AAE8B;;;;;;;;;;;;;;;;;;;;;;;AChHyC;AACf;AACG;AACY;AACM;AACU;AACrC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA,6DAA6D,sCAAsC,IAAI;AACvG;AACA,UAAU,8EAA8E;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mFAAkB,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yFAAoB;AACjD;AACA,+EAA+E,uDAAK;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gGAAoB;AAC5B,oBAAoB,qEAAkB,8DAA8D,4EAAc;AAClH,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAK;AACjB,iCAAiC,oEAAS;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;AC1EwD;AACrB;;AAE5D,4DAA4D;AAC5D;AACA,qBAAqB,0FAAc;AACnC;AACA;AACA,UAAU,0DAA0D;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yEAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wDAAwD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;;AAE2C;;;;;;;;;;;;;;;;;;;ACjEsC;AACrB;AACE;;AAE9D,qEAAqE;AACrE;AACA;AACA;AACA,uDAAuD,2EAAc;AACrE;AACA;AACA;AACA,oBAAoB,2EAAc;AAClC;AACA;AACA;AACA,cAAc,0FAAc;AAC5B;AACA,gCAAgC,yEAAa;AAC7C;AACA;AACA;AACA,KAAK;AACL;;AAEgC;;;;;;;;;;;;;;;;;;ACzBuC;;AAEvE;AACA,+CAA+C,gFAAW;;AAEK;;;;;;;;;;;;;;;;;ACLF;;AAE7D;AACA,+BAA+B,sEAA4B;AAC3D;;AAEgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNuD;AACvB;AACN;AACN;AACoB;AACF;AACJ;AACC;AACd;AACL;AACC;;AAEjD;AACA,kDAAkD,sBAAsB,0BAA0B,IAAI;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kEAAY;AACrD;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB,yEAAa,qEAAqE;AACzH,kBAAkB,uDAAuD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+EAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,gDAAgD,iFAAqB;AACrE;AACA,qCAAqC,gGAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAY;AACxB;AACA;AACA;AACA,YAAY,+EAAa;AACzB;AACA;AACA;AACA;AACA,6BAA6B,8EAAe;AAC5C;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD,wBAAwB,oBAAoB;AAC5C;AACA,iCAAiC,8DAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,kCAAkC;AAClC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAE4D;;;;;;;;;;;;;;;;ACrO5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwB;;;;;;;;;;;;;;;;;;;;ACpB+D;AACjC;AACI;;AAE1D;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,gBAAgB,gEAAS;AACzB,oBAAoB,6FAAmB;AACvC,SAAS;AACT;AACA;;AAEwC;;;;;;;;;;;;;;;;AC9BxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;;;;ACbgD;AACA;AACG;AAChB;AACsB;;AAElF;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6BAA6B;AAC7B,mCAAmC;AACnC,yBAAyB;AACzB,wBAAwB;AACxB,yBAAyB;AACzB,aAAa;AACb,4BAA4B;AAC5B,SAAS;AACT;AACA,iBAAiB,kFAAY;AAC7B,cAAc,8EAAgB;AAC9B,cAAc,iFAAiB;AAC/B;AACA,IAAI,iEAAkB;AACtB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B;AAC1B,aAAa;AACb,4BAA4B;AAC5B,SAAS;AACT;AACA,qBAAqB,uFAAmB;AACxC;AACA,IAAI,iEAAkB;AACtB;;AAE6D;;;;;;;;;;;;;;;;;AC3CU;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA,aAAa,4EAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEgC;;;;;;;;;;;;;;;;ACvChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAE8B;;;;;;;;;;;;;;;;;ACRgC;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mEAAO;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEwB;;;;;;;;;;;;;;;;AC7BxB;AACA;AACA;AACA;AACA;;AAE+B;;;;;;;;;;;;;;;;ACN/B;AACA;AACA;;AAE0B;;;;;;;;;;;;;;;;ACJ1B;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;;ACJ4C;;AAEzE;AACA;AACA;AACA;AACA;AACA,oDAAoD,kFAAiB;AACrE;AACA;AACA;AACA;AACA;;AAEkB;;;;;;;;;;;;;;;;ACdlB;AACA;AACA;AACA;AACA;AACA,+BAA+B,sIAAsI;AACrK;AACA;;AAE+B;;;;;;;;;;;;;;;;;;;;ACT/B;AACwC;AACY;AACQ;AACW;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;AACX,cAAc;AACd;AACA;AACA,QAAQ,6EAAkB;AAC1B;AACA,QAAQ,4DAAS;AACjB;AACA,eAAe,8DAAW;AAC1B;AACA;AACA;AACA,QAAQ,4DAAS,iEAAiE,WAAW;AAC7F;AACA;AACA;AACA;;AAEsC;;;;;;;;;;;;;;;;ACrCtC,6DAA6D,eAAe;AAC5E;AACA;AACA;;AAEuB;;;;;;;;;;;;;;;;;;ACL2B;AACA;;AAElD;AACA,WAAW,+DAAW,oBAAoB,+DAAc;AACxD;;AAE2B;;;;;;;;;;;;;;;;;;ACPuC;;AAElE;AACA;AACA;AACA,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,SAAS;AACT;AACA;AACA;AACA,sBAAsB,+EAAgB;AACtC;;AAE4C;;;;;;;;;;;;;;;;ACd5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4B;;;;;;;;;;;;;;;;;;;ACjBmC;AACV;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kEAAgB;AACnC;AACA,KAAK,IAAI;AACT,YAAY,gEAAgE;AAC5E;AACA,0BAA0B,uEAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,aAAa;AACb;;AAE2C;;;;;;;;;;;;;;;;;;;;;ACzEF;AACW;;AAEpD,QAAQ,6EAA6E,EAAE,iEAAmB,wEAAwE,iDAAI;;AAEjI;;;;;;;;;;;;;;;;;;ACLD;;AAEpD,QAAQ,+CAA+C,EAAE,iEAAmB;;AAEtC;;;;;;;;;;;;;;;;ACJtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAE4B;;;;;;;;;;;;;;;;;;AC/EmC;AACvB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iDAAS,iBAAiB,uEAAkB;AACjE,kBAAkB,iDAAS;AAC3B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEgB;;;;;;;;;;;;;;;;;;AC9BhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmD;;;;;;;;;;;;;;;;;;;ACpDO;AACD;AAChB;;AAEzC,2BAA2B,iEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qDAAI,CAAC,sEAAW,oDAAoD,sEAAW;AACtG;AACA;AACA;;AAEwB;;;;;;;;;;;;;;;;;;;;;ACxC0C;AACzB;AACY;AACI;AACV;;AAE/C;AACA;AACA;AACA;AACA,6CAA6C,kEAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAK;AACjB;AACA;AACA,WAAW,8EAAe;AAC1B;AACA,KAAK;AACL;AACA,2BAA2B,iEAAO;AAClC;AACA,uBAAuB,qDAAI;AAC3B;AACA;AACA;;AAEwB;;;;;;;;;;;;;;;;;;;;;;;;;AChCoC;AACF;AACQ;AACT;AAChB;AACY;AACQ;AACpB;AACM;;AAE/C;AACA;AACA;AACA;AACA,mCAAmC,wEAAgB;AACnD;AACA,2BAA2B,iEAAO;AAClC;AACA;AACA,oCAAoC,iDAAI;AACxC,kCAAkC,iDAAI;AACtC,yCAAyC,iDAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA;AACA;AACA;AACA,qBAAqB,0EAAa;AAClC;AACA;AACA;AACA,oBAAoB,uDAAK;AACzB;AACA;AACA,4CAA4C,8EAAe;AAC3D;AACA,aAAa;AACb,gDAAgD,8EAAe;AAC/D;AACA;AACA,aAAa;AACb,sCAAsC,qDAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA,4BAA4B,uDAAK;AACjC;AACA,qBAAqB;AACrB;AACA;AACA,0CAA0C,sEAAW;AACrD;AACA;AACA,iBAAiB;AACjB;AACA,0CAA0C,sEAAW;AACrD;AACA;AACA;AACA;AACA;AACA,uCAAuC,sEAAW;AAClD,6CAA6C,qDAAI;AACjD;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAY;AAC5B;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA,YAAY,uDAAK;AACjB;AACA;AACA;AACA;AACA,sCAAsC,8EAAe;AACrD;AACA;AACA,SAAS;AACT,oCAAoC,sEAAW;AAC/C,oCAAoC,qDAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwB;;;;;;;;;;;;;;;;ACjIxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;ACnBzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmB;;;;;;;;;;;;;;;;;ACRsB;;AAEzC;AACA,mCAAmC,iDAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEgC;;;;;;;;;;;;;;;;;;;AC9ByD;AACR;AACxC;;AAEzC,+BAA+B,iDAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uFAAoB;AAC1E;AACA;AACA,gBAAgB,UAAU;AAC1B,YAAY,+FAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4B;;;;;;;;;;;;;;;;;;ACxC6B;AACG;;AAE5D;AACA;AACA,iBAAiB,kEAAgB;AACjC,KAAK;AACL;AACA,iBAAiB,qEAAoB;AACrC,KAAK;AACL;;AAEsB;;;;;;;;;;;;;;;;ACZtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE8B;;;;;;;;;;;;;;;;;;;;AC3B0B;AACA;AACA;AACH;;AAErD;AACA;AACA,iBAAiB,8DAAa;AAC9B,KAAK;AACL;AACA,iBAAiB,6DAAY;AAC7B,KAAK;AACL;AACA,iBAAiB,6DAAY;AAC7B,KAAK;AACL;AACA,iBAAiB,6DAAY;AAC7B,KAAK;AACL;;AAE6B;;;;;;;;;;;;;;;;;ACpB0B;;AAEvD;AACA;AACA,QAAQ,gEAAkB;AAC1B,eAAe,gEAAkB;AACjC;AACA;AACA;AACA;;AAEwB;;;;;;;;;;;;;;;;;;ACXiB;AACa;;AAEtD;AACA;AACA;AACA;AACA,4BAA4B,iDAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,kDAAkD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA,eAAe,mEAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe,IAAI,8BAA8B,IAAI;AACzF;AACA;;AAEyB;;;;;;;;;;;;;;;;ACvEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,kBAAkB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChD/B;AAC8C;AACC;AAC0B;AACN;AACD;AACR;AACmB;AACjB;AACR;AACmB;AACd;AACE;AACF;AACO;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+EAA+E;AACxH,yBAAyB,yEAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iDAAU,CAAC,iFAAmB;AAC7C;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,wBAAwB,yFAAsB;AAC9C;AACA,yBAAyB,4DAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+EAAgB;AACpD;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAI,CAAC,2EAAa,aAAa,qEAAqE,sDAAG,kBAAkB,yDAAyD,uCAAuC,uEAAY,mGAAmG;AACxV;AACA,sCAAsC,iDAAU;AAChD,8BAA8B,oEAAqB;AACnD;AACA;AACA,uBAAuB,UAAU;AACjC,0BAA0B,iDAAU,CAAC,gFAAkB;AACvD;AACA;AACA;AACA;AACA;AACA,qBAAqB,iDAAU,CAAC,kEAAW;AAC3C;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA,cAAc,2DAAO;AACrB,cAAc,6DAAS;AACvB;AACA;AACA;AACA,YAAY,eAAe,EAAE,0EAAkB;AAC/C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyC;;;;;;;;;;;;;;;;;;ACjGsC;AACR;;AAEvE,oCAAoC,kBAAkB;AACtD,YAAY,4EAAc;AAC1B;AACA;AACA,eAAe,oFAAe;AAC9B;;AAE+B;;;;;;;;;;;;;;;;ACV/B;;AAEiC;;;;;;;;;;;;;;;;;;ACFG;AACwB;;AAE5D;AACA;AACA;AACA;AACA;AACA,WAAW,kDAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qEAAW;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwB;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCkD;AACN;AACE;AACY;AACtB;AACgB;AACgB;AAClC;AACE;AAC0B;;AAEtF;AACA;AACA,YAAY,wBAAwB,EAAE,iDAAU,CAAC,2EAAa;AAC9D,wBAAwB,iDAAU,CAAC,iEAAW;AAC9C,4BAA4B,iDAAU,CAAC,yEAAe;AACtD,gCAAgC,iDAAU,CAAC,iFAAmB;AAC9D,6BAA6B,6CAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iDAAU,CAAC,2FAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yDAAkB;AACtB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC,iGAA4B;AAChE,yBAAyB,6CAAM;AAC/B;AACA;AACA,IAAI,2FAAyB;AAC7B;AACA;AACA;AACA;AACA,QAAQ,+DAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,qEAAqE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qEAAW;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4B;;;;;;;;;;;;;;;;;;;;;;;;;AC7HO;AACmD;AAClB;AACc;AACvB;AACqB;AACV;AACgC;AACb;;AAEzF,qBAAqB,mFAAmF;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iDAAU,CAAC,2EAAa;AAC5C,4BAA4B,iDAAU,CAAC,yEAAe;AACtD;AACA,+BAA+B,oEAAW;AAC1C;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC,yBAAyB,2FAAuB;AAChD;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,sBAAsB,yFAAkB;AACxC;AACA,UAAU,mBAAmB;AAC7B,oCAAoC,gGAAqB;AACzD,4BAA4B,wFAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+FAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6CAA6C,+FAAmB;AAChE;AACA;AACA,uCAAuC,kGAAiB;AACxD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAE8B;;;;;;;;;;;;;;;;AC1G9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;;;ACxD7B;AACA;AACA;AACA;AACA;AACA,mCAAmC,2BAA2B;AAC9D;AACA,aAAa,uBAAuB;AACpC,aAAa,uBAAuB;AACpC;AACA;AACA,mCAAmC,MAAM;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE,yCAAyC,iCAAiC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgF;;;;;;;;;;;;;;;;;;;;;;;;;AChCzB;AACG;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,MAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gEAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmI;;;;;;;;;;;;;;;;;;;ACtHnI;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA,CAAC;;AAE8D;;;;;;;;;;;;;;;;;AChB/D;AACA;AACA;AACA;;AAE8C;;;;;;;;;;;;;;;;;;ACL9C;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEkD;;;;;;;;;;;;;;;;;;;ACzBuC;AAC7B;;AAE5D;AACA,WAAW,iFAAuB,CAAC,4EAAkB;AACrD;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,QAAQ,wEAAa;AACrB,QAAQ,wEAAa;AACrB;AACA;AACA;;AAE8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChB+B;AACsB;AAC3B;AACvB;AACkB;AACP;AAC+B;AACnB;AACD;AACrB;AACsB;AACvB;AACgB;AACI;AACC;AACX;AACA;AACe;AACZ;AACZ;AACU;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0FAA0F,cAAc;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0EAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAI;AAC5B;AACA;AACA,gBAAgB,uDAAK;AACrB;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,4BAA4B;AAC5B,+CAA+C,kBAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yFAAqB;AAC1D,6BAA6B,iFAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC,4CAA4C;AACjG;AACA;AACA,mDAAmD,+EAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qFAAwB;AACrC,YAAY,yFAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iFAAoB;AAC1C,YAAY,IAAqC;AACjD,YAAY,8DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAkB;AAC1B;AACA,QAAQ,iEAAW;AACnB,QAAQ,iEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qEAAc;AAC/C;AACA;AACA,mCAAmC,uDAAK;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iFAAkB;AACtC,sCAAsC,iFAAkB;AACxD;AACA;AACA,oBAAoB,yCAAyC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2EAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sFAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAW,qDAAqD,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kFAAiB,WAAW,mFAAiB;AAC9D;AACA;AACA;AACA,sBAAsB,yEAAa,WAAW,oEAAO;AACrD,wBAAwB,wFAAiB;AACzC;AACA,oCAAoC,+EAAa;AACjD;AACA,eAAe,+EAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,4BAA4B,qFAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+EAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iFAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;;;ACje8C;AACJ;AACR;AACE;AACL;;AAExD;AACA,uDAAuD,qBAAqB,IAAI,2BAA2B;AAC3G,2BAA2B,+EAAc;AACzC,cAAc,mEAAe;AAC7B,cAAc,qEAAgB;AAC9B;AACA;AACA;AACA,uBAAuB,oEAAe;AACtC;AACA;AACA;AACA,eAAe,gFAA6B;AAC5C;AACA;;AAEwC;;;;;;;;;;;;;;;;;ACtBa;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD,YAAY,8DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEyC;;;;;;;;;;;;;;;;;ACrC4B;;AAErE;AACA,cAAc,iFAA4B;;AAEF;;;;;;;;;;;;;;;;;;ACL4B;AACR;;AAE5D,wBAAwB,gFAA6B,CAAC,qEAA4B;;AAErE;;;;;;;;;;;;;;;;;;;;;;;ACL8C;AACa;AACP;AAC6B;AACxB;AACJ;AACmB;;AAErF,mCAAmC,0EAAgB;AACnD;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA,oBAAoB,8EAAkB;AACtC,qCAAqC,qFAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAc;AAC3B;AACA;AACA;AACA,2BAA2B,mFAAsB;AACjD,2BAA2B,mFAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAa,gBAAgB,yEAAa;AACtD,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,wBAAwB,gCAAgC;AACxD,gBAAgB,oEAAM;AACtB;AACA;AACA;AACA;AACA,YAAY,iGAA2B;AACvC;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wEAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEgC;;;;;;;;;;;;;;;;;;ACjIqB;AACa;;AAElE,+BAA+B,6DAAa;AAC5C;AACA;AACA,gCAAgC,2EAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa;AACnD;AACA;AACA;AACA;;AAE4B;;;;;;;;;;;;;;;;;;;;AC3BK;AACiC;AACH;AACD;;AAE9D;AACA,WAAW,2EAAc;AACzB,cAAc,uEAAgB;AAC9B,cAAc,0EAAiB;AAC/B,2CAA2C,2CAAQ;AACnD,SAAS;AACT;;AAEkC;;;;;;;;;;;;;;;;;;;ACbgC;AACK;AACF;;AAErE;AACA;AACA;AACA;AACA,cAAc,8EAAsB;AACpC,OAAO,uEAAU;AACjB,OAAO,4EAAiB;AACxB;;AAEwB;;;;;;;;;;;;;;;;;ACbuB;;AAE/C,+BAA+B,qDAAI;;AAED;;;;;;;;;;;;;;;;;;;;;;ACJuB;AACJ;AACE;AACO;AACX;AACmB;;AAEtE;AACA,gDAAgD,cAAc;AAC9D,+BAA+B,2EAAc;AAC7C,cAAc,2DAAW;AACzB,cAAc,6DAAY;AAC1B;AACA,8BAA8B,oEAAW;AACzC,2CAA2C,2CAAQ;AACnD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,iCAAiC,8CAAO,QAAQ,+EAAa;AAC7D,eAAe,oDAAa;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA;;AAE2B;;;;;;;;;;;;;;;;AChC3B;AACA;AACA;AACA;;AAEuB;;;;;;;;;;;;;;;;;;;;ACL+B;AACqB;AAChB;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uDAAuD;AACxE;AACA;AACA;AACA,IAAI,4DAAS,6EAA6E,QAAQ;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAiB;AAChC;AACA,WAAW,wEAAkB;AAC7B;AACA;AACA;;AAE8C;;;;;;;;;;;;;;;;;;ACzC2B;;AAEzE,8BAA8B,+EAAiB;AAC/C;AACA;AACA;AACA;AACA,qDAAqD,+EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+EAAiB;AAC7D,wBAAwB,+EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgD;;;;;;;;;;;;;;;;;AC1DhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEiD;;;;;;;;;;;;;;;;;ACduB;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6EAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE0B;;;;;;;;;;;;;;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;;ACZI;AACoD;AACd;AACX;AACa;;AAExE;AACA;AACA,aAAa,+EAAa,kBAAkB,6FAAmB;AAC/D;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD,WAAW,8CAAO;AAClB,sBAAsB,qFAAqB;AAC3C,QAAQ,wEAAe;AACvB,+BAA+B;AAC/B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2C;;;;;;;;;;;;;;;;;;;;;ACxDY;AACiB;AACvB;AACsB;AACH;;AAEpE;AACA,YAAY,+BAA+B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAc;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAc,QAAQ,yEAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE,mCAAmC,SAAS,EAAE,SAAS,EAAE,QAAQ;AACjE;AACA;;AAE2B;;;;;;;;;;;;;;;;;;;AChE0B;AACkB;AACH;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8DAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,oBAAoB,8DAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAc,QAAQ,yEAAgB;AACtE;AACA;AACA;AACA,sCAAsC,cAAc,GAAG,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE0B;;;;;;;;;;;;;;;;AC7D1B;AACA,aAAa;AACb,iBAAiB;AACjB,uBAAuB;AACvB,YAAY;AACZ,CAAC;;AAEgC;;;;;;;;;;;;;;;;;;ACP4C;AACC;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uFAAiB;AAC9D;AACA;AACA;;AAEuC;;;;;;;;;;;;;;;;AC7BvC,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEsB;;;;;;;;;;;;;;;;;;ACRiE;AACd;;AAEzE;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,+EAAa;AACzB;AACA,gBAAgB,+EAAa;AAC7B,YAAY,6FAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuC;;;;;;;;;;;;;;;;;AC1BvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE8C;;;;;;;;;;;;;;;;;;AC3BmB;AACZ;;AAErD;AACA;AACA;AACA,kCAAkC,6DAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAS;AACxB;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;;AAE+B;;;;;;;;;;;;;;;;ACxC/B;;AAE8B;;;;;;;;;;;;;;;;;;;;;;;;;;ACFiD;AAChB;AACP;AACK;AACM;AACN;AACd;AACuB;AACL;AACf;;AAElD,+BAA+B,uEAAgB;AAC/C;AACA;AACA;AACA;AACA,0CAA0C,sEAAS;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAc;AAC1B,gCAAgC,kFAAmB;AACnD;AACA;AACA,eAAe,4EAAmB,YAAY,yEAAW;AACzD;AACA;AACA;AACA,eAAe,4FAA2B;AAC1C;AACA;AACA,QAAQ,qEAAa;AACrB;AACA;AACA,QAAQ,4DAAS;AACjB;AACA;AACA,wBAAwB,+DAAQ;AAChC;AACA;AACA;;AAE4B;;;;;;;;;;;;;;;;;;;;;;;AC5CmB;AACgC;AACF;AACN;AACf;AACN;AACA;;AAElD;AACA,oBAAoB,sFAAkB;AACtC,qCAAqC,wFAA2B;AAChE,2BAA2B,gFAAoB;AAC/C,qCAAqC,2BAA2B;AAChE,YAAY,uDAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,uDAAK;AACjB,gBAAgB,qEAAa,4BAA4B,+DAAQ;AACjE,gBAAgB,4DAAS;AACzB,aAAa;AACb,SAAS;AACT,KAAK;AACL;;AAE2B;;;;;;;;;;;;;;;;ACvC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgC;;;;;;;;;;;;;;;;;;;;;AChCA;AAC0B;AACF;AACe;AACrB;;AAElD;AACA,wBAAwB,8CAAO;AAC/B,sBAAsB,oFAAoB;AAC1C,QAAQ,qEAAa,qBAAqB,+DAAQ;AAClD;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA,KAAK;AACL;AACA;AACA,QAAQ,sEAAiB;AACzB,8BAA8B;AAC9B;AACA;AACA;;AAEuB;;;;;;;;;;;;;;;;;;;ACvB6C;AACJ;AACtB;;AAE1C;AACA;AACA;AACA,gCAAgC;AAChC;AACA,WAAW;AACX,IAAI,6EAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6EAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAY;AACpB;AACA;;AAEyB;;;;;;;;;;;;;;;;ACnDzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE+B;;;;;;;;;;;;;;;;;AC7BkD;;AAEjF;AACA,OAAO,0FAAqB;AAC5B,aAAa;AACb,CAAC;;AAE+B;;;;;;;;;;;;;;;;ACPhC;;AAEoB;;;;;;;;;;;;;;;;;ACFwC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAE;AAC3B;AACA,uBAAuB,8DAAE;AACzB,wBAAwB,8DAAE;AAC1B,2BAA2B,YAAY,EAAE,YAAY;AACrD;;AAEwB;;;;;;;;;;;;;;;;;;;AC/BwC;AACP;AACI;;AAE7D;AACA,IAAI,kEAAU;AACd;AACA,8BAA8B,sEAAmB,YAAY,yEAAW;AACxE;AACA;;AAEqB;;;;;;;;;;;;;;;;;;;ACXoD;AACgD;AACrD;;AAEpE;AACA,sBAAsB,iGAA6B;AACnD;AACA,YAAY,+EAAa;AACzB,YAAY,+EAAa;AACzB,8BAA8B,yEAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuC;;;;;;;;;;;;;;;;;AClBqB;;AAE5D;AACA;AACA;AACA,UAAU,8DAAE;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW,EAAE,UAAU;AACrC;;AAEkC;;;;;;;;;;;;;;;;;;;ACjBiD;AACjC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+FAA+B;AACrE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAK;AACrB,gBAAgB,uDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAkD;AAClE;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEoD;;;;;;;;;;;;;;;;;;;;;;;;;ACnKkC;AACJ;AACjB;AACT;AACQ;AACL;AAC0B;AACvB;;AAE9D,iCAAiC,oEAAoB;AACrD,0BAA0B,oEAAoB;AAC9C;AACA,yDAAyD,oBAAoB,KAAK,8FAAoB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6EAAc;AACvC;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,wBAAwB,2EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,kCAAkC,qEAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+FAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2FAAiB,UAAU,2FAAiB;AAChE,uCAAuC,0EAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,QAAQ,uGAAuG;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0EAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwD;;;;;;;;;;;;;;;;;;AC3UA;AACL;;AAEnD,wBAAwB,4DAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC,qBAAqB,4DAAY;AACjC;AACA,YAAY,qEAAc;AAC1B;AACA;AACA;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;;;;;AC3ByD;AAC9B;AACL;;AAEnD;AACA,YAAY,+FAAmB;AAC/B,QAAQ,4DAAY,gBAAgB,qEAAc;AAClD;AACA;AACA;AACA;;AAEgD;;;;;;;;;;;;;;;;ACZhD;AACA;AACA;AACA;AACA;AACA;;AAE0B;;;;;;;;;;;;;;;;;;;ACP2B;AACD;AACkB;;AAEtE;AACA;AACA;AACA;AACA,YAAY,+EAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAsC;AACtD,gBAAgB,8DAAQ,8EAA8E,mBAAmB;AACzH;AACA;AACA,iBAAiB,+EAAa;AAC9B;AACA;AACA;AACA;AACA,kCAAkC,6DAAW,cAAc,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6DAAW,wDAAwD,gBAAgB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuC;;;;;;;;;;;;;;;;;AC1D0B;;AAEjE;AACA;AACA,WAAW,8EAAuB;AAClC;;AAE0B;;;;;;;;;;;;;;;;ACP1B;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmC;;;;;;;;;;;;;;;;;;;ACnC0C;AACzB;AACY;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6DAAW;AAC/C;AACA;AACA;AACA,qBAAqB,6EAAc;AACnC,UAAU,kBAAkB,iBAAiB,cAAc;AAC3D,eAAe;AACf;AACA,sBAAsB,sFAA4B;AAClD;AACA;AACA;;AAEqB;;;;;;;;;;;;;;;;;AC1BrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE8C;;;;;;;;;;;;;;;;ACX9C;AACA;AACA;AACA;;AAE8B;;;;;;;;;;;;;;;;;;ACL9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE+C;;;;;;;;;;;;;;;;ACpB/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEiB;;;;;;;;;;;;;;;;;;ACRiB;;AAElC,cAAc,2CAAI;AAClB,gBAAgB,2CAAI;AACpB,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE8B;;;;;;;;;;;;;;;;ACjB9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEsB;;;;;;;;;;;;;;;;;;;;;;ACzCmB;AACL;AACF;AACQ;AACR;AACI;;AAEtC;AACA;AACA,wCAAwC,+CAAG;AAC3C;AACA,oBAAoB,eAAe;AACnC;AACA;AACA,oEAAoE,2CAAI;AACxE,oBAAoB,+CAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qCAAqC,IAAI;AAC/E;AACA,IAAI,sDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,gCAAgC,uDAAQ;AACxC;AACA;AACA;AACA,8BAA8B,iDAAK;AACnC;AACA;;AAEuB;;;;;;;;;;;;;;;;AC1EvB;;AAEqB;;;;;;;;;;;;;;;;ACFrB;AACA;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;ACL7B;AACA;AACA;AACA;AACA;;AAEuB;;;;;;;;;;;;;;;;ACNvB;AACA;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;ACL7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgB;;;;;;;;;;;;;;;;;;;;;;;;ACTyB;AACD;AACS;AACK;AACE;AACA;AACT;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2DAAG,EAAE,6DAAI,EAAE,6DAAI;AACnC;AACA;AACA;AACA,IAAI,oDAAO,oBAAoB,MAAM;AACrC;AACA;AACA;AACA,iBAAiB,6DAAI;AACrB;AACA,gBAAgB,6DAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAY;AAC3B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wBAAwB,sDAAS;AACjC,eAAe,6DAAI;AACnB;AACA;;AAEoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CoB;AACjB;AA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;;;;ACJkB;AACN;;AAE7C,kCAAkC,sDAAS,GAAG,kDAAe,GAAG,4CAAS;;AAEpC;;;;;;;;;;;;;;;;ACLrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAE6B;;;;;;;;;;;;;;;;ACV7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEoB;;;;;;;;;;;;;;;;ACVpB;AACA;AACA;AACA;;AAEgB;;;;;;;;;;;;;;;;;;;;;;;ACLwD;AACH;AACnB;AACA;AACH;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD,YAAY,8DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,yCAAyC,gFAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAK;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyD;;;;;;;;;;;;;;;;;;AC9TvB;AACU;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAa;AACrC;AACA,eAAe,2CAAI;AACnB;;AAEe;;;;;;;;;;;;;;;;;;;;ACvC8B;AACE;AACE;AACO;;AAExD;AACA,wBAAwB,yDAAa;AACrC,yBAAyB,sDAAU;AACnC,kBAAkB,gDAAgD;AAClE;AACA;AACA;AACA,YAAY,uDAAO,WAAW,6DAAQ;AACtC;AACA,YAAY,uDAAO,WAAW,6DAAQ;AACtC;AACA,YAAY,6DAAQ,CAAC,qDAAK;AAC1B;AACA,KAAK;AACL;;AAEgB;;;;;;;;;;;;;;;;;;;ACrBgB;AACE;AACA;;AAElC;AACA,iBAAiB,2CAAI,YAAY,yCAAG,YAAY,2CAAI;AACpD;AACA,YAAY,2CAAI;AAChB,mBAAmB,2CAAI;AACvB;AACA,iBAAiB,2CAAI;AACrB,mBAAmB,2CAAI;AACvB;AACA;AACA,mBAAmB,yCAAG;AACtB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,2CAAI;AACtB,kBAAkB,2CAAI;AACtB,KAAK;AACL;;AAEiB;;;;;;;;;;;;;;;;;;;;;AC1BgC;AACI;AACJ;AACO;;AAExD,4BAA4B,uDAAK;AACjC;AACA,OAAO,sDAAM;AACb;AACA;AACA;AACA,wBAAwB,yDAAa;AACrC,yBAAyB,sDAAU;AACnC,kBAAkB,sCAAsC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAQ,CAAC,qDAAK;AACtB;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;;ACxB6B;AACF;AACe;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAgB;AACxB;AACA;AACA,aAAa,gEAAS;AACtB;AACA;AACA;AACA;AACA;AACA,qCAAqC,8DAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqC;;;;;;;;;;;;;;;;;;AC5BC;AACgB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8DAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,+CAAO;AACd;AACA;AACA;AACA,KAAK;AACL;;AAEkB;;;;;;;;;;;;;;;;;;;;;AC7ByB;AACW;AACA;AACL;;AAEjD;AACA;AACA;AACA;AACA,wBAAwB,8DAAU;AAClC,4BAA4B,8DAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,sHAAsH,IAAI,qCAAqC,EAAE;AACjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAK;AACjB;AACA;AACA,wBAAwB,mDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,8BAA8B,6DAAQ;AACtC;AACA;AACA,8BAA8B,mDAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwC;;;;;;;;;;;;;;;;;;;AC3FS;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uDAAK;AAC3B;AACA;AACA;AACA;AACA;;AAEgC;;;;;;;;;;;;;;;;;;;;;AChBhC;AACA;AACA;AACA,yBAAyB,EAAE,EAAE,KAAK;AAClC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4D;;;;;;;;;;;;;;;;AChB5D,gCAAgC,IAAI,qCAAqC,EAAE;;AAErD;;;;;;;;;;;;;;;;ACFtB;;AAEsB;;;;;;;;;;;;;;;;ACFtB;AACA;AACA;;AAEqB;;;;;;;;;;;;;;;;ACJrB;AACA;AACA;;AAEoB;;;;;;;;;;;;;;;;ACJpB,uCAAuC,IAAI,qCAAqC,EAAE;;AAEtD;;;;;;;;;;;;;;;;;ACFuB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gEAAuB;AAC/B;AACA;AACA;;AAEgC;;;;;;;;;;;;;;;;;;;ACf2D;AACpB;AACA;;AAEvE;AACA,QAAQ,4EAAc;AACtB;AACA;AACA,aAAa,gGAAiB;AAC9B,eAAe,gFAAW;AAC1B;AACA;;AAE6B;;;;;;;;;;;;;;;;;ACbgC;;AAE7D;AACA,mBAAmB,yEAAa;AAChC;;AAEmC;;;;;;;;;;;;;;;;ACNnC;;AAEyB;;;;;;;;;;;;;;;;;;ACFqC;AACR;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAa;AACxC,WAAW,uEAAa;AACxB;AACA;AACA;;AAE8B;;;;;;;UCf9B;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAkC;AACE;AACpC;AACA;AACA,oE","sources":["webpack://NarraleafReact/webpack/universalModuleDefinition","webpack://NarraleafReact/./src/game/nlcore/action/action.ts","webpack://NarraleafReact/./src/game/nlcore/action/actionTypes.ts","webpack://NarraleafReact/./src/game/nlcore/action/actionable.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/characterAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/conditionAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/controlAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/imageAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/menuAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/sceneAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/scriptAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/soundAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/actions/textAction.ts","webpack://NarraleafReact/./src/game/nlcore/action/baseElement.ts","webpack://NarraleafReact/./src/game/nlcore/action/chain.ts","webpack://NarraleafReact/./src/game/nlcore/action/constructable.ts","webpack://NarraleafReact/./src/game/nlcore/action/srcManager.ts","webpack://NarraleafReact/./src/game/nlcore/action/tree/actionTree.ts","webpack://NarraleafReact/./src/game/nlcore/common/Utils.ts","webpack://NarraleafReact/./src/game/nlcore/common/core.ts","webpack://NarraleafReact/./src/game/nlcore/common/elements.ts","webpack://NarraleafReact/./src/game/nlcore/common/game.ts","webpack://NarraleafReact/./src/game/nlcore/common/player.ts","webpack://NarraleafReact/./src/game/nlcore/common/position.ts","webpack://NarraleafReact/./src/game/nlcore/common/transition.ts","webpack://NarraleafReact/./src/game/nlcore/common/types.ts","webpack://NarraleafReact/./src/game/nlcore/elements/character.ts","webpack://NarraleafReact/./src/game/nlcore/elements/character/pause.ts","webpack://NarraleafReact/./src/game/nlcore/elements/character/sentence.ts","webpack://NarraleafReact/./src/game/nlcore/elements/character/word.ts","webpack://NarraleafReact/./src/game/nlcore/elements/condition.ts","webpack://NarraleafReact/./src/game/nlcore/elements/control.ts","webpack://NarraleafReact/./src/game/nlcore/elements/image.ts","webpack://NarraleafReact/./src/game/nlcore/elements/menu.ts","webpack://NarraleafReact/./src/game/nlcore/elements/scene.ts","webpack://NarraleafReact/./src/game/nlcore/elements/script.ts","webpack://NarraleafReact/./src/game/nlcore/elements/sound.ts","webpack://NarraleafReact/./src/game/nlcore/elements/story.ts","webpack://NarraleafReact/./src/game/nlcore/elements/text.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transform/position.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transform/transform.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transition/baseTransitions.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transition/imageTransitions/dissolve.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transition/imageTransitions/fade.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transition/imageTransitions/fadeIn.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transition/textTransitions/fontSizeTransition.ts","webpack://NarraleafReact/./src/game/nlcore/elements/transition/type.ts","webpack://NarraleafReact/./src/game/nlcore/game.ts","webpack://NarraleafReact/./src/game/nlcore/store/storable.ts","webpack://NarraleafReact/./src/game/nlcore/types.ts","webpack://NarraleafReact/./src/game/player/elements/Player.tsx","webpack://NarraleafReact/./src/game/player/elements/displayable/Displayable.tsx","webpack://NarraleafReact/./src/game/player/elements/displayable/Displayables.tsx","webpack://NarraleafReact/./src/game/player/elements/displayable/Text.tsx","webpack://NarraleafReact/./src/game/player/elements/elements.ts","webpack://NarraleafReact/./src/game/player/elements/image/AspectScaleImage.tsx","webpack://NarraleafReact/./src/game/player/elements/image/Image.tsx","webpack://NarraleafReact/./src/game/player/elements/menu/Menu.tsx","webpack://NarraleafReact/./src/game/player/elements/player/KeyEventAnnouncer.tsx","webpack://NarraleafReact/./src/game/player/elements/player/SizeUpdateAnnouncer.tsx","webpack://NarraleafReact/./src/game/player/elements/preload/Preload.tsx","webpack://NarraleafReact/./src/game/player/elements/say/Say.tsx","webpack://NarraleafReact/./src/game/player/elements/say/Sentence.tsx","webpack://NarraleafReact/./src/game/player/elements/scene/BackgroundTransition.tsx","webpack://NarraleafReact/./src/game/player/elements/scene/Scene.tsx","webpack://NarraleafReact/./src/game/player/elements/type.ts","webpack://NarraleafReact/./src/game/player/gameState.ts","webpack://NarraleafReact/./src/game/player/libElements.ts","webpack://NarraleafReact/./src/game/player/lib/AspectRatio.tsx","webpack://NarraleafReact/./src/game/player/lib/ErrorBoundary.tsx","webpack://NarraleafReact/./src/game/player/lib/ErrorFallback.tsx","webpack://NarraleafReact/./src/game/player/lib/Inspect.tsx","webpack://NarraleafReact/./src/game/player/lib/Motion.tsx","webpack://NarraleafReact/./src/game/player/lib/Preloaded.ts","webpack://NarraleafReact/./src/game/player/lib/isolated.tsx","webpack://NarraleafReact/./src/game/player/provider/game-state.tsx","webpack://NarraleafReact/./src/game/player/provider/preloaded.tsx","webpack://NarraleafReact/./src/game/player/provider/providers.tsx","webpack://NarraleafReact/./src/game/player/provider/ratio.tsx","webpack://NarraleafReact/./src/game/player/type.ts","webpack://NarraleafReact/./src/util/data.ts","webpack://NarraleafReact/./node_modules/client-only/index.js","webpack://NarraleafReact/./src/game/player/lib/styles/style.css","webpack://NarraleafReact/./node_modules/css-loader/dist/runtime/api.js","webpack://NarraleafReact/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://NarraleafReact/./node_modules/howler/dist/howler.js","webpack://NarraleafReact/./node_modules/object-assign/index.js","webpack://NarraleafReact/./node_modules/prop-types/checkPropTypes.js","webpack://NarraleafReact/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://NarraleafReact/./node_modules/prop-types/index.js","webpack://NarraleafReact/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://NarraleafReact/./node_modules/prop-types/lib/has.js","webpack://NarraleafReact/./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","webpack://NarraleafReact/./node_modules/prop-types/node_modules/react-is/index.js","webpack://NarraleafReact/./src/game/player/lib/styles/style.css?7925","webpack://NarraleafReact/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://NarraleafReact/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://NarraleafReact/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://NarraleafReact/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://NarraleafReact/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://NarraleafReact/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://NarraleafReact/../../../../org/narraleaf/my-first-narraleaf-app/template/node_modules/react/cjs/react-jsx-runtime.development.js","webpack://NarraleafReact/../../../../org/narraleaf/my-first-narraleaf-app/template/node_modules/react/jsx-runtime.js","webpack://NarraleafReact/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack://NarraleafReact/external umd {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","webpack://NarraleafReact/./node_modules/clsx/dist/clsx.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animate/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animate/sequence.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animate/single-value.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animate/subject.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/sequence/create.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/anticipate.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/back.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/circ.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/ease.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/easing/utils/map.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/events/add-dom-event.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/events/event-info.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/frameloop/batcher.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/frameloop/frame.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/frameloop/microtask.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/frameloop/render-step.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/gestures/focus.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/gestures/hover.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/gestures/press.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/Feature.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/VisualElement.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/components/create-factory.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/components/m/create.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/components/m/proxy.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/features-animation.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/config-motion.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/use-props.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/object/ObjectVisualElement.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/store.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/setters.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/array.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/clamp.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/errors.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/interpolate.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/is-browser.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/memo.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/mix/color.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/mix/complex.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/mix/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/mix/number.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/noop.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/offsets/default.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/offsets/time.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/pipe.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/progress.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/resolve-value.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/use-constant.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/warn-once.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/utils/wrap.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/color/hex.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/color/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/color/utils.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/complex/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/use-will-change/get-will-change-name.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","webpack://NarraleafReact/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","webpack://NarraleafReact/webpack/bootstrap","webpack://NarraleafReact/webpack/runtime/compat get default export","webpack://NarraleafReact/webpack/runtime/define property getters","webpack://NarraleafReact/webpack/runtime/global","webpack://NarraleafReact/webpack/runtime/hasOwnProperty shorthand","webpack://NarraleafReact/webpack/runtime/make namespace object","webpack://NarraleafReact/webpack/runtime/nonce","webpack://NarraleafReact/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NarraleafReact\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"NarraleafReact\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_dom__) => {\nreturn ","import { getCallStack } from \"@lib/util/data\";\r\nexport class Action {\r\n constructor(callee, type, contentNode) {\r\n this.callee = callee;\r\n this.type = type;\r\n this.contentNode = contentNode;\r\n this.__stack = getCallStack();\r\n this._id = \"\";\r\n }\r\n executeAction(_state) {\r\n return {\r\n type: this.type,\r\n node: this.contentNode.getChild(),\r\n };\r\n }\r\n getId() {\r\n return this._id;\r\n }\r\n setId(id) {\r\n this._id = id;\r\n }\r\n getFutureActions() {\r\n const action = this.contentNode.getChild();\r\n return (action && action.action) ? [action.action] : [];\r\n }\r\n}\r\nAction.ActionTypes = {\r\n action: \"action\",\r\n};\r\n","/* Character */\r\nexport const CharacterActionTypes = {\r\n say: \"character:say\",\r\n action: \"character:action\",\r\n setName: \"character:setName\",\r\n};\r\n/* Scene */\r\nexport const SceneActionTypes = {\r\n action: \"scene:action\",\r\n setBackground: \"scene:setBackground\",\r\n sleep: \"scene:sleep\",\r\n setTransition: \"scene:setTransition\",\r\n applyTransition: \"scene:applyTransition\",\r\n init: \"scene:init\",\r\n exit: \"scene:exit\",\r\n jumpTo: \"scene:jumpTo\",\r\n setBackgroundMusic: \"scene:setBackgroundMusic\",\r\n preUnmount: \"scene:preUnmount\",\r\n applyTransform: \"scene:applyTransform\",\r\n};\r\n/* Story */\r\nexport const StoryActionTypes = {\r\n action: \"story:action\",\r\n};\r\n/* Image */\r\nexport const ImageActionTypes = {\r\n action: \"image:action\",\r\n setSrc: \"image:setSrc\",\r\n setPosition: \"image:setPosition\",\r\n show: \"image:show\",\r\n hide: \"image:hide\",\r\n applyTransform: \"image:applyTransform\",\r\n init: \"image:init\",\r\n dispose: \"image:dispose\",\r\n /**\r\n * @deprecated\r\n */\r\n setTransition: \"image:setTransition\",\r\n applyTransition: \"image:applyTransition\",\r\n flush: \"image:flush\",\r\n initWearable: \"image:initWearable\",\r\n};\r\n/* Condition */\r\nexport const ConditionActionTypes = {\r\n action: \"condition:action\",\r\n};\r\n/* Script */\r\nexport const ScriptActionTypes = {\r\n action: \"script:action\",\r\n};\r\n/* Menu */\r\nexport const MenuActionTypes = {\r\n action: \"menu:action\",\r\n};\r\nexport const SoundActionTypes = {\r\n action: \"sound:action\",\r\n play: \"sound:play\",\r\n stop: \"sound:stop\",\r\n fade: \"sound:fade\",\r\n setVolume: \"sound:setVolume\",\r\n setRate: \"sound:setRate\",\r\n pause: \"sound:pause\",\r\n resume: \"sound:resume\",\r\n};\r\nexport const ControlActionTypes = {\r\n action: \"control:action\",\r\n do: \"control:do\",\r\n doAsync: \"control:doAsync\",\r\n any: \"control:any\",\r\n all: \"control:all\",\r\n allAsync: \"control:allAsync\",\r\n repeat: \"control:repeat\",\r\n sleep: \"control:sleep\",\r\n};\r\nexport const TextActionTypes = {\r\n action: \"text:action\",\r\n setText: \"text:setText\",\r\n show: \"text:show\",\r\n hide: \"text:hide\",\r\n applyTransform: \"text:applyTransform\",\r\n init: \"text:init\",\r\n applyTransition: \"text:applyTransition\",\r\n setFontSize: \"text:setFontSize\",\r\n};\r\n","import { Chainable } from \"@core/action/chain\";\r\nexport class Actionable extends Chainable {\r\n constructor() {\r\n super();\r\n }\r\n /**@internal */\r\n toData() {\r\n return null;\r\n }\r\n /**@internal */\r\n fromChained(chained) {\r\n return chained.getActions();\r\n }\r\n}\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nimport { Action } from \"@core/action/action\";\r\nimport { Awaitable } from \"@lib/util/data\";\r\nexport class TypedAction extends Action {\r\n constructor(callee, type, contentNode) {\r\n super(callee, type, contentNode);\r\n this.callee = callee.getSelf();\r\n this.contentNode.action = this;\r\n }\r\n unknownType() {\r\n throw new Error(\"Unknown action type: \" + this.type);\r\n }\r\n resolveAwaitable(handler, awaitable) {\r\n const a = awaitable || new Awaitable(v => v);\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n yield handler(a.resolve.bind(a), a);\r\n }))();\r\n return a;\r\n }\r\n}\r\n","import { CharacterActionTypes } from \"@core/action/actionTypes\";\r\nimport { Awaitable, SkipController } from \"@lib/util/data\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nimport { SoundAction } from \"@core/action/actions/soundAction\";\r\nexport class CharacterAction extends TypedAction {\r\n executeAction(state) {\r\n if (this.type === CharacterActionTypes.say) {\r\n const awaitable = new Awaitable(v => v)\r\n .registerSkipController(new SkipController(() => ({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n })));\r\n const sentence = this.contentNode.getContent();\r\n const voice = sentence.config.voice;\r\n if (voice) {\r\n SoundAction.initSound(state, voice);\r\n state.playSound(voice, () => {\r\n state.stopSound(voice);\r\n });\r\n }\r\n state.createText(this.getId(), sentence, () => {\r\n if (voice) {\r\n state.stopSound(voice);\r\n }\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === CharacterActionTypes.setName) {\r\n this.callee.state.name = this.contentNode.getContent()[0];\r\n return super.executeAction(state);\r\n }\r\n throw super.unknownType();\r\n }\r\n}\r\nCharacterAction.ActionTypes = CharacterActionTypes;\r\n","import { ConditionActionTypes } from \"@core/action/actionTypes\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nexport class ConditionAction extends TypedAction {\r\n executeAction(gameState) {\r\n var _a, _b;\r\n const nodes = this.callee.evaluate(this.contentNode.getContent(), {\r\n gameState\r\n });\r\n (_a = nodes === null || nodes === void 0 ? void 0 : nodes[nodes.length - 1]) === null || _a === void 0 ? void 0 : _a.contentNode.addChild(this.contentNode.getChild());\r\n this.contentNode.addChild(((_b = nodes === null || nodes === void 0 ? void 0 : nodes[0]) === null || _b === void 0 ? void 0 : _b.contentNode) || null);\r\n return {\r\n type: this.type,\r\n node: this.contentNode.getChild(),\r\n };\r\n }\r\n getFutureActions() {\r\n return [...this.callee._getFutureActions(), ...super.getFutureActions()];\r\n }\r\n}\r\nConditionAction.ActionTypes = ConditionActionTypes;\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nimport { ControlActionTypes } from \"@core/action/actionTypes\";\r\nimport { Awaitable } from \"@lib/util/data\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nexport class ControlAction extends TypedAction {\r\n /**\r\n * Execute all actions in the content node\r\n * will wait for awaitable actions to resolve\r\n */\r\n executeAllActions(state, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const exited = false;\r\n let current = action;\r\n while (!exited && current) {\r\n const next = state.game.getLiveGame().executeAction(state, current);\r\n state.logger.debug(\"Control - Next Action\", next);\r\n if (!next) {\r\n break;\r\n }\r\n if (Awaitable.isAwaitable(next)) {\r\n const { node } = yield new Promise((r) => {\r\n next.then((_) => r(next.result));\r\n });\r\n if (node) {\r\n current = node.action;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else {\r\n current = next;\r\n }\r\n }\r\n });\r\n }\r\n executeSingleAction(state, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const next = state.game.getLiveGame().executeAction(state, action);\r\n if (Awaitable.isAwaitable(next)) {\r\n const { node } = yield new Promise((r) => {\r\n next.then((_) => r(next.result));\r\n });\r\n return node;\r\n }\r\n else {\r\n return next;\r\n }\r\n });\r\n }\r\n execute(state, awaitable, content) {\r\n if (content.length > 0) {\r\n this.executeAllActions(state, content[0])\r\n .then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n else {\r\n return super.executeAction(state);\r\n }\r\n }\r\n executeAction(state) {\r\n const contentNode = this.contentNode;\r\n const [content] = contentNode.getContent();\r\n if (this.type === ControlActionTypes.do) {\r\n const awaitable = new Awaitable(v => v);\r\n return this.execute(state, awaitable, content);\r\n }\r\n else if (this.type === ControlActionTypes.doAsync) {\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n if (content.length > 0) {\r\n yield this.executeAllActions(state, content[0]);\r\n }\r\n }))();\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === ControlActionTypes.any) {\r\n const awaitable = new Awaitable(v => v);\r\n const promises = content.map(action => this.executeSingleAction(state, action));\r\n Promise.any(promises).then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === ControlActionTypes.all) {\r\n const awaitable = new Awaitable(v => v);\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n yield Promise.all(content.map(action => this.executeSingleAction(state, action)));\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n }))();\r\n return awaitable;\r\n }\r\n else if (this.type === ControlActionTypes.allAsync) {\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n for (const action of content) {\r\n this.executeSingleAction(state, action).then(_ => (void 0));\r\n }\r\n }))();\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === ControlActionTypes.repeat) {\r\n const [actions, times] = this.contentNode.getContent();\r\n const awaitable = new Awaitable(v => v);\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n for (let i = 0; i < times; i++) {\r\n if (actions.length > 0) {\r\n yield this.executeAllActions(state, actions[0]);\r\n }\r\n }\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n }))();\r\n return awaitable;\r\n }\r\n else if (this.type === ControlActionTypes.sleep) {\r\n const awaitable = new Awaitable(v => v);\r\n const [, content] = this.contentNode.getContent();\r\n const wait = new Promise(resolve => {\r\n if (typeof content === \"number\") {\r\n setTimeout(() => {\r\n resolve();\r\n }, content);\r\n }\r\n else if (Awaitable.isAwaitable(content)) {\r\n content.then(resolve);\r\n }\r\n else {\r\n content === null || content === void 0 ? void 0 : content.then(resolve);\r\n }\r\n });\r\n wait.then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n throw new Error(\"Unknown control action type: \" + this.type);\r\n }\r\n getFutureActions() {\r\n const actions = this.contentNode.getContent()[0];\r\n const childActions = super.getFutureActions();\r\n return [...actions, ...childActions];\r\n }\r\n}\r\nControlAction.ActionTypes = ControlActionTypes;\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nimport { ImageActionTypes } from \"@core/action/actionTypes\";\r\nimport { Image } from \"@core/elements/image\";\r\nimport { Awaitable, SkipController } from \"@lib/util/data\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nexport class ImageAction extends TypedAction {\r\n executeAction(state) {\r\n const _super = Object.create(null, {\r\n executeAction: { get: () => super.executeAction },\r\n unknownType: { get: () => super.unknownType }\r\n });\r\n if (this.type === ImageActionTypes.init) {\r\n if (this.callee.config.isWearable) {\r\n throw new Error(\"Cannot init wearable image with init action\" +\r\n \"\\nIt seems like you are trying to init a wearable image with an init action, or use this wearable image without parent.\");\r\n }\r\n const lastScene = state.findElementByDisplayable(this.callee);\r\n if (lastScene) {\r\n state.disposeImage(this.callee, lastScene.scene);\r\n }\r\n const scene = this.contentNode.getContent()[0];\r\n state.createImage(this.callee, scene);\r\n return this.resolveAwaitable((resolve) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.callee.events.any(\"event:displayable.init\");\r\n resolve(_super.executeAction.call(this, state));\r\n state.stage.next();\r\n }));\r\n }\r\n else if (this.type === ImageActionTypes.initWearable) {\r\n const [image] = this.contentNode.getContent();\r\n return this.resolveAwaitable((resolve) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.callee.events.any(\"event:wearable.create\", image);\r\n yield image.events.any(\"event:displayable.init\");\r\n resolve(_super.executeAction.call(this, state));\r\n state.stage.next();\r\n }));\r\n }\r\n else if (this.type === ImageActionTypes.setSrc) {\r\n this.callee.state.src = this.contentNode.getContent()[0];\r\n state.logger.debug(\"Image - Set Src\", this.callee.state.src);\r\n state.stage.update();\r\n return _super.executeAction.call(this, state);\r\n }\r\n else if ([\r\n ImageActionTypes.show,\r\n ImageActionTypes.hide,\r\n ImageActionTypes.applyTransform\r\n ].includes(this.type)) {\r\n const awaitable = new Awaitable(v => v)\r\n .registerSkipController(new SkipController(() => {\r\n if (this.type === ImageActionTypes.hide) {\r\n this.callee.state.display = false;\r\n }\r\n return _super.executeAction.call(this, state);\r\n }));\r\n const transform = this.contentNode.getContent()[1];\r\n if (this.type === ImageActionTypes.show) {\r\n this.callee.state.display = true;\r\n state.stage.update();\r\n }\r\n state.animateImage(Image.EventTypes[\"event:displayable.applyTransform\"], this.callee, [\r\n transform\r\n ], () => {\r\n var _a;\r\n if (this.type === ImageActionTypes.hide) {\r\n this.callee.state.display = false;\r\n }\r\n awaitable.resolve({\r\n type: this.type,\r\n node: (_a = this.contentNode) === null || _a === void 0 ? void 0 : _a.getChild(),\r\n });\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === ImageActionTypes.dispose) {\r\n state.disposeImage(this.callee);\r\n this.callee._$setDispose();\r\n return _super.executeAction.call(this, state);\r\n }\r\n else if (this.type === ImageActionTypes.applyTransition) {\r\n const awaitable = new Awaitable(v => v)\r\n .registerSkipController(new SkipController(() => {\r\n if (this.type === ImageActionTypes.hide) {\r\n this.callee.state.display = false;\r\n }\r\n return {\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n };\r\n }));\r\n const transition = this.contentNode.getContent()[0];\r\n this.callee.events.any(\"event:displayable.applyTransition\", transition).then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === ImageActionTypes.flush) {\r\n // const awaitable = new Awaitable<CalledActionResult, CalledActionResult>(v => v);\r\n // this.callee.events.any(\"event:image.flushComponent\")\r\n // .then(() => {\r\n // awaitable.resolve({\r\n // type: this.type,\r\n // node: this.contentNode.getChild()\r\n // });\r\n // state.stage.next();\r\n // });\r\n // return awaitable;\r\n return _super.executeAction.call(this, state);\r\n }\r\n throw _super.unknownType.call(this);\r\n }\r\n}\r\nImageAction.ActionTypes = ImageActionTypes;\r\n","import { MenuActionTypes } from \"@core/action/actionTypes\";\r\nimport { Awaitable } from \"@lib/util/data\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nexport class MenuAction extends TypedAction {\r\n executeAction(state) {\r\n const awaitable = new Awaitable(v => v);\r\n const menu = this.contentNode.getContent();\r\n state.createMenu(menu, v => {\r\n var _a, _b;\r\n const lastChild = ((_a = state.game.getLiveGame().getCurrentAction()) === null || _a === void 0 ? void 0 : _a.contentNode.getChild()) || null;\r\n if (lastChild) {\r\n (_b = v.action[v.action.length - 1]) === null || _b === void 0 ? void 0 : _b.contentNode.addChild(lastChild);\r\n }\r\n awaitable.resolve({\r\n type: this.type,\r\n node: v.action[0].contentNode\r\n });\r\n });\r\n return awaitable;\r\n }\r\n getFutureActions() {\r\n const menu = this.contentNode.getContent();\r\n return [...this.callee._getFutureActions(menu.choices), ...super.getFutureActions()];\r\n }\r\n}\r\nMenuAction.ActionTypes = MenuActionTypes;\r\n","import { SceneActionTypes } from \"@core/action/actionTypes\";\r\nimport { Awaitable, SkipController } from \"@lib/util/data\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nimport { SoundAction } from \"@core/action/actions/soundAction\";\r\nexport class SceneAction extends TypedAction {\r\n static handleSceneInit(sceneAction, state, awaitable) {\r\n if (state.isSceneActive(sceneAction.callee)) {\r\n return {\r\n type: sceneAction.type,\r\n node: sceneAction.contentNode.getChild()\r\n };\r\n }\r\n state\r\n .registerSrcManager(sceneAction.callee.srcManager)\r\n .addScene(sceneAction.callee);\r\n SceneAction.registerEventListeners(sceneAction.callee, state, () => {\r\n awaitable.resolve({\r\n type: sceneAction.type,\r\n node: sceneAction.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n static registerEventListeners(scene, state, onInit) {\r\n scene.events.once(\"event:scene.unmount\", () => {\r\n state.offSrcManager(scene.srcManager);\r\n });\r\n scene.events.once(\"event:scene.mount\", () => {\r\n if (scene.state.backgroundMusic) {\r\n SoundAction.initSound(state, scene.state.backgroundMusic);\r\n scene.events.emit(\"event:scene.setBackgroundMusic\", scene.state.backgroundMusic, scene.config.backgroundMusicFade);\r\n }\r\n });\r\n scene.events.any(\"event:displayable.init\").then(() => {\r\n if (onInit) {\r\n onInit();\r\n }\r\n });\r\n }\r\n executeAction(state) {\r\n var _a;\r\n if (this.type === SceneActionTypes.action) {\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SceneActionTypes.setBackground) {\r\n this.callee.state.background = this.contentNode.getContent()[0];\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SceneActionTypes.sleep) {\r\n const awaitable = new Awaitable(v => v);\r\n const content = this.contentNode.getContent();\r\n const wait = new Promise(resolve => {\r\n if (typeof content === \"number\") {\r\n setTimeout(() => {\r\n resolve();\r\n }, content);\r\n }\r\n else if (Awaitable.isAwaitable(content)) {\r\n content.then(resolve);\r\n }\r\n else {\r\n content === null || content === void 0 ? void 0 : content.then(resolve);\r\n }\r\n });\r\n wait.then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === SceneActionTypes.applyTransition) {\r\n const awaitable = new Awaitable()\r\n .registerSkipController(new SkipController(() => {\r\n state.logger.info(\"NarraLeaf-React: Background Transition\", \"Skipped\");\r\n return {\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n };\r\n }));\r\n const transition = this.contentNode.getContent()[0];\r\n this.callee.events.any(\"event:displayable.applyTransition\", transition).then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === SceneActionTypes.init) {\r\n const awaitable = new Awaitable(v => v);\r\n return SceneAction.handleSceneInit(this, state, awaitable);\r\n }\r\n else if (this.type === SceneActionTypes.exit) {\r\n state\r\n .offSrcManager(this.callee.srcManager)\r\n .removeScene(this.callee);\r\n const awaitable = new Awaitable(v => v);\r\n this.callee.events.once(\"event:scene.unmount\", () => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === SceneActionTypes.jumpTo) {\r\n const scene = this.contentNode.getContent()[0];\r\n const current = this.contentNode;\r\n const future = ((_a = scene.sceneRoot) === null || _a === void 0 ? void 0 : _a.contentNode) || null;\r\n if (future)\r\n current.addChild(future);\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SceneActionTypes.setBackgroundMusic) {\r\n const [sound, fade] = this.contentNode.getContent();\r\n this.callee.events.emit(\"event:scene.setBackgroundMusic\", sound, fade || 0);\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SceneActionTypes.preUnmount) {\r\n this.callee.events.emit(\"event:scene.preUnmount\");\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SceneActionTypes.applyTransform) {\r\n const [transform] = this.contentNode.getContent();\r\n const awaitable = new Awaitable(v => v)\r\n .registerSkipController(new SkipController(() => {\r\n return {\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n };\r\n }));\r\n this.callee.events.any(\"event:displayable.applyTransform\", transform)\r\n .then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n throw new Error(\"Unknown scene action type: \" + this.type);\r\n }\r\n getFutureActions() {\r\n var _a, _b, _c;\r\n if (this.type === SceneActionTypes.jumpTo) {\r\n // We don't care about the actions after jumpTo\r\n // because they won't be executed\r\n const sceneRootNode = (_b = (_a = this.contentNode.getContent()[0]) === null || _a === void 0 ? void 0 : _a.sceneRoot) === null || _b === void 0 ? void 0 : _b.contentNode;\r\n return (sceneRootNode === null || sceneRootNode === void 0 ? void 0 : sceneRootNode.action) ? [sceneRootNode.action] : [];\r\n }\r\n const action = (_c = this.contentNode.getChild()) === null || _c === void 0 ? void 0 : _c.action;\r\n return action ? [action] : [];\r\n }\r\n}\r\nSceneAction.ActionTypes = SceneActionTypes;\r\n","import { ScriptActionTypes } from \"@core/action/actionTypes\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nexport class ScriptAction extends TypedAction {\r\n executeAction(gameState) {\r\n this.contentNode.getContent().execute({\r\n gameState,\r\n });\r\n return super.executeAction(gameState);\r\n }\r\n}\r\nScriptAction.ActionTypes = ScriptActionTypes;\r\n","import { SoundActionTypes } from \"@core/action/actionTypes\";\r\nimport { Awaitable } from \"@lib/util/data\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nexport class SoundAction extends TypedAction {\r\n static initSound(state, sound) {\r\n if (!sound.getPlaying()) {\r\n sound.setPlaying(new (state.getHowl())(sound.getHowlOptions()));\r\n }\r\n }\r\n executeAction(state) {\r\n if (this.type === SoundActionTypes.play) {\r\n SoundAction.initSound(state, this.callee);\r\n if (!this.callee.getPlaying()) {\r\n throw new Error(\"Howl is not initialized\");\r\n }\r\n if (this.callee.config.sync && !this.callee.config.loop) {\r\n const awaitable = new Awaitable(v => v);\r\n state.playSound(this.callee, () => {\r\n var _a;\r\n state.stopSound(this.callee);\r\n awaitable.resolve({\r\n type: this.type,\r\n node: (_a = this.contentNode) === null || _a === void 0 ? void 0 : _a.getChild()\r\n });\r\n });\r\n return awaitable;\r\n }\r\n else {\r\n state.playSound(this.callee, () => {\r\n state.stopSound(this.callee);\r\n });\r\n return super.executeAction(state);\r\n }\r\n }\r\n else if (this.type === SoundActionTypes.stop) {\r\n state.stopSound(this.callee);\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SoundActionTypes.fade) {\r\n const [{ start, end, duration }] = this.contentNode.getContent();\r\n if (this.callee.getPlaying()) {\r\n const startValue = start === undefined ? this.callee.getPlaying().volume() : start;\r\n this.callee.getPlaying().fade(startValue, end, duration, this.callee.getToken());\r\n }\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SoundActionTypes.setVolume) {\r\n const [volume] = this.contentNode.getContent();\r\n if (this.callee.getPlaying()) {\r\n this.callee.getPlaying().volume(volume, this.callee.getToken());\r\n }\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SoundActionTypes.setRate) {\r\n const [rate] = this.contentNode.getContent();\r\n if (this.callee.getPlaying()) {\r\n this.callee.getPlaying().rate(rate, this.callee.getToken());\r\n }\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SoundActionTypes.pause) {\r\n if (this.callee.getPlaying()) {\r\n this.callee.getPlaying().pause(this.callee.getToken());\r\n }\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === SoundActionTypes.resume) {\r\n if (this.callee.getPlaying()) {\r\n this.callee.getPlaying().play(this.callee.getToken());\r\n }\r\n return super.executeAction(state);\r\n }\r\n throw super.unknownType();\r\n }\r\n}\r\nSoundAction.ActionTypes = SoundActionTypes;\r\n","import { TextActionTypes } from \"@core/action/actionTypes\";\r\nimport { TypedAction } from \"@core/action/actions\";\r\nimport { Awaitable, SkipController } from \"@lib/util/data\";\r\nimport { Text } from \"@core/elements/text\";\r\nimport { Transform } from \"@core/elements/transform/transform\";\r\nexport class TextAction extends TypedAction {\r\n executeAction(state) {\r\n if (this.type === TextActionTypes.init) {\r\n const lastScene = state.findElementByDisplayable(this.callee);\r\n if (lastScene) {\r\n state.disposeDisplayable(this.callee, lastScene.scene);\r\n }\r\n const scene = this.contentNode.getContent()[0];\r\n state.createDisplayable(this.callee, scene);\r\n const awaitable = new Awaitable(v => v);\r\n this.callee.events.any(\"event:displayable.init\").then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n else if ([\r\n TextActionTypes.show,\r\n TextActionTypes.hide,\r\n TextActionTypes.applyTransform\r\n ].includes(this.type)) {\r\n const awaitable = new Awaitable(v => v)\r\n .registerSkipController(new SkipController(() => {\r\n if (this.type === TextActionTypes.hide) {\r\n this.callee.state.display = false;\r\n }\r\n return super.executeAction(state);\r\n }));\r\n const transform = this.contentNode.getContent()[0];\r\n if (this.type === TextActionTypes.show) {\r\n this.callee.state.display = true;\r\n state.stage.update();\r\n }\r\n state.animateText(Text.EventTypes[\"event:displayable.applyTransform\"], this.callee, [\r\n transform\r\n ], () => {\r\n if (this.type === TextActionTypes.hide) {\r\n this.callee.state.display = false;\r\n }\r\n awaitable.resolve(super.executeAction(state));\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === TextActionTypes.setText) {\r\n this.callee.state.text = this.contentNode.getContent()[0];\r\n return super.executeAction(state);\r\n }\r\n else if (this.type === TextActionTypes.setFontSize) {\r\n this.callee.state.fontSize = this.contentNode.getContent()[0];\r\n const transform = new Transform([], {\r\n duration: 0,\r\n });\r\n const awaitable = new Awaitable();\r\n state.animateText(Text.EventTypes[\"event:displayable.applyTransform\"], this.callee, [\r\n transform\r\n ], () => {\r\n awaitable.resolve(super.executeAction(state));\r\n });\r\n return awaitable;\r\n }\r\n else if (this.type === TextActionTypes.applyTransition) {\r\n const awaitable = new Awaitable()\r\n .registerSkipController(new SkipController(() => {\r\n state.logger.info(\"NarraLeaf-React: Text Transition\", \"Skipped\");\r\n return {\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n };\r\n }));\r\n const transition = this.contentNode.getContent()[0];\r\n this.callee.events.any(\"event:displayable.applyTransition\", transition).then(() => {\r\n awaitable.resolve({\r\n type: this.type,\r\n node: this.contentNode.getChild()\r\n });\r\n state.stage.next();\r\n });\r\n return awaitable;\r\n }\r\n throw super.unknownType();\r\n }\r\n}\r\nTextAction.ActionTypes = TextActionTypes;\r\n","export class BaseElement {\r\n constructor() {\r\n /**@internal */\r\n this.id = \"\";\r\n }\r\n /**@internal */\r\n setId(id) {\r\n this.id = id;\r\n }\r\n /**@internal */\r\n getId() {\r\n return this.id;\r\n }\r\n /**@internal */\r\n reset() {\r\n }\r\n /**@internal */\r\n fromData(_) {\r\n return this;\r\n }\r\n /**@internal */\r\n construct(actions) {\r\n var _a;\r\n for (let i = 0; i < actions.length; i++) {\r\n const action = actions[i];\r\n if (i !== 0) {\r\n (_a = actions[i - 1]) === null || _a === void 0 ? void 0 : _a.contentNode.setChild(action.contentNode);\r\n }\r\n }\r\n return actions;\r\n }\r\n}\r\n","var _a;\r\nimport { BaseElement } from \"@core/action/baseElement\";\r\nimport { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { ControlAction } from \"@core/action/actions/controlAction\";\r\nconst ChainedFlag = Symbol(\"_Chained\");\r\nexport class Chained {\r\n static isChained(value) {\r\n return value && value[ChainedFlag];\r\n }\r\n static toActions(chainedActions) {\r\n return chainedActions\r\n .flat(2)\r\n .map(v => {\r\n if (Chained.isChained(v)) {\r\n return v.fromChained(v);\r\n }\r\n return v;\r\n })\r\n .flat(3);\r\n }\r\n /**@internal */\r\n constructor(self) {\r\n /**@internal */\r\n this[_a] = true;\r\n /**@internal */\r\n this.__actions = [];\r\n this.__self = self;\r\n }\r\n /**@internal */\r\n push(...actions) {\r\n this.__actions.push(...actions);\r\n }\r\n /**@internal */\r\n getActions() {\r\n return this.__actions;\r\n }\r\n /**@internal */\r\n getSelf() {\r\n return this.__self;\r\n }\r\n /**@internal */\r\n newChain() {\r\n return this.getSelf().chain();\r\n }\r\n}\r\n_a = ChainedFlag;\r\n/**\r\n * - T - the action type\r\n * - U - self constructor\r\n */\r\nexport class Chainable extends BaseElement {\r\n /**@internal */\r\n chain(arg0) {\r\n const chained = Chained.isChained(this) ?\r\n this :\r\n this.proxy(this, new Chained(this));\r\n if (!arg0) {\r\n return chained;\r\n }\r\n const actions = Array.isArray(arg0) ? arg0 : [arg0];\r\n chained.push(...actions);\r\n return chained;\r\n }\r\n /**@internal */\r\n proxy(target, chained) {\r\n const proxy = new Proxy(target, {\r\n get: function (target, prop) {\r\n if (prop in chained) {\r\n return chained[prop];\r\n }\r\n const value = target[prop];\r\n if (typeof value === \"function\") {\r\n return value.bind(proxy);\r\n }\r\n return value;\r\n },\r\n set: function (target, prop, value) {\r\n target[prop] = value;\r\n return true;\r\n }\r\n });\r\n return proxy;\r\n }\r\n /**@internal */\r\n combineActions(control, getActions) {\r\n const chain = getActions(this.chain().newChain());\r\n const action = new ControlAction(control.chain(), ControlAction.ActionTypes.do, new ContentNode().setContent([\r\n this.construct(Chained.toActions([chain]))\r\n ]));\r\n return this.chain(action);\r\n }\r\n}\r\n","import { Chainable } from \"@core/action/chain\";\r\nexport class Constructable extends Chainable {\r\n constructor() {\r\n super();\r\n }\r\n /**@internal */\r\n fromChained(chained) {\r\n return chained.getActions();\r\n }\r\n /**@internal */\r\n forEachChild(actionOrActions, cb) {\r\n const seen = new Set();\r\n const queue = [];\r\n if (Array.isArray(actionOrActions)) {\r\n queue.push(...actionOrActions);\r\n }\r\n else {\r\n queue.push(actionOrActions);\r\n }\r\n while (queue.length) {\r\n const action = queue.shift();\r\n if (seen.has(action)) {\r\n continue;\r\n }\r\n seen.add(action);\r\n cb(action);\r\n const children = action.getFutureActions()\r\n .filter(action => !seen.has(action));\r\n queue.push(...children);\r\n }\r\n }\r\n /**@internal */\r\n getAllChildren(action) {\r\n const children = [];\r\n this.forEachChild(action, action => children.push(action));\r\n return children;\r\n }\r\n /**@internal */\r\n getAllChildrenMap(action) {\r\n const map = new Map();\r\n this.forEachChild(action, action => map.set(action.getId(), action));\r\n return map;\r\n }\r\n /**@internal */\r\n getAllElementMap(action) {\r\n const map = new Map();\r\n this.forEachChild(action, action => map.set(action.callee.getId(), action.callee));\r\n return map;\r\n }\r\n /**@internal */\r\n getAllChildrenElements(action) {\r\n return Array.from(new Set(this.getAllChildren(action).map(action => action.callee)));\r\n }\r\n /**@internal */\r\n toData() {\r\n return null;\r\n }\r\n /**\r\n * Construct the actions into a tree\r\n * @internal\r\n */\r\n constructNodes(actions, parent) {\r\n var _a;\r\n for (let i = 0; i < actions.length; i++) {\r\n const action = actions[i];\r\n if (i === 0 && parent) {\r\n parent.setChild(action.contentNode);\r\n }\r\n else if (i > 0) {\r\n (_a = (actions[i - 1].contentNode)) === null || _a === void 0 ? void 0 : _a.setChild(action.contentNode);\r\n }\r\n }\r\n return (actions.length) ? actions[0].contentNode : null;\r\n }\r\n}\r\n","import { Sound } from \"@core/elements/sound\";\r\nimport { Image } from \"@core/elements/image\";\r\nimport { Utils } from \"@core/common/core\";\r\nexport class SrcManager {\r\n constructor() {\r\n this.src = [];\r\n this.future = [];\r\n }\r\n register(arg0, src) {\r\n if (Array.isArray(arg0)) {\r\n arg0.forEach(src => this.register(src));\r\n }\r\n else if (arg0 instanceof Sound) {\r\n if (this.isSrcRegistered(arg0.getSrc()))\r\n return this;\r\n this.src.push({ type: \"audio\", src: arg0 });\r\n }\r\n else if (arg0 instanceof Image || Utils.isStaticImageData(arg0)) {\r\n if (arg0 instanceof Image) {\r\n if (this.isSrcRegistered(Utils.srcToString(arg0.state.src)))\r\n return this;\r\n }\r\n else {\r\n if (this.isSrcRegistered(Utils.srcToString(arg0[\"src\"])))\r\n return this;\r\n }\r\n this.src.push({\r\n type: \"image\", src: arg0 instanceof Image ? arg0 : new Image(\"\", {\r\n src: Utils.staticImageDataToSrc(arg0),\r\n })\r\n });\r\n }\r\n else if (typeof arg0 === \"object\") {\r\n if (this.isSrcRegistered(arg0[\"src\"] || \"\"))\r\n return this;\r\n this.src.push(arg0);\r\n }\r\n else {\r\n if (arg0 === \"audio\") {\r\n if (this.isSrcRegistered(src || \"\"))\r\n return this;\r\n this.src.push({\r\n type: arg0, src: src instanceof Sound ? src : new Sound({\r\n src: src,\r\n })\r\n });\r\n }\r\n else {\r\n if (this.isSrcRegistered(src || \"\"))\r\n return this;\r\n this.src.push({ type: arg0, src: src });\r\n }\r\n }\r\n return this;\r\n }\r\n isSrcRegistered(src) {\r\n const target = src instanceof Sound ? src.getSrc() : src;\r\n return this.src.some(s => {\r\n if (s.type === SrcManager.SrcTypes.audio) {\r\n return target === s.src.getSrc();\r\n }\r\n else if (s.type === SrcManager.SrcTypes.image) {\r\n return target === Utils.srcToString(s.src.state.src);\r\n }\r\n else {\r\n return target === s.src;\r\n }\r\n });\r\n }\r\n getSrc() {\r\n return this.src;\r\n }\r\n getSrcByType(type) {\r\n return this.src.filter(src => src.type === type);\r\n }\r\n registerFuture(srcManager) {\r\n if (this.future.includes(srcManager) || this.hasFuture(srcManager))\r\n return this;\r\n this.future.push(srcManager);\r\n return this;\r\n }\r\n hasFuture(s) {\r\n return this.future.includes(s);\r\n }\r\n}\r\nSrcManager.SrcTypes = {\r\n image: \"image\",\r\n video: \"video\",\r\n audio: \"audio\",\r\n};\r\n","export var NodeType;\r\n(function (NodeType) {\r\n NodeType[\"TreeNode\"] = \"TreeNode\";\r\n NodeType[\"ContentNode\"] = \"ContentNode\";\r\n})(NodeType || (NodeType = {}));\r\nexport class Node {\r\n constructor(type) {\r\n this.type = type;\r\n this.content = undefined;\r\n }\r\n setContent(content) {\r\n this.content = content;\r\n return this;\r\n }\r\n getContent() {\r\n return this.content;\r\n }\r\n}\r\nexport class ContentNode extends Node {\r\n static forEachParent(node, callback) {\r\n const seen = new Set();\r\n let current = node;\r\n while (current) {\r\n if (seen.has(current)) {\r\n break;\r\n }\r\n seen.add(current);\r\n callback(current);\r\n current = current.getParent();\r\n }\r\n }\r\n static forEachChild(node, callback) {\r\n const seen = new Set();\r\n let current = node;\r\n while (current) {\r\n if (seen.has(current)) {\r\n break;\r\n }\r\n seen.add(current);\r\n callback(current);\r\n current = current.getChild();\r\n }\r\n }\r\n constructor(callee, parent, child) {\r\n super(NodeType.ContentNode);\r\n this.child = child || null;\r\n this.parent = parent || null;\r\n this.action = callee || null;\r\n }\r\n setParent(parent) {\r\n if (parent === this) {\r\n throw new Error(\"Cannot set parent to itself\");\r\n }\r\n this.parent = parent;\r\n return this;\r\n }\r\n setChild(child) {\r\n if (child === this) {\r\n throw new Error(\"Cannot set child to itself\");\r\n }\r\n this.child = child;\r\n if (child && child.parent !== this) {\r\n child.remove().setParent(this);\r\n }\r\n return this;\r\n }\r\n getChild() {\r\n return this.child || null;\r\n }\r\n getParent() {\r\n return this.parent || null;\r\n }\r\n /**\r\n * Public method for setting the content of the node\r\n * should only be called when changing the state in-game\r\n */\r\n addChild(child) {\r\n this.setChild(child);\r\n return this;\r\n }\r\n removeChild(child) {\r\n if (child && this.child === child) {\r\n this.child = null;\r\n child.setParent(null);\r\n }\r\n else if (!child) {\r\n this.child = null;\r\n }\r\n return this;\r\n }\r\n /**\r\n * Remove this node from the parent's children\r\n */\r\n remove() {\r\n var _a;\r\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.removeChild(this);\r\n return this;\r\n }\r\n hasChild() {\r\n return !!this.child;\r\n }\r\n}\r\nexport class RootNode extends ContentNode {\r\n constructor() {\r\n super();\r\n }\r\n setParent(_) {\r\n throw new Error(\"Cannot set parent of root node\");\r\n }\r\n remove() {\r\n throw new Error(\"Cannot remove root node\");\r\n }\r\n forEach(callback) {\r\n const queue = [this.getChild()];\r\n const seen = new Set();\r\n while (queue.length > 0) {\r\n const node = queue.shift();\r\n if (!node) {\r\n continue;\r\n }\r\n if (seen.has(node)) {\r\n continue;\r\n }\r\n seen.add(node);\r\n callback(node);\r\n queue.push(node.getChild());\r\n }\r\n }\r\n}\r\n","import { ImageActionTypes, SceneActionTypes } from \"@core/action/actionTypes\";\r\nimport { SceneAction } from \"@core/action/actions/sceneAction\";\r\nimport { ImageAction } from \"@core/action/actions/imageAction\";\r\nimport { toHex } from \"@lib/util/data\";\r\nexport class RGBColor {\r\n static isHexString(color) {\r\n if (typeof color !== \"string\") {\r\n return false;\r\n }\r\n return /^#[0-9A-F]{6}$/i.test(color);\r\n }\r\n static fromHex(hex) {\r\n const hexString = hex.slice(1);\r\n const r = parseInt(hexString.slice(0, 2), 16);\r\n const g = parseInt(hexString.slice(2, 4), 16);\r\n const b = parseInt(hexString.slice(4, 6), 16);\r\n const a = hexString.length === 8 ? parseInt(hexString.slice(6, 8), 16) / 255 : 1;\r\n return new RGBColor(r, g, b, a);\r\n }\r\n constructor(r, g, b, a = 1) {\r\n this.r = r;\r\n this.g = g;\r\n this.b = b;\r\n this.a = a;\r\n }\r\n toString() {\r\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\r\n }\r\n toHex() {\r\n return \"#\" + this.r.toString(16) + this.g.toString(16) + this.b.toString(16);\r\n }\r\n toImageColor() {\r\n return {\r\n r: this.r,\r\n g: this.g,\r\n b: this.b,\r\n a: this.a,\r\n };\r\n }\r\n}\r\nexport class Utils {\r\n static srcToString(src) {\r\n return typeof src === \"string\" ? src : src.src;\r\n }\r\n static staticImageDataToSrc(image) {\r\n return typeof image === \"string\" ? image : image.src;\r\n }\r\n static isStaticImageData(src) {\r\n return (src === null || src === void 0 ? void 0 : src.src) !== undefined;\r\n }\r\n static backgroundToSrc(background) {\r\n return Utils.isStaticImageData(background) ? background.src : ((background === null || background === void 0 ? void 0 : background[\"url\"]) || null);\r\n }\r\n static isExternalSrc(src) {\r\n return src.startsWith(\"http://\") || src.startsWith(\"https://\");\r\n }\r\n static isImageSrc(src) {\r\n return (typeof src === \"string\" && !this.isHexString(src)) || Utils.isStaticImageData(src);\r\n }\r\n static isImageColor(color) {\r\n return Utils.isHexString(color) || Utils.isPlainColor(color);\r\n }\r\n static isPlainColor(color) {\r\n return color && (typeof color === \"string\" || (typeof color === \"object\" && \"r\" in color && \"g\" in color && \"b\" in color));\r\n }\r\n static isHexString(color) {\r\n if (typeof color !== \"string\") {\r\n return false;\r\n }\r\n return /^#([0-9A-F]{6}|[0-9A-F]{3})$/i.test(color);\r\n }\r\n static toBackgroundSrc(src) {\r\n if (typeof src === \"string\") {\r\n return src;\r\n }\r\n return src.src;\r\n }\r\n static toHex(color) {\r\n return toHex(color);\r\n }\r\n}\r\nUtils.RGBColor = RGBColor;\r\nexport class UseError extends Error {\r\n static isUseError(error) {\r\n return error instanceof UseError;\r\n }\r\n constructor(message, props, name = \"UseError\") {\r\n super(message);\r\n this.props = props;\r\n this.name = name;\r\n }\r\n}\r\nexport class StaticScriptWarning extends UseError {\r\n static isWarning(error) {\r\n return error instanceof StaticScriptWarning;\r\n }\r\n constructor(message, info) {\r\n super(message, { info }, \"NarraLeafReact-StaticScriptWarning\");\r\n }\r\n}\r\nexport class StaticChecker {\r\n constructor(target) {\r\n this.scene = target;\r\n }\r\n run() {\r\n if (!this.scene.sceneRoot) {\r\n return null;\r\n }\r\n const imageStates = new Map();\r\n const scenes = new Map();\r\n const queue = [];\r\n const seen = new Set();\r\n const sceneActions = this.scene.getAllChildren(this.scene.sceneRoot);\r\n if (!sceneActions.length) {\r\n return null;\r\n }\r\n queue.push(sceneActions[0]);\r\n while (queue.length) {\r\n const action = queue.shift();\r\n this.checkAction(action, { imageStates, scenes }, seen);\r\n const child = action.contentNode.getChild();\r\n if (child && child.action) {\r\n queue.push(child.action);\r\n }\r\n }\r\n return imageStates;\r\n }\r\n checkAction(action, { imageStates, scenes }, seen) {\r\n if (action instanceof ImageAction) {\r\n if (!imageStates.has(action.callee)) {\r\n imageStates.set(action.callee, {\r\n isDisposed: false,\r\n usedExternalSrc: false,\r\n });\r\n }\r\n this.checkImage(imageStates.get(action.callee), action);\r\n }\r\n else if (action instanceof SceneAction) {\r\n const scene = action.callee;\r\n if (scenes.has(scene.name)) {\r\n if (scenes.get(scene.name) !== scene) {\r\n const message = `Scene with name: ${scene.name} is duplicated\\nScene: ${scene.name}\\n\\nAt: ${action.__stack}`;\r\n throw new StaticScriptWarning(message);\r\n }\r\n }\r\n else {\r\n scenes.set(scene.name, scene);\r\n }\r\n if (action.type === SceneActionTypes.jumpTo) {\r\n const targetScene = action.contentNode.getContent()[0];\r\n if (seen.has(targetScene)) {\r\n return;\r\n }\r\n else {\r\n seen.add(targetScene);\r\n }\r\n }\r\n }\r\n }\r\n checkImage(state, action) {\r\n if (action.type === ImageActionTypes.dispose) {\r\n if (state.isDisposed) {\r\n const message = `Image is disposed multiple times before action: ${action.type}\\nImage: ${action.callee.name}\\nAction: ${action.type}\\n\\nAt: ${action.__stack}`;\r\n throw new StaticScriptWarning(message);\r\n }\r\n state.isDisposed = true;\r\n }\r\n else if ([\r\n ImageActionTypes.init,\r\n ImageActionTypes.show,\r\n ImageActionTypes.hide,\r\n ImageActionTypes.applyTransform,\r\n ImageActionTypes.applyTransition,\r\n ].includes(action.type)) {\r\n if (state.isDisposed) {\r\n const message = `Image is disposed before action: ${action.type}\\nImage: ${action.callee.name}\\nAction: ${action.type}\\n\\nAt: ${action.__stack}`;\r\n throw new StaticScriptWarning(message);\r\n }\r\n }\r\n else if (action.type === ImageActionTypes.setSrc) {\r\n const node = action.contentNode;\r\n const src = node.getContent()[0];\r\n if (Utils.isExternalSrc(src)) {\r\n state.usedExternalSrc = true;\r\n }\r\n }\r\n }\r\n}\r\n","import { Utils } from \"./Utils\";\r\nexport * from \"./elements\";\r\nexport * from \"./game\";\r\nexport * from \"./player\";\r\nexport * from \"./types\";\r\nexport * from \"./position\";\r\nexport * from \"./transition\";\r\nexport { Utils };\r\n","import { Character } from \"../elements/character\";\r\nimport { Condition, Lambda } from \"../elements/condition\";\r\nimport { Control } from \"@core/elements/control\";\r\nimport { Image } from \"../elements/image\";\r\nimport { Menu } from \"../elements/menu\";\r\nimport { Scene } from \"../elements/scene\";\r\nimport { Script } from \"../elements/script\";\r\nimport { Sound, SoundType } from \"@core/elements/sound\";\r\nimport { Story } from \"../elements/story\";\r\nimport { Transform } from \"@core/elements/transform/transform\";\r\nimport { Sentence } from \"@core/elements/character/sentence\";\r\nimport { Word } from \"@core/elements/character/word\";\r\nimport { Text } from \"@core/elements/text\";\r\nimport { Pause } from \"@core/elements/character/pause\";\r\nexport { Character, Condition, Control, Image, Lambda, Menu, Scene, Script, Sentence, Sound, SoundType, Story, Transform, Word, Text, Pause };\r\n","import { Game, LiveGame } from \"@core/game\";\r\nimport { GameState } from \"@player/gameState\";\r\nimport { Storable, Namespace } from \"../store/storable\";\r\nexport { LiveGame, GameState, Game, Storable, Namespace, };\r\n","import Player from \"@player/elements/Player\";\r\nimport GameProviders from \"@player/provider/providers\";\r\nimport { useGame } from \"@lib/game/player/provider/game-state\";\r\nexport * from \"@player/type\";\r\nexport * from \"@player/libElements\";\r\nexport { GameProviders, Player, useGame, };\r\n","import { Align, CommonPosition, Coord2D, CommonPositionType } from \"@core/elements/transform/position\";\r\nexport { Align, CommonPosition, Coord2D, CommonPositionType };\r\n","import { BaseImageTransition, BaseTextTransition, BaseTransition } from \"@core/elements/transition/baseTransitions\";\r\nimport { Fade } from \"@core/elements/transition/imageTransitions/fade\";\r\nimport { FadeIn } from \"@core/elements/transition/imageTransitions/fadeIn\";\r\nimport { Dissolve } from \"@core/elements/transition/imageTransitions/dissolve\";\r\nexport { Fade, FadeIn, Dissolve, BaseTransition, BaseImageTransition, BaseTextTransition, };\r\n","export {};\r\n","import { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { deepMerge } from \"@lib/util/data\";\r\nimport { Actionable } from \"@core/action/actionable\";\r\nimport { Sentence } from \"@core/elements/character/sentence\";\r\nimport { CharacterAction } from \"@core/action/actions/characterAction\";\r\nexport class Character extends Actionable {\r\n constructor(name, config = {}) {\r\n super();\r\n this.config = deepMerge(Character.defaultConfig, config);\r\n this.state = {\r\n name: name || \"\",\r\n };\r\n }\r\n say(content, config) {\r\n const sentence = Array.isArray(content) ?\r\n new Sentence(content, Object.assign(Object.assign({}, (config || {})), { character: this })) :\r\n (Sentence.isSentence(content) ? content : new Sentence(content, Object.assign(Object.assign({}, (config || {})), { character: this })))\r\n .copy();\r\n sentence.setCharacter(this);\r\n const action = new CharacterAction(this.chain(), CharacterAction.ActionTypes.say, new ContentNode().setContent(sentence));\r\n return this.chain(action);\r\n }\r\n setName(name) {\r\n const action = new CharacterAction(this.chain(), CharacterAction.ActionTypes.setName, new ContentNode().setContent([name]));\r\n return this.chain(action);\r\n }\r\n}\r\n/**@internal */\r\nCharacter.defaultConfig = {\r\n color: \"#000\",\r\n};\r\n","export class Pause {\r\n /**@internal */\r\n static from(input) {\r\n if (Pause.isPauseConstructor(input)) {\r\n return new Pause();\r\n }\r\n return input;\r\n }\r\n static wait(duration) {\r\n return new Pause({ duration });\r\n }\r\n /**@internal */\r\n static isPause(obj) {\r\n return this.isPauseConstructor(obj) || obj instanceof Pause;\r\n }\r\n /**@internal */\r\n static isPauseConstructor(input) {\r\n return input === Pause;\r\n }\r\n constructor(config = {}) {\r\n this.config = config;\r\n }\r\n}\r\n","import { deepEqual, deepMerge, safeClone } from \"@lib/util/data\";\r\nimport { Sound } from \"@core/elements/sound\";\r\nimport { Word } from \"@core/elements/character/word\";\r\nexport class Sentence {\r\n /**@internal */\r\n static isSentence(obj) {\r\n return obj instanceof Sentence;\r\n }\r\n /**@internal */\r\n static toSentence(prompt) {\r\n return Sentence.isSentence(prompt) ? prompt : new Sentence(prompt);\r\n }\r\n /**@internal */\r\n static format(text) {\r\n const result = [];\r\n if (Array.isArray(text)) {\r\n for (let i = 0; i < text.length; i++) {\r\n result.push(this.formatWord(text[i]));\r\n }\r\n }\r\n else {\r\n result.push(this.formatWord(text));\r\n }\r\n return result;\r\n }\r\n /**@internal */\r\n static formatWord(word) {\r\n if (Word.isWord(word)) {\r\n return word;\r\n }\r\n return new Word(word);\r\n }\r\n /**@internal */\r\n static formatStaticWord(word, config) {\r\n if (Array.isArray(word)) {\r\n return word.map(w => this.formatStaticWord(w, config)).flat(2);\r\n }\r\n return [Word.isWord(word) ? word : new Word(word, config)];\r\n }\r\n constructor(text, config = {}) {\r\n this.text = Sentence.format(text);\r\n this.config = deepMerge(Sentence.defaultConfig, Object.assign(Object.assign({}, config), { voice: Sound.toSound(config.voice) }));\r\n this.state = safeClone(Sentence.defaultState);\r\n }\r\n /**@internal */\r\n toData() {\r\n if (deepEqual(this.state, Sentence.defaultState)) {\r\n return null;\r\n }\r\n return {\r\n state: safeClone(this.state),\r\n };\r\n }\r\n /**@internal */\r\n fromData(data) {\r\n this.state = deepMerge(this.state, data);\r\n return this;\r\n }\r\n /**@internal */\r\n toString() {\r\n return this.text.map(word => word.text).join(\"\");\r\n }\r\n /**@internal */\r\n setCharacter(character) {\r\n this.config.character = character;\r\n return this;\r\n }\r\n /**@internal */\r\n evaluate(ctx) {\r\n const words = [];\r\n for (let i = 0; i < this.text.length; i++) {\r\n const word = this.text[i].evaluate(ctx);\r\n words.push(...Sentence.formatStaticWord(word));\r\n }\r\n return words;\r\n }\r\n copy() {\r\n return new Sentence([...this.text], this.config);\r\n }\r\n}\r\n/**@internal */\r\nSentence.defaultConfig = {\r\n color: \"#000\",\r\n pause: true,\r\n voice: null,\r\n character: null,\r\n};\r\n/**@internal */\r\nSentence.defaultState = {\r\n display: true\r\n};\r\n","import { deepMerge } from \"@lib/util/data\";\r\nimport { Pause } from \"@core/elements/character/pause\";\r\nexport class Word {\r\n static isWord(obj) {\r\n return obj instanceof Word;\r\n }\r\n constructor(text, config = {}) {\r\n this.text = text;\r\n this.config = deepMerge(Word.defaultConfig, config);\r\n }\r\n /**@internal */\r\n evaluate(ctx) {\r\n if (Pause.isPause(this.text)) {\r\n return [this];\r\n }\r\n else if (typeof this.text === \"function\") {\r\n const texts = this.text(ctx);\r\n if (Array.isArray(texts)) {\r\n return texts.map(text => {\r\n if (Word.isWord(text)) {\r\n return text.inherit(this.config).evaluate(ctx);\r\n }\r\n return new Word(text, this.config);\r\n }).flat();\r\n }\r\n if (Word.isWord(texts)) {\r\n return texts.inherit(this.config).evaluate(ctx);\r\n }\r\n return [new Word(texts, this.config)];\r\n }\r\n return [this];\r\n }\r\n /**@internal */\r\n inherit(config) {\r\n this.config.color = this.config.color || config.color;\r\n this.config.italic = this.config.italic || config.italic;\r\n this.config.bold = this.config.bold || config.bold;\r\n return this;\r\n }\r\n}\r\n/**@internal */\r\nWord.defaultConfig = {};\r\n/**@internal */\r\nWord.defaultColor = \"#000\";\r\n","import { deepMerge } from \"@lib/util/data\";\r\nimport { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { Actionable } from \"@core/action/actionable\";\r\nimport { Chained } from \"@core/action/chain\";\r\nimport { StaticScriptWarning } from \"@core/common/Utils\";\r\nimport { ConditionAction } from \"@core/action/actions/conditionAction\";\r\nexport class Lambda {\r\n constructor(handler) {\r\n this.handler = handler;\r\n }\r\n evaluate({ gameState }) {\r\n const value = this.handler(this.getCtx({ gameState }));\r\n return {\r\n value,\r\n };\r\n }\r\n getCtx({ gameState }) {\r\n return {\r\n gameState,\r\n game: gameState.game,\r\n liveGame: gameState.game.getLiveGame(),\r\n storable: gameState.game.getLiveGame().getStorable(),\r\n };\r\n }\r\n}\r\nexport class Condition extends Actionable {\r\n /**@internal */\r\n static getInitialState() {\r\n return {\r\n If: {\r\n condition: null,\r\n action: null\r\n },\r\n ElseIf: [],\r\n Else: {\r\n action: null\r\n }\r\n };\r\n }\r\n constructor(config = {}) {\r\n super();\r\n /**@internal */\r\n this.conditions = {\r\n If: {\r\n condition: null,\r\n action: null\r\n },\r\n ElseIf: [],\r\n Else: {\r\n action: null\r\n }\r\n };\r\n this.config = deepMerge(Condition.defaultConfig, config);\r\n }\r\n /**\r\n * @chainable\r\n */\r\n If(condition, action) {\r\n // when IF condition already set\r\n if (this.conditions.If.condition) {\r\n throw new StaticScriptWarning(\"IF condition already set\\nYou are trying to set multiple IF conditions for the same condition\");\r\n }\r\n // when ELSE-IF condition already set\r\n if (this.conditions.ElseIf.length) {\r\n throw new StaticScriptWarning(\"ELSE-IF condition already set\\nYou are trying to set an IF condition after an ELSE-IF condition\");\r\n }\r\n // when ELSE condition already set\r\n if (this.conditions.Else.action) {\r\n throw new StaticScriptWarning(\"ELSE condition already set\\nYou are trying to set an IF condition after an ELSE condition\");\r\n }\r\n this.conditions.If.condition = condition instanceof Lambda ? condition : new Lambda(condition);\r\n this.conditions.If.action = this.construct(Array.isArray(action) ? action : [action]);\r\n return this.chain();\r\n }\r\n /**\r\n * @chainable\r\n */\r\n ElseIf(condition, action) {\r\n // when there is no IF condition\r\n if (!this.conditions.If.condition) {\r\n throw new StaticScriptWarning(\"IF condition not set\\nYou are trying to set an ELSE-IF condition without an IF condition\");\r\n }\r\n // when ELSE condition already set\r\n if (this.conditions.Else.action) {\r\n throw new StaticScriptWarning(\"ELSE condition already set\\nYou are trying to set an ELSE-IF condition after an ELSE condition\");\r\n }\r\n this.conditions.ElseIf.push({\r\n condition: condition instanceof Lambda ? condition : new Lambda(condition),\r\n action: this.construct(Array.isArray(action) ? action : [action])\r\n });\r\n return this.chain();\r\n }\r\n /**\r\n * @chainable\r\n */\r\n Else(action) {\r\n // when there is no IF condition\r\n if (!this.conditions.If.condition) {\r\n throw new StaticScriptWarning(\"IF condition not set\\nYou are trying to set an ELSE condition without an IF condition\");\r\n }\r\n // when ELSE condition already set\r\n if (this.conditions.Else.action) {\r\n throw new StaticScriptWarning(\"ELSE condition already set\\nYou are trying to set multiple ELSE conditions for the same condition\");\r\n }\r\n this.conditions.Else.action = this.construct(Array.isArray(action) ? action : [action]);\r\n return this.chain();\r\n }\r\n /**@internal */\r\n evaluate(conditions, { gameState }) {\r\n var _a, _b;\r\n const ctx = { gameState };\r\n const _if = (_a = conditions.If.condition) === null || _a === void 0 ? void 0 : _a.evaluate(ctx);\r\n if (_if === null || _if === void 0 ? void 0 : _if.value) {\r\n return conditions.If.action || null;\r\n }\r\n for (const elseIf of conditions.ElseIf) {\r\n const _elseIf = (_b = elseIf.condition) === null || _b === void 0 ? void 0 : _b.evaluate(ctx);\r\n if (_elseIf === null || _elseIf === void 0 ? void 0 : _elseIf.value) {\r\n return elseIf.action || null;\r\n }\r\n }\r\n return conditions.Else.action || null;\r\n }\r\n /**@internal */\r\n fromChained(chained) {\r\n return [\r\n Reflect.construct(ConditionAction, [\r\n this,\r\n ConditionAction.ActionTypes.action,\r\n new ContentNode().setContent(chained.conditions)\r\n ])\r\n ];\r\n }\r\n /**@internal */\r\n construct(chainedActions, lastChild, parentChild) {\r\n var _a;\r\n const actions = Chained.toActions(chainedActions);\r\n for (let i = 0; i < actions.length; i++) {\r\n const node = actions[i].contentNode;\r\n const child = (_a = actions[i + 1]) === null || _a === void 0 ? void 0 : _a.contentNode;\r\n if (child) {\r\n node.setChild(child);\r\n }\r\n if (i === actions.length - 1 && lastChild) {\r\n node.setChild(lastChild);\r\n }\r\n if (i === 0 && parentChild) {\r\n parentChild.setChild(node);\r\n }\r\n }\r\n return actions;\r\n }\r\n /**@internal */\r\n _getFutureActions() {\r\n return Chained.toActions([\r\n ...(this.conditions.If.action || []),\r\n ...this.conditions.ElseIf.flatMap(e => e.action || []),\r\n ...(this.conditions.Else.action || [])\r\n ]);\r\n }\r\n}\r\n/**@internal */\r\nCondition.defaultConfig = {};\r\n","import { Actionable } from \"@core/action/actionable\";\r\nimport { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { Chained } from \"@core/action/chain\";\r\nimport { ControlAction } from \"@core/action/actions/controlAction\";\r\nexport class Control extends Actionable {\r\n /**\r\n * Execute actions in order, waiting for each action to complete\r\n * @chainable\r\n */\r\n static do(actions) {\r\n return new Control().do(actions);\r\n }\r\n /**\r\n * Execute actions in order, do not wait for this action to complete\r\n * @chainable\r\n */\r\n static doAsync(actions) {\r\n return new Control().doAsync(actions);\r\n }\r\n /**\r\n * Execute all actions at the same time, waiting for any one action to complete\r\n * @chainable\r\n */\r\n static any(actions) {\r\n return new Control().any(actions);\r\n }\r\n /**\r\n * Execute all actions at the same time, waiting for all actions to complete\r\n * @chainable\r\n */\r\n static all(actions) {\r\n return new Control().all(actions);\r\n }\r\n /**\r\n * Execute all actions at the same time, do not wait for all actions to complete\r\n * @chainable\r\n */\r\n static allAsync(actions) {\r\n return new Control().allAsync(actions);\r\n }\r\n /**\r\n * Execute actions multiple times\r\n * @chainable\r\n */\r\n static repeat(times, actions) {\r\n return new Control().repeat(times, actions);\r\n }\r\n /**\r\n * Sleep for a duration\r\n * @chainable\r\n */\r\n static sleep(duration) {\r\n return new Control().sleep(duration);\r\n }\r\n constructor() {\r\n super();\r\n }\r\n /**\r\n * Execute actions in order, waiting for each action to complete\r\n * @chainable\r\n */\r\n do(actions) {\r\n return this.push(ControlAction.ActionTypes.do, actions);\r\n }\r\n /**\r\n * Execute actions in order, do not wait for this action to complete\r\n * @chainable\r\n */\r\n doAsync(actions) {\r\n return this.push(ControlAction.ActionTypes.doAsync, actions);\r\n }\r\n /**\r\n * Execute all actions at the same time, waiting for any one action to complete\r\n * @chainable\r\n */\r\n any(actions) {\r\n return this.push(ControlAction.ActionTypes.any, actions);\r\n }\r\n /**\r\n * Execute all actions at the same time, waiting for all actions to complete\r\n * @chainable\r\n */\r\n all(actions) {\r\n return this.push(ControlAction.ActionTypes.all, actions);\r\n }\r\n /**\r\n * Execute all actions at the same time, do not wait for all actions to complete\r\n * @chainable\r\n */\r\n allAsync(actions) {\r\n return this.push(ControlAction.ActionTypes.allAsync, actions);\r\n }\r\n /**\r\n * Execute actions multiple times\r\n * @chainable\r\n */\r\n repeat(times, actions) {\r\n return this.push(ControlAction.ActionTypes.repeat, actions, times);\r\n }\r\n /**\r\n * Sleep for a duration\r\n * @chainable\r\n */\r\n sleep(duration) {\r\n return this.push(ControlAction.ActionTypes.sleep, [], duration);\r\n }\r\n /**@internal */\r\n push(type, actions, ...args) {\r\n const flatted = Chained.toActions(actions);\r\n const action = new ControlAction(this.chain(), type, new ContentNode().setContent([this.construct(flatted), ...args]));\r\n return this.chain(action);\r\n }\r\n}\r\n","import { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { Actionable } from \"@core/action/actionable\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nimport { Transform } from \"./transform/transform\";\r\nimport { CommonPosition, CommonPositionType, PositionUtils } from \"@core/elements/transform/position\";\r\nimport { deepEqual, deepMerge, EventDispatcher, getCallStack } from \"@lib/util/data\";\r\nimport { Control } from \"@core/elements/control\";\r\nimport { ImageAction } from \"@core/action/actions/imageAction\";\r\nexport class Image extends Actionable {\r\n /**@internal */\r\n static serializeImageState(state) {\r\n const handlers = {\r\n position: (value) => {\r\n return PositionUtils.serializePosition(value);\r\n }\r\n };\r\n const result = {};\r\n for (const key in state) {\r\n if (Object.prototype.hasOwnProperty.call(state, key)) {\r\n result[key] = handlers[key] ? handlers[key](state[key]) : state[key];\r\n }\r\n }\r\n return result;\r\n }\r\n ;\r\n /**@internal */\r\n static deserializeImageState(state) {\r\n const handlers = {\r\n position: (value) => {\r\n return PositionUtils.toCoord2D(value);\r\n }\r\n };\r\n const result = {};\r\n for (const key in state) {\r\n if (Object.prototype.hasOwnProperty.call(state, key)) {\r\n result[key] = handlers[key] ? handlers[key](state[key]) : state[key];\r\n }\r\n }\r\n return result;\r\n }\r\n constructor(arg0 = {}, config) {\r\n super();\r\n /**@internal */\r\n this.events = new EventDispatcher();\r\n /**@internal */\r\n this.ref = undefined;\r\n if (typeof arg0 === \"string\") {\r\n this.name = arg0;\r\n this.config = deepMerge(Image.defaultConfig, config || {});\r\n if (this.config.position)\r\n this.config.position = PositionUtils.tryParsePosition(this.config.position);\r\n }\r\n else {\r\n this.name = \"\";\r\n this.config = deepMerge(Image.defaultConfig, arg0);\r\n if (this.config.position)\r\n this.config.position = PositionUtils.tryParsePosition(this.config.position);\r\n }\r\n this.state = deepMerge({}, this.config);\r\n this.checkConfig(this.config);\r\n }\r\n /**\r\n * Dispose the image\r\n *\r\n * Normally, you don't need to dispose the image manually\r\n * @chainable\r\n */\r\n dispose() {\r\n return this._dispose();\r\n }\r\n /**@internal */\r\n init() {\r\n return this.chain(this._init());\r\n }\r\n /**@internal */\r\n checkConfig(config) {\r\n if (!Transform.isPosition(config.position)) {\r\n throw new Error(\"Invalid position\\nPosition must be one of CommonImagePosition, Align, Coord2D\");\r\n }\r\n for (const wearable of config.wearables) {\r\n if (!wearable.config.isWearable) {\r\n throw new Error(\"Invalid wearable\\nWearable must be an Image with isWearable set to true\" +\r\n \"\\nIt seems like you are trying to add a non-wearable image to wearables\" +\r\n \"\\nImage below violates the rule:\\n\" + JSON.stringify(wearable.config));\r\n }\r\n }\r\n return this;\r\n }\r\n /**\r\n * Set the source of the image\r\n *\r\n * Src could be a string, StaticImageData, or Scene\r\n *\r\n * If transition is provided, the image will transition to the new src\r\n * @param src\r\n * @param transition\r\n * @example\r\n * ```ts\r\n * import yourImage from \"path/to/image.png\";\r\n * image.setSrc(yourImage, new Fade(1000));\r\n * ```\r\n * @chainable\r\n */\r\n setSrc(src, transition) {\r\n return this.combineActions(new Control(), chain => {\r\n if (transition) {\r\n const copy = transition.copy();\r\n copy.setSrc(Utils.srcToString(src));\r\n chain._transitionSrc(copy);\r\n }\r\n const action = new ImageAction(chain, ImageAction.ActionTypes.setSrc, new ContentNode().setContent([\r\n typeof src === \"string\" ? src : Utils.staticImageDataToSrc(src)\r\n ]));\r\n return chain\r\n .chain(action)\r\n .chain(this._flush());\r\n });\r\n }\r\n /**\r\n * Apply a transform to the image\r\n * @example\r\n * ```ts\r\n * // shake the image\r\n *\r\n * image.applyTransform(\r\n * new Transform([\r\n * {\r\n * props: {\r\n * position: new Coord2D({\r\n * xoffset: 10,\r\n * })\r\n * },\r\n * options: {\r\n * duration: 100,\r\n * }\r\n * },\r\n * {\r\n * props: {\r\n * position: new Coord2D({\r\n * xoffset: -10,\r\n * })\r\n * },\r\n * options: {\r\n * duration: 100,\r\n * }\r\n * }\r\n * ]).repeat(3);\r\n * );\r\n * ```\r\n * @chainable\r\n */\r\n applyTransform(transform) {\r\n return this.combineActions(new Control(), chain => {\r\n const action = new ImageAction(chain, ImageAction.ActionTypes.applyTransform, new ContentNode().setContent([\r\n void 0,\r\n transform.copy(),\r\n getCallStack()\r\n ]));\r\n return chain\r\n .chain(action)\r\n .chain(this._flush());\r\n });\r\n }\r\n show(options) {\r\n const trans = (options instanceof Transform) ? options.copy() : new Transform([\r\n {\r\n props: {\r\n opacity: 1,\r\n },\r\n options: options || {}\r\n }\r\n ]);\r\n return this.combineActions(new Control(), chain => {\r\n const action = new ImageAction(chain, ImageAction.ActionTypes.show, new ContentNode().setContent([\r\n void 0,\r\n trans\r\n ]));\r\n return chain\r\n .chain(action)\r\n .chain(this._flush());\r\n });\r\n }\r\n hide(arg0) {\r\n return this.combineActions(new Control(), chain => {\r\n const action = new ImageAction(chain, ImageAction.ActionTypes.hide, new ContentNode().setContent([\r\n void 0,\r\n (arg0 instanceof Transform) ? arg0.copy() : new Transform([\r\n {\r\n props: {\r\n opacity: 0,\r\n },\r\n options: arg0 || {}\r\n }\r\n ])\r\n ]));\r\n return chain\r\n .chain(action)\r\n .chain(this._flush());\r\n });\r\n }\r\n /**\r\n * Add a wearable to the image\r\n * @param children - Wearable image or images\r\n */\r\n addWearable(children) {\r\n const wearables = Array.isArray(children) ? children : [children];\r\n for (const child of wearables) {\r\n this.config.wearables.push(child);\r\n child.config.isWearable = true;\r\n }\r\n return this;\r\n }\r\n /**\r\n * Bind this image to a parent image as a wearable\r\n */\r\n bindWearable(parent) {\r\n parent.addWearable(this);\r\n return this;\r\n }\r\n /**\r\n * @internal\r\n * @deprecated\r\n */\r\n toTransform() {\r\n return new Transform(this.state, {\r\n duration: 0,\r\n });\r\n }\r\n /**@internal */\r\n setScope(scope) {\r\n this.ref = scope;\r\n return this;\r\n }\r\n /**@internal */\r\n getScope() {\r\n return this.ref;\r\n }\r\n copy() {\r\n return new Image(this.name, this.config);\r\n }\r\n /**@internal */\r\n toData() {\r\n if (this.state.disposed || deepEqual(this.state, this.config)) {\r\n return null;\r\n }\r\n return {\r\n state: deepMerge({}, Image.serializeImageState(this.state))\r\n };\r\n }\r\n /**@internal */\r\n fromData(data) {\r\n this.state = deepMerge(this.state, Image.deserializeImageState(data.state));\r\n return this;\r\n }\r\n /**@internal */\r\n _$setDispose() {\r\n this.state.disposed = true;\r\n return this;\r\n }\r\n /**@internal */\r\n _applyTransition(transition) {\r\n return this.chain(new ImageAction(this.chain(), \"image:applyTransition\", new ContentNode().setContent([\r\n transition\r\n ])));\r\n }\r\n /**@internal */\r\n _init(scene) {\r\n return new ImageAction(this.chain(), ImageAction.ActionTypes.init, new ContentNode().setContent([\r\n scene\r\n ]));\r\n }\r\n /**@internal */\r\n _initWearable(child) {\r\n return new ImageAction(this.chain(), ImageAction.ActionTypes.initWearable, new ContentNode().setContent([\r\n child\r\n ]));\r\n }\r\n /**@internal */\r\n _flush() {\r\n return new ImageAction(this.chain(), ImageAction.ActionTypes.flush, new ContentNode());\r\n }\r\n /**@internal */\r\n reset() {\r\n this.state = deepMerge({}, this.config);\r\n }\r\n /**@internal */\r\n toDisplayableTransform() {\r\n return new Transform(this.state, {\r\n duration: 0,\r\n });\r\n }\r\n /**@internal */\r\n getTransformState() {\r\n return {\r\n position: this.state.position,\r\n scale: this.state.scale,\r\n rotation: this.state.rotation,\r\n opacity: this.state.opacity,\r\n display: this.state.display,\r\n };\r\n }\r\n /**@internal */\r\n _transitionSrc(transition) {\r\n const t = transition.copy();\r\n this._applyTransition(t);\r\n return this;\r\n }\r\n /**@internal */\r\n _dispose() {\r\n return this.chain(new ImageAction(this.chain(), ImageAction.ActionTypes.dispose, new ContentNode()));\r\n }\r\n}\r\n/**@internal */\r\nImage.EventTypes = {\r\n \"event:displayable.applyTransition\": \"event:displayable.applyTransition\",\r\n \"event:displayable.applyTransform\": \"event:displayable.applyTransform\",\r\n \"event:displayable.init\": \"event:displayable.init\",\r\n \"event:wearable.create\": \"event:wearable.create\",\r\n};\r\n/**@internal */\r\nImage.defaultConfig = {\r\n src: \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==\",\r\n display: false,\r\n position: new CommonPosition(CommonPositionType.Center),\r\n scale: 1,\r\n rotation: 0,\r\n opacity: 0,\r\n isWearable: false,\r\n wearables: [],\r\n};\r\n","import { deepMerge } from \"@lib/util/data\";\r\nimport { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { Actionable } from \"@core/action/actionable\";\r\nimport { Chained } from \"@core/action/chain\";\r\nimport { Sentence } from \"@core/elements/character/sentence\";\r\nimport { Word } from \"@core/elements/character/word\";\r\nimport { MenuAction } from \"@core/action/actions/menuAction\";\r\nexport class Menu extends Actionable {\r\n constructor(prompt, config = {}) {\r\n super();\r\n /**@internal */\r\n this.choices = [];\r\n this.prompt = Sentence.isSentence(prompt) ? prompt : new Sentence(prompt);\r\n this.config = deepMerge(Menu.defaultConfig, config);\r\n }\r\n choose(arg0, arg1) {\r\n const chained = this.chain();\r\n if (Sentence.isSentence(arg0) && arg1) {\r\n chained.choices.push({ prompt: Sentence.toSentence(arg0), action: Chained.toActions(arg1) });\r\n }\r\n else if ((Word.isWord(arg0) || Array.isArray(arg0) || typeof arg0 === \"string\") && arg1) {\r\n chained.choices.push({ prompt: Sentence.toSentence(arg0), action: Chained.toActions(arg1) });\r\n }\r\n else if (typeof arg0 === \"object\" && \"prompt\" in arg0 && \"action\" in arg0) {\r\n chained.choices.push({ prompt: Sentence.toSentence(arg0.prompt), action: Chained.toActions(arg0.action) });\r\n }\r\n else {\r\n console.warn(\"No valid choice added to menu, \", {\r\n arg0,\r\n arg1\r\n });\r\n }\r\n return chained;\r\n }\r\n /**@internal */\r\n fromChained(chained) {\r\n return [\r\n new MenuAction(this.chain(), MenuAction.ActionTypes.action, new ContentNode().setContent({\r\n prompt: this.prompt,\r\n choices: chained.constructChoices()\r\n }))\r\n ];\r\n }\r\n /**@internal */\r\n _getFutureActions(choices) {\r\n return choices.map(choice => choice.action).flat(2);\r\n }\r\n /**@internal */\r\n constructNodes(actions, lastChild, parentChild) {\r\n var _a;\r\n for (let i = 0; i < actions.length; i++) {\r\n const node = actions[i].contentNode;\r\n const child = (_a = actions[i + 1]) === null || _a === void 0 ? void 0 : _a.contentNode;\r\n if (child) {\r\n node.setChild(child);\r\n }\r\n if (i === this.choices.length - 1 && lastChild) {\r\n node.setChild(lastChild);\r\n }\r\n if (i === 0 && parentChild) {\r\n parentChild.setChild(node);\r\n }\r\n }\r\n return actions;\r\n }\r\n /**@internal */\r\n constructChoices() {\r\n return this.choices.map(choice => {\r\n return {\r\n action: this.constructNodes(choice.action),\r\n prompt: choice.prompt\r\n };\r\n });\r\n }\r\n}\r\n/**@internal */\r\nMenu.defaultConfig = {};\r\n/**@internal */\r\nMenu.targetAction = MenuAction;\r\n","var __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport { Constructable } from \"../action/constructable\";\r\nimport { deepMerge, entriesForEach, EventDispatcher, safeClone } from \"@lib/util/data\";\r\nimport { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { Transform } from \"@core/elements/transform/transform\";\r\nimport { SrcManager } from \"@core/action/srcManager\";\r\nimport { Sound } from \"@core/elements/sound\";\r\nimport { ImageActionTypes, SceneActionTypes } from \"@core/action/actionTypes\";\r\nimport { Image } from \"@core/elements/image\";\r\nimport { Control, Utils } from \"@core/common/core\";\r\nimport { Chained } from \"@core/action/chain\";\r\nimport { SceneAction } from \"@core/action/actions/sceneAction\";\r\nimport { ImageAction } from \"@core/action/actions/imageAction\";\r\nimport { SoundAction } from \"@core/action/actions/soundAction\";\r\nimport { ControlAction } from \"@core/action/actions/controlAction\";\r\nimport { Text } from \"@core/elements/text\";\r\nimport { RGBColor } from \"@core/common/Utils\";\r\nexport class Scene extends Constructable {\r\n constructor(name, config = Scene.defaultConfig) {\r\n super();\r\n /**@internal */\r\n this.srcManager = new SrcManager();\r\n /**@internal */\r\n this.events = new EventDispatcher();\r\n this.name = name;\r\n const _a = deepMerge(Scene.defaultConfig, config), { background } = _a, rest = __rest(_a, [\"background\"]);\r\n this.config = Object.assign(Object.assign({}, rest), { backgroundImage: new Image({\r\n opacity: 1,\r\n }), background: background || null });\r\n this.state = deepMerge(this.config, {});\r\n }\r\n /**@internal */\r\n toBackground(src) {\r\n if (Utils.isImageSrc(src) || Utils.isImageColor(src)) {\r\n return src;\r\n }\r\n if (src instanceof RGBColor) {\r\n return src.toImageColor();\r\n }\r\n throw new Error(\"Invalid background type\");\r\n }\r\n /**\r\n * Activate the scene\r\n *\r\n * This is only used when auto activation is not working\r\n * @chainable\r\n */\r\n activate() {\r\n return this.chain(this._init(this));\r\n }\r\n /**\r\n * Deactivate the scene\r\n *\r\n * This is only used when auto deactivation is not working\r\n * @chainable\r\n */\r\n deactivate() {\r\n return this.chain(this._exit());\r\n }\r\n /**\r\n * Set background, if {@link transition} is provided, it will be applied\r\n * @chainable\r\n */\r\n setBackground(background, transition) {\r\n return this.combineActions(new Control(), chain => {\r\n if (transition) {\r\n const copy = transition.copy();\r\n copy.setSrc(this.toBackground(background));\r\n chain._transitionToScene(undefined, copy, this.toBackground(background));\r\n }\r\n return chain.chain(new SceneAction(chain, \"scene:setBackground\", new ContentNode().setContent([\r\n background,\r\n ])));\r\n });\r\n }\r\n /**\r\n * Apply a transform to the scene\r\n *\r\n * for example, you can shake the scene by applying a transform with a shake effect\r\n * @chainable\r\n */\r\n applyTransform(transform) {\r\n return this.chain(new SceneAction(this.chain(), \"scene:applyTransform\", new ContentNode().setContent([transform.copy()])));\r\n }\r\n /**\r\n * Jump to the specified scene\r\n *\r\n * After calling the method, you **will not be able to return to the context of the scene** that called the jump, so the scene will be unloaded\r\n *\r\n * Any operations after the jump operation will not be executed\r\n * @chainable\r\n */\r\n jumpTo(arg0, config) {\r\n return this.combineActions(new Control(), chain => {\r\n const jumpConfig = config || {};\r\n return chain\r\n .chain(new SceneAction(chain, \"scene:preUnmount\", new ContentNode().setContent([])))\r\n ._transitionToScene(arg0, jumpConfig.transition)\r\n .chain(arg0._init())\r\n .chain(this._exit())\r\n ._jumpTo(arg0);\r\n });\r\n }\r\n sleep(content) {\r\n return this.chain(new SceneAction(this.chain(), \"scene:sleep\", new ContentNode().setContent(content)));\r\n }\r\n /**\r\n * Set background music\r\n * @param sound Target music\r\n * @param fade If set, the fade-out effect will be applied to the previous music, and the fade-in effect will be applied to the current music, with a duration of {@link fade} milliseconds\r\n * @chainable\r\n */\r\n setBackgroundMusic(sound, fade) {\r\n return this.chain(new SceneAction(this.chain(), SceneActionTypes[\"setBackgroundMusic\"], new ContentNode().setContent([sound, fade])));\r\n }\r\n /**@internal */\r\n toData() {\r\n var _a;\r\n return {\r\n state: Object.assign(Object.assign({}, safeClone(this.state)), { backgroundMusic: (_a = this.state.backgroundMusic) === null || _a === void 0 ? void 0 : _a.toData(), background: this.state.background }),\r\n backgroundImageState: this.state.backgroundImage.toData(),\r\n };\r\n }\r\n /**@internal */\r\n fromData(data) {\r\n entriesForEach(data, {\r\n state: (state) => {\r\n entriesForEach(state, {\r\n backgroundMusic: (backgroundMusic) => {\r\n if (backgroundMusic) {\r\n this.state.backgroundMusic = new Sound().fromData(backgroundMusic);\r\n }\r\n },\r\n background: (background) => {\r\n if (background) {\r\n this.state.background = background;\r\n }\r\n },\r\n });\r\n },\r\n backgroundImageState: (backgroundImageState) => {\r\n if (backgroundImageState) {\r\n this.state.backgroundImage = new Image().fromData(backgroundImageState);\r\n }\r\n },\r\n });\r\n return this;\r\n }\r\n /**@internal */\r\n getInitTransform() {\r\n return new Transform([\r\n {\r\n props: Object.assign(Object.assign({}, this.state.backgroundImage.state), { opacity: 1 }),\r\n options: {\r\n duration: 0,\r\n }\r\n },\r\n ]);\r\n }\r\n action(actions) {\r\n const userChainedActions = Array.isArray(actions) ? actions.flat(2) : actions(this).flat(2);\r\n const userActions = userChainedActions.map(v => {\r\n if (Chained.isChained(v)) {\r\n return v.fromChained(v);\r\n }\r\n return v;\r\n }).flat(2);\r\n const images = [], texts = [];\r\n this.getAllChildrenElements(userActions).forEach(element => {\r\n if (Chained.isChained(element)) {\r\n return;\r\n }\r\n if (element instanceof Image) {\r\n images.push(element);\r\n }\r\n else if (element instanceof Text) {\r\n texts.push(element);\r\n }\r\n });\r\n // disable auto initialization for wearables,\r\n // wearables cannot be initialized by the scene,\r\n // they must be initialized by the image\r\n const nonWearableImages = [], usedWearableImages = [], wearableImagesMap = new Map();\r\n images.forEach(image => {\r\n var _a;\r\n if (image.config.isWearable) {\r\n usedWearableImages.push(image);\r\n }\r\n else {\r\n nonWearableImages.push(image);\r\n }\r\n for (const wearable of image.config.wearables) {\r\n if (wearableImagesMap.get(wearable)\r\n && wearableImagesMap.get(wearable) !== image) {\r\n throw new Error(\"Wearable image cannot be used multiple times\" +\r\n \"\\nYou may bind the same wearable image to multiple parent images\" +\r\n \"\\nParent Conflict: \" + ((_a = wearableImagesMap.get(wearable)) === null || _a === void 0 ? void 0 : _a.getId()) +\r\n \"\\nCurrent Parent: \" + image.getId());\r\n }\r\n wearableImagesMap.set(wearable, image);\r\n }\r\n });\r\n const futureActions = [\r\n this._init(this),\r\n ...nonWearableImages.map(image => image._init()),\r\n ...usedWearableImages.map(image => {\r\n if (!wearableImagesMap.has(image)) {\r\n throw new Error(\"Wearable image must have a parent image\");\r\n }\r\n return wearableImagesMap.get(image)._initWearable(image);\r\n }),\r\n ...texts.map(text => text._init()),\r\n ...userActions,\r\n ];\r\n const constructed = super.constructNodes(futureActions);\r\n const sceneRoot = new ContentNode(undefined, undefined, constructed || void 0).setContent(this);\r\n constructed === null || constructed === void 0 ? void 0 : constructed.setParent(sceneRoot);\r\n this.sceneRoot = new SceneAction(this.chain(), \"scene:action\", sceneRoot);\r\n return this;\r\n }\r\n /**@internal */\r\n registerSrc(seen = new Set()) {\r\n if (!this.sceneRoot) {\r\n return;\r\n }\r\n // [0.0.5] - 2024/10/04\r\n // Without this check, this method will enter cycle and cost a lot of time\r\n // For example, Control will add some actions to the scene, ths check will not stop correctly\r\n const seenActions = new Set();\r\n const seenJump = new Set();\r\n const queue = [this.sceneRoot];\r\n const futureScene = new Set();\r\n if (Utils.isImageSrc(this.config.background)) {\r\n this.srcManager.register(new Image({ src: Utils.toBackgroundSrc(this.config.background) }));\r\n }\r\n while (queue.length) {\r\n const action = queue.shift();\r\n if (seenActions.has(action)) {\r\n continue;\r\n }\r\n seenActions.add(action);\r\n if (action instanceof SceneAction) {\r\n if (action.type === SceneActionTypes.jumpTo) {\r\n const jumpTo = action;\r\n const scene = jumpTo.contentNode.getContent()[0];\r\n if (seenJump.has(jumpTo) || seen.has(scene)) {\r\n continue;\r\n }\r\n seenJump.add(jumpTo);\r\n futureScene.add(scene);\r\n seen.add(scene);\r\n }\r\n else if (action.type === SceneActionTypes.setBackground) {\r\n const content = action.contentNode.getContent()[0];\r\n const src = Utils.backgroundToSrc(content);\r\n if (src) {\r\n this.srcManager.register(new Image({ src }));\r\n }\r\n }\r\n }\r\n else if (action instanceof ImageAction) {\r\n const imageAction = action;\r\n this.srcManager.register(imageAction.callee);\r\n if (action.type === ImageActionTypes.setSrc) {\r\n const content = action.contentNode.getContent()[0];\r\n this.srcManager.register(new Image({ src: content }));\r\n }\r\n else if (action.type === ImageActionTypes.initWearable) {\r\n const image = action.contentNode.getContent()[0];\r\n this.srcManager.register(image);\r\n }\r\n }\r\n else if (action instanceof SoundAction) {\r\n this.srcManager.register(action.callee);\r\n }\r\n else if (action instanceof ControlAction) {\r\n const controlAction = action;\r\n const actions = controlAction.getFutureActions();\r\n queue.push(...actions);\r\n }\r\n queue.push(...action.getFutureActions());\r\n }\r\n futureScene.forEach(scene => {\r\n scene.registerSrc(seen);\r\n this.srcManager.registerFuture(scene.srcManager);\r\n });\r\n }\r\n /**\r\n * @internal STILL IN DEVELOPMENT\r\n */\r\n assignActionId() {\r\n const actions = this.getAllChildren(this.sceneRoot || []);\r\n actions.forEach((action, i) => {\r\n action.setId(`action-${i}`);\r\n });\r\n }\r\n /**\r\n * @internal STILL IN DEVELOPMENT\r\n */\r\n assignElementId() {\r\n const elements = this.getAllChildrenElements(this.sceneRoot || []);\r\n elements.forEach((element, i) => {\r\n element.setId(`element-${i}`);\r\n });\r\n }\r\n /**@internal */\r\n reset() {\r\n this.state = deepMerge(Scene.defaultState, this.config);\r\n this.state.backgroundImage.reset();\r\n }\r\n /**@internal */\r\n toDisplayableTransform() {\r\n return this.state.backgroundImage.toDisplayableTransform();\r\n }\r\n /**@internal */\r\n _applyTransition(transition) {\r\n return this.chain(new SceneAction(this.chain(), \"scene:applyTransition\", new ContentNode().setContent([transition])));\r\n }\r\n /**@internal */\r\n _jumpTo(scene) {\r\n return this.chain(new SceneAction(this.chain(), \"scene:jumpTo\", new ContentNode().setContent([\r\n scene\r\n ])));\r\n }\r\n /**@internal */\r\n _exit() {\r\n return new SceneAction(this.chain(), \"scene:exit\", new ContentNode().setContent([]));\r\n }\r\n /**@internal */\r\n _transitionToScene(scene, transition, src) {\r\n const chain = this.chain();\r\n if (transition) {\r\n const copy = transition.copy();\r\n if (scene && scene.config.background) {\r\n copy.setSrc(scene.config.background);\r\n }\r\n if (src)\r\n copy.setSrc(src);\r\n chain._applyTransition(copy);\r\n }\r\n return chain;\r\n }\r\n /**@internal */\r\n _init(target = this) {\r\n return new SceneAction(target.chain(), \"scene:init\", new ContentNode().setContent([]));\r\n }\r\n}\r\n/**@internal */\r\nScene.EventTypes = {\r\n \"event:scene.remove\": \"event:scene.remove\",\r\n \"event:scene.load\": \"event:scene.load\",\r\n \"event:scene.unload\": \"event:scene.unload\",\r\n \"event:scene.mount\": \"event:scene.mount\",\r\n \"event:scene.unmount\": \"event:scene.unmount\",\r\n \"event:scene.preUnmount\": \"event:scene.preUnmount\",\r\n \"event:scene.imageLoaded\": \"event:scene.imageLoaded\",\r\n \"event:scene.setBackgroundMusic\": \"event:scene.setBackgroundMusic\",\r\n \"event:displayable.applyTransition\": \"event:displayable.applyTransition\",\r\n \"event:displayable.applyTransform\": \"event:displayable.applyTransform\",\r\n \"event:displayable.init\": \"event:displayable.init\",\r\n};\r\n/**@internal */\r\nScene.defaultConfig = {\r\n invertY: false,\r\n invertX: false,\r\n backgroundMusic: null,\r\n backgroundMusicFade: 0,\r\n};\r\n/**@internal */\r\nScene.defaultState = {};\r\n","import { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { Actionable } from \"@core/action/actionable\";\r\nimport { ScriptAction } from \"@core/action/actions/scriptAction\";\r\nexport class Script extends Actionable {\r\n /**@internal */\r\n static getCtx({ gameState }) {\r\n return {\r\n gameState,\r\n game: gameState.game,\r\n liveGame: gameState.game.getLiveGame(),\r\n storable: gameState.game.getLiveGame().getStorable(),\r\n };\r\n }\r\n constructor(handler) {\r\n super();\r\n this.handler = handler;\r\n return this.chain();\r\n }\r\n /**@internal */\r\n execute({ gameState }) {\r\n this.handler(Script.getCtx({\r\n gameState\r\n }));\r\n }\r\n /**@internal */\r\n fromChained(chained) {\r\n return [\r\n new ScriptAction(this.chain(), ScriptAction.ActionTypes.action, new ContentNode().setContent(chained))\r\n ];\r\n }\r\n}\r\n","import { Actionable } from \"@core/action/actionable\";\r\nimport { deepEqual, deepMerge, safeClone } from \"@lib/util/data\";\r\nimport { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { SoundAction } from \"@core/action/actions/soundAction\";\r\nexport var SoundType;\r\n(function (SoundType) {\r\n SoundType[\"soundEffect\"] = \"soundEffect\";\r\n SoundType[\"music\"] = \"music\";\r\n SoundType[\"voice\"] = \"voice\";\r\n SoundType[\"backgroundMusic\"] = \"backgroundMusic\";\r\n})(SoundType || (SoundType = {}));\r\nexport class Sound extends Actionable {\r\n /**@internal */\r\n static toSoundSrc(v) {\r\n if (v === null || v === undefined) {\r\n return null;\r\n }\r\n if (typeof v === \"string\") {\r\n return v;\r\n }\r\n return v.getSrc();\r\n }\r\n /**@internal */\r\n static toSound(v) {\r\n if (v === null || v === undefined) {\r\n return null;\r\n }\r\n if (typeof v === \"string\") {\r\n return new Sound({ src: v });\r\n }\r\n return v;\r\n }\r\n constructor(arg0 = {}) {\r\n super();\r\n /**@internal */\r\n this.state = {\r\n playing: null,\r\n token: null,\r\n };\r\n if (typeof arg0 === \"string\") {\r\n this.config = deepMerge(Sound.defaultConfig, {\r\n src: arg0\r\n });\r\n }\r\n else {\r\n this.config = deepMerge(Sound.defaultConfig, arg0);\r\n }\r\n }\r\n /**\r\n * @chainable\r\n */\r\n play() {\r\n if (this.config.type === SoundType.backgroundMusic) {\r\n throw new Error(\"Background music cannot be played directly\");\r\n }\r\n return this.pushAction(SoundAction.ActionTypes.play, [void 0]);\r\n }\r\n /**\r\n * @chainable\r\n */\r\n stop() {\r\n if (this.config.type === SoundType.backgroundMusic) {\r\n throw new Error(\"Background music cannot be stopped directly\");\r\n }\r\n return this.pushAction(SoundAction.ActionTypes.stop, [void 0]);\r\n }\r\n /**\r\n * @chainable\r\n */\r\n fade(start, end, duration) {\r\n if (this.config.type === SoundType.backgroundMusic) {\r\n throw new Error(\"Background music cannot be faded directly\");\r\n }\r\n return this.pushAction(SoundAction.ActionTypes.fade, [{\r\n start, end, duration\r\n }]);\r\n }\r\n /**\r\n * @chainable\r\n */\r\n setVolume(volume) {\r\n return this.pushAction(SoundAction.ActionTypes.setVolume, [volume]);\r\n }\r\n /**\r\n * @chainable\r\n */\r\n setRate(rate) {\r\n return this.pushAction(SoundAction.ActionTypes.setRate, [rate]);\r\n }\r\n /**\r\n * @chainable\r\n */\r\n pause(fade) {\r\n if (fade !== undefined) {\r\n return this.fade(undefined, 0, fade);\r\n }\r\n return this.pushAction(SoundAction.ActionTypes.pause, [void 0]);\r\n }\r\n /**\r\n * @chainable\r\n */\r\n resume(fade) {\r\n if (fade !== undefined) {\r\n return this.fade(0, this.config.volume, fade);\r\n }\r\n return this.pushAction(SoundAction.ActionTypes.resume, [void 0]);\r\n }\r\n /**@internal */\r\n getHowlOptions(options) {\r\n return Object.assign({ src: this.config.src, loop: this.config.loop, volume: this.config.volume, html5: this.config.streaming, autoplay: false }, (options || {}));\r\n }\r\n /**@internal */\r\n getSrc() {\r\n return this.config.src;\r\n }\r\n /**@internal */\r\n getToken() {\r\n return this.state.token || undefined;\r\n }\r\n /**@internal */\r\n getPlaying() {\r\n return this.state.playing;\r\n }\r\n /**@internal */\r\n setToken(token) {\r\n this.state.token = typeof token === \"undefined\" ? null : token;\r\n }\r\n /**@internal */\r\n setPlaying(howl) {\r\n this.state.playing = howl;\r\n return this;\r\n }\r\n /**@internal */\r\n toData() {\r\n if (deepEqual(this.config, Sound.defaultConfig)) {\r\n return null;\r\n }\r\n return {\r\n config: safeClone(this.config)\r\n };\r\n }\r\n /**@internal */\r\n fromData(data) {\r\n this.config = deepMerge(this.config, data.config);\r\n return this;\r\n }\r\n /**@internal */\r\n reset() {\r\n var _a;\r\n (_a = this.state.playing) === null || _a === void 0 ? void 0 : _a.stop();\r\n this.state.playing = null;\r\n this.state.token = null;\r\n }\r\n /**@internal */\r\n pushAction(type, content) {\r\n return this.chain(new SoundAction(this.chain(), type, new ContentNode().setContent(content)));\r\n }\r\n}\r\n/**@internal */\r\nSound.defaultConfig = {\r\n src: \"\",\r\n sync: false,\r\n loop: false,\r\n volume: 1,\r\n};\r\n","import { Constructable } from \"../action/constructable\";\r\nimport { deepMerge } from \"@lib/util/data\";\r\nimport { StaticChecker } from \"@core/common/Utils\";\r\nexport class Story extends Constructable {\r\n constructor(name, config = {}) {\r\n super();\r\n /**@internal */\r\n this.entryScene = null;\r\n this.name = name;\r\n this.config = deepMerge(Story.defaultConfig, config);\r\n }\r\n /**\r\n * Set the entry scene of the story\r\n * @example\r\n * ```typescript\r\n * const story = new Story(\"story\");\r\n * const scene = new Scene(\"scene\");\r\n * story.entry(scene); // The story will start from this scene\r\n * ```\r\n */\r\n entry(scene) {\r\n this.entryScene = scene;\r\n return this;\r\n }\r\n /**@internal */\r\n constructStory() {\r\n const scene = this.entryScene;\r\n if (!scene) {\r\n throw new Error(\"Story must have an entry scene\");\r\n }\r\n scene.registerSrc();\r\n scene.assignActionId();\r\n scene.assignElementId();\r\n this.runStaticCheck(scene);\r\n return this;\r\n }\r\n /**@internal */\r\n getAllElementStates() {\r\n var _a;\r\n const elements = this.getAllChildrenElements(((_a = this.entryScene) === null || _a === void 0 ? void 0 : _a.sceneRoot) || []);\r\n return elements\r\n .map(e => {\r\n return {\r\n id: e.getId(),\r\n data: e.toData()\r\n };\r\n })\r\n .filter(e => !!e.data);\r\n }\r\n /**@internal */\r\n runStaticCheck(scene) {\r\n return new StaticChecker(scene).run();\r\n }\r\n}\r\nStory.defaultConfig = {};\r\n","import { Actionable } from \"@core/action/actionable\";\r\nimport { CommonPosition } from \"@core/elements/transform/position\";\r\nimport { deepMerge, EventDispatcher } from \"@lib/util/data\";\r\nimport { Image } from \"./image\";\r\nimport { Transform } from \"@core/elements/transform/transform\";\r\nimport { ContentNode } from \"@core/action/tree/actionTree\";\r\nimport { TextAction } from \"@core/action/actions/textAction\";\r\nimport { Control } from \"@core/elements/control\";\r\nimport { FontSizeTransition } from \"@core/elements/transition/textTransitions/fontSizeTransition\";\r\nexport class Text extends Actionable {\r\n constructor(configOrText, config = {}) {\r\n super();\r\n /**@internal */\r\n this.events = new EventDispatcher();\r\n if (typeof configOrText === \"string\") {\r\n this.config = deepMerge({}, Text.defaultConfig, config, { text: configOrText });\r\n }\r\n else {\r\n this.config = deepMerge({}, Text.defaultConfig, configOrText);\r\n }\r\n this.state = deepMerge({}, this.config);\r\n }\r\n /**\r\n * Apply a transform to the Text\r\n * @chainable\r\n */\r\n applyTransform(transform) {\r\n const chain = this.chain();\r\n const action = new TextAction(chain, TextAction.ActionTypes.applyTransform, new ContentNode().setContent([\r\n transform.copy(),\r\n ]));\r\n return chain.chain(action);\r\n }\r\n /**\r\n * Apply a transition to the Text\r\n * @chainable\r\n */\r\n applyTransition(transition) {\r\n const chain = this.chain();\r\n const action = this._applyTransition(chain, transition);\r\n return chain.chain(action);\r\n }\r\n show(options) {\r\n const chain = this.chain();\r\n const trans = (options instanceof Transform) ? options.copy() : new Transform([\r\n {\r\n props: {\r\n opacity: 1,\r\n },\r\n options: options || {}\r\n }\r\n ]);\r\n const action = new TextAction(chain, TextAction.ActionTypes.show, new ContentNode().setContent([trans]));\r\n return chain.chain(action);\r\n }\r\n hide(options) {\r\n const chain = this.chain();\r\n const trans = (options instanceof Transform) ? options.copy() : new Transform([\r\n {\r\n props: {\r\n opacity: 1,\r\n },\r\n options: options || {}\r\n }\r\n ]);\r\n const action = new TextAction(chain, TextAction.ActionTypes.hide, new ContentNode().setContent([trans]));\r\n return chain.chain(action);\r\n }\r\n /**\r\n * Set the text of the Text\r\n * @chainable\r\n */\r\n setText(text) {\r\n const chain = this.chain();\r\n const action = new TextAction(chain, TextAction.ActionTypes.setText, new ContentNode().setContent([text]));\r\n return chain.chain(action);\r\n }\r\n /**\r\n * Set the font color of the Text\r\n * @chainable\r\n */\r\n setFontSize(fontSize, duration = 0, easing) {\r\n return this.combineActions(new Control(), chain => {\r\n if (duration) {\r\n const transition = new FontSizeTransition(this.state.fontSize, fontSize, duration, easing);\r\n chain.chain(this._applyTransition(chain, transition));\r\n }\r\n const action = new TextAction(chain, TextAction.ActionTypes.setFontSize, new ContentNode().setContent([fontSize]));\r\n return chain.chain(action);\r\n });\r\n }\r\n /**@internal */\r\n toData() {\r\n return {\r\n state: deepMerge({}, Image.serializeImageState(this.state))\r\n };\r\n }\r\n /**@internal */\r\n fromData(data) {\r\n this.state = deepMerge({}, Image.deserializeImageState(data.state));\r\n return this;\r\n }\r\n /**\r\n * @internal\r\n * @deprecated\r\n */\r\n toTransform() {\r\n return new Transform(this.state, {\r\n duration: 0,\r\n });\r\n }\r\n /**@internal */\r\n toDisplayableTransform() {\r\n return new Transform(this.state, {\r\n duration: 0,\r\n });\r\n }\r\n /**@internal */\r\n _init(scene) {\r\n return new TextAction(this.chain(), TextAction.ActionTypes.init, new ContentNode().setContent([scene]));\r\n }\r\n /**@internal */\r\n _applyTransition(chain, transition) {\r\n return new TextAction(chain, TextAction.ActionTypes.applyTransition, new ContentNode().setContent([transition]));\r\n }\r\n}\r\n/**@internal */\r\nText.EventTypes = {\r\n \"event:text.show\": \"event:text.show\",\r\n \"event:text.hide\": \"event:text.hide\",\r\n \"event:displayable.applyTransition\": \"event:displayable.applyTransition\",\r\n \"event:displayable.applyTransform\": \"event:displayable.applyTransform\",\r\n \"event:displayable.init\": \"event:displayable.init\",\r\n};\r\n/**@internal */\r\nText.defaultConfig = {\r\n position: new CommonPosition(CommonPosition.Positions.Center),\r\n scale: 1,\r\n rotation: 0,\r\n opacity: 0,\r\n alignX: \"center\",\r\n alignY: \"center\",\r\n fontSize: 16,\r\n fontColor: \"#000000\",\r\n display: false,\r\n text: \"\",\r\n};\r\n","export var CommonPositionType;\r\n(function (CommonPositionType) {\r\n CommonPositionType[\"Left\"] = \"left\";\r\n CommonPositionType[\"Center\"] = \"center\";\r\n CommonPositionType[\"Right\"] = \"right\";\r\n})(CommonPositionType || (CommonPositionType = {}));\r\nexport const CommonPositions = {\r\n [CommonPositionType.Left]: \"33.33%\",\r\n [CommonPositionType.Center]: \"50%\",\r\n [CommonPositionType.Right]: \"66.66%\",\r\n};\r\nexport class PositionUtils {\r\n static isUnknown(arg) {\r\n return arg === PositionUtils.Unknown;\r\n }\r\n static wrap(def) {\r\n return Object.assign({ left: \"auto\", top: \"auto\", right: \"auto\", bottom: \"auto\" }, def);\r\n }\r\n static D2PositionToCSS(pos, invertX = false, invertY = false) {\r\n const posY = this.calc(pos.y, pos.yoffset);\r\n const posX = this.calc(pos.x, pos.xoffset);\r\n const yRes = invertY ? { bottom: posY } : { top: posY };\r\n const xRes = invertX ? { right: posX } : { left: posX };\r\n return this.wrap(Object.assign(Object.assign({}, yRes), xRes));\r\n }\r\n static calc(pos, offset) {\r\n if (!pos || PositionUtils.isUnknown(pos)) {\r\n return \"auto\";\r\n }\r\n if (offset === undefined || PositionUtils.isUnknown(offset)) {\r\n return `calc(${pos} + 0px)`;\r\n }\r\n const left = typeof pos === \"number\" ? `${pos}px` : pos;\r\n return `calc(${left} + (${offset}px))`;\r\n }\r\n static toCoord2D(pos) {\r\n if (CommonPosition.isCommonPositionType(pos)) {\r\n return Coord2D.fromCommonPosition(pos);\r\n }\r\n else if (Coord2D.isCoord2DPosition(pos)) {\r\n return pos;\r\n }\r\n else if (Align.isAlignPosition(pos)) {\r\n return Coord2D.fromAlignPosition(pos);\r\n }\r\n else if (typeof pos === \"object\"\r\n && [\"x\", \"y\", \"xoffset\", \"yoffset\"].some(key => key in pos)) {\r\n const position = pos;\r\n return new Coord2D(position);\r\n }\r\n else {\r\n throw new Error(\"Invalid position type\");\r\n }\r\n }\r\n static orUnknown(arg) {\r\n return (PositionUtils.isUnknown(arg) || arg === undefined) ? PositionUtils.Unknown : arg;\r\n }\r\n static mergePosition(a, b) {\r\n const aPos = this.toCoord2D(a);\r\n const bPos = this.toCoord2D(b);\r\n return Coord2D.merge(aPos, bPos);\r\n }\r\n static serializePosition(pos) {\r\n const coord = this.toCoord2D(pos);\r\n return {\r\n x: PositionUtils.isUnknown(coord.x) ? 0 : coord.x,\r\n y: PositionUtils.isUnknown(coord.y) ? 0 : coord.y,\r\n xoffset: PositionUtils.isUnknown(coord.xoffset) ? 0 : coord.xoffset,\r\n yoffset: PositionUtils.isUnknown(coord.yoffset) ? 0 : coord.yoffset,\r\n };\r\n }\r\n static isRawCommonPositionType(arg) {\r\n return Object.values(CommonPositionType).includes(arg);\r\n }\r\n static isRawCoord2DPosition(arg) {\r\n return typeof arg === \"object\" && (\"x\" in arg || \"y\" in arg || \"xoffset\" in arg || \"yoffset\" in arg);\r\n }\r\n static isRawAlignPosition(arg) {\r\n return typeof arg === \"object\" && (\"xalign\" in arg || \"yalign\" in arg || \"xoffset\" in arg || \"yoffset\" in arg);\r\n }\r\n static isRawPosition(arg) {\r\n return this.isRawCommonPositionType(arg) || this.isRawCoord2DPosition(arg) || this.isRawAlignPosition(arg);\r\n }\r\n static isPosition(arg) {\r\n return arg instanceof CommonPosition || arg instanceof Coord2D || arg instanceof Align;\r\n }\r\n static rawPositionToCoord2D(arg) {\r\n if (this.isRawCommonPositionType(arg)) {\r\n return Coord2D.fromCommonPosition(new CommonPosition(arg));\r\n }\r\n else if (this.isRawCoord2DPosition(arg)) {\r\n return new Coord2D(arg);\r\n }\r\n else if (this.isRawAlignPosition(arg)) {\r\n return Coord2D.fromAlignPosition(arg);\r\n }\r\n throw new Error(\"Invalid position type\");\r\n }\r\n static tryParsePosition(arg) {\r\n if (this.isPosition(arg)) {\r\n return arg;\r\n }\r\n if (this.isRawPosition(arg)) {\r\n return this.rawPositionToCoord2D(arg);\r\n }\r\n throw new Error(\"Invalid position type\");\r\n }\r\n}\r\nPositionUtils.Unknown = Symbol(\"Unknown\");\r\nexport class CommonPosition {\r\n static isCommonPositionType(arg) {\r\n return arg instanceof CommonPosition;\r\n }\r\n /**\r\n * Create a new CommonPosition instance\r\n * @example\r\n * ```ts\r\n * new CommonPosition(CommonPosition.Positions.Center);\r\n * new CommonPosition(\"center\");\r\n * ```\r\n */\r\n constructor(position) {\r\n this.position = position;\r\n }\r\n toCSS() {\r\n return {\r\n x: CommonPositions[this.position],\r\n y: \"50%\",\r\n xoffset: 0,\r\n yoffset: 0,\r\n };\r\n }\r\n}\r\nCommonPosition.Positions = CommonPositionType;\r\nexport class Coord2D {\r\n static isCoord2DPosition(arg) {\r\n return arg instanceof Coord2D;\r\n }\r\n static fromCommonPosition(position) {\r\n return new Coord2D({\r\n x: CommonPositions[position.position],\r\n y: \"50%\",\r\n });\r\n }\r\n static fromAlignPosition(position) {\r\n return new Coord2D({\r\n x: (PositionUtils.isUnknown(position.xalign)) ? PositionUtils.Unknown : `${position.xalign * 100}%`,\r\n y: (PositionUtils.isUnknown(position.yalign)) ? PositionUtils.Unknown : `${position.yalign * 100}%`,\r\n xoffset: position.xoffset,\r\n yoffset: position.yoffset\r\n });\r\n }\r\n static merge(a, b) {\r\n return new Coord2D({\r\n x: ((PositionUtils.isUnknown(b.x)) ? a.x : b.x),\r\n y: ((PositionUtils.isUnknown(b.y)) ? a.y : b.y),\r\n xoffset: ((PositionUtils.isUnknown(b.xoffset)) ? a.xoffset : b.xoffset),\r\n yoffset: ((PositionUtils.isUnknown(b.yoffset)) ? a.yoffset : b.yoffset),\r\n });\r\n }\r\n constructor(arg0, y) {\r\n if (typeof arg0 === \"object\") {\r\n this.x = PositionUtils.orUnknown(arg0.x);\r\n this.y = PositionUtils.orUnknown(arg0.y);\r\n this.xoffset = PositionUtils.orUnknown(arg0.xoffset);\r\n this.yoffset = PositionUtils.orUnknown(arg0.yoffset);\r\n }\r\n else {\r\n this.x = PositionUtils.orUnknown(arg0);\r\n this.y = PositionUtils.orUnknown(y);\r\n this.xoffset = PositionUtils.Unknown;\r\n this.yoffset = PositionUtils.Unknown;\r\n }\r\n }\r\n toCSS() {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n xoffset: this.xoffset,\r\n yoffset: this.yoffset,\r\n };\r\n }\r\n}\r\nexport class Align {\r\n static isAlignPosition(arg) {\r\n return arg instanceof Align;\r\n }\r\n constructor(arg0, yalign) {\r\n if (typeof arg0 === \"object\") {\r\n this.xalign = PositionUtils.orUnknown(arg0.xalign);\r\n this.yalign = PositionUtils.orUnknown(arg0.yalign);\r\n this.xoffset = PositionUtils.orUnknown(arg0.xoffset);\r\n this.yoffset = PositionUtils.orUnknown(arg0.yoffset);\r\n }\r\n else {\r\n this.xalign = PositionUtils.orUnknown(arg0);\r\n this.yalign = PositionUtils.orUnknown(yalign);\r\n this.xoffset = PositionUtils.Unknown;\r\n this.yoffset = PositionUtils.Unknown;\r\n }\r\n }\r\n toCSS() {\r\n return {\r\n x: (PositionUtils.isUnknown(this.xalign)) ? this.xalign : `${this.xalign * 100}%`,\r\n y: (PositionUtils.isUnknown(this.yalign)) ? this.yalign : `${this.yalign * 100}%`,\r\n xoffset: this.xoffset,\r\n yoffset: this.yoffset,\r\n };\r\n }\r\n}\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nimport { ImagePosition, } from \"@core/types\";\r\nimport { deepMerge, sleep, toHex } from \"@lib/util/data\";\r\nimport { Align, CommonPosition, Coord2D, PositionUtils } from \"./position\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nimport { animate } from \"framer-motion/dom\";\r\nconst CommonImagePositionMap = {\r\n [ImagePosition.left]: \"25.33%\",\r\n [ImagePosition.center]: \"50%\",\r\n [ImagePosition.right]: \"75.66%\"\r\n};\r\nexport class Transform {\r\n /**@internal */\r\n static isPosition(position) {\r\n return CommonPosition.isCommonPositionType(position) || Coord2D.isCoord2DPosition(position) || Align.isAlignPosition(position);\r\n }\r\n /**@internal */\r\n static positionToCSS(position, invertY, invertX) {\r\n if (!position) {\r\n return {};\r\n }\r\n if (PositionUtils.isRawPosition(position)) {\r\n return PositionUtils.D2PositionToCSS(PositionUtils.rawPositionToCoord2D(position), invertX, invertY);\r\n }\r\n return PositionUtils.D2PositionToCSS(position.toCSS(), invertX, invertY);\r\n }\r\n /**@internal */\r\n static backgroundToCSS(background) {\r\n if (background === null || background === undefined)\r\n return {};\r\n if (Utils.isStaticImageData(background)) {\r\n return { backgroundImage: `url(${background.src})` };\r\n }\r\n if (typeof background === \"string\") {\r\n return { backgroundColor: background };\r\n }\r\n if ([\"r\", \"g\", \"b\"].every(key => key in background)) {\r\n return { backgroundColor: toHex(background) };\r\n }\r\n const url = background.url;\r\n return { backgroundImage: \"url(\" + url + \")\" };\r\n }\r\n /**@internal */\r\n static mergePosition(a, b) {\r\n if (!a && !b) {\r\n throw new Error(\"No position found.\");\r\n }\r\n if (!a || !b) {\r\n return PositionUtils.toCoord2D(PositionUtils.tryParsePosition(a || b));\r\n }\r\n return PositionUtils.mergePosition(PositionUtils.tryParsePosition(a), PositionUtils.tryParsePosition(b));\r\n }\r\n /**@internal */\r\n static mergeState(state, props) {\r\n const position = this.mergePosition(state[\"position\"], props[\"position\"]);\r\n return Object.assign(Object.assign({}, deepMerge(state, props)), { position });\r\n }\r\n /**@internal */\r\n static propToCSSTransform(state, prop, { translate = [], scale = 1, } = {}) {\r\n var _a;\r\n if (!state.getLastScene()) {\r\n throw new Error(\"No scene found in state, make sure you called \\\"scene.activate()\\\" before this method.\");\r\n }\r\n const propScale = (prop[\"scale\"] !== undefined) ? prop[\"scale\"] : 1;\r\n const { invertY, invertX } = ((_a = state.getLastScene()) === null || _a === void 0 ? void 0 : _a.config) || {};\r\n const Transforms = [\r\n `translate(${translate[0] || ((invertX ? \"\" : \"-\") + \"50%\")}, ${translate[1] || ((invertY ? \"\" : \"-\") + \"50%\")})`,\r\n (prop[\"rotation\"] !== undefined) && `rotate(${prop[\"rotation\"]}deg)`,\r\n `scale(${propScale * scale})`,\r\n ];\r\n return Transforms.filter(Boolean).join(\" \");\r\n }\r\n constructor(arg0, arg1) {\r\n /**@internal */\r\n this.sequences = [];\r\n /**@internal */\r\n this.control = null;\r\n /**@internal */\r\n this.transformers = {};\r\n if (Array.isArray(arg0)) {\r\n this.sequences.push(...arg0);\r\n this.sequenceOptions =\r\n Object.assign({}, Transform.defaultSequenceOptions, arg1 || {});\r\n }\r\n else {\r\n const [props, options] = [arg0, (arg1 || Transform.defaultOptions)];\r\n this.sequences.push({ props, options: options || {} });\r\n this.sequenceOptions =\r\n Object.assign({}, Transform.defaultSequenceOptions);\r\n }\r\n }\r\n /**\r\n * @internal\r\n * @example\r\n * ```ts\r\n * const [scope, animate] = useAnimation();\r\n * transform.animate(scope, animate);\r\n * return <div ref={scope} />\r\n * ```\r\n */\r\n animate({ scope, overwrites, target }, gameState, after) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve) => {\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n if (!this.sequenceOptions.sync) {\r\n resolve();\r\n }\r\n for (let i = 0; i < this.sequenceOptions.repeat; i++) {\r\n for (const { props, options } of this.sequences) {\r\n const initState = deepMerge({}, this.propToCSS(gameState, target.state));\r\n if (!scope.current) {\r\n throw new Error(\"No scope found when animating.\");\r\n }\r\n const current = scope.current;\r\n Object.assign(current[\"style\"], initState);\r\n target.state = Transform.mergeState(target.state, props);\r\n // Initiate animation\r\n const animation = animate(current, this.propToCSS(gameState, target.state, overwrites), this.optionsToFramerMotionOptions(options) || {});\r\n this.setControl(animation);\r\n gameState.logger.debug(\"Animating\", this.propToCSS(gameState, target.state, overwrites));\r\n // Wait for animation to finish\r\n if ((options === null || options === void 0 ? void 0 : options.sync) === false) {\r\n animation.then(() => {\r\n Object.assign(current[\"style\"], this.propToCSS(gameState, target.state, overwrites));\r\n this.setControl(null);\r\n });\r\n }\r\n else {\r\n yield new Promise(r => animation.then(() => r()));\r\n Object.assign(current[\"style\"], this.propToCSS(gameState, target.state, overwrites));\r\n this.setControl(null);\r\n }\r\n }\r\n }\r\n yield sleep(2);\r\n this.setControl(null);\r\n resolve();\r\n if (after) {\r\n after(target.state);\r\n }\r\n }))();\r\n });\r\n });\r\n }\r\n /**\r\n * @example\r\n * ```ts\r\n * transform\r\n * .repeat(2)\r\n * .repeat(3)\r\n * // repeat 6 times\r\n * ```\r\n */\r\n repeat(n) {\r\n this.sequenceOptions.repeat *= n;\r\n return this;\r\n }\r\n /**\r\n * overwrite a transformer\r\n *\r\n * **we don't recommend using this method**\r\n * @example\r\n * ```ts\r\n * transform.overwrite(\"position\", (value) => {\r\n * return {left: value.x, top: value.y};\r\n * });\r\n * ```\r\n */\r\n overwrite(key, transformer) {\r\n this.transformers[key] = transformer;\r\n return this;\r\n }\r\n /**@internal */\r\n propToCSS(state, prop, overwrites) {\r\n var _a;\r\n const { invertY, invertX } = ((_a = state.getLastScene()) === null || _a === void 0 ? void 0 : _a.config) || {};\r\n const FieldHandlers = {\r\n \"position\": (value) => Transform.positionToCSS(value, invertY, invertX),\r\n \"backgroundColor\": (value) => Transform.backgroundToCSS(value),\r\n \"backgroundOpacity\": (value) => ({ opacity: value }),\r\n \"opacity\": (value) => ({ opacity: value }),\r\n \"scale\": () => ({}),\r\n \"rotation\": () => ({}),\r\n \"display\": () => ({}),\r\n \"src\": () => ({}),\r\n \"fontColor\": (value) => {\r\n if (typeof value === \"string\") {\r\n return { color: value };\r\n }\r\n return { color: toHex(value) };\r\n },\r\n };\r\n const props = {};\r\n props.transform = Transform.propToCSSTransform(state, prop);\r\n if (this.transformers[\"transform\"]) {\r\n Object.assign(props, this.transformers[\"transform\"](prop));\r\n }\r\n if (overwrites && overwrites[\"transform\"]) {\r\n Object.assign(props, overwrites[\"transform\"](prop));\r\n }\r\n // @todo: refactor this\r\n for (const key in prop) {\r\n if (!Object.prototype.hasOwnProperty.call(prop, key))\r\n continue;\r\n if (overwrites && overwrites[key]) {\r\n Object.assign(props, overwrites[key](prop[key]));\r\n }\r\n else if (this.transformers[key]) {\r\n Object.assign(props, this.transformers[key](prop[key]));\r\n }\r\n else if (FieldHandlers[key]) {\r\n Object.assign(props, FieldHandlers[key](prop[key]));\r\n }\r\n }\r\n return props;\r\n }\r\n /**@internal */\r\n optionsToFramerMotionOptions(options) {\r\n if (!options) {\r\n return options;\r\n }\r\n const { duration, ease } = options;\r\n return {\r\n duration: duration ? (duration / 1000) : 0,\r\n ease,\r\n };\r\n }\r\n /**@internal */\r\n setControl(control) {\r\n this.control = control;\r\n return this;\r\n }\r\n /**@internal */\r\n getControl() {\r\n return this.control;\r\n }\r\n copy() {\r\n return new Transform(this.sequences, this.sequenceOptions);\r\n }\r\n}\r\n/**@internal */\r\nTransform.defaultSequenceOptions = {\r\n sync: true,\r\n repeat: 1,\r\n};\r\n/**@internal */\r\nTransform.defaultOptions = {\r\n duration: 0,\r\n ease: \"linear\",\r\n};\r\n/**@internal */\r\nTransform.CommonImagePositionMap = CommonImagePositionMap;\r\n","import { EventDispatcher } from \"@lib/util/data\";\r\nimport { TransitionEventTypes } from \"./type\";\r\nimport { animate } from \"framer-motion/dom\";\r\nexport class BaseTransition {\r\n constructor() {\r\n this.events = new EventDispatcher();\r\n }\r\n start(_onComplete) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n toElementProps() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n copy() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n requestAnimation({ start, end, duration }, { onComplete, onUpdate }, options) {\r\n this.events.emit(TransitionEventTypes.start, null);\r\n this.controller = animate(start, end, Object.assign({ duration: duration / 1000, onUpdate: (value) => {\r\n if (onUpdate) {\r\n onUpdate(value);\r\n }\r\n this.events.emit(TransitionEventTypes.update, this.toElementProps());\r\n }, onComplete: () => {\r\n this.controller = undefined;\r\n this.events.emit(TransitionEventTypes.end, null);\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n } }, options));\r\n return this.controller;\r\n }\r\n}\r\nexport class BaseImageTransition extends BaseTransition {\r\n setSrc(_src) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n copy() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\nexport class BaseTextTransition extends BaseTransition {\r\n copy() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n","import { BaseImageTransition } from \"../baseTransitions\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nimport { toHex } from \"@lib/util/data\";\r\n/**\r\n * @class Dissolve\r\n * @implements ITransition\r\n * @extends BaseTransition\r\n * @description Dissolve transition effect\r\n */\r\nexport class Dissolve extends BaseImageTransition {\r\n /**\r\n * Image will dissolve from one image to another\r\n */\r\n constructor(duration = 1000, easing) {\r\n super();\r\n this.state = {\r\n opacity: 0,\r\n };\r\n this.duration = duration;\r\n this.easing = easing;\r\n }\r\n setSrc(src) {\r\n this.src = src;\r\n return this;\r\n }\r\n start(onComplete) {\r\n this.state.opacity = Dissolve.Frames[0];\r\n this.requestAnimation({\r\n start: Dissolve.Frames[0],\r\n end: Dissolve.Frames[1],\r\n duration: this.duration\r\n }, {\r\n onComplete: () => {\r\n this.state.opacity = Dissolve.Frames[1];\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n },\r\n onUpdate: (value) => {\r\n this.state.opacity = value;\r\n },\r\n }, {\r\n ease: this.easing,\r\n });\r\n }\r\n toElementProps() {\r\n return [\r\n {\r\n style: { opacity: this.state.opacity },\r\n },\r\n {\r\n style: {\r\n opacity: 1 - this.state.opacity,\r\n backgroundColor: Utils.isImageColor(this.src) ? toHex(this.src) : \"\",\r\n },\r\n src: Utils.isImageSrc(this.src) ? Utils.srcToString(this.src) : \"\",\r\n },\r\n ];\r\n }\r\n copy() {\r\n return new Dissolve(this.duration, this.easing).setSrc(this.src);\r\n }\r\n}\r\nDissolve.Frames = [1, 0];\r\n","import { BaseImageTransition } from \"../baseTransitions\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nimport { toHex } from \"@lib/util/data\";\r\nexport class Fade extends BaseImageTransition {\r\n /**\r\n * The current image will fade out, and the next image will fade in\r\n */\r\n constructor(duration = 1000, ease) {\r\n super();\r\n this.state = {\r\n opacity: 1,\r\n };\r\n this.duration = duration;\r\n this.easing = ease;\r\n }\r\n setSrc(src) {\r\n this.src = src;\r\n return this;\r\n }\r\n start(onComplete) {\r\n this.state.opacity = Fade.Frames[0];\r\n this.requestAnimation({\r\n start: Fade.Frames[0],\r\n end: Fade.Frames[1],\r\n duration: this.duration\r\n }, {\r\n onComplete: () => {\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n this.state.opacity = Fade.Frames[1];\r\n },\r\n onUpdate: (value) => {\r\n this.state.opacity = value;\r\n }\r\n }, {\r\n ease: this.easing,\r\n });\r\n }\r\n toElementProps() {\r\n return [\r\n {\r\n style: {\r\n opacity: 1,\r\n },\r\n },\r\n {\r\n style: {\r\n opacity: this.state.opacity,\r\n backgroundColor: Utils.isImageColor(this.src) ? toHex(this.src) : \"\",\r\n },\r\n src: Utils.isImageSrc(this.src) ? Utils.srcToString(this.src) : \"\",\r\n },\r\n ];\r\n }\r\n copy() {\r\n return new Fade(this.duration, this.easing).setSrc(this.src);\r\n }\r\n}\r\nFade.Frames = [0, 1];\r\n","import { BaseImageTransition } from \"@core/elements/transition/baseTransitions\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nimport { getCallStack, toHex } from \"@lib/util/data\";\r\nexport class FadeIn extends BaseImageTransition {\r\n /**\r\n * The next image will fade-in in a direction\r\n * @param direction The direction the image will move from\r\n * @param offset The distance the image will move (in pixels)\r\n * @param duration The duration of the transition\r\n * @param easing\r\n */\r\n constructor(direction, offset, duration = 1000, easing) {\r\n super();\r\n this.state = {\r\n opacity: 0,\r\n transform: \"\"\r\n };\r\n this.duration = duration;\r\n this.direction = direction;\r\n this.offset = offset;\r\n this.easing = easing;\r\n this.__stack = getCallStack();\r\n }\r\n setSrc(src) {\r\n this.src = src;\r\n return this;\r\n }\r\n start(onComplete) {\r\n if (!this.src) {\r\n throw new Error(\"src is required, but not provided\\nat:\\n\" + this.__stack);\r\n }\r\n this.state.opacity = 0;\r\n this.state.transform = this.getInitialTransform();\r\n this.requestAnimation({\r\n start: 0,\r\n end: 1,\r\n duration: this.duration\r\n }, {\r\n onComplete,\r\n onUpdate: (value) => {\r\n this.state.opacity = value;\r\n this.state.transform = this.getTransform(value);\r\n }\r\n }, {\r\n ease: this.easing,\r\n });\r\n }\r\n toElementProps() {\r\n return [\r\n {\r\n style: {\r\n opacity: 1,\r\n }\r\n },\r\n {\r\n style: {\r\n opacity: this.state.opacity,\r\n transform: this.state.transform,\r\n backgroundColor: Utils.isImageColor(this.src) ? toHex(this.src) : \"\",\r\n },\r\n src: Utils.isImageSrc(this.src) ? Utils.srcToString(this.src) : \"\",\r\n }\r\n ];\r\n }\r\n copy() {\r\n return new FadeIn(this.direction, this.offset, this.duration, this.easing).setSrc(this.src);\r\n }\r\n getInitialTransform() {\r\n switch (this.direction) {\r\n case \"left\":\r\n return `translateX(-${this.offset}px)`;\r\n case \"right\":\r\n return `translateX(${this.offset}px)`;\r\n case \"top\":\r\n return `translateY(-${this.offset}px)`;\r\n case \"bottom\":\r\n return `translateY(${this.offset}px)`;\r\n default:\r\n return \"\";\r\n }\r\n }\r\n getTransform(progress) {\r\n switch (this.direction) {\r\n case \"left\":\r\n return `translateX(${(1 - progress) * -this.offset}px)`;\r\n case \"right\":\r\n return `translateX(${(1 - progress) * this.offset}px)`;\r\n case \"top\":\r\n return `translateY(${(1 - progress) * -this.offset}px)`;\r\n case \"bottom\":\r\n return `translateY(${(1 - progress) * this.offset}px)`;\r\n default:\r\n return \"\";\r\n }\r\n }\r\n}\r\n","import { BaseTextTransition } from \"@core/elements/transition/baseTransitions\";\r\nexport class FontSizeTransition extends BaseTextTransition {\r\n constructor(start, end, duration = 1000, easing) {\r\n super();\r\n this.state = {\r\n fontSize: 0,\r\n };\r\n this.startValue = start;\r\n this.endValue = end;\r\n this.duration = duration;\r\n this.easing = easing;\r\n }\r\n start(onComplete) {\r\n this.state.fontSize = this.startValue;\r\n this.requestAnimation({\r\n start: this.startValue,\r\n end: this.endValue,\r\n duration: this.duration\r\n }, {\r\n onComplete: () => {\r\n this.state.fontSize = this.endValue;\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n },\r\n onUpdate: (value) => {\r\n this.state.fontSize = value;\r\n },\r\n }, {\r\n ease: this.easing,\r\n });\r\n }\r\n toElementProps() {\r\n return [\r\n {\r\n style: { fontSize: this.state.fontSize },\r\n },\r\n ];\r\n }\r\n copy() {\r\n return new FontSizeTransition(this.startValue, this.endValue, this.duration, this.easing);\r\n }\r\n}\r\nFontSizeTransition.Frames = [1, 0];\r\n","export const TransitionEventTypes = {\r\n \"start\": \"start\",\r\n \"update\": \"update\",\r\n \"end\": \"end\",\r\n};\r\n","import { Awaitable, deepMerge, Lock, MultiLock } from \"@lib/util/data\";\r\nimport { Namespace, Storable } from \"@core/store/storable\";\r\nimport { GameState } from \"@player/gameState\";\r\nimport { DefaultElements } from \"@player/elements/elements\";\r\nvar GameSettingsNamespace;\r\n(function (GameSettingsNamespace) {\r\n GameSettingsNamespace[\"game\"] = \"game\";\r\n})(GameSettingsNamespace || (GameSettingsNamespace = {}));\r\nexport class Game {\r\n /**\r\n * Create a new game\r\n * @param config - Game configuration\r\n */\r\n constructor(config) {\r\n /**@internal */\r\n this.liveGame = null;\r\n this.config = deepMerge(Game.DefaultConfig, config);\r\n }\r\n /**\r\n * Override the default component\r\n */\r\n useComponent(key, components) {\r\n if (!Object.keys(DefaultElements).includes(key)) {\r\n throw new Error(`Invalid key ${key}`);\r\n }\r\n if (typeof components !== \"function\") {\r\n throw new Error(`Invalid component for key ${key}`);\r\n }\r\n this.config.elements[key].use = components;\r\n return this;\r\n }\r\n /* Live Game */\r\n getLiveGame() {\r\n if (!this.liveGame) {\r\n const liveGame = this.createLiveGame();\r\n this.liveGame = liveGame;\r\n return liveGame;\r\n }\r\n return this.liveGame;\r\n }\r\n /**@internal */\r\n createLiveGame() {\r\n return new LiveGame(this);\r\n }\r\n}\r\n/**@internal */\r\nGame.defaultSettings = {\r\n volume: 1,\r\n};\r\nGame.ComponentTypes = {\r\n say: \"say\",\r\n menu: \"menu\",\r\n};\r\n// noinspection MagicNumberJS\r\n/**@internal */\r\nGame.DefaultConfig = {\r\n player: {\r\n contentContainerId: \"__narraleaf_content\",\r\n aspectRatio: 16 / 9,\r\n minWidth: 800,\r\n minHeight: 450,\r\n width: 1920,\r\n height: 1080,\r\n skipKey: [\"Control\"],\r\n skipInterval: 100,\r\n ratioUpdateInterval: 50,\r\n },\r\n elements: {\r\n say: {\r\n nextKey: [\" \"],\r\n textInterval: 50,\r\n use: DefaultElements.say,\r\n useAspectScale: true,\r\n },\r\n img: {\r\n slowLoadWarning: true,\r\n slowLoadThreshold: 2000,\r\n allowSkipTransform: true,\r\n allowSkipTransition: true,\r\n },\r\n menu: {\r\n use: DefaultElements.menu,\r\n },\r\n background: {\r\n allowSkipTransform: true,\r\n allowSkipTransition: false,\r\n },\r\n text: {\r\n allowSkipTransform: true,\r\n allowSkipTransition: true,\r\n width: 1920,\r\n height: 1080 * 0.2,\r\n },\r\n },\r\n elementStyles: {\r\n say: {\r\n contentContainerClassName: \"\",\r\n containerClassName: \"\",\r\n nameTextClassName: \"\",\r\n textContainerClassName: \"\",\r\n textSpanClassName: \"\",\r\n rubyClassName: \"\",\r\n },\r\n menu: {\r\n containerClassName: \"\",\r\n choiceButtonClassName: \"\",\r\n choiceButtonTextClassName: \"\",\r\n }\r\n },\r\n app: {\r\n debug: false,\r\n logger: {\r\n log: false,\r\n info: false,\r\n warn: true,\r\n error: true,\r\n debug: false,\r\n trace: false,\r\n },\r\n inspector: false,\r\n }\r\n};\r\nGame.GameSettingsNamespace = GameSettingsNamespace;\r\nexport class LiveGame {\r\n /**@internal */\r\n constructor(game) {\r\n this.gameLock = new MultiLock();\r\n /**@internal */\r\n this.currentSavedGame = null;\r\n /**@internal */\r\n this.story = null;\r\n /**@internal */\r\n this.lockedAwaiting = null;\r\n /**@internal */\r\n this.gameState = undefined;\r\n /**@internal */\r\n this._lockedCount = 0;\r\n /**@internal */\r\n this.currentAction = null;\r\n /**@internal */\r\n this._nextLock = new Lock();\r\n this.game = game;\r\n this.storable = new Storable();\r\n this.initNamespaces();\r\n }\r\n /* Store */\r\n /**@internal */\r\n initNamespaces() {\r\n this.storable.clear().addNamespace(new Namespace(LiveGame.GameSpacesKey.game, LiveGame.DefaultNamespaces.game));\r\n return this;\r\n }\r\n getStorable() {\r\n return this.storable;\r\n }\r\n /* Game */\r\n /**@internal */\r\n loadStory(story) {\r\n this.story = story.constructStory();\r\n return this;\r\n }\r\n /**\r\n * Serialize the current game state\r\n *\r\n * You can use this to save the game state to a file or a database\r\n *\r\n * Note: Even if you change just a single line of script, the saved game might not be compatible with the new version\r\n */\r\n serialize() {\r\n var _a, _b, _c;\r\n if (!this.gameState) {\r\n throw new Error(\"No game state\");\r\n }\r\n const gameState = this.gameState;\r\n const story = this.story;\r\n if (!story) {\r\n throw new Error(\"No story loaded\");\r\n }\r\n // get all element state\r\n const store = this.storable.toData();\r\n const stage = gameState.toData();\r\n const currentAction = ((_a = this.getCurrentAction()) === null || _a === void 0 ? void 0 : _a.getId()) || null;\r\n const elementStates = story.getAllElementStates();\r\n return {\r\n name: ((_b = this.currentSavedGame) === null || _b === void 0 ? void 0 : _b.name) || \"\",\r\n meta: {\r\n created: ((_c = this.currentSavedGame) === null || _c === void 0 ? void 0 : _c.meta.created) || Date.now(),\r\n updated: Date.now(),\r\n },\r\n game: {\r\n store,\r\n stage,\r\n currentAction,\r\n elementStates,\r\n }\r\n };\r\n }\r\n /**\r\n * Load a saved game\r\n *\r\n * Note: Even if you change just a single line of script, the saved game might not be compatible with the new version\r\n *\r\n * After calling this method, the current game state will be lost, and the stage will trigger force reset\r\n */\r\n deserialize(savedGame) {\r\n var _a;\r\n if (!this.gameState) {\r\n throw new Error(\"No game state\");\r\n }\r\n const gameState = this.gameState;\r\n const story = this.story;\r\n if (!story) {\r\n throw new Error(\"No story loaded\");\r\n }\r\n this.reset({ gameState });\r\n gameState.stage.forceUpdate();\r\n const actionMaps = new Map();\r\n const elementMaps = new Map();\r\n const { game: { store, stage, elementStates, currentAction, } } = savedGame;\r\n // construct maps\r\n story.forEachChild(((_a = story.entryScene) === null || _a === void 0 ? void 0 : _a.sceneRoot) || [], action => {\r\n actionMaps.set(action.getId(), action);\r\n elementMaps.set(action.callee.getId(), action.callee);\r\n });\r\n // restore storable\r\n this.storable.load(store);\r\n // restore elements\r\n elementStates.forEach(({ id, data }) => {\r\n gameState.logger.debug(\"restore element\", id);\r\n const element = elementMaps.get(id);\r\n if (!element) {\r\n throw new Error(\"Element not found, id: \" + id + \"\\nNarraLeaf cannot find the element with the id from the saved game\");\r\n }\r\n element.reset();\r\n element.fromData(data);\r\n });\r\n // restore game state\r\n this.currentSavedGame = savedGame;\r\n gameState.loadData(stage, elementMaps);\r\n if (currentAction) {\r\n const action = actionMaps.get(currentAction);\r\n if (!action) {\r\n throw new Error(\"Action not found, id: \" + currentAction + \"\\nNarraLeaf cannot find the action with the id from the saved game\");\r\n }\r\n this.currentAction = action;\r\n }\r\n gameState.stage.forceUpdate();\r\n gameState.stage.next();\r\n }\r\n /**\r\n * Start a new game\r\n */\r\n newGame() {\r\n var _a, _b, _c;\r\n if (!this.gameState) {\r\n throw new Error(\"No game state\");\r\n }\r\n const gameState = this.gameState;\r\n this.reset({ gameState });\r\n this.initNamespaces();\r\n const newGame = this.getNewSavedGame();\r\n newGame.name = \"NewGame-\" + Date.now();\r\n this.currentSavedGame = newGame;\r\n const elements = (_a = this.story) === null || _a === void 0 ? void 0 : _a.getAllElementMap(((_c = (_b = this.story) === null || _b === void 0 ? void 0 : _b.entryScene) === null || _c === void 0 ? void 0 : _c.sceneRoot) || []);\r\n if (elements) {\r\n elements.forEach((element) => {\r\n gameState.logger.debug(\"reset element\", element);\r\n element.reset();\r\n });\r\n }\r\n else {\r\n gameState.logger.warn(\"No elements found\");\r\n }\r\n gameState.stage.forceUpdate();\r\n gameState.stage.next();\r\n return this;\r\n }\r\n /**@internal */\r\n reset({ gameState }) {\r\n var _a, _b;\r\n if (this.lockedAwaiting) {\r\n this.lockedAwaiting.abort();\r\n }\r\n this.currentAction = ((_b = (_a = this.story) === null || _a === void 0 ? void 0 : _a.entryScene) === null || _b === void 0 ? void 0 : _b.sceneRoot) || null;\r\n this.lockedAwaiting = null;\r\n this.currentSavedGame = null;\r\n gameState.forceReset();\r\n }\r\n /**@internal */\r\n getCurrentAction() {\r\n return this.currentAction;\r\n }\r\n /**@internal */\r\n setCurrentAction(action) {\r\n this.currentAction = action;\r\n return this;\r\n }\r\n /**@internal */\r\n next(state) {\r\n var _a, _b;\r\n if (this._nextLock.isLocked()) {\r\n return null;\r\n }\r\n this._nextLock.lock();\r\n if (this.gameLock.isLocked()) {\r\n return this.gameLock;\r\n }\r\n if (!this.story) {\r\n throw new Error(\"No story loaded\");\r\n }\r\n if (this.lockedAwaiting) {\r\n if (!this.lockedAwaiting.solved) {\r\n this._lockedCount++;\r\n if (this._lockedCount > 1000) {\r\n // sometimes react will make it stuck and enter a dead cycle\r\n // that's not cool, so we need to throw an error to break it\r\n throw new Error(\"LiveGame locked: dead cycle detected\\nPlease refresh the page\");\r\n }\r\n this._nextLock.unlock();\r\n return this.lockedAwaiting;\r\n }\r\n const next = this.lockedAwaiting.result;\r\n this.currentAction = ((_a = next === null || next === void 0 ? void 0 : next.node) === null || _a === void 0 ? void 0 : _a.action) || null;\r\n state.logger.debug(\"next action\", next);\r\n this.lockedAwaiting = null;\r\n this._nextLock.unlock();\r\n return next || null;\r\n }\r\n if (!this.currentAction) {\r\n state.events.emit(GameState.EventTypes[\"event:state.end\"]);\r\n state.logger.warn(\"LiveGame\", \"No current action\"); // Congrats, you've reached the end of the story\r\n this._nextLock.unlock();\r\n return null;\r\n }\r\n const nextAction = this.currentAction.executeAction(state);\r\n if (Awaitable.isAwaitable(nextAction)) {\r\n this.lockedAwaiting = nextAction;\r\n this._nextLock.unlock();\r\n return nextAction;\r\n }\r\n state.logger.debug(\"next action\", nextAction);\r\n this._lockedCount = 0;\r\n this.currentAction = ((_b = nextAction.node) === null || _b === void 0 ? void 0 : _b.action) || null;\r\n this._nextLock.unlock();\r\n return nextAction;\r\n }\r\n /**@internal */\r\n abortAwaiting() {\r\n var _a;\r\n if (this.lockedAwaiting) {\r\n const next = this.lockedAwaiting.abort();\r\n this.currentAction = ((_a = next === null || next === void 0 ? void 0 : next.node) === null || _a === void 0 ? void 0 : _a.action) || null;\r\n this.lockedAwaiting = null;\r\n }\r\n }\r\n /**@internal */\r\n executeAction(state, action) {\r\n var _a;\r\n const nextAction = action.executeAction(state);\r\n if (Awaitable.isAwaitable(nextAction)) {\r\n return nextAction;\r\n }\r\n return ((_a = nextAction === null || nextAction === void 0 ? void 0 : nextAction.node) === null || _a === void 0 ? void 0 : _a.action) || null;\r\n }\r\n /**@internal */\r\n setGameState(state) {\r\n this.gameState = state;\r\n return this;\r\n }\r\n getGameState() {\r\n return this.gameState;\r\n }\r\n /**@internal */\r\n getNewSavedGame() {\r\n var _a, _b, _c;\r\n return {\r\n name: \"\",\r\n meta: {\r\n created: Date.now(),\r\n updated: Date.now(),\r\n },\r\n game: {\r\n store: {},\r\n stage: {\r\n scenes: [],\r\n },\r\n elementStates: [],\r\n currentAction: ((_c = (_b = (_a = this.story) === null || _a === void 0 ? void 0 : _a.entryScene) === null || _b === void 0 ? void 0 : _b.sceneRoot) === null || _c === void 0 ? void 0 : _c.getId()) || null,\r\n }\r\n };\r\n }\r\n}\r\nLiveGame.DefaultNamespaces = {\r\n game: {},\r\n};\r\nLiveGame.GameSpacesKey = {\r\n game: \"game\",\r\n};\r\nexport default {\r\n Game,\r\n LiveGame,\r\n};\r\n","import { deepMerge } from \"@lib/util/data\";\r\nexport class Namespace {\r\n static isSerializable(value) {\r\n if ([\"number\", \"string\", \"boolean\"].includes(typeof value)) {\r\n return true;\r\n }\r\n if (value instanceof Date) {\r\n return true;\r\n }\r\n if (value === null || value === undefined) {\r\n return true;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(Namespace.isSerializable);\r\n }\r\n if (typeof value === \"object\") {\r\n return Object.getPrototypeOf(value) === Object.prototype && Object.values(value).every(Namespace.isSerializable);\r\n }\r\n return false;\r\n }\r\n constructor(name, initContent, key) {\r\n this.name = name;\r\n this.key = key || name;\r\n this.content = deepMerge({}, initContent);\r\n }\r\n set(key, value) {\r\n if (!Namespace.isSerializable(value)) {\r\n console.warn(`Value \"${value}\" in key \"${String(key)}\" is not serializable, and will not be set\\nat namespace \"${this.name}\"`);\r\n this.content[key] = value;\r\n return this;\r\n }\r\n this.content[key] = value;\r\n return this;\r\n }\r\n get(key) {\r\n return this.content[key];\r\n }\r\n /**@internal */\r\n toData() {\r\n return this.serialize();\r\n }\r\n /**@internal */\r\n load(data) {\r\n if (!data) {\r\n console.warn(\"No data to load\");\r\n return;\r\n }\r\n this.content = data;\r\n }\r\n /**@internal */\r\n serialize() {\r\n const output = {};\r\n Object.entries(this.content).forEach(([key, value]) => {\r\n output[key] = this.wrap(value);\r\n });\r\n return output;\r\n }\r\n /**@internal */\r\n deserialize(data) {\r\n if (!data) {\r\n console.warn(\"No data to load\");\r\n return;\r\n }\r\n Object.entries(data).forEach(([key, value]) => {\r\n this.content[key] = this.unwrap(value);\r\n });\r\n }\r\n /**@internal */\r\n toTypeName(value) {\r\n if (value instanceof Date) {\r\n return \"date\";\r\n }\r\n return \"any\";\r\n }\r\n /**@internal */\r\n wrap(data) {\r\n const handlers = {\r\n any: (value) => ({ type: \"any\", data: value }),\r\n date: (value) => ({ type: \"date\", data: value.toString() }),\r\n };\r\n const type = this.toTypeName(data);\r\n return handlers[type](data);\r\n }\r\n /**@internal */\r\n unwrap(data) {\r\n const handlers = {\r\n any: (data) => data.data,\r\n date: (data) => new Date(data.data),\r\n };\r\n return handlers[data.type](data);\r\n }\r\n}\r\nexport class Storable {\r\n /**@internal */\r\n constructor() {\r\n /**@internal */\r\n this.namespaces = {};\r\n }\r\n addNamespace(namespace) {\r\n if (this.namespaces[namespace.key]) {\r\n console.warn(`Namespace ${namespace.key} already exists`);\r\n }\r\n this.namespaces[namespace.key] = namespace;\r\n return this;\r\n }\r\n getNamespace(key) {\r\n return this.namespaces[key];\r\n }\r\n setNamespace(key, namespace) {\r\n this.namespaces[key] = namespace;\r\n return this;\r\n }\r\n getNamespaces() {\r\n return this.namespaces;\r\n }\r\n keys() {\r\n return Object.keys(this.namespaces);\r\n }\r\n values() {\r\n return Object.values(this.namespaces);\r\n }\r\n entries() {\r\n return Object.entries(this.namespaces);\r\n }\r\n /**@internal */\r\n toData() {\r\n return this.entries().reduce((acc, [key, namespace]) => {\r\n acc[key] = namespace.toData();\r\n return acc;\r\n }, {});\r\n }\r\n /**@internal */\r\n load(data) {\r\n if (!data) {\r\n console.warn(\"No data to load\");\r\n return;\r\n }\r\n Object.entries(data).forEach(([key, content]) => {\r\n if (this.namespaces[key]) {\r\n this.namespaces[key].load(content);\r\n }\r\n else {\r\n console.warn(`Namespace ${key} not found in ${this.constructor.name}`);\r\n }\r\n });\r\n }\r\n /**@internal */\r\n clear() {\r\n this.namespaces = {};\r\n return this;\r\n }\r\n}\r\n","export const ImagePosition = {\r\n center: \"center\",\r\n left: \"left\",\r\n right: \"right\"\r\n};\r\n","import \"client-only\";\r\nimport \"@player/lib/styles/style.css\";\r\nimport clsx from \"clsx\";\r\nimport React, { useEffect, useReducer, useState } from \"react\";\r\nimport { Awaitable, MultiLock } from \"@lib/util/data\";\r\nimport Motion from \"@player/lib/Motion\";\r\nimport AspectRatio from \"@player/lib/AspectRatio\";\r\nimport Isolated from \"@player/lib/isolated\";\r\nimport { default as StageScene } from \"@player/elements/scene/Scene\";\r\nimport { usePreloaded } from \"@player/provider/preloaded\";\r\nimport { Preload } from \"@player/elements/preload/Preload\";\r\nimport { Preloaded } from \"@player/lib/Preloaded\";\r\nimport { GameState } from \"@player/gameState\";\r\nimport { useGame } from \"@player/provider/game-state\";\r\nimport { KeyEventAnnouncer } from \"@player/elements/player/KeyEventAnnouncer\";\r\nimport { flushSync } from \"react-dom\";\r\nimport Displayables from \"@player/elements/displayable/Displayables\";\r\nimport { ErrorBoundary } from \"@player/lib/ErrorBoundary\";\r\nimport SizeUpdateAnnouncer from \"@player/elements/player/SizeUpdateAnnouncer\";\r\nfunction handleAction(state, action) {\r\n return state.handle(action);\r\n}\r\nexport default function Player({ story, width, height, className, onReady, onEnd, }) {\r\n const [, update] = useReducer((x) => x + 1, 0);\r\n const { game } = useGame();\r\n const [state, dispatch] = useReducer(handleAction, new GameState(game, {\r\n update,\r\n forceUpdate: () => {\r\n state.logger.warn(\"Player\", \"force update\");\r\n flushSync(() => {\r\n update();\r\n });\r\n },\r\n next,\r\n dispatch: (action) => dispatch(action),\r\n }));\r\n const containerRef = React.createRef();\r\n const Say = game.config.elements.say.use;\r\n const Menu = game.config.elements.menu.use;\r\n function next() {\r\n let exited = false;\r\n while (!exited) {\r\n const nextResult = game.getLiveGame().next(state);\r\n if (!nextResult) {\r\n break;\r\n }\r\n if (Awaitable.isAwaitable(nextResult)) {\r\n exited = true;\r\n break;\r\n }\r\n if (nextResult instanceof MultiLock) {\r\n nextResult.nextUnlock().then(() => {\r\n next();\r\n });\r\n exited = true;\r\n break;\r\n }\r\n dispatch(nextResult);\r\n }\r\n state.stage.update();\r\n }\r\n useEffect(() => {\r\n game.getLiveGame().setGameState(state).loadStory(story);\r\n return () => {\r\n game.getLiveGame().setGameState(undefined);\r\n };\r\n }, [game]);\r\n useEffect(() => {\r\n let microTaskExecuted = false;\r\n const microTask = Promise.resolve().then(() => {\r\n microTaskExecuted = true;\r\n if (onReady) {\r\n onReady({\r\n game,\r\n gameState: state,\r\n liveGame: game.getLiveGame(),\r\n storable: game.getLiveGame().getStorable(),\r\n });\r\n }\r\n const lastScene = state.getLastScene();\r\n const events = [];\r\n if (lastScene) {\r\n events.push({\r\n type: \"event:scene.mount\",\r\n listener: lastScene.events.once(\"event:scene.mount\", () => {\r\n state.stage.next();\r\n })\r\n });\r\n }\r\n else {\r\n state.stage.next();\r\n }\r\n const gameStateEvents = state.events.onEvents([\r\n {\r\n type: GameState.EventTypes[\"event:state.end\"],\r\n listener: () => {\r\n if (onEnd) {\r\n onEnd({\r\n game,\r\n gameState: state,\r\n liveGame: game.getLiveGame(),\r\n storable: game.getLiveGame().getStorable(),\r\n });\r\n }\r\n }\r\n }\r\n ]);\r\n const gameKeyEvents = state.events.onEvents([\r\n {\r\n type: GameState.EventTypes[\"event:state.player.skip\"],\r\n listener: () => {\r\n game.getLiveGame().abortAwaiting();\r\n next();\r\n }\r\n }\r\n ]);\r\n state.stage.update();\r\n return () => {\r\n if (lastScene) {\r\n events.forEach(event => {\r\n lastScene.events.off(event.type, event.listener);\r\n });\r\n }\r\n gameStateEvents.cancel();\r\n gameKeyEvents.cancel();\r\n };\r\n });\r\n return () => {\r\n if (microTaskExecuted) {\r\n microTask.then(cancelListeners => cancelListeners());\r\n }\r\n };\r\n }, []);\r\n state.events.emit(GameState.EventTypes[\"event:state.player.flush\"]);\r\n function handlePreloadLoaded() {\r\n state.stage.update();\r\n if (story) {\r\n next();\r\n }\r\n }\r\n const playerWidth = width || game.config.player.width;\r\n const playerHeight = height || game.config.player.height;\r\n return (<ErrorBoundary>\r\n <Motion>\r\n <div style={{\r\n width: typeof playerWidth === \"number\" ? `${playerWidth}px` : playerWidth,\r\n height: typeof playerHeight === \"number\" ? `${playerHeight}px` : playerHeight,\r\n }} className={clsx(className, \"__narraleaf_content-player\")} ref={containerRef}>\r\n <AspectRatio className={clsx(\"flex-grow overflow-auto\")}>\r\n <SizeUpdateAnnouncer containerRef={containerRef}/>\r\n <Isolated className=\"relative\">\r\n <Preload state={state}/>\r\n <OnlyPreloaded onLoaded={handlePreloadLoaded} state={state}>\r\n <KeyEventAnnouncer state={state}/>\r\n {state.getSceneElements().map(({ scene, ele }) => (<StageScene key={\"scene-\" + scene.getId()} state={state} scene={scene}>\r\n <Displayables state={state} displayable={ele.displayable}/>\r\n {ele.texts.map(({ action, onClick }) => {\r\n return (<Say state={state} key={\"say-\" + action.id} action={action} onClick={() => {\r\n onClick();\r\n next();\r\n }}/>);\r\n })}\r\n {ele.menus.map((action, i) => {\r\n return (<div key={\"menu-\" + i}>\r\n {<Menu state={state} prompt={action.action.prompt} choices={action.action.choices} afterChoose={(choice) => {\r\n action.onClick(choice);\r\n next();\r\n }}/>}\r\n </div>);\r\n })}\r\n </StageScene>))}\r\n </OnlyPreloaded>\r\n </Isolated>\r\n </AspectRatio>\r\n </div>\r\n </Motion>\r\n </ErrorBoundary>);\r\n}\r\nfunction OnlyPreloaded({ children, onLoaded, state }) {\r\n const { preloaded } = usePreloaded();\r\n const [preloadedReady, setPreloadedReady] = useState(false);\r\n useEffect(() => {\r\n const listener = preloaded.events.on(Preloaded.EventTypes[\"event:preloaded.ready\"], () => {\r\n setPreloadedReady(true);\r\n onLoaded();\r\n });\r\n const unmountListener = state.events.on(GameState.EventTypes[\"event:state.preload.unmount\"], () => {\r\n setPreloadedReady(false);\r\n });\r\n return () => {\r\n preloaded.events.off(Preloaded.EventTypes[\"event:preloaded.ready\"], listener);\r\n state.events.off(GameState.EventTypes[\"event:state.preload.unmount\"], unmountListener);\r\n };\r\n }, [preloadedReady]);\r\n return (<>\r\n {preloadedReady ? children : null}\r\n </>);\r\n}\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { TransitionEventTypes } from \"@core/elements/transition/type\";\r\nimport { Transform } from \"@core/elements/transform/transform\";\r\nimport { GameState } from \"@player/gameState\";\r\nimport { deepMerge } from \"@lib/util/data\";\r\nexport default function Displayable({ state: gameState, displayable, child, }) {\r\n const { element, state: displayableState = element } = displayable;\r\n const scope = useRef(null);\r\n const [transition, setTransition] = useState(null);\r\n const [, setTransitionProps] = useState([]);\r\n const [transform, setTransform] = useState(null);\r\n const [transformProps, setTransformProps] = useState({});\r\n useEffect(() => {\r\n const APPLY_TRANSITION = \"event:displayable.applyTransition\";\r\n const APPLY_TRANSFORM = \"event:displayable.applyTransform\";\r\n const INIT = \"event:displayable.init\";\r\n const sceneEventTokens = element.events.onEvents([\r\n {\r\n type: APPLY_TRANSITION,\r\n listener: element.events.on(APPLY_TRANSITION, applyTransition)\r\n },\r\n {\r\n type: APPLY_TRANSFORM,\r\n listener: element.events.on(APPLY_TRANSFORM, applyTransform)\r\n },\r\n {\r\n type: INIT,\r\n listener: element.events.on(INIT, () => __awaiter(this, void 0, void 0, function* () {\r\n const transform = element.toDisplayableTransform();\r\n gameState.logger.debug(\"init transform\", transform);\r\n yield transform.animate({\r\n scope,\r\n target: displayableState,\r\n overwrites: displayable.transformOverwrites\r\n }, gameState, (after) => {\r\n displayableState.state = deepMerge(displayableState.state, after);\r\n });\r\n }))\r\n }\r\n ]);\r\n return () => {\r\n sceneEventTokens.cancel();\r\n };\r\n }, []);\r\n useEffect(() => {\r\n if (!scope.current) {\r\n throw new Error(`Scope not ready. Using element: ${element.constructor.name}`);\r\n }\r\n }, []);\r\n useEffect(() => {\r\n const gameEvents = gameState.events.onEvents([\r\n {\r\n type: GameState.EventTypes[\"event:state.player.skip\"],\r\n listener: gameState.events.on(GameState.EventTypes[\"event:state.player.skip\"], () => {\r\n if (displayable.skipTransform && transform && transform.getControl()) {\r\n transform.getControl().complete();\r\n transform.setControl(null);\r\n gameState.logger.debug(\"transform skip\");\r\n }\r\n if (displayable.skipTransition && transition && transition.controller) {\r\n transition.controller.complete();\r\n setTransition(null);\r\n gameState.logger.debug(\"transition skip\");\r\n }\r\n }),\r\n }\r\n ]);\r\n return () => {\r\n gameEvents.cancel();\r\n };\r\n }, [transition, transform]);\r\n function assignStyle(arg0) {\r\n if (transform && transform.getControl()) {\r\n gameState.logger.warn(\"Displayable Animation\", \"processing transform not completed\");\r\n transform.getControl().complete();\r\n transform.setControl(null);\r\n }\r\n if (!scope.current) {\r\n throw new Error(\"scope not ready\");\r\n }\r\n if (arg0 instanceof Transform) {\r\n Object.assign(scope.current.style, arg0.propToCSS(gameState, displayableState.state, displayable.transformOverwrites));\r\n }\r\n else {\r\n Object.assign(scope.current.style, arg0);\r\n }\r\n }\r\n function applyTransition(transition) {\r\n setTransition(transition);\r\n if (!transition) {\r\n gameState.logger.warn(\"transition not set\");\r\n return Promise.resolve();\r\n }\r\n return new Promise(resolve => {\r\n const eventToken = transition.events.onEvents([\r\n {\r\n type: TransitionEventTypes.update,\r\n listener: transition.events.on(TransitionEventTypes.update, (progress) => {\r\n setTransitionProps(progress);\r\n }),\r\n },\r\n {\r\n type: TransitionEventTypes.end,\r\n listener: transition.events.on(TransitionEventTypes.end, () => {\r\n setTransition(null);\r\n gameState.logger.debug(\"scene background transition end\", transition);\r\n })\r\n },\r\n {\r\n type: TransitionEventTypes.start,\r\n listener: transition.events.on(TransitionEventTypes.start, () => {\r\n gameState.logger.debug(\"scene background transition start\", transition);\r\n })\r\n }\r\n ]);\r\n transition.start(() => {\r\n eventToken.cancel();\r\n resolve();\r\n });\r\n });\r\n }\r\n function applyTransform(transform) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n assignStyle(transform.propToCSS(gameState, displayableState.state, displayable.transformOverwrites));\r\n setTransform(transform);\r\n yield transform.animate({\r\n scope,\r\n target: displayableState,\r\n overwrites: displayable.transformOverwrites\r\n }, gameState, (after) => {\r\n displayableState.state = deepMerge(displayableState.state, after);\r\n setTransformProps({\r\n style: transform.propToCSS(gameState, displayableState.state, displayable.transformOverwrites),\r\n });\r\n setTransform(null);\r\n });\r\n });\r\n }\r\n return (<>{child({\r\n transformRef: scope,\r\n transition,\r\n transform,\r\n transformProps,\r\n state: gameState\r\n })}</>);\r\n}\r\n","import React from \"react\";\r\nimport { Text as GameText } from \"@core/elements/text\";\r\nimport { default as StageText } from \"@player/elements/displayable/Text\";\r\nimport { Image as GameImage } from \"@core/elements/image\";\r\nimport { default as StageImage } from \"@player/elements/image/Image\";\r\nexport default function Displayables({ state, displayable }) {\r\n return (<>\r\n {displayable.map((displayable) => {\r\n var _a;\r\n if (displayable instanceof GameText) {\r\n return <StageText state={state} text={displayable} key={\"text-\" + displayable.getId()}/>;\r\n }\r\n else if (displayable instanceof GameImage) {\r\n return <StageImage state={state} image={displayable} key={\"image-\" + displayable.getId()}/>;\r\n }\r\n throw new Error(\"Unsupported displayable type: \" + (((_a = displayable === null || displayable === void 0 ? void 0 : displayable[\"constructor\"]) === null || _a === void 0 ? void 0 : _a[\"name\"]) || displayable));\r\n })}\r\n </>);\r\n}\r\n","import React from \"react\";\r\nimport { Transform } from \"@core/elements/transform/transform\";\r\nimport { deepMerge } from \"@lib/util/data\";\r\nimport Displayable from \"@player/elements/displayable/Displayable\";\r\nimport clsx from \"clsx\";\r\nimport Inspect from \"@player/lib/Inspect\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nexport default function Text({ state, text }) {\r\n const transformOverwrites = {\r\n \"scale\": (_) => {\r\n return {\r\n width: \"fit-content\",\r\n };\r\n },\r\n \"transform\": (props) => {\r\n return {\r\n transform: Transform.propToCSSTransform(state, props, {\r\n translate: [\r\n text.config.alignX === \"left\" ? \"0%\"\r\n : (text.config.alignX === \"right\" ? \"-100%\" : void 0),\r\n text.config.alignY === \"top\" ? \"100%\"\r\n : (text.config.alignY === \"bottom\" ? \"0%\" : void 0),\r\n ],\r\n }),\r\n };\r\n }\r\n };\r\n return (<Displayable displayable={{\r\n element: text,\r\n skipTransform: state.game.config.elements.text.allowSkipTransform,\r\n skipTransition: state.game.config.elements.text.allowSkipTransition,\r\n transformOverwrites,\r\n }} child={(props) => (<DisplayableText {...props} text={text}/>)} state={state}/>);\r\n}\r\nfunction DisplayableText({ transformRef, transformProps, transition, text, }) {\r\n const { ratio } = useRatio();\r\n const defaultProps = {\r\n style: {\r\n width: \"fit-content\",\r\n whiteSpace: \"nowrap\",\r\n fontSize: text.state.fontSize,\r\n },\r\n };\r\n const transitionProps = [\r\n {}\r\n ];\r\n const spanClassName = clsx(text.config.className);\r\n return (<Inspect.Div>\r\n <Inspect.mDiv tag={\"text.container\"} color={\"green\"} border={\"dashed\"} layout Ref={transformRef} className={\"absolute\"} {...(deepMerge({\r\n style: {\r\n opacity: 0,\r\n }\r\n }, transformProps, {\r\n style: {\r\n width: \"fit-content\",\r\n }\r\n }))}>\r\n {transition ? (function () {\r\n return transition.toElementProps().map((elementProps, index) => {\r\n const mergedProps = deepMerge(defaultProps, elementProps, ({\r\n style: {\r\n transform: `scale(${ratio.state.scale})`,\r\n transformOrigin: `${text.config.alignX} ${text.config.alignY}`,\r\n }\r\n }), transitionProps[index] || {});\r\n return (<Inspect.Span tag={\"text.transition.\" + index} key={index} {...mergedProps} className={spanClassName}>\r\n <span>{text.state.text}</span>\r\n </Inspect.Span>);\r\n });\r\n })() : (<Inspect.Div tag={\"text.transition.last\"} color={\"green\"} border={\"dashed\"} key={\"last\"} {...deepMerge(defaultProps, {\r\n style: {\r\n width: \"fit-content\",\r\n transform: `scale(${ratio.state.scale})`,\r\n transformOrigin: `${text.config.alignX} ${text.config.alignY}`,\r\n }\r\n })}>\r\n <Inspect.Span className={spanClassName}>{text.state.text}</Inspect.Span>\r\n </Inspect.Div>)}\r\n </Inspect.mDiv>\r\n </Inspect.Div>);\r\n}\r\n","import { default as StageSay } from \"@player/elements/say/Say\";\r\nimport { default as StageMenu } from \"@player/elements/menu/Menu\";\r\nexport const DefaultElements = {\r\n say: StageSay,\r\n menu: StageMenu,\r\n};\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nexport default function AspectScaleImage({ props, onLoad, id, Ref, }) {\r\n const imgRef = useRef(null);\r\n const { ratio } = useRatio();\r\n const [width, setWidth] = React.useState(0);\r\n function updateWidth() {\r\n const ref = Ref || imgRef;\r\n if (ref.current) {\r\n setWidth(ref.current.naturalWidth * ratio.state.scale);\r\n }\r\n }\r\n useEffect(() => {\r\n updateWidth();\r\n return ratio.onUpdate(updateWidth);\r\n }, [props.src]);\r\n useEffect(() => {\r\n updateWidth();\r\n }, [props, id]);\r\n return (<img ref={Ref || imgRef} {...props} onLoad={onLoad} width={width} alt={props.alt}/>);\r\n}\r\n","import { Image as GameImage } from \"@core/elements/image\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { deepMerge } from \"@lib/util/data\";\r\nimport { Utils } from \"@core/common/core\";\r\nimport { useGame } from \"@player/provider/game-state\";\r\nimport Displayable from \"@player/elements/displayable/Displayable\";\r\nimport Inspect from \"@player/lib/Inspect\";\r\nimport AspectScaleImage from \"@player/elements/image/AspectScaleImage\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nimport clsx from \"clsx\";\r\nexport default function Image({ image, state, }) {\r\n const [startTime, setStartTime] = useState(0);\r\n const { game } = useGame();\r\n useEffect(() => {\r\n setStartTime(performance.now());\r\n }, []);\r\n /**\r\n * Slow load warning\r\n */\r\n const handleLoad = () => {\r\n const endTime = performance.now();\r\n const loadTime = endTime - startTime;\r\n const threshold = game.config.elements.img.slowLoadThreshold;\r\n if (loadTime > threshold && game.config.elements.img.slowLoadWarning) {\r\n state.logger.warn(\"NarraLeaf-React\", `Image took ${loadTime}ms to load, which exceeds the threshold of ${threshold}ms. ` +\r\n \"Consider enable cache for the image, so Preloader can preload it before it's used. \" +\r\n \"To disable this warning, set `elements.img.slowLoadWarning` to false in the game config.\");\r\n }\r\n };\r\n return (<Displayable displayable={{\r\n element: image,\r\n skipTransition: state.game.config.elements.img.allowSkipTransition,\r\n skipTransform: state.game.config.elements.img.allowSkipTransform,\r\n transformOverwrites: {},\r\n }} child={(props) => (<DisplayableImage {...props} image={image} handleLoad={handleLoad}/>)} state={state}/>);\r\n}\r\n;\r\nfunction DisplayableImage({ transition, transformProps, transformRef, state, image, handleLoad }) {\r\n const { ratio } = useRatio();\r\n const ref = useRef(null);\r\n const [wearables, setWearables] = useState([]);\r\n const defaultProps = {\r\n src: Utils.staticImageDataToSrc(image.state.src),\r\n style: Object.assign(Object.assign({}, (state.game.config.app.debug ? {\r\n outline: \"1px solid red\",\r\n } : {})), { transformOrigin: \"center\" }),\r\n };\r\n const transitionProps = [\r\n {\r\n style: {\r\n display: \"block\",\r\n position: \"unset\"\r\n }\r\n },\r\n {\r\n style: {\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n maxWidth: \"none\"\r\n }\r\n }\r\n ];\r\n useEffect(() => {\r\n const token = image.events.onEvents([\r\n {\r\n type: GameImage.EventTypes[\"event:wearable.create\"],\r\n listener: image.events.on(GameImage.EventTypes[\"event:wearable.create\"], (wearable) => {\r\n setWearables((prev) => [...prev, wearable]);\r\n })\r\n }\r\n ]);\r\n return () => {\r\n token.cancel();\r\n };\r\n }, []);\r\n return (<div>\r\n <Inspect.mDiv tag={\"image.aspectScaleContainer\"} color={\"green\"} border={\"dashed\"} layout Ref={transformRef} className={\"absolute\"} {...(deepMerge({\r\n style: {\r\n opacity: 0,\r\n }\r\n }, transformProps, {\r\n style: {\r\n display: \"inline-block\",\r\n width: ref.current ? `${ref.current.naturalWidth * ratio.state.scale}px` : \"auto\",\r\n height: ref.current ? `${ref.current.naturalHeight * ratio.state.scale}px` : \"auto\",\r\n }\r\n }))}>\r\n {(<>\r\n {(transition ? transition.toElementProps() : [{}]).map((elementProps, index) => {\r\n const mergedProps = deepMerge(defaultProps, elementProps, transitionProps[index] || {});\r\n return (<AspectScaleImage key={index} props={Object.assign({ className: \"absolute\" }, mergedProps)} id={mergedProps.src} onLoad={handleLoad} Ref={index === 0 ? ref : undefined}/>);\r\n })}\r\n </>)}\r\n <div className={clsx(\"w-full h-full top-0 left-0 absolute\")}>\r\n {wearables.map((wearable) => (<div className={clsx(\"w-full h-full relative\")} key={\"wearable-\" + wearable.getId()}>\r\n <Image image={wearable} state={state}/>\r\n </div>))}\r\n </div>\r\n </Inspect.mDiv>\r\n </div>);\r\n}\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport Isolated from \"@player/lib/isolated\";\r\nimport { useGame } from \"@player/provider/game-state\";\r\nimport Sentence from \"@player/elements/say/Sentence\";\r\nimport Inspect from \"@player/lib/Inspect\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nexport default function Menu({ prompt, choices, afterChoose, state, }) {\r\n const { game } = useGame();\r\n const { ratio } = useRatio();\r\n const Say = game.config.elements.say.use;\r\n function choose(choice) {\r\n afterChoose(choice);\r\n }\r\n return (<>\r\n <Isolated className={\"absolute\"}>\r\n {prompt && <Say state={state} action={{ sentence: prompt, character: null }} useTypeEffect={false} className=\"z-10\"/>}\r\n </Isolated>\r\n <Inspect.Div color={\"green\"} border={\"dashed\"} className={clsx(\"absolute\")} style={{\r\n width: `${game.config.player.width}px`,\r\n height: `${game.config.player.height}px`,\r\n }}>\r\n <Inspect.Div tag={\"menu.aspectScaleContainer\"} style={{\r\n transform: `scale(${ratio.state.scale})`,\r\n transformOrigin: \"left top\",\r\n }} className={clsx(\"w-full h-full\")}>\r\n <Inspect.Div tag={\"menu.containerClassName\"} className={clsx(\"absolute flex flex-col items-center justify-center min-w-full w-full h-full\", game.config.elementStyles.menu.containerClassName)}>\r\n <div className=\"p-4 rounded-lg w-full z-20\">\r\n <div className=\"flex flex-col items-center mt-4 w-full\">\r\n {choices.map((choice, i) => (<Inspect.Button tag={\"menu.choiceButtonClassName.\" + i} key={i} className={clsx(\"bg-white text-black p-2 mt-2 w-1/2\", game.config.elementStyles.menu.choiceButtonClassName)} onClick={() => choose(choice)}>\r\n <Sentence sentence={choice.prompt} gameState={state} useTypeEffect={false} className={clsx(game.config.elementStyles.menu.choiceButtonTextClassName)}/>\r\n </Inspect.Button>))}\r\n </div>\r\n </div>\r\n </Inspect.Div>\r\n </Inspect.Div>\r\n </Inspect.Div>\r\n </>);\r\n}\r\n;\r\n","import React, { useEffect } from \"react\";\r\nimport { useGame } from \"@player/provider/game-state\";\r\nimport { GameState } from \"@player/gameState\";\r\nimport { throttle } from \"@lib/util/data\";\r\nexport function KeyEventAnnouncer({ state }) {\r\n const { game } = useGame();\r\n useEffect(() => {\r\n if (!window) {\r\n state.logger.warn(\"NarraLeaf-React: Announcer\", \"Cannot listen to window events\");\r\n return;\r\n }\r\n const listener = throttle((event) => {\r\n if (game.config.player.skipKey.includes(event.key)) {\r\n state.events.emit(GameState.EventTypes[\"event:state.player.skip\"]);\r\n }\r\n }, game.config.player.skipInterval);\r\n window.addEventListener(\"keydown\", listener);\r\n return () => {\r\n window.removeEventListener(\"keydown\", listener);\r\n };\r\n }, []);\r\n return (<></>);\r\n}\r\n","import { useEffect } from \"react\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nexport default function SizeUpdateAnnouncer({ containerRef }) {\r\n const { ratio } = useRatio();\r\n /**\r\n * Request ratio update when the container size changes\r\n */\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) {\r\n return;\r\n }\r\n const observer = new ResizeObserver(() => {\r\n ratio.requestUpdate();\r\n });\r\n observer.observe(container);\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, [containerRef.current]);\r\n return null;\r\n}\r\n","import { useEffect, useRef } from \"react\";\r\nimport { GameState } from \"@player/gameState\";\r\nimport { SrcManager } from \"@core/action/srcManager\";\r\nimport { usePreloaded } from \"@player/provider/preloaded\";\r\nimport { Preloaded } from \"@player/lib/Preloaded\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nexport function Preload({ state, }) {\r\n const { preloaded } = usePreloaded();\r\n const lastScene = state.getLastScene();\r\n const time = useRef(0);\r\n useEffect(() => {\r\n var _a, _b;\r\n if (typeof window === \"undefined\") {\r\n console.warn(\"Window is not supported in this environment\");\r\n return;\r\n }\r\n if (window.performance) {\r\n time.current = performance.now();\r\n }\r\n const currentSceneSrc = (_a = state.getLastScene()) === null || _a === void 0 ? void 0 : _a.srcManager;\r\n const futureSceneSrc = ((_b = state.getLastScene()) === null || _b === void 0 ? void 0 : _b.srcManager.future) || [];\r\n const combinedSrc = [\r\n ...(currentSceneSrc ? currentSceneSrc.src : []),\r\n ...(futureSceneSrc.map(v => v.src)).flat(2),\r\n ];\r\n const src = {\r\n image: new Set(),\r\n audio: new Set(),\r\n video: new Set()\r\n };\r\n combinedSrc.forEach(srcItem => {\r\n if (srcItem.type === SrcManager.SrcTypes.image) {\r\n src.image.add(srcItem.src);\r\n }\r\n else if (srcItem.type === SrcManager.SrcTypes.audio) {\r\n src.audio.add(srcItem.src);\r\n }\r\n else if (srcItem.type === SrcManager.SrcTypes.video) {\r\n src.video.add(srcItem.src);\r\n }\r\n });\r\n state.logger.debug(\"Preloading\", src, futureSceneSrc);\r\n preloaded.preloaded = preloaded.preloaded.filter(p => {\r\n if (p.type === SrcManager.SrcTypes.audio) {\r\n let has = src[p.type].has(p.src);\r\n if (!has) {\r\n // downgraded check\r\n has = Array.from(src[p.type]).some(s => {\r\n return preloaded.getSrc(p) === preloaded.getSrc(s.config.src);\r\n });\r\n }\r\n return has;\r\n }\r\n else if (p.type === SrcManager.SrcTypes.image) {\r\n return src[p.type].has(p.src);\r\n }\r\n const preloadedSrcP = preloaded.getSrc(p);\r\n return src[p.type].has(preloadedSrcP);\r\n });\r\n const newImages = [];\r\n const promises = [];\r\n src.image.forEach((src) => {\r\n const htmlImg = new Image();\r\n htmlImg.src = Utils.srcToString(src.state.src);\r\n htmlImg.onload = () => {\r\n state.logger.debug(\"Image loaded\", src.state.src);\r\n };\r\n newImages.push(htmlImg);\r\n preloaded.add({ type: \"image\", src });\r\n });\r\n Promise.all(promises).then(() => {\r\n state.logger.log(\"Preloaded\", `Preloaded ${src.image.size} images`);\r\n preloaded.events.emit(Preloaded.EventTypes[\"event:preloaded.ready\"]);\r\n state.events.emit(GameState.EventTypes[\"event:state.preload.loaded\"]);\r\n if (window.performance) {\r\n const endTime = performance.now();\r\n const loadTime = endTime - time.current;\r\n state.logger.info(\"Preload\", `Preloaded ${src.image.size} images in ${loadTime}ms`);\r\n }\r\n });\r\n src.audio.forEach((src) => {\r\n if (!src.getPlaying()) {\r\n src.setPlaying(new (state.getHowl())({\r\n src: src.config.src,\r\n loop: src.config.loop,\r\n volume: src.config.volume,\r\n autoplay: false,\r\n preload: true,\r\n }));\r\n }\r\n });\r\n preloaded.events.emit(Preloaded.EventTypes[\"event:preloaded.mount\"]);\r\n // maybe video preload here\r\n return () => {\r\n newImages.forEach(img => {\r\n img.onload = null;\r\n });\r\n state.events.emit(GameState.EventTypes[\"event:state.preload.unmount\"]);\r\n state.logger.debug(\"Preload unmounted\");\r\n };\r\n }, [lastScene]);\r\n return null;\r\n}\r\n","import clsx from \"clsx\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { GameState } from \"@core/common/game\";\r\nimport Sentence from \"@player/elements/say/Sentence\";\r\nimport { onlyIf } from \"@lib/util/data\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nimport Inspect from \"@player/lib/Inspect\";\r\nexport default function Say({ action, onClick, useTypeEffect = true, className, state, }) {\r\n var _a;\r\n const { sentence } = action;\r\n const [isFinished, setIsFinished] = useState(false);\r\n const { game } = state;\r\n const [count, setCount] = useState(0);\r\n const { ratio } = useRatio();\r\n const handleComplete = () => {\r\n setIsFinished(true);\r\n };\r\n function onElementClick() {\r\n if (isFinished) {\r\n if (onClick)\r\n onClick();\r\n }\r\n else {\r\n setCount((count) => count + 1);\r\n }\r\n }\r\n useEffect(() => {\r\n if (!window) {\r\n console.warn(\"Failed to add event listener, window is not available\\nat Say.tsx: onElementClick\");\r\n return;\r\n }\r\n const handleKeyUp = (e) => {\r\n if (game.config.elements.say.nextKey.includes(e.key)) {\r\n if (isFinished) {\r\n if (onClick)\r\n onClick();\r\n }\r\n else {\r\n setCount((count) => count + 1);\r\n }\r\n }\r\n };\r\n window.addEventListener(\"keyup\", handleKeyUp);\r\n return () => {\r\n window.removeEventListener(\"keyup\", handleKeyUp);\r\n };\r\n }, [isFinished]);\r\n useEffect(() => {\r\n const gameEvents = state.events.onEvents([\r\n {\r\n type: GameState.EventTypes[\"event:state.player.skip\"],\r\n listener: state.events.on(GameState.EventTypes[\"event:state.player.skip\"], () => {\r\n state.logger.log(\"NarraLeaf-React: Say\", \"Skipped\");\r\n if (isFinished) {\r\n if (onClick)\r\n onClick();\r\n }\r\n else {\r\n setIsFinished(true);\r\n }\r\n }),\r\n }\r\n ]);\r\n return () => {\r\n gameEvents.cancel();\r\n };\r\n });\r\n return (<div>\r\n {sentence.state.display &&\r\n (<Inspect.Div tag={\"say.aspectScaleContainer\"} color={\"blue\"} border={\"dashed\"} className={clsx(\"absolute bottom-0 w-[calc(100%-40px)]\", className)} onClick={onElementClick} style={Object.assign({}, onlyIf(game.config.elements.say.useAspectScale, {\r\n width: game.config.elements.text.width,\r\n height: game.config.elements.text.height,\r\n }))}>\r\n <Inspect.Div tag={\"say.containerClassName\"} className={clsx(game.config.elementStyles.say.containerClassName)} style={Object.assign({}, onlyIf(game.config.elements.say.useAspectScale, {\r\n transform: `scale(${ratio.state.scale})`,\r\n transformOrigin: \"bottom left\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n }))}>\r\n <div className={clsx(\"bg-white flex flex-col items-start justify-between\", game.config.elementStyles.say.contentContainerClassName, \"w-full h-full\")}>\r\n <Inspect.Div tag={\"say.nameTextClassName\"} className={clsx(\"rounded-br-md text-black\", game.config.elementStyles.say.nameTextClassName)}>\r\n {(_a = sentence.config.character) === null || _a === void 0 ? void 0 : _a.state.name}\r\n </Inspect.Div>\r\n <Sentence sentence={sentence} gameState={state} finished={isFinished} useTypeEffect={useTypeEffect} onCompleted={handleComplete} count={count}/>\r\n <div></div>\r\n </div>\r\n </Inspect.Div>\r\n </Inspect.Div>)}\r\n </div>);\r\n}\r\n;\r\n","import React, { useEffect, useMemo, useReducer, useRef, useState } from \"react\";\r\nimport { Script } from \"@core/elements/script\";\r\nimport { Word } from \"@core/elements/character/word\";\r\nimport { toHex } from \"@lib/util/data\";\r\nimport clsx from \"clsx\";\r\nimport { Pause } from \"@core/elements/character/pause\";\r\nimport Inspect from \"@player/lib/Inspect\";\r\nexport default function Sentence({ sentence, gameState, useTypeEffect = true, onCompleted, finished, count, className, }) {\r\n const [isFinished, setIsFinished] = useState(false);\r\n const words = useMemo(() => sentence.evaluate(Script.getCtx({ gameState })), []);\r\n const { game } = gameState;\r\n const [currentWords, setCurrentWords] = useState([]);\r\n const updaterRef = useRef(textUpdater(words));\r\n const pauseTimerRef = useRef(null);\r\n const intervalRef = useRef(null);\r\n const [trigger, setTrigger] = useState(0);\r\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\r\n const [seen, setSeen] = useState(new Set());\r\n const [isPaused, setIsPaused] = useState(false);\r\n useEffect(() => {\r\n if (!useTypeEffect) {\r\n skipToNext(true);\r\n }\r\n if (finished && !isFinished) {\r\n if (pauseTimerRef.current)\r\n clearTimeout(pauseTimerRef.current);\r\n pauseTimerRef.current = null;\r\n skipToNext(true);\r\n if (onCompleted) {\r\n gameState.logger.info(\"Say\", \"Completed\", pauseTimerRef.current, finished, isFinished);\r\n onCompleted();\r\n }\r\n return;\r\n }\r\n if (isFinished || finished || isPaused || pauseTimerRef.current) {\r\n gameState.logger.debug(\"Sentence.tsx\", \"locked\", isFinished, finished, isPaused);\r\n return;\r\n }\r\n const { done, value } = updaterRef.current.next();\r\n if (done) {\r\n setIsFinished(true);\r\n if (onCompleted) {\r\n gameState.logger.info(\"Say\", \"Completed\", done, value);\r\n onCompleted();\r\n }\r\n return;\r\n }\r\n if (Pause.isPause(value)) {\r\n const pause = Pause.from(value);\r\n waitForPause(pause);\r\n return;\r\n }\r\n else {\r\n addWord(value);\r\n forceUpdate();\r\n intervalRef.current = setTimeout(() => {\r\n setTrigger((prev) => prev + 1);\r\n }, game.config.elements.say.textInterval);\r\n }\r\n }, [trigger, finished, isPaused]);\r\n useEffect(() => {\r\n if (!count || pauseTimerRef.current)\r\n return;\r\n if (isPaused) {\r\n setIsPaused(false);\r\n setTrigger((prev) => prev + 1);\r\n return;\r\n }\r\n skipToNext();\r\n setTrigger((prev) => prev + 1);\r\n }, [count]);\r\n function skipToNext(tilEnd = false) {\r\n if (intervalRef.current) {\r\n clearTimeout(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n let exited = false;\r\n while (!exited) {\r\n const { done, value } = updaterRef.current.next();\r\n if (done) {\r\n setIsFinished(true);\r\n if (onCompleted) {\r\n gameState.logger.info(\"Say\", \"Completed\", done, value);\r\n onCompleted();\r\n }\r\n exited = true;\r\n }\r\n else if (Pause.isPause(value)) {\r\n if (tilEnd) {\r\n continue;\r\n }\r\n const pause = Pause.from(value);\r\n waitForPause(pause);\r\n exited = true;\r\n }\r\n else {\r\n addWord(value);\r\n }\r\n }\r\n }\r\n function addWord(value) {\r\n setCurrentWords((prev) => {\r\n if (value !== \"\\n\" && seen.has(value)) {\r\n return prev;\r\n }\r\n setSeen((prev) => new Set(prev).add(value));\r\n const last = prev[prev.length - 1];\r\n if (last && last !== \"\\n\" && value !== \"\\n\" && last.tag === value.tag) {\r\n return [...prev.slice(0, -1), {\r\n text: last.text + value.text,\r\n config: value.config,\r\n tag: value.tag,\r\n tag2: value.tag2,\r\n }];\r\n }\r\n return [...prev, value];\r\n });\r\n }\r\n function waitForPause(pause) {\r\n gameState.logger.info(\"Say\", \"Paused\", pause);\r\n if (pause.config.duration) {\r\n pauseTimerRef.current = setTimeout(() => {\r\n pauseTimerRef.current = null;\r\n setTrigger((prev) => prev + 1);\r\n }, pause.config.duration);\r\n }\r\n else {\r\n setIsPaused(true);\r\n }\r\n }\r\n function* textUpdater(w) {\r\n const words = [...w];\r\n for (let i = 0; i < words.length; i++) {\r\n const word = words[i];\r\n if (Pause.isPause(word.text)) {\r\n yield Pause.from(word.text);\r\n continue;\r\n }\r\n for (let j = 0; j < word.text.length; j++) {\r\n const char = word.text[j];\r\n if (char === \"\\n\") {\r\n yield \"\\n\";\r\n }\r\n else {\r\n yield {\r\n text: char,\r\n config: word.config,\r\n tag: i,\r\n tag2: j,\r\n };\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n return (<div className={clsx(\"whitespace-pre-wrap\", game.config.elementStyles.say.textContainerClassName, {\r\n \"font-bold\": sentence.config.bold,\r\n \"italic\": sentence.config.italic,\r\n }, className)} style={{\r\n fontFamily: sentence.config.fontFamily || game.config.elementStyles.say.fontFamily,\r\n fontSize: sentence.config.fontSize || game.config.elementStyles.say.fontSize,\r\n }}>\r\n {currentWords.map((word, index) => {\r\n if (word === \"\\n\") {\r\n return <br key={index}/>;\r\n }\r\n return (<Inspect.Span tag={`say.word.${index}`} key={index} style={Object.assign({ color: toHex(word.config.color || sentence.config.color || Word.defaultColor), fontFamily: word.config.fontFamily, fontSize: word.config.fontSize }, (game.config.app.debug ? {\r\n outline: \"1px dashed red\",\r\n } : {}))} className={clsx(game.config.elementStyles.say.textSpanClassName, \"whitespace-pre inline-block\", {\r\n \"font-bold\": word.config.bold,\r\n \"italic\": word.config.italic,\r\n }, word.config.className)}>\r\n {word.config.ruby ? (<ruby className={\"align-bottom inline-block\"}>\r\n <rt className={\"block text-center\"}>{word.config.ruby}</rt>\r\n {word.text}\r\n </ruby>) : (word.text)}\r\n </Inspect.Span>);\r\n })}\r\n </div>);\r\n}\r\n","// noinspection SpellCheckingInspection\r\nimport React from \"react\";\r\nimport { Scene as GameScene } from \"@core/elements/scene\";\r\nimport { deepMerge } from \"@lib/util/data\";\r\nimport { m } from \"framer-motion\";\r\nimport Displayable from \"@player/elements/displayable/Displayable\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nexport default function BackgroundTransition({ scene, props, state }) {\r\n return (<Displayable displayable={{\r\n element: scene,\r\n skipTransform: state.game.config.elements.background.allowSkipTransform,\r\n skipTransition: state.game.config.elements.background.allowSkipTransition,\r\n }} child={(displayableProps) => (<DisplayableBackground {...displayableProps} scene={scene} props={props}/>)} state={state}/>);\r\n}\r\nfunction DisplayableBackground({ transformRef, transformProps, transition, state, scene, props, }) {\r\n const { ratio } = useRatio();\r\n const [imageLoaded, setImageLoaded] = React.useState(false);\r\n function handleImageOnload() {\r\n if (imageLoaded) {\r\n return;\r\n }\r\n setImageLoaded(true);\r\n scene.events.emit(GameScene.EventTypes[\"event:scene.imageLoaded\"]);\r\n state.logger.debug(\"BackgroundTransition\", \"Image loaded\", scene);\r\n }\r\n const emptyImage = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/wcAAgAB9sWFXTkAAAAASUVORK5CYII=\";\r\n const defaultProps = {\r\n src: emptyImage,\r\n style: Object.assign({}, (state.game.config.app.debug ? {\r\n outline: \"1px solid red\",\r\n } : {}))\r\n };\r\n return (<div>\r\n <m.div layout ref={transformRef} className={\"absolute inset-0 flex items-center justify-center bg-cover bg-center overflow-hidden\"} {...(deepMerge({\r\n style: Object.assign({}, ratio.getStyle())\r\n }, transformProps))}>\r\n {transition ? (() => {\r\n return transition.toElementProps().map((elementProps, index) => {\r\n const mergedProps = deepMerge(defaultProps, props, elementProps);\r\n return (<img alt={mergedProps.alt} {...mergedProps} onLoad={handleImageOnload} src={(mergedProps.src) ? mergedProps.src : emptyImage} className={\"absolute\"} key={index}/>);\r\n });\r\n })() : (() => {\r\n const mergedProps = deepMerge(defaultProps, props);\r\n return (<img key={\"last\"} alt={mergedProps.alt} {...mergedProps} onLoad={handleImageOnload} src={mergedProps.src || emptyImage} className={\"absolute\"}/>);\r\n })()}\r\n </m.div>\r\n </div>);\r\n}\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nimport { Scene as GameScene } from \"@core/elements/scene\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport BackgroundTransition from \"./BackgroundTransition\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nexport default function Scene({ scene, state, children, className }) {\r\n const { ratio } = useRatio();\r\n const [backgroundMusic, setBackgroundMusic] = useState(() => scene.state.backgroundMusic);\r\n function stopWithFade(music, fade) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield state.fadeSound(music, 0, fade);\r\n state.stopSound(music);\r\n });\r\n }\r\n function fadeTo(music, fade) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const lastMusic = backgroundMusic;\r\n const nextMusic = music;\r\n yield state.transitionSound(lastMusic, nextMusic, fade);\r\n if (!nextMusic) {\r\n return;\r\n }\r\n setBackgroundMusic(nextMusic);\r\n });\r\n }\r\n useEffect(() => {\r\n const listeners = [\r\n {\r\n type: \"event:scene.setBackgroundMusic\",\r\n listener: scene.events.on(GameScene.EventTypes[\"event:scene.setBackgroundMusic\"], (music, fade) => {\r\n fadeTo(music, fade).then();\r\n })\r\n },\r\n {\r\n type: \"event:scene.preUnmount\",\r\n listener: scene.events.on(GameScene.EventTypes[\"event:scene.preUnmount\"], () => {\r\n if (backgroundMusic) {\r\n stopWithFade(backgroundMusic, scene.state.backgroundMusicFade).then();\r\n }\r\n })\r\n }\r\n ];\r\n return () => {\r\n listeners.forEach(({ type, listener }) => {\r\n scene.events.off(type, listener);\r\n });\r\n };\r\n }, []);\r\n useEffect(() => {\r\n scene.events.emit(GameScene.EventTypes[\"event:scene.mount\"]);\r\n return () => {\r\n scene.events.emit(GameScene.EventTypes[\"event:scene.unmount\"]);\r\n };\r\n }, []);\r\n return (<div className={className}>\r\n <BackgroundTransition scene={scene} props={{\r\n width: ratio.state.width,\r\n height: ratio.state.height,\r\n src: Utils.isImageSrc(scene.state.background) ?\r\n Utils.srcToString(scene.state.background) : void 0,\r\n style: {\r\n backgroundColor: Utils.isImageColor(scene.state.background) ?\r\n Utils.toHex(scene.state.background) : void 0,\r\n }\r\n }} state={state}/>\r\n {children}\r\n </div>);\r\n}\r\n;\r\n","export {};\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nimport { EventDispatcher, Logger, sleep } from \"@lib/util/data\";\r\nimport { Image } from \"@core/elements/image\";\r\nimport * as Howler from \"howler\";\r\nimport { SceneAction } from \"@core/action/actions/sceneAction\";\r\nexport class GameState {\r\n constructor(game, stage) {\r\n this.state = {\r\n sounds: [],\r\n srcManagers: [],\r\n elements: [],\r\n };\r\n this.currentHandling = null;\r\n this.stage = stage;\r\n this.game = game;\r\n this.events = new EventDispatcher();\r\n this.logger = new Logger(game, \"NarraLeaf-React\");\r\n }\r\n findElementByScene(scene) {\r\n return this.state.elements.find(e => e.scene === scene) || null;\r\n }\r\n findElementByDisplayable(displayable) {\r\n return this.state.elements.find(e => e.ele.displayable.includes(displayable)) || null;\r\n }\r\n addScene(scene) {\r\n if (this.sceneExists(scene))\r\n return this;\r\n this.state.elements.push({\r\n scene,\r\n ele: this.getElementMap()\r\n });\r\n return this;\r\n }\r\n popScene() {\r\n const scene = this.state.elements.pop();\r\n if (!scene)\r\n return this;\r\n this.removeElements(scene.scene);\r\n return this;\r\n }\r\n removeScene(scene) {\r\n this.removeElements(scene);\r\n return this;\r\n }\r\n getSceneElements() {\r\n return this.state.elements;\r\n }\r\n getLastScene() {\r\n var _a;\r\n return ((_a = this.state.elements[this.state.elements.length - 1]) === null || _a === void 0 ? void 0 : _a.scene) || null;\r\n }\r\n sceneExists(scene) {\r\n if (!scene)\r\n return !!this.getLastScene();\r\n return this.state.elements.some(s => s.scene === scene);\r\n }\r\n isSceneActive(scene) {\r\n for (const { scene: s } of this.state.elements) {\r\n if (s === scene)\r\n return true;\r\n }\r\n return false;\r\n }\r\n handle(action) {\r\n if (this.currentHandling === action)\r\n return this;\r\n this.currentHandling = action;\r\n switch (action.type) {\r\n case \"condition:action\":\r\n break;\r\n }\r\n return this;\r\n }\r\n createText(id, sentence, afterClick, scene) {\r\n var _a;\r\n const texts = (_a = this.findElementByScene(this._getLastSceneIfNot(scene))) === null || _a === void 0 ? void 0 : _a.ele.texts;\r\n if (!texts) {\r\n throw new Error(\"Scene not found\");\r\n }\r\n const action = this.createWaitableAction({\r\n character: sentence.config.character,\r\n sentence,\r\n id\r\n }, () => {\r\n texts.splice(texts.indexOf(action), 1);\r\n if (afterClick)\r\n afterClick();\r\n });\r\n texts.push(action);\r\n }\r\n createMenu(menu, afterChoose, scene) {\r\n var _a;\r\n if (!menu.choices.length) {\r\n throw new Error(\"Menu must have at least one choice\");\r\n }\r\n const menus = (_a = this.findElementByScene(this._getLastSceneIfNot(scene))) === null || _a === void 0 ? void 0 : _a.ele.menus;\r\n if (!menus) {\r\n throw new Error(\"Scene not found\");\r\n }\r\n const action = this.createWaitableAction(menu, (choice) => {\r\n menus.splice(menus.indexOf(action), 1);\r\n if (afterChoose)\r\n afterChoose(choice);\r\n });\r\n menus.push(action);\r\n }\r\n createImage(image, scene) {\r\n const targetScene = this._getLastSceneIfNot(scene);\r\n const targetElement = this.findElementByScene(targetScene);\r\n if (!targetElement)\r\n return this;\r\n targetElement.ele.displayable.push(image);\r\n return this;\r\n }\r\n createWearable(parent, image) {\r\n return parent.events.any(Image.EventTypes[\"event:wearable.create\"], image);\r\n }\r\n disposeImage(image, scene) {\r\n var _a;\r\n const targetScene = this._getLastSceneIfNot(scene);\r\n const images = (_a = this.findElementByScene(targetScene)) === null || _a === void 0 ? void 0 : _a.ele.displayable;\r\n if (!images) {\r\n throw new Error(\"Scene not found\");\r\n }\r\n const index = images.indexOf(image);\r\n if (index === -1) {\r\n throw new Error(\"Image not found\");\r\n }\r\n images.splice(index, 1);\r\n return this;\r\n }\r\n createDisplayable(displayable, scene) {\r\n const targetScene = this._getLastSceneIfNot(scene);\r\n const targetElement = this.findElementByScene(targetScene);\r\n if (!targetElement)\r\n return this;\r\n targetElement.ele.displayable.push(displayable);\r\n return this;\r\n }\r\n disposeDisplayable(displayable, scene) {\r\n var _a;\r\n const targetScene = this._getLastSceneIfNot(scene);\r\n const displayables = (_a = this.findElementByScene(targetScene)) === null || _a === void 0 ? void 0 : _a.ele.displayable;\r\n if (!displayables) {\r\n throw new Error(\"Scene not found\");\r\n }\r\n const index = displayables.indexOf(displayable);\r\n if (index === -1) {\r\n throw new Error(\"Displayables not found\");\r\n }\r\n displayables.splice(index, 1);\r\n return this;\r\n }\r\n forceReset() {\r\n this.state.sounds.forEach(s => { var _a; return (_a = s.getPlaying()) === null || _a === void 0 ? void 0 : _a.stop(); });\r\n this.state.elements.forEach(({ scene }) => {\r\n this.offSrcManager(scene.srcManager);\r\n this.removeScene(scene);\r\n scene.events.clear();\r\n });\r\n this.state.elements = [];\r\n this.state.srcManagers = [];\r\n }\r\n initSound(sound, options) {\r\n if (!sound.getPlaying()) {\r\n sound.setPlaying(new (this.getHowl())(sound.getHowlOptions(options)));\r\n }\r\n return sound;\r\n }\r\n playSound(sound, onEnd, options) {\r\n this.initSound(sound, options);\r\n const token = sound.getPlaying().play();\r\n const events = [\r\n sound.getPlaying().once(\"end\", end.bind(this)),\r\n sound.getPlaying().once(\"stop\", end.bind(this))\r\n ];\r\n this.state.sounds.push(sound);\r\n sound.state.token = token;\r\n function end() {\r\n if (onEnd) {\r\n onEnd();\r\n }\r\n events.forEach(e => e.off());\r\n this.state.sounds = this.state.sounds.filter(s => s !== sound);\r\n this.stage.next();\r\n }\r\n return token;\r\n }\r\n stopSound(sound) {\r\n var _a, _b;\r\n if ((_a = sound.state.playing) === null || _a === void 0 ? void 0 : _a.playing(sound.getToken())) {\r\n (_b = sound.state.playing) === null || _b === void 0 ? void 0 : _b.stop(sound.getToken());\r\n }\r\n sound\r\n .setPlaying(null)\r\n .setToken(null);\r\n return sound;\r\n }\r\n transitionSound(prev, cur, duration) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (prev) {\r\n if (duration)\r\n yield this.fadeSound(prev, 0, duration);\r\n this.stopSound(prev);\r\n }\r\n if (cur) {\r\n const volume = cur.config.volume;\r\n this.playSound(cur, undefined, {\r\n volume: 0\r\n });\r\n if (duration)\r\n yield this.fadeSound(cur, volume, duration);\r\n cur.getPlaying().volume(volume, cur.getToken());\r\n }\r\n });\r\n }\r\n fadeSound(sound, target, duration) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const originalVolume = (_a = sound.getPlaying()) === null || _a === void 0 ? void 0 : _a.volume(sound.getToken());\r\n (_b = sound.getPlaying()) === null || _b === void 0 ? void 0 : _b.fade(originalVolume, target, duration, sound.getToken());\r\n yield sleep(duration);\r\n return void 0;\r\n });\r\n }\r\n getHowl() {\r\n return Howler.Howl;\r\n }\r\n animateImage(type, target, args, onEnd) {\r\n return this.anyEvent(type, target, onEnd, ...args);\r\n }\r\n animateText(type, target, args, onEnd) {\r\n return this.anyEvent(type, target, onEnd, ...args);\r\n }\r\n registerSrcManager(srcManager) {\r\n this.state.srcManagers.push(srcManager);\r\n return this;\r\n }\r\n offSrcManager(srcManager) {\r\n this.state.srcManagers = this.state.srcManagers.filter(s => s !== srcManager);\r\n return this;\r\n }\r\n getStorable() {\r\n return this.game.getLiveGame().getStorable();\r\n }\r\n /**\r\n * Dispose the game state\r\n *\r\n * This is an irreversible action, once disposed, the game state cannot be used again.\r\n *\r\n * Do not call this method directly\r\n */\r\n dispose() {\r\n this.forceReset();\r\n }\r\n toData() {\r\n return {\r\n scenes: this.state.elements.map(e => {\r\n return {\r\n sceneId: e.scene.getId(),\r\n elements: {\r\n displayable: e.ele.displayable.map(d => d.getId())\r\n }\r\n };\r\n })\r\n };\r\n }\r\n loadData(data, elementMap) {\r\n this.state.elements = [];\r\n const story = this.game.getLiveGame().story;\r\n if (!story) {\r\n throw new Error(\"No story loaded\");\r\n }\r\n const { scenes } = data;\r\n scenes.forEach(({ sceneId, elements }) => {\r\n this.logger.debug(\"Loading scene: \" + sceneId);\r\n const scene = elementMap.get(sceneId);\r\n if (!scene) {\r\n throw new Error(\"Scene not found, id: \" + sceneId + \"\\nNarraLeaf cannot find the element with the id from the saved game\");\r\n }\r\n const displayable = elements.displayable.map(d => {\r\n if (!elementMap.has(d)) {\r\n throw new Error(\"Displayable not found, id: \" + d + \"\\nNarraLeaf cannot find the element with the id from the saved game\" +\r\n \"\\nThis may be caused by the damage of the saved game file or the change of the story file\");\r\n }\r\n return elementMap.get(d);\r\n });\r\n const element = {\r\n scene,\r\n ele: {\r\n menus: [],\r\n texts: [],\r\n displayable,\r\n }\r\n };\r\n this.state.elements.push(element);\r\n this.registerSrcManager(scene.srcManager);\r\n SceneAction.registerEventListeners(scene, this);\r\n });\r\n }\r\n initScenes() {\r\n this.state.elements.forEach(({ scene }) => {\r\n SceneAction.registerEventListeners(scene, this);\r\n });\r\n }\r\n getElementMap() {\r\n return {\r\n texts: [],\r\n menus: [],\r\n displayable: [],\r\n };\r\n }\r\n removeElements(scene) {\r\n const index = this.state.elements.findIndex(s => s.scene === scene);\r\n if (index === -1)\r\n return this;\r\n this.state.elements.splice(index, 1);\r\n return this;\r\n }\r\n _getLastSceneIfNot(scene) {\r\n const targetScene = scene || this.getLastScene();\r\n if (!targetScene || !this.sceneExists(targetScene)) {\r\n throw new Error(\"Scene not found, please call \\\"scene.activate()\\\" first.\");\r\n }\r\n return targetScene;\r\n }\r\n anyEvent(type, target, onEnd, ...args) {\r\n target.events.any(type, ...args).then(onEnd).then(() => {\r\n this.stage.next();\r\n });\r\n return void 0;\r\n }\r\n createWaitableAction(action, after) {\r\n const item = {\r\n action,\r\n onClick: ((arg0) => {\r\n if (after)\r\n after(arg0);\r\n })\r\n };\r\n return item;\r\n }\r\n}\r\nGameState.EventTypes = {\r\n \"event:state.ready\": \"event:state.ready\",\r\n \"event:state.end\": \"event:state.end\",\r\n \"event:state.player.skip\": \"event:state.player.skip\",\r\n \"event:state.preload.unmount\": \"event:state.preload.unmount\",\r\n \"event:state.preload.loaded\": \"event:state.preload.loaded\",\r\n \"event:state.player.flush\": \"event:state.player.flush\",\r\n};\r\n","import Isolated from \"@player/lib/isolated\";\r\nimport Say from \"@player/elements/say/Say\";\r\nexport { Isolated, Say, };\r\n","import clsx from \"clsx\";\r\nimport React, { useEffect, useReducer, useState } from \"react\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nimport { useGame } from \"@player/provider/game-state\";\r\nimport { debounce } from \"@lib/util/data\";\r\nexport default function AspectRatio({ children, className }) {\r\n const [style, setStyle] = useState({});\r\n const { ratio } = useRatio();\r\n const { game } = useGame();\r\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\r\n const MIN_WIDTH = game.config.player.minWidth;\r\n const MIN_HEIGHT = game.config.player.minHeight;\r\n useEffect(() => {\r\n let resizeTimeout;\r\n const updateStyle = () => {\r\n if (ratio.isLocked()) {\r\n console.warn(\"NarraLeaf-React: Ratio is locked, skipping update\");\r\n return;\r\n }\r\n const container = document.getElementById(game.config.player.contentContainerId);\r\n if (container) {\r\n const containerWidth = container.clientWidth;\r\n const containerHeight = container.clientHeight;\r\n const aspectRatio = game.config.player.aspectRatio;\r\n let width, height;\r\n if (containerWidth / containerHeight > aspectRatio) {\r\n width = containerHeight * aspectRatio;\r\n height = containerHeight;\r\n }\r\n else {\r\n width = containerWidth;\r\n height = containerWidth / aspectRatio;\r\n }\r\n if (width < MIN_WIDTH)\r\n width = MIN_WIDTH;\r\n if (height < MIN_HEIGHT)\r\n height = MIN_HEIGHT;\r\n setStyle({\r\n width: `${width}px`,\r\n height: `${height}px`,\r\n margin: \"auto\",\r\n position: \"absolute\",\r\n top: \"0\",\r\n bottom: \"0\",\r\n left: \"0\",\r\n right: \"0\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n });\r\n const scale = width / game.config.player.width;\r\n ratio.update(width, height, scale);\r\n ratio.updateMin(MIN_WIDTH, MIN_HEIGHT);\r\n forceUpdate();\r\n }\r\n };\r\n ratio.setUpdate(updateStyle);\r\n const handleResize = () => {\r\n updateStyle();\r\n clearTimeout(resizeTimeout);\r\n ratio.pause();\r\n resizeTimeout = setTimeout(() => {\r\n ratio.resume();\r\n }, 100);\r\n };\r\n const listener = debounce(handleResize, game.config.player.ratioUpdateInterval);\r\n listener();\r\n window.addEventListener(\"resize\", listener);\r\n const updateRequestListenerToken = ratio.onRequestedUpdate(listener);\r\n return () => {\r\n window.removeEventListener(\"resize\", listener);\r\n clearTimeout(resizeTimeout);\r\n updateRequestListenerToken();\r\n };\r\n }, [ratio]);\r\n return (<div id={game.config.player.contentContainerId} style={{ position: \"relative\", width: \"100%\", height: \"100%\", overflow: \"hidden\" }}>\r\n <div className={clsx(className)} style={style}>\r\n {children}\r\n </div>\r\n </div>);\r\n}\r\n;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport ErrorFallback from \"@player/lib/ErrorFallback\";\r\nexport class ErrorBoundary extends React.Component {\r\n constructor() {\r\n super(...arguments);\r\n this.state = { hasError: false, error: null, errorInfo: null };\r\n }\r\n static getDerivedStateFromError(error) {\r\n return { hasError: true, error, errorInfo: null };\r\n }\r\n componentDidCatch(error, errorInfo) {\r\n this.setState({ error, errorInfo });\r\n console.error(error, errorInfo);\r\n }\r\n render() {\r\n if (this.state.hasError) {\r\n return <ErrorFallback error={this.state.error} errorInfo={this.state.errorInfo}/>;\r\n }\r\n return this.props.children;\r\n }\r\n}\r\nErrorBoundary.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n","import React from \"react\";\r\nimport { useGame } from \"@player/provider/game-state\";\r\nexport default function ErrorFallback({ error, errorInfo }) {\r\n const { game } = useGame();\r\n if (game.config.app.debug) {\r\n return (<div className={\"text-left\"}>\r\n <h1>It is my fault, NarraLeaf-React cannot initialize the player correctly.</h1>\r\n <p className={\"text-red-700\"}>Message: {error.message}</p>\r\n <pre>Error Stack: {error === null || error === void 0 ? void 0 : error.stack}</pre>\r\n <pre>Component Stack: {errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.componentStack}</pre>\r\n <pre>Digest: {errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.digest}</pre>\r\n </div>);\r\n }\r\n return (<div>\r\n <h1>The game cannot initialize the player correctly.</h1>\r\n <p>Please contact the game developer for further assistance.</p>\r\n </div>);\r\n}\r\n","var __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport React, { useState } from \"react\";\r\nimport { useGame } from \"@player/provider/game-state\";\r\nimport { m } from \"framer-motion\";\r\nfunction InspectBase(_a) {\r\n var { children, border = \"solid\", color = \"red\", tag, borderWidth = 1, as: Component = \"div\", Ref } = _a, props = __rest(_a, [\"children\", \"border\", \"color\", \"tag\", \"borderWidth\", \"as\", \"Ref\"]);\r\n const { game } = useGame();\r\n const [isHovered, setIsHovered] = useState(false);\r\n if (!game.config.app.inspector) {\r\n return <Component {...props} ref={Ref}>{children}</Component>;\r\n }\r\n const commonProps = Object.assign(Object.assign({}, props), { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), style: Object.assign(Object.assign({}, (props.style || {})), { outline: `${borderWidth}px ${border} ${color}`, zIndex: isHovered ? 1000 : \"auto\" }) });\r\n return (<Component {...commonProps} ref={Ref}>\r\n {tag && isHovered && (<span className=\"absolute top-0 left-0 bg-white text-black border-2 border-black text-sm\">\r\n {tag}\r\n </span>)}\r\n {children}\r\n </Component>);\r\n}\r\n/**\r\n * For self-closing tags\r\n * @constructor\r\n */\r\nfunction InspectCloseBase(_a) {\r\n var { border = \"solid\", color = \"red\", tag, borderWidth = 1, as: Component = \"img\" } = _a, props = __rest(_a, [\"border\", \"color\", \"tag\", \"borderWidth\", \"as\"]);\r\n const { game } = useGame();\r\n const [isHovered, setIsHovered] = useState(false);\r\n if (!game.config.app.inspector) {\r\n return <Component {...props}/>;\r\n }\r\n const commonProps = Object.assign(Object.assign({}, props), { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), style: Object.assign(Object.assign({}, (props.style || {})), { outline: `${border} ${borderWidth}px ${color}`, zIndex: isHovered ? 1000 : \"auto\" }) });\r\n return (<div>\r\n <Component {...commonProps}/>\r\n {tag && isHovered && (<span className=\"absolute top-0 left-0 bg-white text-black border-2 border-black\">\r\n {tag}\r\n </span>)}\r\n </div>);\r\n}\r\nfunction InspectDiv(props) {\r\n return <InspectBase {...props} as=\"div\"/>;\r\n}\r\nfunction InspectSpan(props) {\r\n return <InspectBase {...props} as=\"span\"/>;\r\n}\r\nfunction InspectImg(props) {\r\n return <InspectCloseBase {...props} as=\"img\"/>;\r\n}\r\nfunction InspectButton(props) {\r\n return <InspectBase {...props} as=\"button\"/>;\r\n}\r\nfunction InspectFramerMotionDiv(props) {\r\n return <InspectBase {...props} as={m.div} Ref={props.Ref}/>;\r\n}\r\nconst Inspect = {\r\n Div: InspectDiv,\r\n Span: InspectSpan,\r\n Button: InspectButton,\r\n Img: InspectImg,\r\n mDiv: InspectFramerMotionDiv,\r\n};\r\nexport default Inspect;\r\n","import { domAnimation, LazyMotion } from \"framer-motion\";\r\nimport React from \"react\";\r\nexport default function Motion({ children }) {\r\n return (<LazyMotion features={domAnimation} strict>\r\n {children}\r\n </LazyMotion>);\r\n}\r\n","import { EventDispatcher } from \"@lib/util/data\";\r\nimport { Utils } from \"@core/common/Utils\";\r\nexport class Preloaded {\r\n constructor() {\r\n this.preloaded = [];\r\n this.events = new EventDispatcher();\r\n }\r\n add(src) {\r\n if (this.has(this.getSrc(src)))\r\n return this;\r\n this.preloaded.push(src);\r\n this.events.emit(Preloaded.EventTypes[\"event:preloaded.add\"], src);\r\n this.events.emit(Preloaded.EventTypes[\"event:preloaded.change\"]);\r\n return this;\r\n }\r\n get(src) {\r\n return this.preloaded.find(p => this.getSrc(p) === src);\r\n }\r\n has(src) {\r\n if (Array.isArray(src)) {\r\n return src.every(s => this.has(s));\r\n }\r\n return this.preloaded.some(p => this.getSrc(p) === src);\r\n }\r\n remove(src) {\r\n if (Array.isArray(src)) {\r\n const removeNeeded = src.map(s => this.getSrc(s));\r\n this.preloaded = this.preloaded.filter(p => !removeNeeded.includes(this.getSrc(p)));\r\n return this;\r\n }\r\n const thisSrc = this.getSrc(src);\r\n this.preloaded = this.preloaded.filter(p => this.getSrc(p) !== thisSrc);\r\n this.events.emit(Preloaded.EventTypes[\"event:preloaded.remove\"], src);\r\n this.events.emit(Preloaded.EventTypes[\"event:preloaded.change\"]);\r\n return this;\r\n }\r\n clear() {\r\n this.preloaded = [];\r\n return this;\r\n }\r\n getSrc(src) {\r\n if (typeof src === \"string\") {\r\n return src;\r\n }\r\n if (src.type === \"image\") {\r\n return Utils.srcToString(src.src.state.src);\r\n }\r\n else if (src.type === \"video\") {\r\n return src.src;\r\n }\r\n else if (src.type === \"audio\") {\r\n return src.src.getSrc();\r\n }\r\n return \"\";\r\n }\r\n}\r\nPreloaded.EventTypes = {\r\n \"event:preloaded.add\": \"event:preloaded.add\",\r\n \"event:preloaded.remove\": \"event:preloaded.remove\",\r\n \"event:preloaded.change\": \"event:preloaded.change\",\r\n \"event:preloaded.mount\": \"event:preloaded.mount\",\r\n \"event:preloaded.ready\": \"event:preloaded.ready\",\r\n};\r\n","\"use client\";\r\nimport React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { useRatio } from \"@player/provider/ratio\";\r\nexport default function Isolated({ children, className, props, ref }) {\r\n const { ratio } = useRatio();\r\n const styles = ratio.getStyle();\r\n return (<div className={clsx(\"inset-0 flex items-center justify-center\", className)} style={{\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: `${ratio.state.minWidth}px`,\r\n minHeight: `${ratio.state.minHeight}px`,\r\n }}>\r\n <div style={Object.assign(Object.assign({}, styles), { position: \"relative\", overflow: \"hidden\" })} {...(props || {})} ref={ref}>\r\n {children}\r\n </div>\r\n </div>);\r\n}\r\n","\"use client\";\r\nimport React, { useContext, useState } from \"react\";\r\nimport { Game } from \"@core/game\";\r\nconst GameContext = React.createContext(null);\r\nexport function GameProvider({ children, game }) {\r\n \"use client\";\r\n const DefaultValue = new Game({});\r\n const [_game, setGame] = useState(game || DefaultValue);\r\n return (<GameContext.Provider value={{ game: _game, setGame }}>\r\n {children}\r\n </GameContext.Provider>);\r\n}\r\n/**\r\n * use {@link Game} context\r\n * @returns {GameContextType}\r\n */\r\nexport function useGame() {\r\n const context = useContext(GameContext);\r\n if (!context)\r\n throw new Error(\"useGame must be used within a GameProvider\");\r\n return context;\r\n}\r\n","\"use client\";\r\nimport React, { createContext, useContext, useState } from \"react\";\r\nimport { Preloaded } from \"@player/lib/Preloaded\";\r\nconst Context = createContext(null);\r\nexport function PreloadedProvider({ children }) {\r\n const [preloaded] = useState(new Preloaded());\r\n return (<>\r\n <Context.Provider value={{ preloaded: preloaded }}>\r\n {children}\r\n </Context.Provider>\r\n </>);\r\n}\r\nexport function usePreloaded() {\r\n if (!Context)\r\n throw new Error(\"usePreloaded must be used within a PreloadedProvider\");\r\n return useContext(Context);\r\n}\r\n","\"use client\";\r\nimport \"client-only\";\r\nimport React from \"react\";\r\nimport { PreloadedProvider } from \"@player/provider/preloaded\";\r\nimport { RatioProvider } from \"@player/provider/ratio\";\r\nimport { GameProvider } from \"@player/provider/game-state\";\r\nexport default function GameProviders({ children, game }) {\r\n return (<>\r\n <RatioProvider>\r\n <GameProvider game={game}>\r\n <PreloadedProvider>\r\n {children}\r\n </PreloadedProvider>\r\n </GameProvider>\r\n </RatioProvider>\r\n </>);\r\n}\r\n","\"use client\";\r\nimport React, { createContext, useContext, useEffect, useReducer, useState } from \"react\";\r\nimport { EventDispatcher } from \"@lib/util/data\";\r\nclass AspectRatio {\r\n constructor() {\r\n this.state = {\r\n width: 0,\r\n height: 0,\r\n minWidth: 800,\r\n minHeight: 450,\r\n paused: false,\r\n scale: 0,\r\n };\r\n this.events = new EventDispatcher();\r\n this.lockers = [];\r\n this.updater = null;\r\n }\r\n update(width, height, scale) {\r\n this.state.width = width;\r\n this.state.height = height;\r\n this.state.scale = scale;\r\n this.events.emit(AspectRatio.EventTypes[\"event:aspectRatio.update\"], width, height);\r\n }\r\n updateMin(width, height) {\r\n this.state.minWidth = width;\r\n this.state.minHeight = height;\r\n }\r\n lock() {\r\n const locker = Symbol();\r\n this.lockers.push(locker);\r\n return locker;\r\n }\r\n unlock(locker) {\r\n if (locker && (!this.lockers.includes(locker))) {\r\n throw new Error(\"Locker not found\");\r\n }\r\n this.lockers = this.lockers.filter((l) => l !== locker);\r\n this.triggerUpdate();\r\n return null;\r\n }\r\n isLocked() {\r\n return !!this.lockers.length;\r\n }\r\n getStyle() {\r\n return {\r\n width: `${this.state.width}px`,\r\n height: `${this.state.height}px`,\r\n };\r\n }\r\n setUpdate(updater) {\r\n this.updater = updater;\r\n }\r\n pause() {\r\n this.state.paused = true;\r\n this.events.emit(AspectRatio.EventTypes[\"event:aspectRatio.pause\"]);\r\n }\r\n resume() {\r\n this.state.paused = false;\r\n this.events.emit(AspectRatio.EventTypes[\"event:aspectRatio.resume\"]);\r\n }\r\n onUpdate(callback) {\r\n this.events.on(AspectRatio.EventTypes[\"event:aspectRatio.update\"], callback);\r\n return () => {\r\n this.events.off(AspectRatio.EventTypes[\"event:aspectRatio.update\"], callback);\r\n };\r\n }\r\n requestUpdate() {\r\n this.events.emit(AspectRatio.EventTypes[\"event:aspectRatio.requestUpdate\"]);\r\n }\r\n onRequestedUpdate(callback) {\r\n this.events.on(AspectRatio.EventTypes[\"event:aspectRatio.requestUpdate\"], callback);\r\n return () => {\r\n this.events.off(AspectRatio.EventTypes[\"event:aspectRatio.requestUpdate\"], callback);\r\n };\r\n }\r\n triggerUpdate() {\r\n if (this.updater) {\r\n this.updater();\r\n }\r\n }\r\n}\r\nAspectRatio.EventTypes = {\r\n \"event:aspectRatio.update\": \"event:aspectRatio.update\",\r\n \"event:aspectRatio.pause\": \"event:aspectRatio.pause\",\r\n \"event:aspectRatio.resume\": \"event:aspectRatio.resume\",\r\n \"event:aspectRatio.requestUpdate\": \"event:aspectRatio.requestUpdate\",\r\n};\r\nconst RatioContext = createContext(null);\r\nexport function RatioProvider({ children }) {\r\n const [ratio] = useState(() => new AspectRatio());\r\n return (<RatioContext.Provider value={{ ratio }}>\r\n {children}\r\n </RatioContext.Provider>);\r\n}\r\nexport function useRatio() {\r\n const context = useContext(RatioContext);\r\n if (!RatioContext || !context)\r\n throw new Error(\"useRatio must be used within a RatioProvider\");\r\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\r\n const { ratio } = context;\r\n useEffect(() => {\r\n return ratio.onUpdate(() => {\r\n forceUpdate();\r\n });\r\n }, []);\r\n return context;\r\n}\r\n","export * from \"@player/elements/type\";\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n/**\r\n * @param obj1 source object\r\n * @param obj2 this object will overwrite the source object\r\n * @param objs\r\n * @example\r\n * deepMerge(defaultConfig, config);\r\n */\r\nexport function deepMerge(obj1, obj2, ...objs) {\r\n const hasOwnProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);\r\n const result = {};\r\n const mergeValue = (_, value1, value2) => {\r\n if (typeof value1 === \"object\" && value1 !== null && !Array.isArray(value1) &&\r\n typeof value2 === \"object\" && value2 !== null && !Array.isArray(value2)) {\r\n if (value1.constructor !== Object || value2.constructor !== Object) {\r\n return value2 || value1;\r\n }\r\n return deepMerge(value1, value2);\r\n }\r\n else if (Array.isArray(value1) && Array.isArray(value2)) {\r\n if (value2 && value2.length > 0) {\r\n return [...value2];\r\n }\r\n return [...value1];\r\n }\r\n else if (value1 === undefined && Array.isArray(value2)) {\r\n return [...value2];\r\n }\r\n else {\r\n return value2 === undefined ? (Array.isArray(value1) ? [...value1] : value1) : (Array.isArray(value2) ? [...value2] : value2);\r\n }\r\n };\r\n for (const key in obj1) {\r\n if (hasOwnProperty(obj1, key)) {\r\n result[key] = mergeValue(key, obj1[key], obj2[key]);\r\n }\r\n }\r\n for (const key in obj2) {\r\n if (hasOwnProperty(obj2, key) && !hasOwnProperty(result, key)) {\r\n // If the value in obj2 is an object, perform a deep copy\r\n if (typeof obj2[key] === \"object\" && obj2[key] !== null) {\r\n if (obj2[key].constructor === Object) {\r\n result[key] = deepMerge({}, obj2[key]);\r\n }\r\n else {\r\n result[key] = obj2[key];\r\n }\r\n }\r\n else {\r\n result[key] = obj2[key];\r\n }\r\n }\r\n }\r\n if (objs.length) {\r\n const [next, ...rest] = objs;\r\n return deepMerge(result, next, ...rest);\r\n }\r\n return result;\r\n}\r\nexport class Awaitable {\r\n static isAwaitable(obj) {\r\n return obj instanceof Awaitable;\r\n }\r\n constructor(receiver = ((value) => value), skipController) {\r\n this.solved = false;\r\n this.listeners = [];\r\n this.receiver = receiver;\r\n this.skipController = skipController;\r\n }\r\n registerSkipController(skipController) {\r\n this.skipController = skipController;\r\n return this;\r\n }\r\n resolve(value) {\r\n if (this.solved) {\r\n return;\r\n }\r\n this.result = this.receiver(value);\r\n this.solved = true;\r\n if (this.skipController) {\r\n this.skipController.cancel();\r\n }\r\n for (const listener of this.listeners) {\r\n listener(this.result);\r\n }\r\n }\r\n then(callback) {\r\n if (this.result) {\r\n callback(this.result);\r\n }\r\n else {\r\n this.listeners.push(callback);\r\n }\r\n }\r\n abort() {\r\n if (this.skipController) {\r\n return this.skipController.abort();\r\n }\r\n return this.result;\r\n }\r\n}\r\nAwaitable.nothing = (value) => value;\r\nexport function safeClone(obj) {\r\n const seen = new WeakSet();\r\n function clone(obj) {\r\n if (obj === null || typeof obj !== \"object\") {\r\n return obj;\r\n }\r\n if (seen.has(obj)) {\r\n return undefined;\r\n }\r\n seen.add(obj);\r\n if (Array.isArray(obj)) {\r\n const arrCopy = [];\r\n for (const item of obj) {\r\n arrCopy.push(clone(item));\r\n }\r\n return arrCopy;\r\n }\r\n const objCopy = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n objCopy[key] = clone(obj[key]);\r\n }\r\n }\r\n return objCopy;\r\n }\r\n return clone(obj);\r\n}\r\nexport function toHex(hex) {\r\n if (typeof hex === \"string\") {\r\n return hex;\r\n }\r\n return `#${(hex.r || 0).toString(16).padStart(2, \"0\")}${(hex.g || 0).toString(16).padStart(2, \"0\")}${(hex.b || 0).toString(16).padStart(2, \"0\")}${(hex.a === undefined ? \"\" : hex.a.toString(16).padStart(2, \"0\"))}`;\r\n}\r\nexport class EventDispatcher {\r\n constructor() {\r\n this.events = {};\r\n }\r\n on(event, listener) {\r\n if (!this.events[event]) {\r\n this.events[event] = [];\r\n }\r\n this.events[event].push(listener);\r\n this.emit(\"event:EventDispatcher.register\", event, listener);\r\n return listener;\r\n }\r\n onEvents(events) {\r\n const tokens = events.map(({ type, listener }) => {\r\n return {\r\n type,\r\n listener,\r\n cancel: () => {\r\n this.off(type, listener);\r\n }\r\n };\r\n });\r\n return {\r\n tokens,\r\n cancel: () => {\r\n tokens.forEach(token => token.cancel());\r\n }\r\n };\r\n }\r\n off(event, listener) {\r\n if (!this.events[event])\r\n return;\r\n this.events[event] = this.events[event].filter(l => l !== listener);\r\n }\r\n emit(event, ...args) {\r\n if (!this.events[event])\r\n return;\r\n this.events[event].forEach(listener => {\r\n listener(...args);\r\n });\r\n }\r\n once(event, listener) {\r\n const onceListener = (...args) => {\r\n listener(...args);\r\n this.off(event, onceListener);\r\n };\r\n return this.on(event, onceListener);\r\n }\r\n any(event, ...args) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.events[event]) {\r\n this.events[event] = [];\r\n }\r\n const promises = [];\r\n let solved = false;\r\n for (const listener of this.events[event]) {\r\n const result = listener(...args);\r\n if (result && (typeof result === \"object\" && typeof result[\"then\"] === \"function\")) {\r\n promises.push(result);\r\n }\r\n else {\r\n solved = true;\r\n }\r\n }\r\n if (solved) {\r\n return void 0;\r\n }\r\n this.events[event] = this.events[event].filter(l => !promises.includes(l));\r\n if (promises.length === 0) {\r\n return new Promise((resolve) => {\r\n const type = \"event:EventDispatcher.register\";\r\n const listener = this.on(type, (type, fc) => {\r\n if (type === event) {\r\n this.off(type, listener);\r\n const res = fc === null || fc === void 0 ? void 0 : fc(...args);\r\n if (res && res[\"then\"]) {\r\n res[\"then\"](resolve);\r\n }\r\n else {\r\n resolve(res);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n yield Promise.all(promises);\r\n return void 0;\r\n });\r\n }\r\n clear() {\r\n this.events = {};\r\n }\r\n}\r\n/**\r\n * Get the call stack\r\n * @param n The number of stack frames to skip\r\n * @param s The number of stack frames cut off from the end\r\n */\r\nexport function getCallStack(n = 1, s = 0) {\r\n const stack = new Error().stack;\r\n if (!stack) {\r\n return \"\";\r\n }\r\n return stack.split(\"\\n\").slice(n + 1, -s).join(\"\\n\").trim();\r\n}\r\nexport function sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\nexport function deepEqual(obj1, obj2) {\r\n if (obj1 === obj2)\r\n return true;\r\n if (typeof obj1 !== \"object\" || typeof obj2 !== \"object\" || obj1 === null || obj2 === null)\r\n return false;\r\n const keys1 = Object.keys(obj1);\r\n const keys2 = Object.keys(obj2);\r\n if (keys1.length !== keys2.length)\r\n return false;\r\n for (const key of keys1) {\r\n if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nexport class Logger {\r\n constructor(game, prefix) {\r\n this.game = game;\r\n this.prefix = prefix;\r\n }\r\n log(tag, ...args) {\r\n if (this.game.config.app.logger.log) {\r\n console.log(...this._log(tag, ...args));\r\n }\r\n }\r\n info(tag, ...args) {\r\n if (this.game.config.app.logger.info) {\r\n console.info(...this._log(tag, ...args));\r\n }\r\n }\r\n warn(tag, ...args) {\r\n if (this.game.config.app.logger.warn) {\r\n console.warn(...this._log(tag, ...args));\r\n }\r\n }\r\n error(tag, ...args) {\r\n if (this.game.config.app.logger.error) {\r\n console.error(...this._log(tag, ...args));\r\n }\r\n }\r\n debug(tag, ...args) {\r\n if (this.game.config.app.logger.debug) {\r\n console.debug(...this._log(tag, ...args));\r\n }\r\n }\r\n trace(tag, ...args) {\r\n if (this.game.config.app.logger.trace) {\r\n console.trace(this._log(tag, ...args));\r\n }\r\n }\r\n _log(tag, ...args) {\r\n if (args.length === 0) {\r\n return [this.prefix || \"\", tag];\r\n }\r\n else {\r\n return [`${this.prefix || \"\"} [${tag}]`, ...args];\r\n }\r\n }\r\n}\r\nexport class SkipController {\r\n constructor(abortHandler) {\r\n this.abortHandler = abortHandler;\r\n this.events = new EventDispatcher();\r\n this.aborted = false;\r\n }\r\n ;\r\n abort(...args) {\r\n if (this.aborted) {\r\n return this.result;\r\n }\r\n this.aborted = true;\r\n this.result = this.abortHandler(...args);\r\n return this.result;\r\n }\r\n isAborted() {\r\n return this.aborted;\r\n }\r\n cancel() {\r\n this.aborted = true;\r\n }\r\n}\r\nSkipController.EventTypes = {\r\n \"event:skipController.abort\": \"event:skipController.abort\",\r\n};\r\nexport function throttle(fn, delay) {\r\n let last = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (now - last < delay) {\r\n return;\r\n }\r\n last = now;\r\n return fn(...args);\r\n };\r\n}\r\nexport class Lock {\r\n constructor() {\r\n this.locked = false;\r\n this.listeners = [];\r\n this.unlockListeners = [];\r\n }\r\n lock() {\r\n this.locked = true;\r\n return this;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n for (const listener of this.listeners) {\r\n listener();\r\n }\r\n for (const listener of this.unlockListeners) {\r\n listener();\r\n }\r\n this.listeners = [];\r\n return this;\r\n }\r\n onUnlock(listener) {\r\n this.unlockListeners.push(listener);\r\n return listener;\r\n }\r\n offUnlock(listener) {\r\n this.unlockListeners = this.unlockListeners.filter(l => l !== listener);\r\n }\r\n nextUnlock() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.locked) {\r\n return;\r\n }\r\n return new Promise(resolve => {\r\n this.listeners.push(resolve);\r\n });\r\n });\r\n }\r\n isLocked() {\r\n return this.locked;\r\n }\r\n}\r\nexport class MultiLock {\r\n constructor() {\r\n this.locks = [];\r\n }\r\n unlock(lock) {\r\n lock.unlock();\r\n this.off(lock);\r\n return lock;\r\n }\r\n register(lock) {\r\n const targetLock = lock || new Lock();\r\n this.locks.push(targetLock);\r\n return targetLock;\r\n }\r\n off(lock) {\r\n this.locks = this.locks.filter(l => l !== lock);\r\n }\r\n nextUnlock() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const promises = this.locks.map(lock => lock.nextUnlock());\r\n return Promise.all(promises);\r\n });\r\n }\r\n isLocked() {\r\n return this.locks.some(lock => lock.isLocked());\r\n }\r\n}\r\nexport function onlyIf(condition, value, fallback = {}) {\r\n return condition ? value : fallback;\r\n}\r\nexport function debounce(fn, delay) {\r\n let timer = null;\r\n return function (...args) {\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n timer = setTimeout(() => {\r\n fn(...args);\r\n }, delay);\r\n };\r\n}\r\nexport function entriesForEach(obj, handler, validate = (v) => v !== undefined) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key) && key in handler && validate(obj[key], key)) {\r\n handler[key](obj[key], key);\r\n }\r\n }\r\n}\r\n","","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*\n! tailwindcss v3.4.11 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured \\`sans\\` font-family by default.\n5. Use the user's configured \\`sans\\` font-feature-settings by default.\n6. Use the user's configured \\`sans\\` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from \\`html\\` so users can set them as a class directly on the \\`html\\` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured \\`mono\\` font-family by default.\n2. Use the user's configured \\`mono\\` font-feature-settings by default.\n3. Use the user's configured \\`mono\\` font-variation-settings by default.\n4. Correct the odd \\`em\\` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent \\`sub\\` and \\`sup\\` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional \\`:invalid\\` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to \\`inherit\\` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements \\`display: block\\` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add \\`vertical-align: middle\\` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\r\n.\\\\!container {\n width: 100% !important;\n}\r\n.container {\n width: 100%;\n}\r\n@media (min-width: 640px) {\n\n .\\\\!container {\n max-width: 640px !important;\n }\n\n .container {\n max-width: 640px;\n }\n}\r\n@media (min-width: 768px) {\n\n .\\\\!container {\n max-width: 768px !important;\n }\n\n .container {\n max-width: 768px;\n }\n}\r\n@media (min-width: 1024px) {\n\n .\\\\!container {\n max-width: 1024px !important;\n }\n\n .container {\n max-width: 1024px;\n }\n}\r\n@media (min-width: 1280px) {\n\n .\\\\!container {\n max-width: 1280px !important;\n }\n\n .container {\n max-width: 1280px;\n }\n}\r\n@media (min-width: 1536px) {\n\n .\\\\!container {\n max-width: 1536px !important;\n }\n\n .container {\n max-width: 1536px;\n }\n}\r\n.static {\n position: static;\n}\r\n.absolute {\n position: absolute;\n}\r\n.relative {\n position: relative;\n}\r\n.inset-0 {\n inset: 0px;\n}\r\n.bottom-0 {\n bottom: 0px;\n}\r\n.left-0 {\n left: 0px;\n}\r\n.top-0 {\n top: 0px;\n}\r\n.z-10 {\n z-index: 10;\n}\r\n.z-20 {\n z-index: 20;\n}\r\n.mt-2 {\n margin-top: 0.5rem;\n}\r\n.mt-4 {\n margin-top: 1rem;\n}\r\n.block {\n display: block;\n}\r\n.inline-block {\n display: inline-block;\n}\r\n.flex {\n display: flex;\n}\r\n.hidden {\n display: none;\n}\r\n.h-full {\n height: 100%;\n}\r\n.w-1\\\\/2 {\n width: 50%;\n}\r\n.w-\\\\[calc\\\\(100\\\\%-40px\\\\)\\\\] {\n width: calc(100% - 40px);\n}\r\n.w-full {\n width: 100%;\n}\r\n.min-w-full {\n min-width: 100%;\n}\r\n.flex-grow {\n flex-grow: 1;\n}\r\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\r\n.resize {\n resize: both;\n}\r\n.flex-col {\n flex-direction: column;\n}\r\n.items-start {\n align-items: flex-start;\n}\r\n.items-center {\n align-items: center;\n}\r\n.justify-center {\n justify-content: center;\n}\r\n.justify-between {\n justify-content: space-between;\n}\r\n.overflow-auto {\n overflow: auto;\n}\r\n.overflow-hidden {\n overflow: hidden;\n}\r\n.whitespace-pre {\n white-space: pre;\n}\r\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n}\r\n.rounded {\n border-radius: 0.25rem;\n}\r\n.rounded-lg {\n border-radius: 0.5rem;\n}\r\n.rounded-md {\n border-radius: 0.375rem;\n}\r\n.rounded-br-md {\n border-bottom-right-radius: 0.375rem;\n}\r\n.border {\n border-width: 1px;\n}\r\n.border-2 {\n border-width: 2px;\n}\r\n.border-black {\n --tw-border-opacity: 1;\n border-color: rgb(0 0 0 / var(--tw-border-opacity));\n}\r\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\r\n.bg-cover {\n background-size: cover;\n}\r\n.bg-center {\n background-position: center;\n}\r\n.p-2 {\n padding: 0.5rem;\n}\r\n.p-4 {\n padding: 1rem;\n}\r\n.text-left {\n text-align: left;\n}\r\n.text-center {\n text-align: center;\n}\r\n.align-bottom {\n vertical-align: bottom;\n}\r\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\r\n.font-bold {\n font-weight: 700;\n}\r\n.italic {\n font-style: italic;\n}\r\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\r\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity));\n}\r\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\r\n.outline {\n outline-style: solid;\n}\r\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\r\n.\\\\!transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter !important;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter !important;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;\n transition-duration: 150ms !important;\n}\r\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\r\n\r\n.__narraleaf_content-player * {\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n}\r\n\r\n.__narraleaf_content-player img {\r\n pointer-events: none;\r\n -webkit-user-drag: none;\r\n -webkit-user-select: none;\r\n}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/game/player/lib/styles/style.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@tailwind base;\\r\\n@tailwind components;\\r\\n@tailwind utilities;\\r\\n\\r\\n.__narraleaf_content-player * {\\r\\n user-select: none;\\r\\n}\\r\\n\\r\\n.__narraleaf_content-player img {\\r\\n pointer-events: none;\\r\\n -webkit-user-drag: none;\\r\\n -webkit-user-select: none;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","/*!\n * howler.js v2.2.4\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and change the volumes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.volume = sound._volume * vol;\n }\n }\n }\n }\n\n return self;\n }\n\n return self._volume;\n },\n\n /**\n * Handle muting and unmuting globally.\n * @param {Boolean} muted Is muted or not.\n */\n mute: function(muted) {\n var self = this || Howler;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n self._muted = muted;\n\n // With Web Audio, we just need to mute the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(muted ? 0 : self._volume, Howler.ctx.currentTime);\n }\n\n // Loop through and mute all HTML5 Audio nodes.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and mark the audio node as muted.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.muted = (muted) ? true : sound._muted;\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Handle stopping all sounds globally.\n */\n stop: function() {\n var self = this || Howler;\n\n // Loop through all Howls and stop them.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i].stop();\n }\n\n return self;\n },\n\n /**\n * Unload and destroy all currently loaded Howl objects.\n * @return {Howler}\n */\n unload: function() {\n var self = this || Howler;\n\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/(\\d+)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i<self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds();\n\n // Loop through all sounds and unlock the audio nodes.\n for (var j=0; j<ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node && !sound._node._unlocked) {\n sound._node._unlocked = true;\n sound._node.load();\n }\n }\n }\n }\n\n // Fix Android can not play in suspend state.\n self._autoResume();\n\n // Create an empty buffer.\n var source = self.ctx.createBufferSource();\n source.buffer = self._scratchBuffer;\n source.connect(self.ctx.destination);\n\n // Play the empty buffer.\n if (typeof source.start === 'undefined') {\n source.noteOn(0);\n } else {\n source.start(0);\n }\n\n // Calling resume() on a stack initiated by user gesture is what actually unlocks the audio on Android Chrome >= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i]._emit('unlock');\n }\n };\n };\n\n // Setup a touch start listener to attempt an unlock in.\n document.addEventListener('touchstart', unlock, true);\n document.addEventListener('touchend', unlock, true);\n document.addEventListener('click', unlock, true);\n document.addEventListener('keydown', unlock, true);\n\n return self;\n },\n\n /**\n * Get an unlocked HTML5 Audio object from the pool. If none are left,\n * return a new Audio object and throw a warning.\n * @return {Audio} HTML5 Audio object.\n */\n _obtainHtml5Audio: function() {\n var self = this || Howler;\n\n // Return the next object from the pool if one exists.\n if (self._html5AudioPool.length) {\n return self._html5AudioPool.pop();\n }\n\n //.Check if the audio is locked and throw a warning.\n var testPlay = new Audio().play();\n if (testPlay && typeof Promise !== 'undefined' && (testPlay instanceof Promise || typeof testPlay.then === 'function')) {\n testPlay.catch(function() {\n console.warn('HTML5 Audio pool exhausted, returning potentially locked audio object.');\n });\n }\n\n return new Audio();\n },\n\n /**\n * Return an activated HTML5 Audio object to the pool.\n * @return {Howler}\n */\n _releaseHtml5Audio: function(audio) {\n var self = this || Howler;\n\n // Don't add audio to the pool if we don't know if it has been unlocked.\n if (audio._unlocked) {\n self._html5AudioPool.push(audio);\n }\n\n return self;\n },\n\n /**\n * Automatically suspend the Web Audio AudioContext after no sound has played for 30 seconds.\n * This saves processing/energy and fixes various browser-specific bugs with audio getting stuck.\n * @return {Howler}\n */\n _autoSuspend: function() {\n var self = this;\n\n if (!self.autoSuspend || !self.ctx || typeof self.ctx.suspend === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n // Check if any sounds are playing.\n for (var i=0; i<self._howls.length; i++) {\n if (self._howls[i]._webAudio) {\n for (var j=0; j<self._howls[i]._sounds.length; j++) {\n if (!self._howls[i]._sounds[j]._paused) {\n return self;\n }\n }\n }\n }\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n }\n\n // If no sound has played after 30 seconds, suspend the context.\n self._suspendTimer = setTimeout(function() {\n if (!self.autoSuspend) {\n return;\n }\n\n self._suspendTimer = null;\n self.state = 'suspending';\n\n // Handle updating the state of the audio context after suspending.\n var handleSuspension = function() {\n self.state = 'suspended';\n\n if (self._resumeAfterSuspend) {\n delete self._resumeAfterSuspend;\n self._autoResume();\n }\n };\n\n // Either the state gets suspended or it is interrupted.\n // Either way, we need to update the state to suspended.\n self.ctx.suspend().then(handleSuspension, handleSuspension);\n }, 30000);\n\n return self;\n },\n\n /**\n * Automatically resume the Web Audio AudioContext when a new sound is played.\n * @return {Howler}\n */\n _autoResume: function() {\n var self = this;\n\n if (!self.ctx || typeof self.ctx.resume === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n if (self.state === 'running' && self.ctx.state !== 'interrupted' && self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n } else if (self.state === 'suspended' || self.state === 'running' && self.ctx.state === 'interrupted') {\n self.ctx.resume().then(function() {\n self.state = 'running';\n\n // Emit to all Howls that the audio has resumed.\n for (var i=0; i<self._howls.length; i++) {\n self._howls[i]._emit('resume');\n }\n });\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n }\n } else if (self.state === 'suspending') {\n self._resumeAfterSuspend = true;\n }\n\n return self;\n }\n };\n\n // Setup the global audio controller.\n var Howler = new HowlerGlobal();\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Create an audio group controller.\n * @param {Object} o Passed in properties for this group.\n */\n var Howl = function(o) {\n var self = this;\n\n // Throw an error if no source is provided.\n if (!o.src || o.src.length === 0) {\n console.error('An array of source files must be passed with any new Howl.');\n return;\n }\n\n self.init(o);\n };\n Howl.prototype = {\n /**\n * Initialize a new Howl group object.\n * @param {Object} o Passed in properties for this group.\n * @return {Howl}\n */\n init: function(o) {\n var self = this;\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!Howler.ctx) {\n setupAudioContext();\n }\n\n // Setup user-defined default properties.\n self._autoplay = o.autoplay || false;\n self._format = (typeof o.format !== 'string') ? o.format : [o.format];\n self._html5 = o.html5 || false;\n self._muted = o.mute || false;\n self._loop = o.loop || false;\n self._pool = o.pool || 5;\n self._preload = (typeof o.preload === 'boolean' || o.preload === 'metadata') ? o.preload : true;\n self._rate = o.rate || 1;\n self._sprite = o.sprite || {};\n self._src = (typeof o.src !== 'string') ? o.src : [o.src];\n self._volume = o.volume !== undefined ? o.volume : 1;\n self._xhr = {\n method: o.xhr && o.xhr.method ? o.xhr.method : 'GET',\n headers: o.xhr && o.xhr.headers ? o.xhr.headers : null,\n withCredentials: o.xhr && o.xhr.withCredentials ? o.xhr.withCredentials : false,\n };\n\n // Setup all other default properties.\n self._duration = 0;\n self._state = 'unloaded';\n self._sounds = [];\n self._endTimers = {};\n self._queue = [];\n self._playLock = false;\n\n // Setup event listeners.\n self._onend = o.onend ? [{fn: o.onend}] : [];\n self._onfade = o.onfade ? [{fn: o.onfade}] : [];\n self._onload = o.onload ? [{fn: o.onload}] : [];\n self._onloaderror = o.onloaderror ? [{fn: o.onloaderror}] : [];\n self._onplayerror = o.onplayerror ? [{fn: o.onplayerror}] : [];\n self._onpause = o.onpause ? [{fn: o.onpause}] : [];\n self._onplay = o.onplay ? [{fn: o.onplay}] : [];\n self._onstop = o.onstop ? [{fn: o.onstop}] : [];\n self._onmute = o.onmute ? [{fn: o.onmute}] : [];\n self._onvolume = o.onvolume ? [{fn: o.onvolume}] : [];\n self._onrate = o.onrate ? [{fn: o.onrate}] : [];\n self._onseek = o.onseek ? [{fn: o.onseek}] : [];\n self._onunlock = o.onunlock ? [{fn: o.onunlock}] : [];\n self._onresume = [];\n\n // Web Audio or HTML5 Audio?\n self._webAudio = Howler.usingWebAudio && !self._html5;\n\n // Automatically try to enable audio.\n if (typeof Howler.ctx !== 'undefined' && Howler.ctx && Howler.autoUnlock) {\n Howler._unlockAudio();\n }\n\n // Keep track of this Howl group in the global controller.\n Howler._howls.push(self);\n\n // If they selected autoplay, add a play event to the load queue.\n if (self._autoplay) {\n self._queue.push({\n event: 'play',\n action: function() {\n self.play();\n }\n });\n }\n\n // Load the source file unless otherwise specified.\n if (self._preload && self._preload !== 'none') {\n self.load();\n }\n\n return self;\n },\n\n /**\n * Load the audio file.\n * @return {Howler}\n */\n load: function() {\n var self = this;\n var url = null;\n\n // If no audio is available, quit immediately.\n if (Howler.noAudio) {\n self._emit('loaderror', null, 'No audio support.');\n return;\n }\n\n // Make sure our source is in an array.\n if (typeof self._src === 'string') {\n self._src = [self._src];\n }\n\n // Loop through the sources and pick the first one that is compatible.\n for (var i=0; i<self._src.length; i++) {\n var ext, str;\n\n if (self._format && self._format[i]) {\n // If an extension was specified, use that instead.\n ext = self._format[i];\n } else {\n // Make sure the source is a string.\n str = self._src[i];\n if (typeof str !== 'string') {\n self._emit('loaderror', null, 'Non-string found in selected audio sources - ignoring.');\n continue;\n }\n\n // Extract the file extension from the URL or base64 data URI.\n ext = /^data:audio\\/([^;,]+);/i.exec(str);\n if (!ext) {\n ext = /\\.([^.]+)$/.exec(str.split('?', 1)[0]);\n }\n\n if (ext) {\n ext = ext[1].toLowerCase();\n }\n }\n\n // Log a warning if no extension was found.\n if (!ext) {\n console.warn('No file extension was found. Consider using the \"format\" property or specify an extension.');\n }\n\n // Check if this extension is available.\n if (ext && Howler.codecs(ext)) {\n url = self._src[i];\n break;\n }\n }\n\n if (!url) {\n self._emit('loaderror', null, 'No codec support for selected audio sources.');\n return;\n }\n\n self._src = url;\n self._state = 'loading';\n\n // If the hosting page is HTTPS and the source isn't,\n // drop down to HTML5 Audio to avoid Mixed Content errors.\n if (window.location.protocol === 'https:' && url.slice(0, 5) === 'http:') {\n self._html5 = true;\n self._webAudio = false;\n }\n\n // Create a new sound object and add it to the pool.\n new Sound(self);\n\n // Load and decode the audio data for playback.\n if (self._webAudio) {\n loadBuffer(self);\n }\n\n return self;\n },\n\n /**\n * Play a sound or resume previous playback.\n * @param {String/Number} sprite Sprite name for sprite playback or sound id to continue previous.\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Number} Sound ID.\n */\n play: function(sprite, internal) {\n var self = this;\n var id = null;\n\n // Determine if a sprite, sound id or nothing was passed\n if (typeof sprite === 'number') {\n id = sprite;\n sprite = null;\n } else if (typeof sprite === 'string' && self._state === 'loaded' && !self._sprite[sprite]) {\n // If the passed sprite doesn't exist, do nothing.\n return null;\n } else if (typeof sprite === 'undefined') {\n // Use the default sound sprite (plays the full audio length).\n sprite = '__default';\n\n // Check if there is a single paused sound that isn't ended.\n // If there is, play that sound. If not, continue as usual.\n if (!self._playLock) {\n var num = 0;\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._paused && !self._sounds[i]._ended) {\n num++;\n id = self._sounds[i]._id;\n }\n }\n\n if (num === 1) {\n sprite = null;\n } else {\n id = null;\n }\n }\n }\n\n // Get the selected node, or get one from the pool.\n var sound = id ? self._soundById(id) : self._inactiveSound();\n\n // If the sound doesn't exist, do nothing.\n if (!sound) {\n return null;\n }\n\n // Select the sprite definition.\n if (id && !sprite) {\n sprite = sound._sprite || '__default';\n }\n\n // If the sound hasn't loaded, we must wait to get the audio's duration.\n // We also need to wait to make sure we don't run into race conditions with\n // the order of function calls.\n if (self._state !== 'loaded') {\n // Set the sprite value on this sound.\n sound._sprite = sprite;\n\n // Mark this sound as not ended in case another sound is played before this one loads.\n sound._ended = false;\n\n // Add the sound to the queue to be played on load.\n var soundId = sound._id;\n self._queue.push({\n event: 'play',\n action: function() {\n self.play(soundId);\n }\n });\n\n return soundId;\n }\n\n // Don't play the sound if an id was passed and it is already playing.\n if (id && !sound._paused) {\n // Trigger the play event, in order to keep iterating through queue.\n if (!internal) {\n self._loadQueue('play');\n }\n\n return sound._id;\n }\n\n // Make sure the AudioContext isn't suspended, and resume it if it is.\n if (self._webAudio) {\n Howler._autoResume();\n }\n\n // Determine how long to play for and where to start playing.\n var seek = Math.max(0, sound._seek > 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound && !sound._paused) {\n // Reset the seek position.\n sound._seek = self.seek(ids[i]);\n sound._rateSeek = 0;\n sound._paused = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound has been created.\n if (!sound._node.bufferSource) {\n continue;\n }\n\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.pause();\n }\n }\n }\n\n // Fire the pause event, unless `true` is passed as the 2nd argument.\n if (!arguments[1]) {\n self._emit('pause', sound ? sound._id : null);\n }\n }\n\n return self;\n },\n\n /**\n * Stop playback and reset to start.\n * @param {Number} id The sound ID (empty to stop all in group).\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Howl}\n */\n stop: function(id, internal) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to stop when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'stop',\n action: function() {\n self.stop(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be stopped.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]);\n\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n // Reset the seek position.\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._paused = true;\n sound._ended = true;\n\n // Stop currently running fades.\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound's AudioBufferSourceNode has been created.\n if (sound._node.bufferSource) {\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n }\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n }\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.currentTime = sound._start || 0;\n sound._node.pause();\n\n // If this is a live stream, stop download once the audio is stopped.\n if (sound._node.duration === Infinity) {\n self._clearSound(sound._node);\n }\n }\n }\n\n if (!internal) {\n self._emit('stop', sound._id);\n }\n }\n }\n\n return self;\n },\n\n /**\n * Mute/unmute a single sound or all sounds in this Howl group.\n * @param {Boolean} muted Set to true to mute and false to unmute.\n * @param {Number} id The sound ID to update (omit to mute/unmute all).\n * @return {Howl}\n */\n mute: function(muted, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to mute when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'mute',\n action: function() {\n self.mute(muted, id);\n }\n });\n\n return self;\n }\n\n // If applying mute/unmute to all sounds, update the group's value.\n if (typeof id === 'undefined') {\n if (typeof muted === 'boolean') {\n self._muted = muted;\n } else {\n return self._muted;\n }\n }\n\n // If no id is passed, get all ID's to be muted.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._muted = muted;\n\n // Cancel active fade and set the volume to the end value.\n if (sound._interval) {\n self._stopFade(sound._id);\n }\n\n if (self._webAudio && sound._node) {\n sound._node.gain.setValueAtTime(muted ? 0 : sound._volume, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.muted = Howler._muted ? true : muted;\n }\n\n self._emit('mute', sound._id);\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the volume of this sound or of the Howl group. This method can optionally take 0, 1 or 2 arguments.\n * volume() -> Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n sound._volume = vol;\n\n // Stop currently running fades.\n if (!args[2]) {\n self._stopFade(id[i]);\n }\n\n if (self._webAudio && sound._node && !sound._muted) {\n sound._node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n } else if (sound._node && !sound._muted) {\n sound._node.volume = vol * Howler.volume();\n }\n\n self._emit('volume', sound._id);\n }\n }\n } else {\n sound = id ? self._soundById(id) : self._sounds[0];\n return sound ? sound._volume : 0;\n }\n\n return self;\n },\n\n /**\n * Fade a currently playing sound between two volumes (if no id is passed, all sounds will fade).\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id (omit to fade all sounds).\n * @return {Howl}\n */\n fade: function(from, to, len, id) {\n var self = this;\n\n // If the sound hasn't loaded, add it to the load queue to fade when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'fade',\n action: function() {\n self.fade(from, to, len, id);\n }\n });\n\n return self;\n }\n\n // Make sure the to/from/len values are numbers.\n from = Math.min(Math.max(0, parseFloat(from)), 1);\n to = Math.min(Math.max(0, parseFloat(to)), 1);\n len = parseFloat(len);\n\n // Set the volume to the start position.\n self.volume(from, id);\n\n // Fade the volume of one or all sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n // Create a linear fade or fall back to timeouts with HTML5 Audio.\n if (sound) {\n // Stop the previous fade if no sprite is being used (otherwise, volume handles this).\n if (!id) {\n self._stopFade(ids[i]);\n }\n\n // If we are using Web Audio, let the native methods do the actual fade.\n if (self._webAudio && !sound._muted) {\n var currentTime = Howler.ctx.currentTime;\n var end = currentTime + (len / 1000);\n sound._volume = from;\n sound._node.gain.setValueAtTime(from, currentTime);\n sound._node.gain.linearRampToValueAtTime(to, end);\n }\n\n self._startFadeInterval(sound, from, to, len, ids[i], typeof id === 'undefined');\n }\n }\n\n return self;\n },\n\n /**\n * Starts the internal interval to fade a sound.\n * @param {Object} sound Reference to sound to fade.\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id to fade.\n * @param {Boolean} isGroup If true, set the volume on the group.\n */\n _startFadeInterval: function(sound, from, to, len, id, isGroup) {\n var self = this;\n var vol = from;\n var diff = to - from;\n var steps = Math.abs(diff / 0.01);\n var stepLen = Math.max(4, (steps > 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._loop = loop;\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.loop = loop;\n if (loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop;\n\n // If playing, restart playback to ensure looping updates.\n if (self.playing(ids[i])) {\n self.pause(ids[i], true);\n self.play(ids[i], true);\n }\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the playback rate of a sound. This method can optionally take 0, 1 or 2 arguments.\n * rate() -> Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i<id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n // Keep track of our position when the rate changed and update the playback\n // start position so we can properly adjust the seek position for time elapsed.\n if (self.playing(id[i])) {\n sound._rateSeek = self.seek(id[i]);\n sound._playStart = self._webAudio ? Howler.ctx.currentTime : sound._playStart;\n }\n sound._rate = rate;\n\n // Change the playback rate.\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.playbackRate.setValueAtTime(rate, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.playbackRate = rate;\n }\n\n // Reset the timers.\n var seek = self.seek(id[i]);\n var duration = ((self._sprite[sound._sprite][0] + self._sprite[sound._sprite][1]) / 1000) - seek;\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n\n // Start a new end timer if sound is already playing.\n if (self._endTimers[id[i]] || !sound._paused) {\n self._clearTimer(id[i]);\n self._endTimers[id[i]] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n self._emit('rate', sound._id);\n }\n }\n } else {\n sound = self._soundById(id);\n return sound ? sound._rate : self._rate;\n }\n\n return self;\n },\n\n /**\n * Get/set the seek position of a sound. This method can optionally take 0, 1 or 2 arguments.\n * seek() -> Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i<self._sounds.length; i++) {\n if (!self._sounds[i]._paused) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * Get the duration of this sound. Passing a sound id will return the sprite duration.\n * @param {Number} id The sound id to check. If none is passed, return full source duration.\n * @return {Number} Audio duration in seconds.\n */\n duration: function(id) {\n var self = this;\n var duration = self._duration;\n\n // If we pass an ID, get the sound and return the sprite length.\n var sound = self._soundById(id);\n if (sound) {\n duration = self._sprite[sound._sprite][1] / 1000;\n }\n\n return duration;\n },\n\n /**\n * Returns the current loaded state of this Howl.\n * @return {String} 'unloaded', 'loading', 'loaded'\n */\n state: function() {\n return this._state;\n },\n\n /**\n * Unload and destroy the current Howl object.\n * This will immediately stop all sound instances attached to this group.\n */\n unload: function() {\n var self = this;\n\n // Stop playing any active sounds.\n var sounds = self._sounds;\n for (var i=0; i<sounds.length; i++) {\n // Stop the sound if it is currently playing.\n if (!sounds[i]._paused) {\n self.stop(sounds[i]._id);\n }\n\n // Remove the source or disconnect.\n if (!self._webAudio) {\n // Set the source to 0-second silence to stop any downloading (except in IE).\n self._clearSound(sounds[i]._node);\n\n // Remove any event listeners.\n sounds[i]._node.removeEventListener('error', sounds[i]._errorFn, false);\n sounds[i]._node.removeEventListener(Howler._canPlayEvent, sounds[i]._loadFn, false);\n sounds[i]._node.removeEventListener('ended', sounds[i]._endFn, false);\n\n // Release the Audio object back to the pool.\n Howler._releaseHtml5Audio(sounds[i]._node);\n }\n\n // Empty out all of the nodes.\n delete sounds[i]._node;\n\n // Make sure all timers are cleared out.\n self._clearTimer(sounds[i]._id);\n }\n\n // Remove the references in the global Howler object.\n var index = Howler._howls.indexOf(self);\n if (index >= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i<Howler._howls.length; i++) {\n if (Howler._howls[i]._src === self._src || self._src.indexOf(Howler._howls[i]._src) >= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i<events.length; i++) {\n var isId = (id === events[i].id);\n if (fn === events[i].fn && isId || !fn && isId) {\n events.splice(i, 1);\n break;\n }\n }\n } else if (event) {\n // Clear out all events of this type.\n self['_on' + event] = [];\n } else {\n // Clear out all events of every type.\n var keys = Object.keys(self);\n for (i=0; i<keys.length; i++) {\n if ((keys[i].indexOf('_on') === 0) && Array.isArray(self[keys[i]])) {\n self[keys[i]] = [];\n }\n }\n }\n\n return self;\n },\n\n /**\n * Listen to a custom event and remove it once fired.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @return {Howl}\n */\n once: function(event, fn, id) {\n var self = this;\n\n // Setup the event listener.\n self.on(event, fn, id, 1);\n\n return self;\n },\n\n /**\n * Emit all events of a specific type and pass the sound id.\n * @param {String} event Event name.\n * @param {Number} id Sound ID.\n * @param {Number} msg Message to go with event.\n * @return {Howl}\n */\n _emit: function(event, id, msg) {\n var self = this;\n var events = self['_on' + event];\n\n // Loop through event store and fire all functions.\n for (var i=events.length-1; i>=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i<self._sounds.length; i++) {\n if (id === self._sounds[i]._id) {\n return self._sounds[i];\n }\n }\n\n return null;\n },\n\n /**\n * Return an inactive sound from the pool or create a new one.\n * @return {Sound} Sound playback object.\n */\n _inactiveSound: function() {\n var self = this;\n\n self._drain();\n\n // Find the first inactive node to recycle.\n for (var i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n return self._sounds[i].reset();\n }\n }\n\n // If no inactive node was found, create a new one.\n return new Sound(self);\n },\n\n /**\n * Drain excess inactive sounds from the pool.\n */\n _drain: function() {\n var self = this;\n var limit = self._pool;\n var cnt = 0;\n var i = 0;\n\n // If there are less sounds than the max pool size, we are done.\n if (self._sounds.length < limit) {\n return;\n }\n\n // Count the number of inactive sounds.\n for (i=0; i<self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n cnt++;\n }\n }\n\n // Remove excess inactive sounds, going in reverse order.\n for (i=self._sounds.length - 1; i>=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i<self._sounds.length; i++) {\n ids.push(self._sounds[i]._id);\n }\n\n return ids;\n } else {\n return [id];\n }\n },\n\n /**\n * Load the sound back into the buffer source.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _refreshBuffer: function(sound) {\n var self = this;\n\n // Setup the buffer source for playback.\n sound._node.bufferSource = Howler.ctx.createBufferSource();\n sound._node.bufferSource.buffer = cache[self._src];\n\n // Connect to the correct node.\n if (sound._panner) {\n sound._node.bufferSource.connect(sound._panner);\n } else {\n sound._node.bufferSource.connect(sound._node);\n }\n\n // Setup looping and playback rate.\n sound._node.bufferSource.loop = sound._loop;\n if (sound._loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop || 0;\n }\n sound._node.bufferSource.playbackRate.setValueAtTime(sound._rate, Howler.ctx.currentTime);\n\n return self;\n },\n\n /**\n * Prevent memory leaks by cleaning up the buffer source after playback.\n * @param {Object} node Sound's audio node containing the buffer source.\n * @return {Howl}\n */\n _cleanBuffer: function(node) {\n var self = this;\n var isIOS = Howler._navigator && Howler._navigator.vendor.indexOf('Apple') >= 0;\n\n if (!node.bufferSource) {\n return self;\n }\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i<data.length; ++i) {\n dataView[i] = data.charCodeAt(i);\n }\n\n decodeAudioData(dataView.buffer, self);\n } else {\n // Load the buffer from the URL.\n var xhr = new XMLHttpRequest();\n xhr.open(self._xhr.method, url, true);\n xhr.withCredentials = self._xhr.withCredentials;\n xhr.responseType = 'arraybuffer';\n\n // Apply any custom headers to the request.\n if (self._xhr.headers) {\n Object.keys(self._xhr.headers).forEach(function(key) {\n xhr.setRequestHeader(key, self._xhr.headers[key]);\n });\n }\n\n xhr.onload = function() {\n // Make sure we get a successful response back.\n var code = (xhr.status + '')[0];\n if (code !== '0' && code !== '2' && code !== '3') {\n self._emit('loaderror', null, 'Failed loading audio file with status: ' + xhr.status + '.');\n return;\n }\n\n decodeAudioData(xhr.response, self);\n };\n xhr.onerror = function() {\n // If there is an error, switch to HTML5 Audio.\n if (self._webAudio) {\n self._html5 = true;\n self._webAudio = false;\n self._sounds = [];\n delete cache[url];\n self.load();\n }\n };\n safeXhrSend(xhr);\n }\n };\n\n /**\n * Send the XHR request wrapped in a try/catch.\n * @param {Object} xhr XHR to send.\n */\n var safeXhrSend = function(xhr) {\n try {\n xhr.send();\n } catch (e) {\n xhr.onerror();\n }\n };\n\n /**\n * Decode audio data from an array buffer.\n * @param {ArrayBuffer} arraybuffer The audio data.\n * @param {Howl} self\n */\n var decodeAudioData = function(arraybuffer, self) {\n // Fire a load error if something broke.\n var error = function() {\n self._emit('loaderror', null, 'Decoding audio data failed.');\n };\n\n // Load the sound on success.\n var success = function(buffer) {\n if (buffer && self._sounds.length > 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.4\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof pan === 'number') {\n sound._stereo = pan;\n sound._pos = [pan, 0, 0];\n\n if (sound._node) {\n // If we are falling back, make sure the panningModel is equalpower.\n sound._pannerAttr.panningModel = 'equalpower';\n\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || !sound._panner.pan) {\n setupPanner(sound, pannerType);\n }\n\n if (pannerType === 'spatial') {\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(pan, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(pan, 0, 0);\n }\n } else {\n sound._panner.pan.setValueAtTime(pan, Howler.ctx.currentTime);\n }\n }\n\n self._emit('stereo', sound._id);\n } else {\n return sound._stereo;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the 3D spatial position of the audio source for this sound or group relative to the global listener.\n * @param {Number} x The x-position of the audio source.\n * @param {Number} y The y-position of the audio source.\n * @param {Number} z The z-position of the audio source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial position: [x, y, z].\n */\n Howl.prototype.pos = function(x, y, z, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change position when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'pos',\n action: function() {\n self.pos(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? 0 : y;\n z = (typeof z !== 'number') ? -0.5 : z;\n\n // Setup the group's spatial position if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial position if no parameters are passed.\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n } else {\n return self._pos;\n }\n }\n\n // Change the spatial position of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._pos = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || sound._panner.pan) {\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(x, y, z);\n }\n }\n\n self._emit('pos', sound._id);\n } else {\n return sound._pos;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the audio source is pointing in the 3D cartesian coordinate\n * space. Depending on how direction the sound is, based on the `cone` attributes,\n * a sound pointing away from the listener can be quiet or silent.\n * @param {Number} x The x-orientation of the source.\n * @param {Number} y The y-orientation of the source.\n * @param {Number} z The z-orientation of the source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial orientation: [x, y, z].\n */\n Howl.prototype.orientation = function(x, y, z, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change orientation when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'orientation',\n action: function() {\n self.orientation(x, y, z, id);\n }\n });\n\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._orientation[1] : y;\n z = (typeof z !== 'number') ? self._orientation[2] : z;\n\n // Setup the group's spatial orientation if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's spatial orientation if no parameters are passed.\n if (typeof x === 'number') {\n self._orientation = [x, y, z];\n } else {\n return self._orientation;\n }\n }\n\n // Change the spatial orientation of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._orientation = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner) {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(x, Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(y, Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(x, y, z);\n }\n }\n\n self._emit('orientation', sound._id);\n } else {\n return sound._orientation;\n }\n }\n }\n\n return self;\n };\n\n /**\n * Get/set the panner node's attributes for a sound or group of sounds.\n * This method can optionall take 0, 1 or 2 arguments.\n * pannerAttr() -> Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i<ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n // Merge the new values into the sound.\n var pa = sound._pannerAttr;\n pa = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : pa.coneInnerAngle,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : pa.coneOuterAngle,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : pa.coneOuterGain,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : pa.distanceModel,\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : pa.maxDistance,\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : pa.refDistance,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : pa.rolloffFactor,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : pa.panningModel\n };\n\n // Create a new panner node if one doesn't already exist.\n var panner = sound._panner;\n if (!panner) {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n // Create a new panner node.\n setupPanner(sound, 'spatial');\n panner = sound._panner\n }\n\n // Update the panner values or create a new panner if none exists.\n panner.coneInnerAngle = pa.coneInnerAngle;\n panner.coneOuterAngle = pa.coneOuterAngle;\n panner.coneOuterGain = pa.coneOuterGain;\n panner.distanceModel = pa.distanceModel;\n panner.maxDistance = pa.maxDistance;\n panner.refDistance = pa.refDistance;\n panner.rolloffFactor = pa.rolloffFactor;\n panner.panningModel = pa.panningModel;\n }\n }\n\n return self;\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core Sound init.\n * @param {Function} _super Core Sound init method.\n * @return {Sound}\n */\n Sound.prototype.init = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Setup user-defined default properties.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // Complete initilization with howler.js core Sound's init function.\n _super.call(this);\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n }\n };\n })(Sound.prototype.init);\n\n /**\n * Override the Sound.reset method to clean up properties from the spatial plugin.\n * @param {Function} _super Sound reset method.\n * @return {Sound}\n */\n Sound.prototype.reset = (function(_super) {\n return function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all spatial plugin properties on this sound.\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr;\n\n // If a stereo or position was specified, set it up.\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n } else if (self._panner) {\n // Disconnect the panner.\n self._panner.disconnect(0);\n self._panner = undefined;\n parent._refreshBuffer(self);\n }\n\n // Complete resetting of the sound.\n return _super.call(this);\n };\n })(Sound.prototype.reset);\n\n /** Helper Methods **/\n /***************************************************************************/\n\n /**\n * Create a new panner node and save it on the sound.\n * @param {Sound} sound Specific sound to setup panning on.\n * @param {String} type Type of panner to create: 'stereo' or 'spatial'.\n */\n var setupPanner = function(sound, type) {\n type = type || 'spatial';\n\n // Create the new panner node.\n if (type === 'spatial') {\n sound._panner = Howler.ctx.createPanner();\n sound._panner.coneInnerAngle = sound._pannerAttr.coneInnerAngle;\n sound._panner.coneOuterAngle = sound._pannerAttr.coneOuterAngle;\n sound._panner.coneOuterGain = sound._pannerAttr.coneOuterGain;\n sound._panner.distanceModel = sound._pannerAttr.distanceModel;\n sound._panner.maxDistance = sound._pannerAttr.maxDistance;\n sound._panner.refDistance = sound._pannerAttr.refDistance;\n sound._panner.rolloffFactor = sound._pannerAttr.rolloffFactor;\n sound._panner.panningModel = sound._pannerAttr.panningModel;\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(sound._pos[0], Howler.ctx.currentTime);\n sound._panner.positionY.setValueAtTime(sound._pos[1], Howler.ctx.currentTime);\n sound._panner.positionZ.setValueAtTime(sound._pos[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(sound._pos[0], sound._pos[1], sound._pos[2]);\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(sound._orientation[0], Howler.ctx.currentTime);\n sound._panner.orientationY.setValueAtTime(sound._orientation[1], Howler.ctx.currentTime);\n sound._panner.orientationZ.setValueAtTime(sound._orientation[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(sound._orientation[0], sound._orientation[1], sound._orientation[2]);\n }\n } else {\n sound._panner = Howler.ctx.createStereoPanner();\n sound._panner.pan.setValueAtTime(sound._stereo, Howler.ctx.currentTime);\n }\n\n sound._panner.connect(sound._node);\n\n // Update the connections.\n if (!sound._paused) {\n sound._parent.pause(sound._id, true).play(sound._id, true);\n }\n };\n})();\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { supportsScrollTimeline } from '../render/dom/scroll/supports.mjs';\n\nclass GroupPlaybackControls {\n constructor(animations) {\n // Bound to accomodate common `return animation.stop` pattern\n this.stop = () => this.runAll(\"stop\");\n this.animations = animations.filter(Boolean);\n }\n then(onResolve, onReject) {\n return Promise.all(this.animations).then(onResolve).catch(onReject);\n }\n /**\n * TODO: Filter out cancelled or stopped animations before returning\n */\n getAll(propName) {\n return this.animations[0][propName];\n }\n setAll(propName, newValue) {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i][propName] = newValue;\n }\n }\n attachTimeline(timeline, fallback) {\n const subscriptions = this.animations.map((animation) => {\n if (supportsScrollTimeline() && animation.attachTimeline) {\n return animation.attachTimeline(timeline);\n }\n else {\n return fallback(animation);\n }\n });\n return () => {\n subscriptions.forEach((cancel, i) => {\n cancel && cancel();\n this.animations[i].stop();\n });\n };\n }\n get time() {\n return this.getAll(\"time\");\n }\n set time(time) {\n this.setAll(\"time\", time);\n }\n get speed() {\n return this.getAll(\"speed\");\n }\n set speed(speed) {\n this.setAll(\"speed\", speed);\n }\n get startTime() {\n return this.getAll(\"startTime\");\n }\n get duration() {\n let max = 0;\n for (let i = 0; i < this.animations.length; i++) {\n max = Math.max(max, this.animations[i].duration);\n }\n return max;\n }\n runAll(methodName) {\n this.animations.forEach((controls) => controls[methodName]());\n }\n play() {\n this.runAll(\"play\");\n }\n pause() {\n this.runAll(\"pause\");\n }\n cancel() {\n this.runAll(\"cancel\");\n }\n complete() {\n this.runAll(\"complete\");\n }\n}\n\nexport { GroupPlaybackControls };\n","import { GroupPlaybackControls } from '../GroupPlaybackControls.mjs';\nimport { animateSequence } from './sequence.mjs';\nimport { animateSubject } from './subject.mjs';\n\nfunction isSequence(value) {\n return Array.isArray(value) && Array.isArray(value[0]);\n}\n/**\n * Creates an animation function that is optionally scoped\n * to a specific element.\n */\nfunction createScopedAnimate(scope) {\n /**\n * Implementation\n */\n function scopedAnimate(subjectOrSequence, optionsOrKeyframes, options) {\n let animations = [];\n if (isSequence(subjectOrSequence)) {\n animations = animateSequence(subjectOrSequence, optionsOrKeyframes, scope);\n }\n else {\n animations = animateSubject(subjectOrSequence, optionsOrKeyframes, options, scope);\n }\n const animation = new GroupPlaybackControls(animations);\n if (scope) {\n scope.animations.push(animation);\n }\n return animation;\n }\n return scopedAnimate;\n}\nconst animate = createScopedAnimate();\n\nexport { animate, createScopedAnimate };\n","import { resolveElements } from '../../render/dom/utils/resolve-element.mjs';\nimport { isDOMKeyframes } from '../utils/is-dom-keyframes.mjs';\n\nfunction resolveSubjects(subject, keyframes, scope, selectorCache) {\n if (typeof subject === \"string\" && isDOMKeyframes(keyframes)) {\n return resolveElements(subject, scope, selectorCache);\n }\n else if (subject instanceof NodeList) {\n return Array.from(subject);\n }\n else if (Array.isArray(subject)) {\n return subject;\n }\n else {\n return [subject];\n }\n}\n\nexport { resolveSubjects };\n","import { spring } from '../generators/spring/index.mjs';\nimport { createAnimationsFromSequence } from '../sequence/create.mjs';\nimport { animateSubject } from './subject.mjs';\n\nfunction animateSequence(sequence, options, scope) {\n const animations = [];\n const animationDefinitions = createAnimationsFromSequence(sequence, options, scope, { spring });\n animationDefinitions.forEach(({ keyframes, transition }, subject) => {\n animations.push(...animateSubject(subject, keyframes, transition));\n });\n return animations;\n}\n\nexport { animateSequence };\n","import { animateMotionValue } from '../interfaces/motion-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","import { visualElementStore } from '../../render/store.mjs';\nimport { invariant } from '../../utils/errors.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { animateTarget } from '../interfaces/visual-element-target.mjs';\nimport { createDOMVisualElement, createObjectVisualElement } from '../utils/create-visual-element.mjs';\nimport { isDOMKeyframes } from '../utils/is-dom-keyframes.mjs';\nimport { resolveSubjects } from './resolve-subjects.mjs';\nimport { animateSingleValue } from './single-value.mjs';\n\nfunction isSingleValue(subject, keyframes) {\n return (isMotionValue(subject) ||\n typeof subject === \"number\" ||\n (typeof subject === \"string\" && !isDOMKeyframes(keyframes)));\n}\n/**\n * Implementation\n */\nfunction animateSubject(subject, keyframes, options, scope) {\n const animations = [];\n if (isSingleValue(subject, keyframes)) {\n animations.push(animateSingleValue(subject, isDOMKeyframes(keyframes)\n ? keyframes.default || keyframes\n : keyframes, options ? options.default || options : options));\n }\n else {\n const subjects = resolveSubjects(subject, keyframes, scope);\n const numSubjects = subjects.length;\n invariant(Boolean(numSubjects), \"No valid elements provided.\");\n for (let i = 0; i < numSubjects; i++) {\n const thisSubject = subjects[i];\n const createVisualElement = thisSubject instanceof Element\n ? createDOMVisualElement\n : createObjectVisualElement;\n if (!visualElementStore.has(thisSubject)) {\n createVisualElement(thisSubject);\n }\n const visualElement = visualElementStore.get(thisSubject);\n const transition = { ...options };\n /**\n * Resolve stagger function if provided.\n */\n if (\"delay\" in transition &&\n typeof transition.delay === \"function\") {\n transition.delay = transition.delay(i, numSubjects);\n }\n animations.push(...animateTarget(visualElement, { ...keyframes, transition }, {}));\n }\n }\n return animations;\n}\n\nexport { animateSubject };\n","import { anticipate } from '../../easing/anticipate.mjs';\nimport { backInOut } from '../../easing/back.mjs';\nimport { circInOut } from '../../easing/circ.mjs';\nimport { DOMKeyframesResolver } from '../../render/dom/DOMKeyframesResolver.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isGenerator } from '../generators/utils/is-generator.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { MainThreadAnimation } from './MainThreadAnimation.mjs';\nimport { acceleratedValues } from './utils/accelerated-values.mjs';\nimport { startWaapiAnimation } from './waapi/index.mjs';\nimport { isWaapiSupportedEasing } from './waapi/easing.mjs';\nimport { attachTimeline } from './waapi/utils/attach-timeline.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\nimport { supportsLinearEasing } from './waapi/utils/supports-linear-easing.mjs';\nimport { supportsWaapi } from './waapi/utils/supports-waapi.mjs';\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\n/**\n * Check if an animation can run natively via WAAPI or requires pregenerated keyframes.\n * WAAPI doesn't support spring or function easings so we run these as JS animation before\n * handing off.\n */\nfunction requiresPregeneratedKeyframes(options) {\n return (isGenerator(options.type) ||\n options.type === \"spring\" ||\n !isWaapiSupportedEasing(options.ease));\n}\nfunction pregenerateKeyframes(keyframes, options) {\n /**\n * Create a main-thread animation to pregenerate keyframes.\n * We sample this at regular intervals to generate keyframes that we then\n * linearly interpolate between.\n */\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n repeat: 0,\n delay: 0,\n isGenerator: true,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n return {\n times: undefined,\n keyframes: pregeneratedKeyframes,\n duration: t - sampleDelta,\n ease: \"linear\",\n };\n}\nconst unsupportedEasingFunctions = {\n anticipate,\n backInOut,\n circInOut,\n};\nfunction isUnsupportedEase(key) {\n return key in unsupportedEasingFunctions;\n}\nclass AcceleratedAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n const { name, motionValue, element, keyframes } = this.options;\n this.resolver = new DOMKeyframesResolver(keyframes, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue, element);\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes, finalKeyframe) {\n var _a;\n let { duration = 300, times, ease, type, motionValue, name, startTime, } = this.options;\n /**\n * If element has since been unmounted, return false to indicate\n * the animation failed to initialised.\n */\n if (!((_a = motionValue.owner) === null || _a === void 0 ? void 0 : _a.current)) {\n return false;\n }\n /**\n * If the user has provided an easing function name that isn't supported\n * by WAAPI (like \"anticipate\"), we need to provide the corressponding\n * function. This will later get converted to a linear() easing function.\n */\n if (typeof ease === \"string\" &&\n supportsLinearEasing() &&\n isUnsupportedEase(ease)) {\n ease = unsupportedEasingFunctions[ease];\n }\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(this.options)) {\n const { onComplete, onUpdate, motionValue, element, ...options } = this.options;\n const pregeneratedAnimation = pregenerateKeyframes(keyframes, options);\n keyframes = pregeneratedAnimation.keyframes;\n // If this is a very short animation, ensure we have\n // at least two keyframes to animate between as older browsers\n // can't animate between a single keyframe.\n if (keyframes.length === 1) {\n keyframes[1] = keyframes[0];\n }\n duration = pregeneratedAnimation.duration;\n times = pregeneratedAnimation.times;\n ease = pregeneratedAnimation.ease;\n type = \"keyframes\";\n }\n const animation = startWaapiAnimation(motionValue.owner.current, name, keyframes, { ...this.options, duration, times, ease });\n // Override the browser calculated startTime with one synchronised to other JS\n // and WAAPI animations starting this event loop.\n animation.startTime = startTime !== null && startTime !== void 0 ? startTime : this.calcStartTime();\n if (this.pendingTimeline) {\n attachTimeline(animation, this.pendingTimeline);\n this.pendingTimeline = undefined;\n }\n else {\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n const { onComplete } = this.options;\n motionValue.set(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete && onComplete();\n this.cancel();\n this.resolveFinishedPromise();\n };\n }\n return {\n animation,\n duration,\n times,\n type,\n ease,\n keyframes: keyframes,\n };\n }\n get duration() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { duration } = resolved;\n return millisecondsToSeconds(duration);\n }\n get time() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { animation } = resolved;\n return millisecondsToSeconds(animation.currentTime || 0);\n }\n set time(newTime) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.currentTime = secondsToMilliseconds(newTime);\n }\n get speed() {\n const { resolved } = this;\n if (!resolved)\n return 1;\n const { animation } = resolved;\n return animation.playbackRate;\n }\n set speed(newSpeed) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.playbackRate = newSpeed;\n }\n get state() {\n const { resolved } = this;\n if (!resolved)\n return \"idle\";\n const { animation } = resolved;\n return animation.playState;\n }\n get startTime() {\n const { resolved } = this;\n if (!resolved)\n return null;\n const { animation } = resolved;\n // Coerce to number as TypeScript incorrectly types this\n // as CSSNumberish\n return animation.startTime;\n }\n /**\n * Replace the default DocumentTimeline with another AnimationTimeline.\n * Currently used for scroll animations.\n */\n attachTimeline(timeline) {\n if (!this._resolved) {\n this.pendingTimeline = timeline;\n }\n else {\n const { resolved } = this;\n if (!resolved)\n return noop;\n const { animation } = resolved;\n attachTimeline(animation, timeline);\n }\n return noop;\n }\n play() {\n if (this.isStopped)\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n if (animation.playState === \"finished\") {\n this.updateFinishedPromise();\n }\n animation.play();\n }\n pause() {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.pause();\n }\n stop() {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation, keyframes, duration, type, ease, times } = resolved;\n if (animation.playState === \"idle\" ||\n animation.playState === \"finished\") {\n return;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n if (this.time) {\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n duration,\n type,\n ease,\n times,\n isGenerator: true,\n });\n const sampleTime = secondsToMilliseconds(this.time);\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n }\n const { onStop } = this.options;\n onStop && onStop();\n this.cancel();\n }\n complete() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.finish();\n }\n cancel() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.cancel();\n }\n static supports(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n motionValue &&\n motionValue.owner &&\n motionValue.owner.current instanceof HTMLElement &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !motionValue.owner.getProps().onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n }\n}\n\nexport { AcceleratedAnimation };\n","import { time } from '../../frameloop/sync-time.mjs';\nimport { flushKeyframeResolvers } from '../../render/utils/KeyframesResolver.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { canAnimate } from './utils/can-animate.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\n/**\n * Maximum time allowed between an animation being created and it being\n * resolved for us to use the latter as the start time.\n *\n * This is to ensure that while we prefer to \"start\" an animation as soon\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\n * between these two moments.\n */\nconst MAX_RESOLVE_DELAY = 40;\nclass BaseAnimation {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", ...options }) {\n // Track whether the animation has been stopped. Stopped animations won't restart.\n this.isStopped = false;\n this.hasAttemptedResolve = false;\n this.createdAt = time.now();\n this.options = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n ...options,\n };\n this.updateFinishedPromise();\n }\n /**\n * This method uses the createdAt and resolvedAt to calculate the\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\n * as the following frame would then be the first frame of the animation in\n * progress, which would feel snappier.\n *\n * However, if there's a delay (main thread work) between the creation of\n * the animation and the first commited frame, we prefer to use resolvedAt\n * to avoid a sudden jump into the animation.\n */\n calcStartTime() {\n if (!this.resolvedAt)\n return this.createdAt;\n return this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\n ? this.resolvedAt\n : this.createdAt;\n }\n /**\n * A getter for resolved data. If keyframes are not yet resolved, accessing\n * this.resolved will synchronously flush all pending keyframe resolvers.\n * This is a deoptimisation, but at its worst still batches read/writes.\n */\n get resolved() {\n if (!this._resolved && !this.hasAttemptedResolve) {\n flushKeyframeResolvers();\n }\n return this._resolved;\n }\n /**\n * A method to be called when the keyframes resolver completes. This method\n * will check if its possible to run the animation and, if not, skip it.\n * Otherwise, it will call initPlayback on the implementing class.\n */\n onKeyframesResolved(keyframes, finalKeyframe) {\n this.resolvedAt = time.now();\n this.hasAttemptedResolve = true;\n const { name, type, velocity, delay, onComplete, onUpdate, isGenerator, } = this.options;\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!isGenerator && !canAnimate(keyframes, name, type, velocity)) {\n // Finish immediately\n if (instantAnimationState.current || !delay) {\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete === null || onComplete === void 0 ? void 0 : onComplete();\n this.resolveFinishedPromise();\n return;\n }\n // Finish after a delay\n else {\n this.options.duration = 0;\n }\n }\n const resolvedAnimation = this.initPlayback(keyframes, finalKeyframe);\n if (resolvedAnimation === false)\n return;\n this._resolved = {\n keyframes,\n finalKeyframe,\n ...resolvedAnimation,\n };\n this.onPostResolved();\n }\n onPostResolved() { }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.currentFinishedPromise.then(resolve, reject);\n }\n updateFinishedPromise() {\n this.currentFinishedPromise = new Promise((resolve) => {\n this.resolveFinishedPromise = resolve;\n });\n }\n}\n\nexport { BaseAnimation };\n","import { KeyframeResolver } from '../../render/utils/KeyframesResolver.mjs';\nimport { spring } from '../generators/spring/index.mjs';\nimport { inertia } from '../generators/inertia.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { mix } from '../../utils/mix/index.mjs';\nimport { calcGeneratorDuration } from '../generators/utils/calc-duration.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { invariant } from '../../utils/errors.mjs';\nimport { frameloopDriver } from './drivers/driver-frameloop.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\nimport { isGenerator } from '../generators/utils/is-generator.mjs';\n\nconst generators = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nconst percentToProgress = (percent) => percent / 100;\n/**\n * Animation that runs on the main thread. Designed to be WAAPI-spec in the subset of\n * features we expose publically. Mostly the compatibility is to ensure visual identity\n * between both WAAPI and main thread animations.\n */\nclass MainThreadAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * The time at which the animation was cancelled.\n */\n this.cancelTime = null;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * The state of the animation to apply when the animation is resolved. This\n * allows calls to the public API to control the animation before it is resolved,\n * without us having to resolve it first.\n */\n this.pendingPlayState = \"running\";\n /**\n * The time at which the animation was started.\n */\n this.startTime = null;\n this.state = \"idle\";\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n const { onStop } = this.options;\n onStop && onStop();\n };\n const { name, motionValue, element, keyframes } = this.options;\n const KeyframeResolver$1 = (element === null || element === void 0 ? void 0 : element.KeyframeResolver) || KeyframeResolver;\n const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);\n this.resolver = new KeyframeResolver$1(keyframes, onResolved, name, motionValue, element);\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes$1) {\n const { type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = this.options;\n const generatorFactory = isGenerator(type)\n ? type\n : generators[type] || keyframes;\n /**\n * If our generator doesn't support mixing numbers, we need to replace keyframes with\n * [0, 100] and then make a function that maps that to the actual keyframes.\n *\n * 100 is chosen instead of 1 as it works nicer with spring animations.\n */\n let mapPercentToKeyframes;\n let mirroredGenerator;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);\n }\n mapPercentToKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...this.options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n const resolvedDuration = calculatedDuration + repeatDelay;\n const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n return {\n generator,\n mirroredGenerator,\n mapPercentToKeyframes,\n calculatedDuration,\n resolvedDuration,\n totalDuration,\n };\n }\n onPostResolved() {\n const { autoplay = true } = this.options;\n this.play();\n if (this.pendingPlayState === \"paused\" || !autoplay) {\n this.pause();\n }\n else {\n this.state = this.pendingPlayState;\n }\n }\n tick(timestamp, sample = false) {\n const { resolved } = this;\n // If the animations has failed to resolve, return the final keyframe.\n if (!resolved) {\n const { keyframes } = this.options;\n return { done: true, value: keyframes[keyframes.length - 1] };\n }\n const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes, calculatedDuration, totalDuration, resolvedDuration, } = resolved;\n if (this.startTime === null)\n return generator.next(0);\n const { delay, repeat, repeatType, repeatDelay, onUpdate } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n // Update currentTime\n if (sample) {\n this.currentTime = timestamp;\n }\n else if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime =\n Math.round(timestamp - this.startTime) * this.speed;\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.speed >= 0 ? 1 : -1);\n const isInDelayPhase = this.speed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mapPercentToKeyframes) {\n state.value = mapPercentToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.speed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n if (isAnimationFinished && finalKeyframe !== undefined) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n get duration() {\n const { resolved } = this;\n return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0;\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.holdTime !== null || this.speed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.speed;\n }\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (!this.resolver.isScheduled) {\n this.resolver.resume();\n }\n if (!this._resolved) {\n this.pendingPlayState = \"running\";\n return;\n }\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, onPlay, startTime } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n onPlay && onPlay();\n const now = this.driver.now();\n if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime) {\n this.startTime = startTime !== null && startTime !== void 0 ? startTime : this.calcStartTime();\n }\n else if (this.state === \"finished\") {\n this.startTime = now;\n }\n if (this.state === \"finished\") {\n this.updateFinishedPromise();\n }\n this.cancelTime = this.startTime;\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n var _a;\n if (!this._resolved) {\n this.pendingPlayState = \"paused\";\n return;\n }\n this.state = \"paused\";\n this.holdTime = (_a = this.currentTime) !== null && _a !== void 0 ? _a : 0;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.pendingPlayState = this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.teardown();\n this.state = \"finished\";\n const { onComplete } = this.options;\n onComplete && onComplete();\n }\n cancel() {\n if (this.cancelTime !== null) {\n this.tick(this.cancelTime);\n }\n this.teardown();\n this.updateFinishedPromise();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n this.startTime = this.cancelTime = null;\n this.resolver.cancel();\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(time) {\n this.startTime = 0;\n return this.tick(time, true);\n }\n}\n// Legacy interface\nfunction animateValue(options) {\n return new MainThreadAnimation(options);\n}\n\nexport { MainThreadAnimation, animateValue };\n","import { time } from '../../../frameloop/sync-time.mjs';\nimport { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nexport { frameloopDriver };\n","/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n\nexport { acceleratedValues };\n","import { warning } from '../../../utils/errors.mjs';\nimport { isGenerator } from '../../generators/utils/is-generator.mjs';\nimport { isAnimatable } from '../../utils/is-animatable.mjs';\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null)\n return false;\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return (hasKeyframesChanged(keyframes) ||\n ((type === \"spring\" || isGenerator(type)) && velocity));\n}\n\nexport { canAnimate };\n","import { isBezierDefinition } from '../../../easing/utils/is-bezier-definition.mjs';\nimport { generateLinearEasing } from './utils/linear.mjs';\nimport { supportsLinearEasing } from './utils/supports-linear-easing.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean((typeof easing === \"function\" && supportsLinearEasing()) ||\n !easing ||\n (typeof easing === \"string\" &&\n (easing in supportedWaapiEasing || supportsLinearEasing())) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: /*@__PURE__*/ cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: /*@__PURE__*/ cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: /*@__PURE__*/ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: /*@__PURE__*/ cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasing(easing, duration) {\n if (!easing) {\n return undefined;\n }\n else if (typeof easing === \"function\" && supportsLinearEasing()) {\n return generateLinearEasing(easing, duration);\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\n supportedWaapiEasing.easeOut);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease, duration);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { startWaapiAnimation };\n","function attachTimeline(animation, timeline) {\n animation.timeline = timeline;\n animation.onfinish = null;\n}\n\nexport { attachTimeline };\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n","import { progress } from '../../../../utils/progress.mjs';\n\n// Create a linear easing point for every 10 ms\nconst resolution = 10;\nconst generateLinearEasing = (easing, duration // as milliseconds\n) => {\n let points = \"\";\n const numPoints = Math.max(Math.round(duration / resolution), 2);\n for (let i = 0; i < numPoints; i++) {\n points += easing(progress(0, numPoints - 1, i)) + \", \";\n }\n return `linear(${points.substring(0, points.length - 2)})`;\n};\n\nexport { generateLinearEasing };\n","import { memo } from '../../../../utils/memo.mjs';\nimport { supportsFlags } from './supports-flags.mjs';\n\nfunction memoSupports(callback, supportsFlag) {\n const memoized = memo(callback);\n return () => { var _a; return (_a = supportsFlags[supportsFlag]) !== null && _a !== void 0 ? _a : memoized(); };\n}\n\nexport { memoSupports };\n","/**\n * Add the ability for test suites to manually set support flags\n * to better test more environments.\n */\nconst supportsFlags = {\n linearEasing: undefined,\n};\n\nexport { supportsFlags };\n","import { memoSupports } from './memo-supports.mjs';\n\nconst supportsLinearEasing = /*@__PURE__*/ memoSupports(() => {\n try {\n document\n .createElement(\"div\")\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n}, \"linearEasing\");\n\nexport { supportsLinearEasing };\n","import { memo } from '../../../../utils/memo.mjs';\n\nconst supportsWaapi = /*@__PURE__*/ memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n\nexport { supportsWaapi };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","import { warning } from '../../../utils/errors.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { millisecondsToSeconds, secondsToMilliseconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring({ keyframes, restDelta, restSpeed, ...options }) {\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n restDelta || (restDelta = isGranularScale ? 0.005 : 0.5);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n return {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = 0.0;\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity =\n t === 0\n ? secondsToMilliseconds(initialVelocity)\n : calcGeneratorVelocity(resolveSpring, t, current);\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n };\n}\n\nexport { spring };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","function isGenerator(type) {\n return typeof type === \"function\";\n}\n\nexport { isGenerator };\n","import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","import { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { getValueTransition } from '../utils/get-value-transition.mjs';\nimport { MotionGlobalConfig } from '../../utils/GlobalConfig.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\nimport { AcceleratedAnimation } from '../animators/AcceleratedAnimation.mjs';\nimport { MainThreadAnimation } from '../animators/MainThreadAnimation.mjs';\nimport { GroupPlaybackControls } from '../GroupPlaybackControls.mjs';\nimport { isTransitionDefined } from '../utils/is-transition-defined.mjs';\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = getValueTransition(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n let options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(name, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n options.duration = 0;\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (instantAnimationState.current ||\n MotionGlobalConfig.skipAnimations) {\n shouldSkip = true;\n options.duration = 0;\n options.delay = 0;\n }\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n // We still want to return some animation controls here rather\n // than returning undefined\n return new GroupPlaybackControls([]);\n }\n }\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n if (!isHandoff && AcceleratedAnimation.supports(options)) {\n return new AcceleratedAnimation(options);\n }\n else {\n return new MainThreadAnimation(options);\n }\n};\n\nexport { animateMotionValue };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { getValueTransition } from '../utils/get-value-transition.mjs';\nimport { getOptimisedAppearId } from '../optimized-appear/get-appear-id.mjs';\nimport { addValueToWillChange } from '../../value/use-will-change/add-will-change.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, (_a = visualElement.latestValues[key]) !== null && _a !== void 0 ? _a : null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.MotionHandoffAnimation) {\n const appearId = getOptimisedAppearId(visualElement);\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(appearId, key, frame);\n if (startTime !== null) {\n valueTransition.startTime = startTime;\n isHandoff = true;\n }\n }\n }\n addValueToWillChange(visualElement, key);\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n}\n\nexport { animateVisualElement };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","import { optimizedAppearDataAttribute } from './data-id.mjs';\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.props[optimizedAppearDataAttribute];\n}\n\nexport { getOptimisedAppearId };\n","import { createGeneratorEasing } from '../../easing/utils/create-generator-easing.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { fillOffset } from '../../utils/offsets/fill.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { resolveSubjects } from '../animate/resolve-subjects.mjs';\nimport { isGenerator } from '../generators/utils/is-generator.mjs';\nimport { calcNextTime } from './utils/calc-time.mjs';\nimport { addKeyframes } from './utils/edit.mjs';\nimport { compareByTime } from './utils/sort.mjs';\n\nconst defaultSegmentEasing = \"easeInOut\";\nfunction createAnimationsFromSequence(sequence, { defaultTransition = {}, ...sequenceTransition } = {}, scope, generators) {\n const defaultDuration = defaultTransition.duration || 0.3;\n const animationDefinitions = new Map();\n const sequences = new Map();\n const elementCache = {};\n const timeLabels = new Map();\n let prevTime = 0;\n let currentTime = 0;\n let totalDuration = 0;\n /**\n * Build the timeline by mapping over the sequence array and converting\n * the definitions into keyframes and offsets with absolute time values.\n * These will later get converted into relative offsets in a second pass.\n */\n for (let i = 0; i < sequence.length; i++) {\n const segment = sequence[i];\n /**\n * If this is a timeline label, mark it and skip the rest of this iteration.\n */\n if (typeof segment === \"string\") {\n timeLabels.set(segment, currentTime);\n continue;\n }\n else if (!Array.isArray(segment)) {\n timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels));\n continue;\n }\n let [subject, keyframes, transition = {}] = segment;\n /**\n * If a relative or absolute time value has been specified we need to resolve\n * it in relation to the currentTime.\n */\n if (transition.at !== undefined) {\n currentTime = calcNextTime(currentTime, transition.at, prevTime, timeLabels);\n }\n /**\n * Keep track of the maximum duration in this definition. This will be\n * applied to currentTime once the definition has been parsed.\n */\n let maxDuration = 0;\n const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numSubjects = 0) => {\n const valueKeyframesAsList = keyframesAsList(valueKeyframes);\n const { delay = 0, times = defaultOffset(valueKeyframesAsList), type = \"keyframes\", ...remainingTransition } = valueTransition;\n let { ease = defaultTransition.ease || \"easeOut\", duration } = valueTransition;\n /**\n * Resolve stagger() if defined.\n */\n const calculatedDelay = typeof delay === \"function\"\n ? delay(elementIndex, numSubjects)\n : delay;\n /**\n * If this animation should and can use a spring, generate a spring easing function.\n */\n const numKeyframes = valueKeyframesAsList.length;\n const createGenerator = isGenerator(type)\n ? type\n : generators === null || generators === void 0 ? void 0 : generators[type];\n if (numKeyframes <= 2 && createGenerator) {\n /**\n * As we're creating an easing function from a spring,\n * ideally we want to generate it using the real distance\n * between the two keyframes. However this isn't always\n * possible - in these situations we use 0-100.\n */\n let absoluteDelta = 100;\n if (numKeyframes === 2 &&\n isNumberKeyframesArray(valueKeyframesAsList)) {\n const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0];\n absoluteDelta = Math.abs(delta);\n }\n const springTransition = { ...remainingTransition };\n if (duration !== undefined) {\n springTransition.duration = secondsToMilliseconds(duration);\n }\n const springEasing = createGeneratorEasing(springTransition, absoluteDelta, createGenerator);\n ease = springEasing.ease;\n duration = springEasing.duration;\n }\n duration !== null && duration !== void 0 ? duration : (duration = defaultDuration);\n const startTime = currentTime + calculatedDelay;\n const targetTime = startTime + duration;\n /**\n * If there's only one time offset of 0, fill in a second with length 1\n */\n if (times.length === 1 && times[0] === 0) {\n times[1] = 1;\n }\n /**\n * Fill out if offset if fewer offsets than keyframes\n */\n const remainder = times.length - valueKeyframesAsList.length;\n remainder > 0 && fillOffset(times, remainder);\n /**\n * If only one value has been set, ie [1], push a null to the start of\n * the keyframe array. This will let us mark a keyframe at this point\n * that will later be hydrated with the previous value.\n */\n valueKeyframesAsList.length === 1 &&\n valueKeyframesAsList.unshift(null);\n /**\n * Add keyframes, mapping offsets to absolute time.\n */\n addKeyframes(valueSequence, valueKeyframesAsList, ease, times, startTime, targetTime);\n maxDuration = Math.max(calculatedDelay + duration, maxDuration);\n totalDuration = Math.max(targetTime, totalDuration);\n };\n if (isMotionValue(subject)) {\n const subjectSequence = getSubjectSequence(subject, sequences);\n resolveValueSequence(keyframes, transition, getValueSequence(\"default\", subjectSequence));\n }\n else {\n const subjects = resolveSubjects(subject, keyframes, scope, elementCache);\n const numSubjects = subjects.length;\n /**\n * For every element in this segment, process the defined values.\n */\n for (let subjectIndex = 0; subjectIndex < numSubjects; subjectIndex++) {\n /**\n * Cast necessary, but we know these are of this type\n */\n keyframes = keyframes;\n transition = transition;\n const thisSubject = subjects[subjectIndex];\n const subjectSequence = getSubjectSequence(thisSubject, sequences);\n for (const key in keyframes) {\n resolveValueSequence(keyframes[key], getValueTransition(transition, key), getValueSequence(key, subjectSequence), subjectIndex, numSubjects);\n }\n }\n }\n prevTime = currentTime;\n currentTime += maxDuration;\n }\n /**\n * For every element and value combination create a new animation.\n */\n sequences.forEach((valueSequences, element) => {\n for (const key in valueSequences) {\n const valueSequence = valueSequences[key];\n /**\n * Arrange all the keyframes in ascending time order.\n */\n valueSequence.sort(compareByTime);\n const keyframes = [];\n const valueOffset = [];\n const valueEasing = [];\n /**\n * For each keyframe, translate absolute times into\n * relative offsets based on the total duration of the timeline.\n */\n for (let i = 0; i < valueSequence.length; i++) {\n const { at, value, easing } = valueSequence[i];\n keyframes.push(value);\n valueOffset.push(progress(0, totalDuration, at));\n valueEasing.push(easing || \"easeOut\");\n }\n /**\n * If the first keyframe doesn't land on offset: 0\n * provide one by duplicating the initial keyframe. This ensures\n * it snaps to the first keyframe when the animation starts.\n */\n if (valueOffset[0] !== 0) {\n valueOffset.unshift(0);\n keyframes.unshift(keyframes[0]);\n valueEasing.unshift(defaultSegmentEasing);\n }\n /**\n * If the last keyframe doesn't land on offset: 1\n * provide one with a null wildcard value. This will ensure it\n * stays static until the end of the animation.\n */\n if (valueOffset[valueOffset.length - 1] !== 1) {\n valueOffset.push(1);\n keyframes.push(null);\n }\n if (!animationDefinitions.has(element)) {\n animationDefinitions.set(element, {\n keyframes: {},\n transition: {},\n });\n }\n const definition = animationDefinitions.get(element);\n definition.keyframes[key] = keyframes;\n definition.transition[key] = {\n ...defaultTransition,\n duration: totalDuration,\n ease: valueEasing,\n times: valueOffset,\n ...sequenceTransition,\n };\n }\n });\n return animationDefinitions;\n}\nfunction getSubjectSequence(subject, sequences) {\n !sequences.has(subject) && sequences.set(subject, {});\n return sequences.get(subject);\n}\nfunction getValueSequence(name, sequences) {\n if (!sequences[name])\n sequences[name] = [];\n return sequences[name];\n}\nfunction keyframesAsList(keyframes) {\n return Array.isArray(keyframes) ? keyframes : [keyframes];\n}\nfunction getValueTransition(transition, key) {\n return transition && transition[key]\n ? {\n ...transition,\n ...transition[key],\n }\n : { ...transition };\n}\nconst isNumber = (keyframe) => typeof keyframe === \"number\";\nconst isNumberKeyframesArray = (keyframes) => keyframes.every(isNumber);\n\nexport { createAnimationsFromSequence, getValueTransition };\n","/**\n * Given a absolute or relative time definition and current/prev time state of the sequence,\n * calculate an absolute time for the next keyframes.\n */\nfunction calcNextTime(current, next, prev, labels) {\n var _a;\n if (typeof next === \"number\") {\n return next;\n }\n else if (next.startsWith(\"-\") || next.startsWith(\"+\")) {\n return Math.max(0, current + parseFloat(next));\n }\n else if (next === \"<\") {\n return prev;\n }\n else {\n return (_a = labels.get(next)) !== null && _a !== void 0 ? _a : current;\n }\n}\n\nexport { calcNextTime };\n","import { getEasingForSegment } from '../../../easing/utils/get-easing-for-segment.mjs';\nimport { removeItem } from '../../../utils/array.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\nfunction eraseKeyframes(sequence, startTime, endTime) {\n for (let i = 0; i < sequence.length; i++) {\n const keyframe = sequence[i];\n if (keyframe.at > startTime && keyframe.at < endTime) {\n removeItem(sequence, keyframe);\n // If we remove this item we have to push the pointer back one\n i--;\n }\n }\n}\nfunction addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {\n /**\n * Erase every existing value between currentTime and targetTime,\n * this will essentially splice this timeline into any currently\n * defined ones.\n */\n eraseKeyframes(sequence, startTime, endTime);\n for (let i = 0; i < keyframes.length; i++) {\n sequence.push({\n value: keyframes[i],\n at: mixNumber(startTime, endTime, offset[i]),\n easing: getEasingForSegment(easing, i),\n });\n }\n}\n\nexport { addKeyframes, eraseKeyframes };\n","function compareByTime(a, b) {\n if (a.at === b.at) {\n if (a.value === null)\n return 1;\n if (b.value === null)\n return -1;\n return 0;\n }\n else {\n return a.at - b.at;\n }\n}\n\nexport { compareByTime };\n","import { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { SVGVisualElement } from '../../render/svg/SVGVisualElement.mjs';\nimport { HTMLVisualElement } from '../../render/html/HTMLVisualElement.mjs';\nimport { visualElementStore } from '../../render/store.mjs';\nimport { ObjectVisualElement } from '../../render/object/ObjectVisualElement.mjs';\n\nfunction createDOMVisualElement(element) {\n const options = {\n presenceContext: null,\n props: {},\n visualState: {\n renderState: {\n transform: {},\n transformOrigin: {},\n style: {},\n vars: {},\n attrs: {},\n },\n latestValues: {},\n },\n };\n const node = isSVGElement(element)\n ? new SVGVisualElement(options)\n : new HTMLVisualElement(options);\n node.mount(element);\n visualElementStore.set(element, node);\n}\nfunction createObjectVisualElement(subject) {\n const options = {\n presenceContext: null,\n props: {},\n visualState: {\n renderState: {\n output: {},\n },\n latestValues: {},\n },\n };\n const node = new ObjectVisualElement(options);\n node.mount(subject);\n visualElementStore.set(subject, node);\n}\n\nexport { createDOMVisualElement, createObjectVisualElement };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","function getValueTransition(transition, key) {\n return transition\n ? transition[key] ||\n transition[\"default\"] ||\n transition\n : undefined;\n}\n\nexport { getValueTransition };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","function isDOMKeyframes(keyframes) {\n return typeof keyframes === \"object\" && !Array.isArray(keyframes);\n}\n\nexport { isDOMKeyframes };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\nexport { isNone };\n","/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\n\nexport { isTransitionDefined };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { useState, useRef, useEffect } from 'react';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { loadFeatures } from '../../motion/features/load-features.mjs';\n\n/**\n * Used in conjunction with the `m` component to reduce bundle size.\n *\n * `m` is a version of the `motion` component that only loads functionality\n * critical for the initial render.\n *\n * `LazyMotion` can then be used to either synchronously or asynchronously\n * load animation and gesture support.\n *\n * ```jsx\n * // Synchronous loading\n * import { LazyMotion, m, domAnimation } from \"framer-motion\"\n *\n * function App() {\n * return (\n * <LazyMotion features={domAnimation}>\n * <m.div animate={{ scale: 2 }} />\n * </LazyMotion>\n * )\n * }\n *\n * // Asynchronous loading\n * import { LazyMotion, m } from \"framer-motion\"\n *\n * function App() {\n * return (\n * <LazyMotion features={() => import('./path/to/domAnimation')}>\n * <m.div animate={{ scale: 2 }} />\n * </LazyMotion>\n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion({ children, features, strict = false }) {\n const [, setIsLoaded] = useState(!isLazyBundle(features));\n const loadedRenderer = useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n const { renderer, ...loadedFeatures } = features;\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n useEffect(() => {\n if (isLazyBundle(features)) {\n features().then(({ renderer, ...loadedFeatures }) => {\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (jsx(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict }, children: children }));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nexport { LazyMotion };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = /*@__PURE__*/ cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = /*@__PURE__*/ reverseEasing(backOut);\nconst backInOut = /*@__PURE__*/ mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n","import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = /*@__PURE__*/ cubicBezier(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { calcGeneratorDuration, maxGeneratorDuration } from '../../animation/generators/utils/calc-duration.mjs';\nimport { millisecondsToSeconds } from '../../utils/time-conversion.mjs';\n\n/**\n * Create a progress => progress easing function from a generator.\n */\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\n const generator = createGenerator({ ...options, keyframes: [0, scale] });\n const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n return {\n type: \"keyframes\",\n ease: (progress) => generator.next(duration * progress).value / scale,\n duration: millisecondsToSeconds(duration),\n };\n}\n\nexport { createGeneratorEasing };\n","import { wrap } from '../../utils/wrap.mjs';\nimport { isEasingArray } from './is-easing-array.mjs';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\nexport { getEasingForSegment };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","import { invariant } from '../../utils/errors.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { anticipate } from '../anticipate.mjs';\nimport { isBezierDefinition } from './is-bezier-definition.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (isBezierDefinition(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","import { isPrimaryPointer } from './utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: {\n x: event[`${pointType}X`],\n y: event[`${pointType}Y`],\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame);\n return acc;\n }, {});\n const { read, resolveKeyframes, update, preRender, render, postRender } = steps;\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n read.process(state);\n resolveKeyframes.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, frameSteps };\n","import { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\n","function createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n","import { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = isActive ? \"pointerenter\" : \"pointerleave\";\n const callbackName = isActive ? \"onHoverStart\" : \"onHoverEnd\";\n const handleEvent = (event, info) => {\n if (event.pointerType === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n const callback = props[callbackName];\n if (callback) {\n frame.postRender(() => callback(event, info));\n }\n };\n return addPointerEvent(node.current, eventName, handleEvent, {\n passive: !node.getProps()[callbackName],\n });\n}\nclass HoverGesture extends Feature {\n mount() {\n this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","import { extractEventInfo } from '../events/event-info.mjs';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { noop } from '../utils/noop.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction fireSyntheticPointerEvent(name, handler) {\n if (!handler)\n return;\n const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nclass PressGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removeStartListeners = noop;\n this.removeEndListeners = noop;\n this.removeAccessibleListeners = noop;\n this.startPointerPress = (startEvent, startInfo) => {\n if (this.isPressing)\n return;\n this.removeEndListeners();\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel, globalTapTarget } = this.node.getProps();\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n const handler = !globalTapTarget &&\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel\n : onTap;\n if (handler) {\n frame.update(() => handler(endEvent, endInfo));\n }\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, {\n passive: !(props.onTap || props[\"onPointerUp\"]),\n });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), {\n passive: !(props.onTapCancel ||\n props[\"onPointerCancel\"]),\n });\n this.removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n this.startPress(startEvent, startInfo);\n };\n this.startAccessiblePress = () => {\n const handleKeydown = (keydownEvent) => {\n if (keydownEvent.key !== \"Enter\" || this.isPressing)\n return;\n const handleKeyup = (keyupEvent) => {\n if (keyupEvent.key !== \"Enter\" || !this.checkPressEnd())\n return;\n fireSyntheticPointerEvent(\"up\", (event, info) => {\n const { onTap } = this.node.getProps();\n if (onTap) {\n frame.postRender(() => onTap(event, info));\n }\n });\n };\n this.removeEndListeners();\n this.removeEndListeners = addDomEvent(this.node.current, \"keyup\", handleKeyup);\n fireSyntheticPointerEvent(\"down\", (event, info) => {\n this.startPress(event, info);\n });\n };\n const removeKeydownListener = addDomEvent(this.node.current, \"keydown\", handleKeydown);\n const handleBlur = () => {\n if (!this.isPressing)\n return;\n fireSyntheticPointerEvent(\"cancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo));\n };\n const removeBlurListener = addDomEvent(this.node.current, \"blur\", handleBlur);\n this.removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n };\n }\n startPress(event, info) {\n this.isPressing = true;\n const { onTapStart, whileTap } = this.node.getProps();\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", true);\n }\n if (onTapStart) {\n frame.postRender(() => onTapStart(event, info));\n }\n }\n checkPressEnd() {\n this.removeEndListeners();\n this.isPressing = false;\n const props = this.node.getProps();\n if (props.whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", false);\n }\n return !isDragActive();\n }\n cancelPress(event, info) {\n if (!this.checkPressEnd())\n return;\n const { onTapCancel } = this.node.getProps();\n if (onTapCancel) {\n frame.postRender(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(props.globalTapTarget ? window : this.node.current, \"pointerdown\", this.startPointerPress, {\n passive: !(props.onTapStart ||\n props[\"onPointerStart\"]),\n });\n const removeFocusListener = addDomEvent(this.node.current, \"focus\", this.startAccessiblePress);\n this.removeStartListeners = pipe(removePointerListener, removeFocusListener);\n }\n unmount() {\n this.removeStartListeners();\n this.removeEndListeners();\n this.removeAccessibleListeners();\n }\n}\n\nexport { PressGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if (isAnimationControls(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n var _a;\n this.node.animationState.reset();\n (_a = this.unmountControls) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n}\n\nexport { AnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","\"use client\";\nimport { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\nimport { warning, invariant } from '../utils/errors.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createRendererMotionComponent({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)] }));\n }\n const ForwardRefMotionComponent = forwardRef(MotionComponent);\n ForwardRefMotionComponent[motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: (drag === null || drag === void 0 ? void 0 : drag.isEnabled(props)) || (layout === null || layout === void 0 ? void 0 : layout.isEnabled(props))\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n\nexport { createRendererMotionComponent };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\n var _a, _b;\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n useInsertionEffect(() => {\n visualElement && visualElement.update(props, presenceContext);\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const optimisedAppearId = props[optimizedAppearDataAttribute];\n const wantsHandoff = useRef(Boolean(optimisedAppearId) &&\n !((_a = window.MotionHandoffIsComplete) === null || _a === void 0 ? void 0 : _a.call(window, optimisedAppearId)) &&\n ((_b = window.MotionHasOptimisedAnimation) === null || _b === void 0 ? void 0 : _b.call(window, optimisedAppearId)));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n microtask.render(visualElement.render);\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask(() => {\n var _a;\n (_a = window.MotionHandoffMarkAsComplete) === null || _a === void 0 ? void 0 : _a.call(window, optimisedAppearId);\n });\n wantsHandoff.current = false;\n }\n });\n return visualElement;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n\nexport { useVisualElement };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\nimport { getWillChangeName } from '../../value/use-will-change/get-will-change-name.mjs';\n\nfunction makeState({ applyWillChange = false, scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext, isStatic) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, isStatic ? false : applyWillChange, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext, isStatic);\n return isStatic ? make() : useConstant(make);\n};\nfunction forEachDefinition(props, definition, callback) {\n const list = Array.isArray(definition) ? definition : [definition];\n for (let i = 0; i < list.length; i++) {\n const resolved = resolveVariantFromProps(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n callback(target, transitionEnd);\n }\n }\n}\nfunction makeLatestValues(props, context, presenceContext, shouldApplyWillChange, scrapeMotionValues) {\n var _a;\n const values = {};\n const willChange = new Set();\n const applyWillChange = shouldApplyWillChange && ((_a = props.style) === null || _a === void 0 ? void 0 : _a.willChange) === undefined;\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n forEachDefinition(props, variantToSet, (target, transitionEnd) => {\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n });\n }\n // Add animating values to will-change\n if (applyWillChange) {\n if (animate && initial !== false && !isAnimationControls(animate)) {\n forEachDefinition(props, animate, (target) => {\n for (const name in target) {\n const memberName = getWillChangeName(name);\n if (memberName) {\n willChange.add(memberName);\n }\n }\n });\n }\n if (willChange.size) {\n values.willChange = Array.from(willChange).join(\",\");\n }\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const { visualElement } = node.options;\n if (visualElement &&\n visualElement.props.style &&\n visualElement.props.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\n treeScale.x > TREE_SCALE_SNAP_MIN) {\n treeScale.x = 1.0;\n }\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\n treeScale.y > TREE_SCALE_SNAP_MIN) {\n treeScale.y = 1.0;\n }\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { KeyframeResolver } from './utils/KeyframesResolver.mjs';\nimport { isNumericalString } from '../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../utils/is-zero-value-string.mjs';\nimport { findValueType } from './dom/value-types/find.mjs';\nimport { complex } from '../value/types/complex/index.mjs';\nimport { getAnimatableNone } from './dom/value-types/animatable-none.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * If true, will-change will be applied to the element. Only HTMLVisualElements\n * currently support this.\n */\n this.applyWillChange = false;\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.renderScheduledAt = 0.0;\n this.scheduleRender = () => {\n const now = time.now();\n if (this.renderScheduledAt < now) {\n this.renderScheduledAt = now;\n frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.valueSubscriptions.clear();\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n if (this.valueSubscriptions.has(key)) {\n this.valueSubscriptions.get(key)();\n }\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n let removeSyncCheck;\n if (window.MotionCheckAppearSync) {\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n }\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n if (removeSyncCheck)\n removeSyncCheck();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n var _a;\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n","import { createRendererMotionComponent } from '../../motion/index.mjs';\nimport { isSVGComponent } from '../dom/utils/is-svg-component.mjs';\nimport { svgMotionConfig } from '../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../html/config-motion.mjs';\nimport { createUseRender } from '../dom/use-render.mjs';\n\nfunction createMotionComponentFactory(preloadedFeatures, createVisualElement) {\n return function createMotionComponent(Component, { forwardMotionProps } = { forwardMotionProps: false }) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n const config = {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n return createRendererMotionComponent(config);\n };\n}\n\nexport { createMotionComponentFactory };\n","import { warnOnce } from '../../utils/warn-once.mjs';\n\nfunction createDOMMotionComponentProxy(componentFactory) {\n if (typeof Proxy === \"undefined\") {\n return componentFactory;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n const deprecatedFactoryFunction = (...args) => {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, \"motion() is deprecated. Use motion.create() instead.\");\n }\n return componentFactory(...args);\n };\n return new Proxy(deprecatedFactoryFunction, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n if (key === \"create\")\n return componentFactory;\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, componentFactory(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createDOMMotionComponentProxy };\n","import { createMotionComponentFactory } from '../create-factory.mjs';\n\nconst createMinimalMotionComponent = \n/*@__PURE__*/ createMotionComponentFactory();\n\nexport { createMinimalMotionComponent };\n","import { createDOMMotionComponentProxy } from '../create-proxy.mjs';\nimport { createMinimalMotionComponent } from './create.mjs';\n\nconst m = /*@__PURE__*/ createDOMMotionComponentProxy(createMinimalMotionComponent);\n\nexport { m };\n","import { isNone } from '../../animation/utils/is-none.mjs';\nimport { getVariableValue } from './utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from './utils/is-css-variable.mjs';\nimport { positionalKeys, isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';\nimport { findDimensionValueType } from './value-types/dimensions.mjs';\nimport { KeyframeResolver } from '../utils/KeyframesResolver.mjs';\nimport { makeNoneKeyframesAnimatable } from '../html/utils/make-none-animatable.mjs';\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element || !element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if (isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element || !element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n var _a;\n const { element, name, unresolvedKeyframes } = this;\n if (!element || !element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nexport { DOMKeyframesResolver };\n","import { VisualElement } from '../VisualElement.mjs';\nimport { DOMKeyframesResolver } from './DOMKeyframesResolver.mjs';\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style\n ? props.style[key]\n : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n}\n\nexport { DOMVisualElement };\n","import { Fragment } from 'react';\nimport { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options)\n : new HTMLVisualElement(options, {\n allowProjection: Component !== Fragment,\n });\n};\n\nexport { createDomVisualElement };\n","import { animations } from '../../motion/features/animations.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\n\n/**\n * @public\n */\nconst domAnimation = {\n renderer: createDomVisualElement,\n ...animations,\n ...gestureAnimations,\n};\n\nexport { domAnimation };\n","import { memo } from '../../../utils/memo.mjs';\n\nconst supportsScrollTimeline = memo(() => window.ScrollTimeline !== undefined);\n\nexport { supportsScrollTimeline };\n","import { Fragment, useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment\n ? { ...filteredProps, ...visualProps, ref }\n : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n };\n return useRender;\n}\n\nexport { createUseRender };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","import { invariant } from '../../../utils/errors.mjs';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nexport { getVariableValue, parseCSSVariable };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n","import { invariant } from '../../../utils/errors.mjs';\n\nfunction resolveElements(elements, scope, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n let root = document;\n if (scope) {\n invariant(Boolean(scope.current), \"Scope provided, but no element detected.\");\n root = scope.current;\n }\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = root.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = root.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","import { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n \"translateX\",\n \"translateY\",\n]);\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/u);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/u);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nexport { isNumOrPxType, positionalKeys, positionalValues, removeNonTranslationalTransform };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst browserNumberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Misc\n backgroundPositionX: px,\n backgroundPositionY: px,\n};\n\nexport { browserNumberValueTypes };\n","import { alpha } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\nimport { browserNumberValueTypes } from './number-browser.mjs';\nimport { transformValueTypes } from './transform.mjs';\nimport { int } from './type-int.mjs';\n\nconst numberValueTypes = {\n ...browserNumberValueTypes,\n ...transformValueTypes,\n zIndex: int,\n size: px,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { degrees, px, progressPercentage } from '../../../value/types/numbers/units.mjs';\n\nconst transformValueTypes = {\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n};\n\nexport { transformValueTypes };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.applyWillChange = true;\n this.renderInstance = renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n buildHTMLStyles(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current)\n this.current.textContent = `${latest}`;\n });\n }\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n applyWillChange: true,\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nfunction useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","import { transformPropOrder } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n valueIsDefault = parseFloat(value) === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { analyseComplexValue } from '../../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../../dom/value-types/animatable-none.mjs';\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n analyseComplexValue(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nexport { makeNoneKeyframesAnimatable };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n var _a;\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n ((_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.liveStyle) !== undefined) {\n newValues[key] = style[key];\n }\n }\n /**\n * If the willChange style has been manually set as a string, set\n * applyWillChange to false to prevent it from automatically being applied.\n */\n if (visualElement && style && typeof style.willChange === \"string\") {\n visualElement.applyWillChange = false;\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { createBox } from '../../projection/geometry/models.mjs';\nimport { VisualElement } from '../VisualElement.mjs';\n\nfunction isObjectKey(key, object) {\n return key in object;\n}\nclass ObjectVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.type = \"object\";\n }\n readValueFromInstance(instance, key) {\n if (isObjectKey(key, instance)) {\n const value = instance[key];\n if (typeof value === \"string\" || typeof value === \"number\") {\n return value;\n }\n }\n return undefined;\n }\n getBaseTargetFromProps() {\n return undefined;\n }\n removeValueFromRenderState(key, renderState) {\n delete renderState.output[key];\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n build(renderState, latestValues) {\n Object.assign(renderState.output, latestValues);\n }\n renderInstance(instance, { output }) {\n Object.assign(instance, output);\n }\n sortInstanceNodePosition() {\n return 0;\n }\n}\n\nexport { ObjectVisualElement };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n buildSVGAttrs(renderState, latestValues, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n frame.read(() => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n });\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\n","/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { removeNonTranslationalTransform } from '../dom/utils/unit-conversion.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n var _a;\n (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete());\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n readAllKeyframes();\n measureAllKeyframes();\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n /**\n * Track whether this resolver has completed. Once complete, it never\n * needs to attempt keyframe resolution again.\n */\n this.isComplete = false;\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n /**\n * Track whether this resolver is currently scheduled to resolve\n * to allow it to be cancelled and resumed externally.\n */\n this.isScheduled = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.isScheduled = true;\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n /**\n * If a keyframe is null, we hydrate it either by reading it from\n * the instance, or propagating from previous keyframes.\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null) {\n /**\n * If the first keyframe is null, we need to find its value by sampling the element\n */\n if (i === 0) {\n const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n else {\n unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];\n }\n }\n }\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete() {\n this.isComplete = true;\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);\n toResolve.delete(this);\n }\n cancel() {\n if (!this.isComplete) {\n this.isScheduled = false;\n toResolve.delete(this);\n }\n }\n resume() {\n if (!this.isComplete)\n this.scheduleResolve();\n }\n}\n\nexport { KeyframeResolver, flushKeyframeResolvers };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\nimport { getVariantContext } from './get-variant-context.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n var _a;\n const resolved = resolveVariant(visualElement, definition, type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const { props } = visualElement;\n const context = getVariantContext(visualElement.parent) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to skip this animation\n * unless the inherited variants haven't changed on this render.\n */\n const willAnimateViaParent = isInherited && variantDidChange;\n const needsAnimating = !willAnimateViaParent || handledRemovedValues;\n if (shouldAnimateType && needsAnimating) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget !== null && fallbackTarget !== void 0 ? fallbackTarget : null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n isInitialRender = true;\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","import { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nconst numVariantProps = variantProps.length;\nfunction getVariantContext(visualElement) {\n if (!visualElement)\n return undefined;\n if (!visualElement.isControllingVariants) {\n const context = visualElement.parent\n ? getVariantContext(visualElement.parent) || {}\n : {};\n if (visualElement.props.initial !== undefined) {\n context.initial = visualElement.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = visualElement.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n}\n\nexport { getVariantContext };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","import { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"11.11.9\", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.11.9 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\nexport { resolveVariant };\n","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","import { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nexport { setTarget };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","const MotionGlobalConfig = {\n skipAnimations: false,\n useManualTiming: false,\n};\n\nexport { MotionGlobalConfig };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { invariant } from './errors.mjs';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\nimport { mix } from './mix/index.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && input[0] === input[1])\n return () => output[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const isBrowser = typeof window !== \"undefined\";\n\nexport { isBrowser };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nexport { isNumericalString };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\nexport { isZeroValueString };\n","function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { mixNumber } from './number.mjs';\nimport { warning } from '../errors.mjs';\nimport { hslaToRgba } from '../hsla-to-rgba.mjs';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { mixNumber as mixNumber$1 } from './number.mjs';\nimport { mixColor } from './color.mjs';\nimport { pipe } from '../pipe.mjs';\nimport { warning } from '../errors.mjs';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { isCSSVariableToken } from '../../render/dom/utils/is-css-variable.mjs';\nimport { invisibleValues, mixVisibility } from './visibility.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n var _a;\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n","function mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\nexport { mixImmediate };\n","import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","const invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nexport { invisibleValues, mixVisibility };\n","const noop = (any) => any;\n\nexport { noop };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","import { mixNumber } from '../mix/number.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","const warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n","const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"11.11.9\";\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return <motion.div style={{ x }} />\n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: /*@__PURE__*/ isColorString(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { alpha, number } from '../numbers/index.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ isColorString(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { floatRegex } from '../utils/float-regex.mjs';\nimport { isNullish } from '../utils/is-nullish.mjs';\nimport { singleColorRegex } from '../utils/single-color-regex.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../color/index.mjs';\nimport { colorRegex } from '../utils/color-regex.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","const createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","const colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\nexport { colorRegex };\n","const floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\nexport { floatRegex };\n","function isNullish(v) {\n return v == null;\n}\n\nexport { isNullish };\n","// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\nexport { sanitize };\n","const singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\nexport { singleColorRegex };\n","import { isWillChangeMotionValue } from './is.mjs';\n\nfunction addValueToWillChange(visualElement, key) {\n if (!visualElement.applyWillChange)\n return;\n const willChange = visualElement.getValue(\"willChange\");\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if (isWillChangeMotionValue(willChange)) {\n return willChange.add(key);\n }\n}\n\nexport { addValueToWillChange };\n","import { acceleratedValues } from '../../animation/animators/utils/accelerated-values.mjs';\nimport { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction getWillChangeName(name) {\n if (transformProps.has(name)) {\n return \"transform\";\n }\n else if (acceleratedValues.has(name)) {\n return camelToDash(name);\n }\n}\n\nexport { getWillChangeName };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","export * from \"@core/common/core\";\r\nexport * from \"@core/common/player\";\r\n// @todo: add voice to \"say\" element\r\n// @todo: add other modes to \"say\" element\r\n// @fixme: background transition not working after load a saved game\r\n"],"names":["getCallStack","Action","callee","type","contentNode","_classCallCheck","__stack","_id","_createClass","key","value","executeAction","_state","node","getChild","getId","setId","id","getFutureActions","action","ActionTypes","CharacterActionTypes","say","setName","SceneActionTypes","setBackground","sleep","setTransition","applyTransition","init","exit","jumpTo","setBackgroundMusic","preUnmount","applyTransform","StoryActionTypes","ImageActionTypes","setSrc","setPosition","show","hide","dispose","flush","initWearable","ConditionActionTypes","ScriptActionTypes","MenuActionTypes","SoundActionTypes","play","stop","fade","setVolume","setRate","pause","resume","ControlActionTypes","doAsync","any","all","allAsync","repeat","TextActionTypes","setText","setFontSize","Chainable","Actionable","_Chainable","_callSuper","_inherits","toData","fromChained","chained","getActions","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","rval","handle","complete","finish","_catch","delegateYield","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","_setPrototypeOf","__awaiter","thisArg","_arguments","P","generator","adopt","reject","fulfilled","step","rejected","result","Awaitable","TypedAction","_Action","_this","getSelf","unknownType","resolveAwaitable","handler","awaitable","_this2","_callee","_callee$","_context","SkipController","SoundAction","CharacterAction","_TypedAction","arguments","state","registerSkipController","sentence","getContent","voice","config","initSound","playSound","stopSound","createText","_superPropGet","ConditionAction","gameState","_a","_b","nodes","evaluate","addChild","concat","_toConsumableArray","_getFutureActions","_get","get","_superPropBase","getOwnPropertyDescriptor","ControlAction","executeAllActions","exited","current","_loop","_ret","_context2","_yield$Promise","_loop$","game","getLiveGame","logger","debug","isAwaitable","_","t0","executeSingleAction","_callee2","_yield$Promise2","_callee2$","_context3","execute","content","stage","_contentNode$getConte","_contentNode$getConte2","_slicedToArray","_callee3","_callee3$","_context4","promises","map","_callee4","_this3","_callee4$","_context5","_callee5","_iterator","_step","_callee5$","_context6","_createForOfIteratorHelper","err","_this$contentNode$get","_this$contentNode$get2","actions","times","_callee6","_callee6$","_context7","_this$contentNode$get3","_this$contentNode$get4","wait","setTimeout","childActions","Image","ImageAction","_super","isWearable","lastScene","findElementByDisplayable","disposeImage","scene","createImage","events","image","src","update","includes","display","transform","animateImage","EventTypes","_$setDispose","transition","MenuAction","menu","createMenu","lastChild","getCurrentAction","choices","SceneAction","background","info","handleSceneInit","offSrcManager","srcManager","removeScene","once","future","sceneRoot","sound","emit","_c","sceneRootNode","sceneAction","isSceneActive","registerSrcManager","addScene","registerEventListeners","onInit","backgroundMusic","backgroundMusicFade","ScriptAction","getPlaying","sync","loop","start","end","duration","startValue","undefined","volume","getToken","_this$contentNode$get5","_this$contentNode$get6","_this$contentNode$get7","rate","setPlaying","getHowl","getHowlOptions","Text","Transform","TextAction","disposeDisplayable","createDisplayable","animateText","text","fontSize","BaseElement","fromData","setChild","ContentNode","ChainedFlag","Chained","self","__actions","__self","_this$__actions","newChain","chain","isChained","toActions","chainedActions","flat","_BaseElement","arg0","proxy","Array","isArray","target","Proxy","prop","set","combineActions","control","setContent","Constructable","forEachChild","actionOrActions","cb","seen","Set","queue","shift","has","add","children","filter","getAllChildren","getAllChildrenMap","Map","getAllElementMap","getAllChildrenElements","from","constructNodes","parent","Sound","Utils","SrcManager","register","isSrcRegistered","getSrc","isStaticImageData","srcToString","staticImageDataToSrc","some","SrcTypes","audio","getSrcByType","registerFuture","hasFuture","video","NodeType","Node","_Node","child","setParent","remove","getParent","removeChild","hasChild","forEachParent","callback","RootNode","_ContentNode","toHex","RGBColor","b","toString","toImageColor","isHexString","color","test","fromHex","hex","hexString","parseInt","backgroundToSrc","isExternalSrc","startsWith","isImageSrc","isImageColor","isPlainColor","toBackgroundSrc","UseError","_Error","message","props","isUseError","error","_wrapNativeSuper","StaticScriptWarning","_UseError","isWarning","StaticChecker","run","imageStates","scenes","sceneActions","checkAction","_ref","isDisposed","usedExternalSrc","checkImage","targetScene","Character","Condition","Lambda","Control","Menu","Scene","Script","SoundType","Story","Sentence","Word","Pause","Game","LiveGame","GameState","Storable","Namespace","Player","GameProviders","useGame","Align","CommonPosition","Coord2D","CommonPositionType","BaseImageTransition","BaseTextTransition","BaseTransition","Fade","FadeIn","Dissolve","deepMerge","_Actionable","defaultConfig","assign","character","isSentence","copy","setCharacter","input","isPauseConstructor","isPause","obj","deepEqual","safeClone","format","toSound","defaultState","data","word","join","ctx","words","formatStaticWord","toSentence","prompt","formatWord","isWord","w","texts","inherit","italic","bold","defaultColor","getCtx","_ref2","liveGame","storable","getStorable","conditions","If","condition","ElseIf","Else","_ref3","_if","elseIf","_elseIf","parentChild","flatMap","getInitialState","do","flatted","_len","args","_key","PositionUtils","EventDispatcher","ref","position","tryParsePosition","checkConfig","_dispose","_init","isPosition","wearables","wearable","JSON","stringify","_transitionSrc","_flush","options","_this4","trans","opacity","_this5","addWearable","_iterator2","_step2","bindWearable","toTransform","setScope","scope","getScope","disposed","serializeImageState","deserializeImageState","_applyTransition","_initWearable","toDisplayableTransform","getTransformState","scale","rotation","handlers","serializePosition","toCoord2D","Center","choose","arg1","console","warn","constructChoices","choice","targetAction","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","entriesForEach","_Constructable","rest","backgroundImage","toBackground","activate","deactivate","_exit","_transitionToScene","jumpConfig","_jumpTo","backgroundImageState","getInitTransform","userChainedActions","userActions","images","element","nonWearableImages","usedWearableImages","wearableImagesMap","futureActions","constructed","registerSrc","seenActions","seenJump","futureScene","imageAction","controlAction","assignActionId","assignElementId","elements","invertY","invertX","playing","token","pushAction","html5","streaming","autoplay","setToken","howl","toSoundSrc","entryScene","entry","constructStory","runStaticCheck","getAllElementStates","FontSizeTransition","configOrText","easing","Positions","alignX","alignY","fontColor","CommonPositions","_defineProperty","Left","Right","isUnknown","Unknown","def","left","top","right","bottom","D2PositionToCSS","pos","posY","calc","yoffset","posX","x","xoffset","yRes","xRes","offset","isCommonPositionType","fromCommonPosition","isCoord2DPosition","isAlignPosition","fromAlignPosition","orUnknown","mergePosition","aPos","bPos","merge","coord","isRawCommonPositionType","isRawCoord2DPosition","isRawAlignPosition","isRawPosition","rawPositionToCoord2D","toCSS","xalign","yalign","_unsupportedIterableToArray","_n","F","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","ImagePosition","animate","CommonImagePositionMap","center","sequences","transformers","_this$sequences","sequenceOptions","defaultSequenceOptions","defaultOptions","after","overwrites","_step$value","initState","animation","propToCSS","mergeState","optionsToFramerMotionOptions","setControl","t1","overwrite","transformer","getLastScene","FieldHandlers","positionToCSS","backgroundColor","backgroundToCSS","backgroundOpacity","propToCSSTransform","ease","getControl","every","url","_ref3$translate","translate","_ref3$scale","propScale","_ref4","Transforms","TransitionEventTypes","_onComplete","toElementProps","requestAnimation","onComplete","onUpdate","controller","_BaseTransition","_src","_BaseTransition2","_BaseImageTransition","Frames","style","direction","getInitialTransform","getTransform","progress","_BaseTextTransition","endValue","Lock","MultiLock","DefaultElements","GameSettingsNamespace","DefaultConfig","useComponent","components","use","createLiveGame","defaultSettings","ComponentTypes","player","contentContainerId","aspectRatio","minWidth","minHeight","width","height","skipKey","skipInterval","ratioUpdateInterval","nextKey","textInterval","useAspectScale","img","slowLoadWarning","slowLoadThreshold","allowSkipTransform","allowSkipTransition","elementStyles","contentContainerClassName","containerClassName","nameTextClassName","textContainerClassName","textSpanClassName","rubyClassName","choiceButtonClassName","choiceButtonTextClassName","app","log","trace","inspector","gameLock","currentSavedGame","story","lockedAwaiting","_lockedCount","currentAction","_nextLock","initNamespaces","clear","addNamespace","GameSpacesKey","DefaultNamespaces","loadStory","serialize","store","elementStates","meta","created","Date","now","updated","deserialize","savedGame","forceUpdate","actionMaps","elementMaps","_savedGame$game","load","loadData","newGame","getNewSavedGame","abort","forceReset","setCurrentAction","isLocked","lock","solved","unlock","nextAction","abortAwaiting","setGameState","getGameState","initContent","isSerializable","output","entries","unwrap","toTypeName","date","namespaces","namespace","getNamespace","setNamespace","getNamespaces","reduce","acc","_ref5","_ref6","_ref7","_ref8","clsx","React","useEffect","useReducer","useState","Motion","AspectRatio","Isolated","default","StageScene","usePreloaded","Preload","Preloaded","KeyEventAnnouncer","flushSync","Displayables","ErrorBoundary","SizeUpdateAnnouncer","handleAction","className","onReady","onEnd","_useReducer","_useReducer2","_useGame","_useReducer3","dispatch","_useReducer4","containerRef","createRef","Say","nextResult","nextUnlock","microTaskExecuted","microTask","listener","gameStateEvents","onEvents","gameKeyEvents","event","off","cancel","cancelListeners","handlePreloadLoaded","playerWidth","playerHeight","createElement","OnlyPreloaded","onLoaded","getSceneElements","ele","displayable","onClick","menus","afterChoose","_usePreloaded","preloaded","_useState","_useState2","preloadedReady","setPreloadedReady","on","unmountListener","Fragment","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","useRef","Displayable","_displayable$state","displayableState","_useState3","_useState4","setTransitionProps","_useState5","_useState6","setTransform","_useState7","_useState8","transformProps","setTransformProps","APPLY_TRANSITION","APPLY_TRANSFORM","INIT","sceneEventTokens","transformOverwrites","gameEvents","skipTransform","skipTransition","assignStyle","eventToken","transformRef","GameText","StageText","GameImage","StageImage","Inspect","useRatio","DisplayableText","_extends","_useRatio","ratio","defaultProps","whiteSpace","transitionProps","spanClassName","Div","mDiv","tag","border","layout","Ref","elementProps","index","mergedProps","transformOrigin","Span","StageSay","StageMenu","AspectScaleImage","onLoad","imgRef","_React$useState","_React$useState2","setWidth","updateWidth","naturalWidth","alt","startTime","setStartTime","performance","handleLoad","endTime","loadTime","threshold","DisplayableImage","setWearables","outline","maxWidth","naturalHeight","useTypeEffect","Button","throttle","window","addEventListener","removeEventListener","container","observer","ResizeObserver","requestUpdate","observe","disconnect","time","currentSceneSrc","futureSceneSrc","combinedSrc","srcItem","preloadedSrcP","newImages","htmlImg","onload","size","preload","onlyIf","_ref$useTypeEffect","isFinished","setIsFinished","count","setCount","handleComplete","onElementClick","handleKeyUp","finished","onCompleted","useMemo","_marked","textUpdater","currentWords","setCurrentWords","updaterRef","pauseTimerRef","intervalRef","trigger","setTrigger","setSeen","_useState9","_useState10","isPaused","setIsPaused","skipToNext","clearTimeout","_updaterRef$current$n","waitForPause","addWord","tilEnd","_updaterRef$current$n2","last","tag2","j","_char","textUpdater$","char","fontFamily","ruby","GameScene","m","BackgroundTransition","displayableProps","DisplayableBackground","imageLoaded","setImageLoaded","handleImageOnload","emptyImage","div","getStyle","stopWithFade","music","fadeSound","fadeTo","lastMusic","nextMusic","transitionSound","listeners","Logger","Howler","sounds","srcManagers","currentHandling","findElementByScene","find","sceneExists","getElementMap","popScene","removeElements","afterClick","_getLastSceneIfNot","createWaitableAction","splice","targetElement","createWearable","displayables","cur","originalVolume","Howl","anyEvent","sceneId","elementMap","initScenes","findIndex","_target$events","item","debounce","setStyle","MIN_WIDTH","MIN_HEIGHT","resizeTimeout","updateStyle","document","getElementById","containerWidth","clientWidth","containerHeight","clientHeight","margin","alignItems","justifyContent","updateMin","setUpdate","handleResize","updateRequestListenerToken","onRequestedUpdate","overflow","PropTypes","ErrorFallback","_React$Component","hasError","errorInfo","componentDidCatch","setState","render","getDerivedStateFromError","Component","propTypes","isRequired","stack","componentStack","digest","InspectBase","_a$border","_a$color","_a$borderWidth","borderWidth","_a$as","as","isHovered","setIsHovered","commonProps","onMouseEnter","onMouseLeave","zIndex","InspectCloseBase","_a$border2","_a$color2","_a$borderWidth2","_a$as2","_useGame2","InspectDiv","InspectSpan","InspectImg","InspectButton","InspectFramerMotionDiv","Img","domAnimation","LazyMotion","features","strict","removeNeeded","thisSrc","styles","useContext","GameContext","createContext","GameProvider","DefaultValue","_game","setGame","Provider","context","PreloadedProvider","RatioProvider","paused","lockers","updater","locker","triggerUpdate","RatioContext","obj1","obj2","mergeValue","value1","value2","objs","receiver","skipController","nothing","WeakSet","clone","arrCopy","objCopy","padStart","tokens","_len2","_key3","onceListener","_len3","_key4","_iterator3","_step3","fc","res","split","trim","ms","keys1","keys2","_i","_keys","prefix","_console","_len4","_key5","_log","_console2","_len5","_key6","_console3","_len6","_key7","_console4","_len7","_key8","_console5","_len8","_key9","_len9","_key10","_len10","_key11","abortHandler","aborted","isAborted","fn","delay","locked","unlockListeners","_iterator4","_step4","_iterator5","_step5","onUnlock","offUnlock","locks","targetLock","fallback","timer","_len11","_key12","validate"],"sourceRoot":""}
|