react-aria-components 0.0.4 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +12 -29
- package/dist/import.mjs +5223 -0
- package/dist/main.js +5345 -0
- package/dist/main.js.map +1 -0
- package/dist/module.js +5223 -0
- package/dist/module.js.map +1 -0
- package/dist/types.d.ts +1481 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +35 -44
- package/.babelrc +0 -17
- package/.eslintrc +0 -12
- package/src/accordion/accordion.css +0 -4
- package/src/accordion/accordion.js +0 -20
- package/src/accordion/index.js +0 -2
- package/src/accordion/section.css +0 -21
- package/src/accordion/section.js +0 -85
- package/src/examples/accordion-example.js +0 -73
- package/src/examples/example.js +0 -21
- package/src/examples/grid-cells/fancy-input-grid-cell.js +0 -206
- package/src/examples/grid-cells/input-grid-cell.js +0 -44
- package/src/examples/grid-example.css +0 -23
- package/src/examples/grid-example.js +0 -231
- package/src/examples/index.html +0 -10
- package/src/examples/index.js +0 -53
- package/src/examples/tabs-example.js +0 -52
- package/src/grid/column-header.css +0 -4
- package/src/grid/column-header.js +0 -29
- package/src/grid/grid-cell.css +0 -16
- package/src/grid/grid-cell.js +0 -104
- package/src/grid/grid-context.js +0 -3
- package/src/grid/grid.css +0 -4
- package/src/grid/grid.js +0 -110
- package/src/grid/index.js +0 -6
- package/src/grid/interactive-grid-cell.js +0 -96
- package/src/grid/row-headers.css +0 -6
- package/src/grid/row-headers.js +0 -22
- package/src/grid/row.css +0 -5
- package/src/grid/row.js +0 -21
- package/src/prop-types/ref.js +0 -3
- package/src/tabs/index.js +0 -4
- package/src/tabs/tab-list.css +0 -6
- package/src/tabs/tab-list.js +0 -103
- package/src/tabs/tab-panels.js +0 -35
- package/src/tabs/tab.css +0 -10
- package/src/tabs/tab.js +0 -45
- package/src/tabs/tabs.js +0 -52
- package/src/utils/debounce.js +0 -12
- package/src/utils/event-handlers-factory.js +0 -42
- package/src/utils/unique-id.js +0 -6
- package/webpack.config.js +0 -43
package/dist/main.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;ACAA;;;;;;;;;;CAUC,GACD;ACXA;;;;;;;;;;CAUC,GACD;;;;;;AA4BO,MAAM;IAsBX,IAAI,aAAgC;QAClC,MAAM,IAAI,MAAM,+BAA+B;IACjD;IAEA,QAAsB;QACpB,IAAI,OAA8B,IAAI,0CAAU,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;QACnE,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK;QACvB,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK;QACvB,KAAK,aAAa,GAAG,IAAI,CAAC,aAAa;QACvC,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC7B,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;QACvC,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK;QACvB,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS;QAC/B,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO;QAC3B,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO;QAC3B,KAAK,aAAa,GAAG,IAAI,CAAC,aAAa;QACvC,KAAK,YAAY,GAAG,IAAI,CAAC,YAAY;QACrC,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK;QACvB,OAAO;IACT;IAzBA,YAAY,IAAY,EAAE,GAAQ,CAAE;QAdpC,4EAAS,SAAkB,IAAI;QAC/B,4EAAS,SAAgB;QACzB,4EAAS,iBAAyB,KAAK;QACvC,4EAAS,YAAsB,IAAI;QACnC,4EAAS,aAAoB;QAC7B,4EAAS,cAAwB;QACjC,4EAAS,SAAgB;QACzB,4EAAS,aAAwB,IAAI;QACrC,4EAAS,WAAsB,IAAI;QACnC,4EAAS,WAAsB,IAAI;QACnC,4EAAS,iBAA4B,IAAI;QACzC,4EAAS,gBAA2B,IAAI;QACxC,4EAAS,SAAa,CAAC;QAGrB,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,GAAG,GAAG;IACb;AAuBF;IAkBI,yCAAA,OAAO,QAAQ;AAhBnB;;;CAGC,GACD,MAAM;IAYJ,CAAC,CAAC,uCAAgB,GAAG;QACnB,IAAI,OAAO,IAAI,CAAC,UAAU;QAC1B,MAAO,KAAM;YACX,MAAM;YACN,OAAO,KAAK,WAAW;QACzB;IACF;IAEA,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW;IACzB;IAEA,IAAI,WAAW,UAAU,EAAE;QACzB,IAAI,CAAC,WAAW,GAAG;QACnB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;IACxC;IAEA,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU;IACxB;IAEA,IAAI,UAAU,SAAS,EAAE;QACvB,IAAI,CAAC,UAAU,GAAG;QAClB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;IACxC;IAEA,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;IAEA,IAAI,gBAAgB,eAAe,EAAE;QACnC,IAAI,CAAC,gBAAgB,GAAG;QACxB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;IACxC;IAEA,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY;IAC1B;IAEA,IAAI,YAAY,WAAW,EAAE;QAC3B,IAAI,CAAC,YAAY,GAAG;QACpB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;IACxC;IAEA,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW;IACzB;IAEA,IAAI,WAAW,UAAU,EAAE;QACzB,IAAI,CAAC,WAAW,GAAG;QACnB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;IACxC;IAEA,YAAY,KAAqB,EAAE;QACjC,IAAI,MAAM,UAAU,EAClB,MAAM,UAAU,CAAC,WAAW,CAAC;QAG/B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EACzB,IAAI,CAAC,UAAU,GAAG;QAGpB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG;YACrC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS;QACxC,OAAO;YACL,MAAM,eAAe,GAAG,IAAI;YAC5B,MAAM,KAAK,GAAG;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI;QACvB,MAAM,WAAW,GAAG,IAAI;QACxB,IAAI,CAAC,SAAS,GAAG;QAEjB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;QACtC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IAC7B;IAEA,aAAa,OAAuB,EAAE,aAA6B,EAAE;QACnE,IAAI,iBAAiB,IAAI,EACvB,OAAO,IAAI,CAAC,WAAW,CAAC;QAG1B,IAAI,QAAQ,UAAU,EACpB,QAAQ,UAAU,CAAC,WAAW,CAAC;QAGjC,QAAQ,WAAW,GAAG;QACtB,QAAQ,eAAe,GAAG,cAAc,eAAe;QACvD,QAAQ,KAAK,GAAG,cAAc,KAAK;QAEnC,IAAI,IAAI,CAAC,UAAU,KAAK,eACtB,IAAI,CAAC,UAAU,GAAG;aACb,IAAI,cAAc,eAAe,EACtC,cAAc,eAAe,CAAC,WAAW,GAAG;QAG9C,cAAc,eAAe,GAAG;QAChC,QAAQ,UAAU,GAAG,cAAc,UAAU;QAE7C,IAAI,OAA8B;QAClC,MAAO,KAAM;YACX,KAAK,KAAK;YACV,OAAO,KAAK,WAAW;QACzB;QAEA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IAC7B;IAEA,YAAY,KAAqB,EAAE;QACjC,IAAI,MAAM,UAAU,KAAK,IAAI,EAC3B;QAGF,IAAI,OAAO,MAAM,WAAW;QAC5B,MAAO,KAAM;YACX,KAAK,KAAK;YACV,OAAO,KAAK,WAAW;QACzB;QAEA,IAAI,MAAM,WAAW,EACnB,MAAM,WAAW,CAAC,eAAe,GAAG,MAAM,eAAe;QAG3D,IAAI,MAAM,eAAe,EACvB,MAAM,eAAe,CAAC,WAAW,GAAG,MAAM,WAAW;QAGvD,IAAI,IAAI,CAAC,UAAU,KAAK,OACtB,IAAI,CAAC,UAAU,GAAG,MAAM,WAAW;QAGrC,IAAI,IAAI,CAAC,SAAS,KAAK,OACrB,IAAI,CAAC,SAAS,GAAG,MAAM,eAAe;QAGxC,MAAM,UAAU,GAAG,IAAI;QACvB,MAAM,WAAW,GAAG,IAAI;QACxB,MAAM,eAAe,GAAG,IAAI;QAC5B,MAAM,KAAK,GAAG;QAEd,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IAChC;IAEA,mBAAmB,CAAC;IACpB,sBAAsB,CAAC;IAtJvB,YAAY,aAA+B,CAAE;QAP7C,4EAAQ,eAAqC,IAAI;QACjD,4EAAQ,cAAoC,IAAI;QAChD,4EAAQ,oBAA0C,IAAI;QACtD,4EAAQ,gBAAsC,IAAI;QAClD,4EAAQ,eAAkC,IAAI;QAI5C,IAAI,CAAC,aAAa,GAAG;IACvB;AAqJF;AAEA,IAAI,2BAAK;AACT,MAAM,iCAAW;IACf,IAAI;IACJ,UAAU;IACV,QAAQ;AACV;AAMO,MAAM,kDAAuB;IAUlC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM;IACpB;IAEA,IAAI,MAAM,KAAK,EAAE;QACf,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI;IACxC;IAEA,IAAI,QAAgB;QAClB,IAAI,IAAI,CAAC,UAAU,YAAY,2CAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,GAAI,CAAA,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,AAAD;QAGlE,OAAO;IACT;IAEA,aAAa;YAKI,uBACA,mBAEM,kBACD;QARpB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI;QACjD,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK;QACvB,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK;QACvB,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,YAAY,4CAAc,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI;YAC1E;QAAf,KAAK,OAAO,GAAG,CAAA,iCAAA,CAAA,wBAAA,IAAI,CAAC,eAAe,cAApB,mCAAA,KAAA,IAAA,sBAAsB,KAAK,GAAG,cAA9B,4CAAA,iCAAkC,IAAI;YACtC;QAAf,KAAK,OAAO,GAAG,CAAA,6BAAA,CAAA,oBAAA,IAAI,CAAC,WAAW,cAAhB,+BAAA,KAAA,IAAA,kBAAkB,KAAK,GAAG,cAA1B,wCAAA,6BAA8B,IAAI;QACjD,KAAK,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU;YACjB;QAArB,KAAK,aAAa,GAAG,CAAA,4BAAA,CAAA,mBAAA,IAAI,CAAC,UAAU,cAAf,8BAAA,KAAA,IAAA,iBAAiB,KAAK,GAAG,cAAzB,uCAAA,4BAA6B,IAAI;YAClC;QAApB,KAAK,YAAY,GAAG,CAAA,2BAAA,CAAA,kBAAA,IAAI,CAAC,SAAS,cAAd,6BAAA,KAAA,IAAA,gBAAgB,KAAK,GAAG,cAAxB,sCAAA,2BAA4B,IAAI;IACtD;IAEA,iGAAiG;IACjG,yBAAyB;IACzB,IAAI,SAAS,GAAQ,EAAE;QACrB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI;QACjD,IAAI,YAAC,SAAQ,SAAE,MAAK,aAAE,UAAS,MAAE,GAAE,EAAE,GAAG,OAAM,GAAG;QACjD,KAAK,KAAK,GAAG;QACb,KAAK,QAAQ,GAAG;QAChB,KAAK,KAAK,GAAG;QACb,KAAK,SAAS,GAAG,aAAc,CAAA,OAAO,aAAa,WAAW,WAAW,EAAE,AAAD,KAAM,GAAG,CAAC,aAAa,IAAI;QACrG,IAAI,MAAM,IAAI,IAAI,OAAO,KAAK,GAAG,EAAE;YACjC,IAAI,IAAI,CAAC,UAAU,EACjB,MAAM,IAAI,MAAM,mCAAmC;YAErD,KAAK,GAAG,GAAG;QACb,CAAC;IACH;IAEA,IAAI,QAAQ;QACV,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI;QACjD,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,EACnB,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC;QAEtB,OAAO,KAAK,KAAK,CAAC,KAAK;IACzB;IAEA,eAAe,CAAC;IAChB,aAAa,GAAW,EAAE,KAAa,EAAE;QACvC,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI;QACjD,IAAI,OAAO,MACT,IAAI,CAAC,IAAI,GAAG;IAEhB;IAEA,iBAAiB,CAAC;IAClB,kBAAkB,CAAC;IApEnB,YAAY,IAAY,EAAE,aAA+B,CAAE;QACzD,KAAK,CAAC;QALR,4EAAA,YAAW,GAAG,0FAA0F;;QAExG,4EAAQ,UAAiB;QAIvB,IAAI,CAAC,IAAI,GAAG,IAAI,0CAAU,8BAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,yBAAG,CAAC;IACxE;AAkEF;IAoBI,0CAAA,OAAO,QAAQ;AAdZ,MAAM;IAMX,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI;IACzB;IAEA,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI;IACzB;IAEA,CAAC,CAAC,wCAAgB,GAAG;QACnB,IAAI,OAA4B,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS;QAClG,MAAO,KAAM;YACX,MAAM;YACN,OAAO,KAAK,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,SAAS;QACzE;IACF;IAEA,YAAY,GAAQ,EAAqB;QACvC,IAAI,SAAS,IAAI,CAAC,MAAM;QACxB,OAAO;YACL,CAAC,CAAC,OAAO,QAAQ,CAAC,IAAG;gBACnB,IAAI,SAAS,OAAO,GAAG,CAAC;gBACxB,IAAI,OAAO,CAAA,mBAAA,oBAAA,KAAA,IAAA,OAAQ,aAAa,AAAD,KAAK,IAAI,GAAG,OAAO,GAAG,CAAC,OAAO,aAAa,IAAI,IAAI;gBAClF,MAAO,KAAM;oBACX,MAAM;oBACN,OAAO,KAAK,OAAO,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,KAAK,OAAO,IAAI,SAAS;gBACpE;YACF;QACF;IACF;IAEA,aAAa,GAAQ,EAAE;QACrB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,MACH,OAAO,IAAI;QAGb,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO;YAEnC,MAAO,QAAQ,KAAK,IAAI,KAAK,UAAU,KAAK,YAAY,IAAI,IAAI,CAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,YAAY;gBAGnC;YAAP,OAAO,CAAA,YAAA,iBAAA,kBAAA,KAAA,IAAA,KAAM,GAAG,cAAT,uBAAA,YAAa,IAAI;QAC1B,CAAC;QAED,OAAO,KAAK,SAAS;IACvB;IAEA,YAAY,GAAQ,EAAE;QACpB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,MACH,OAAO,IAAI;QAGb,IAAI,KAAK,IAAI,KAAK,UAAU,KAAK,aAAa,IAAI,IAAI,EACpD,OAAO,KAAK,aAAa;QAG3B,MAAO,KAAM;YACX,IAAI,KAAK,OAAO,IAAI,IAAI,EACtB,OAAO,KAAK,OAAO;YAGrB,IAAI,KAAK,SAAS,IAAI,IAAI,EACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;iBAErC,OAAO,IAAI;QAEf;QAEA,OAAO,IAAI;IACb;IAEA,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEA,aAAa;QACX,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI;QACtE,MAAO,CAAA,iBAAA,kBAAA,KAAA,IAAA,KAAM,YAAY,AAAD,KAAK,IAAI,CAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,YAAY;YAGnC;QAAP,OAAO,CAAA,YAAA,iBAAA,kBAAA,KAAA,IAAA,KAAM,GAAG,cAAT,uBAAA,YAAa,IAAI;IAC1B;IAEA,QAAQ,GAAQ,EAAkB;YACzB;QAAP,OAAO,CAAA,mBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAhB,8BAAA,mBAAwB,IAAI;IACrC;IAEA,KAAc;QACZ,MAAM,IAAI,MAAM,mBAAmB;IACrC;IAEA,QAAc;QACZ,uFAAuF;QACvF,yCAAyC;QACzC,sDAAsD;QACtD,IAAI,cAAmB,IAAI,CAAC,WAAW;QACvC,IAAI,aAAmB,IAAI;QAC3B,WAAW,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM;QACvC,WAAW,QAAQ,GAAG,IAAI,CAAC,QAAQ;QACnC,WAAW,OAAO,GAAG,IAAI,CAAC,OAAO;QACjC,OAAO;IACT;IAEA,QAAQ,IAAkB,EAAE;QAC1B,IAAI,IAAI,CAAC,MAAM,EACb,MAAM,IAAI,MAAM,4CAA4C;QAG9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;IAC5B;IAEA,WAAW,GAAQ,EAAE;QACnB,IAAI,IAAI,CAAC,MAAM,EACb,MAAM,IAAI,MAAM,+CAA+C;QAGjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IACrB;IAEA,OAAO,QAAoB,EAAE,OAAmB,EAAE;QAChD,IAAI,IAAI,CAAC,MAAM,EACb,MAAM,IAAI,MAAM,qCAAqC;QAGvD,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,OAAO,GAAG;QACf,IAAI,CAAC,MAAM,GAAG,IAAI;IACpB;;QAxIA,4EAAQ,UAAiC,IAAI;QAC7C,4EAAQ,YAAuB,IAAI;QACnC,4EAAQ,WAAsB,IAAI;QAClC,4EAAQ,UAAS,KAAK;;AAsIxB;AAMO,MAAM,kDAAiD;IAgB5D,cAAc,IAAY,EAAE;QAC1B,OAAO,IAAI,0CAAY,MAAM,IAAI;IACnC;IAEA;;;GAGC,GACD,eAAe,OAAuB,EAAyB;QAC7D,IAAI,OAAO,QAAQ,IAAI;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU;YACnC,OAAO,QAAQ,IAAI,CAAC,KAAK;YACzB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YACtB,QAAQ,IAAI,GAAG;QACjB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACpB,OAAO;IACT;IAEQ,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;YACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,UAAU;IACxB;IAEA,QAAQ,OAAuB,EAAE;QAC/B,IAAI,aAAa,IAAI,CAAC,oBAAoB;QAC1C,IAAI,CAAC,WAAW,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,GAAG;YACzC,WAAW,OAAO,CAAC,QAAQ,IAAI;YAE/B,KAAK,IAAI,SAAS,QAChB,IAAI,CAAC,OAAO,CAAC;QAEjB,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IACtB;IAEA,WAAW,IAAoB,EAAE;QAC/B,KAAK,IAAI,SAAS,KAAM;YACtB,MAAM,UAAU,GAAG,IAAI;YACvB,IAAI,CAAC,UAAU,CAAC;QAClB;QAEA,IAAI,aAAa,IAAI,CAAC,oBAAoB;QAC1C,WAAW,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IACtB;IAEA,qFAAqF,GACrF,gBAAmB;QACjB,KAAK,IAAI,WAAW,IAAI,CAAC,UAAU,CACjC,IAAI,mBAAmB,6CAAe,QAAQ,UAAU,EACtD,QAAQ,UAAU;QAItB,IAAI,CAAC,UAAU,CAAC,KAAK;QAErB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;gBAQR,kBAAmC;YAPrD,IAAI,aAAa,IAAI,CAAC,oBAAoB;YAC1C,KAAK,IAAI,YAAW,IAAI,CAAC,YAAY,CACnC,IAAI,SAAQ,UAAU,EACpB,WAAW,OAAO,CAAC,SAAQ,IAAI;gBAIjB,2BAAmC;YAArD,WAAW,MAAM,CAAC,CAAA,4BAAA,CAAA,mBAAA,IAAI,CAAC,UAAU,cAAf,8BAAA,KAAA,IAAA,iBAAiB,KAAK,GAAG,cAAzB,uCAAA,4BAA6B,IAAI,EAAE,CAAA,2BAAA,CAAA,kBAAA,IAAI,CAAC,SAAS,cAAd,6BAAA,KAAA,IAAA,gBAAgB,KAAK,GAAG,cAAxB,sCAAA,2BAA4B,IAAI;YACrF,IAAI,CAAC,YAAY,CAAC,KAAK;QACzB,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,OAAO,IAAI,CAAC,UAAU;IACxB;IAEA,cAAc;QACZ,KAAK,IAAI,MAAM,IAAI,CAAC,aAAa,CAC/B;IAEJ;IAEA,UAAU,EAAc,EAAE;QACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QACvB,OAAO,IAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACzC;IA9FA,YAAY,UAAa,CAAE;QACzB,aAAa;QACb,KAAK,CAAC,IAAI;QAVZ,4EAAA,YAAW,IAAI,yBAAyB;;QACxC,4EAAA,iBAAgB,IAAI;QACpB,4EAAA,cAA+B,IAAI;QAGnC,4EAAQ,gBAAoC,IAAI;QAChD,4EAAQ,iBAAiC,IAAI;QAK3C,IAAI,CAAC,UAAU,GAAG;QAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI;IAC/B;AA0FF;AAYO,SAAS,0CAAoC,KAA+B,EAAE;IACnF,IAAI,YAAC,SAAQ,SAAE,MAAK,WAAE,QAAO,iBAAE,cAAa,EAAC,GAAG;IAChD,IAAI,QAAQ,CAAA,GAAA,oBAAM,EAAE,IAAM,IAAI,WAAW,EAAE;IAC3C,OAAO,CAAA,GAAA,oBAAO,AAAD,EAAE,IAAM;QACnB,IAAI,SAAS,OAAO,aAAa,YAAY;YAC3C,IAAI,MAAsB,EAAE;YAC5B,KAAK,IAAI,QAAQ,MAAO;gBACtB,IAAI,WAAW,MAAM,GAAG,CAAC;gBACzB,IAAI,CAAC,UAAU;oBACb,WAAW,SAAS;oBACpB,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE;4BAEd,oBAAA;wBADV,aAAa;wBACb,IAAI,MAAM,CAAA,OAAA,CAAA,qBAAA,SAAS,KAAK,CAAC,EAAE,cAAjB,gCAAA,qBAAqB,KAAK,GAAG,cAA7B,kBAAA,OAAiC,KAAK,EAAE;wBAClD,qCAAqC;wBACrC,IAAI,OAAO,IAAI,EACb,MAAM,IAAI,MAAM,oCAAoC;wBAEtD,qCAAqC;wBACrC,IAAI,SACF,MAAM,UAAU,MAAM;wBAExB,wDAAwD;wBACxD,yBAAW,CAAA,GAAA,yBAAY,AAAD,EACpB,UACA,gBAAgB;iCAAC;4BAAK,IAAI;4BAAK,OAAO;wBAAI,IAAI;iCAAC;wBAAG,CAAC;oBAEvD,CAAC;oBACD,MAAM,GAAG,CAAC,MAAM;gBAClB,CAAC;gBACD,IAAI,IAAI,CAAC;YACX;YACA,OAAO;QACT,OACE,OAAO;IAEX,GAAG;QAAC;QAAU;QAAO;QAAO;QAAS;KAAc;AACrD;AAEO,SAAS,0CAAwC,KAA+B,EAAE;IACvF,OAAO,0CAAkB;QAAC,GAAG,KAAK;QAAE,eAAe,IAAI;IAAA;AACzD;AAEA,MAAM,2DAAuB,CAAA,GAAA,0BAAY,EAAE,KAAK;AAOzC,SAAS,0CAA6D,KAAyB,EAAE,iBAAqB,EAAuB;IAClJ,6EAA6E;IAC7E,kGAAkG;IAClG,IAAI,WAAW,CAAA,GAAA,oBAAO,AAAD,EAAE,IAAM,IAAI,0CAAe,qBAAqB,IAAI,8CAAwB;QAAC;KAAkB;IACpH,IAAI,YAAY,CAAA,GAAA,wBAAW,AAAD,EAAE,CAAC,KAAmB,SAAS,SAAS,CAAC,KAAK;QAAC;KAAS;IAClF,IAAI,cAAc,CAAA,GAAA,wBAAU,EAAE,IAAM,SAAS,aAAa,IAAI;QAAC;KAAS;IACxE,IAAI,aAAa,CAAA,GAAA,2DAAoB,AAAD,EAAE,WAAW,aAAa;IAC9D,IAAI,WAAW,0CAAsB;IACrC,IAAI,kBAAkB,CAAA,GAAA,oBAAM,EAAE,kBAC5B,0DAAC,2CAAqB,QAAQ;YAAC,OAAA,IAAK;WACjC,WAEF;QAAC;KAAS;IACb,IAAI,SAAS,CAAA,GAAA,yBAAO,MAAM,IAAI,iBAAG,CAAA,GAAA,4BAAW,EAAE,iBAAiB,SAA+B;IAE9F,CAAA,GAAA,qCAAe,AAAD,EAAE,IAAM;QACpB,IAAI,SAAS,UAAU,CAAC,IAAI,GAAG,GAC7B,SAAS,WAAW;IAExB;IAEA,OAAO;gBAAC;oBAAQ;IAAU;AAC5B;AAGO,SAAS,0CAAoC,OAAe,EAAE,KAA8B,EAAE,GAAuB,EAAuB;IACjJ,IAAI,YAAY,CAAA,GAAA,uBAAS,EAAE;IAC3B,IAAI,WACF,aAAa;IACb,qBAAO,0DAAC;QAAQ,UAAU;YAAC,GAAG,KAAK;iBAAE;YAAK,UAAU,MAAM,QAAQ;QAAA;;IAGpE,OAAO,IAAI;AACb;AAiEO,SAAS,0CAAuB,KAAmB,EAAe;IACvE,+FAA+F;IAC/F,iGAAiG;IACjG,8FAA8F;IAC9F,iDAAiD;IACjD,oIAAoI;IACpI,aAAa;IACb,qBAAO,0DAAC;QAAK,UAAU;YAAC,GAAG,KAAK;YAAE,UAAU,MAAM,QAAQ;QAAA;;AAC5D;AAWO,SAAS,0CAA0B,KAAsB,EAAe;IAC7E,IAAI,WAAW,0CAAsB;IAErC,aAAa;IACb,qBAAO,0DAAC;QAAQ,UAAU;YAAC,GAAG,KAAK;YAAE,UAAU,MAAM,KAAK;QAAA;OAAI;AAChE;AAEO,MAAM,0DAAoB,CAAA,GAAA,0BAAY,EAAyC,IAAI;AACnF,MAAM,0DAA4B,CAAA,GAAA,0BAAY,EAAwC,IAAI;AAG1F,SAAS,0CAA6B,KAAyB,EAAe;IACnF,IAAI,MAAM,CAAA,GAAA,uBAAS,EAAE;IACrB,QAAQ,CAAA,GAAA,2BAAU,AAAD,EAAE,KAAK;IACxB,IAAI,WAAW,OAAO,MAAM,QAAQ,KAAK,aAAa,MAAM,QAAQ,GAAG,IAAI;IAC3E,qBACE,0DAAC,0CAA0B,QAAQ;QAAC,OAAO;OACxC,0CAAsB;AAG7B;;;AClxBA;;;;;;;;;;CAUC,GAED;;AAWO,MAAM,4CAAqB,OAAO;AAClC,MAAM,4CAAc,OAAO;AAyB3B,SAAS,0CAAiC,UAAC,OAAM,YAAE,SAAQ,EAAwC,EAAe;IACvH,KAAK,IAAI,CAAC,SAAS,MAAM,IAAI,OAC3B,aAAa;IACb,yBAAW,0DAAC,QAAQ,QAAQ;QAAC,OAAO;OAAQ;IAG9C,OAAO;AACT;AAgCO,SAAS,wCAAkB,aAAC,UAAS,SAAE,MAAK,YAAE,SAAQ,oBAAE,iBAAgB,mBAAE,gBAAe,UAAE,OAAM,EAAE,GAAG,YAAsC,EAAE;IACnJ,IAAI,OAAO,cAAc,YACvB,YAAY,UAAU;IAGxB,IAAI,OAAO,UAAU,YACnB,QAAQ,MAAM;IAGhB,IAAI,OAAO,aAAa,YACtB,WAAW,SAAS;SACf,IAAI,YAAY,IAAI,EACzB,WAAW;IAGb,OAAO,WAAW,EAAE;IACpB,OAAO;QACL,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,WAAW;QAC7B,WAAW,sBAAA,uBAAA,YAAa,gBAAgB;eACxC;kBACA;IACF;AACF;AAQO,SAAS,0CAAyC,KAAoB,EAAE,GAA0B,EAAE,OAA0C,EAA2B;IAC9K,IAAI,MAAM,CAAA,GAAA,uBAAU,AAAD,EAAE,YAAY,CAAC;IAClC,IAAI,WAAW,OAAO,IAAI,KAAK,EAAE;QAC/B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,0CAAY,EACxC,MAAM,IAAI,MAAM,2BAA2B;QAE7C,IAAI,OAAO,MAAM,IAAI,IAAI;QACzB,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,EAClB,aAAa;QACb,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,EAAE,GAAG,CAAC,CAAA,IAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK;QAEzJ,MAAM,IAAI,KAAK,CAAC,KAAK;IACvB,CAAC;IACD,iGAAiG;IACjG,IAAI,EAAC,KAAK,WAAU,EAAE,CAAC,0CAAmB,EAAE,SAAQ,EAAE,GAAG,cAAa,GAAG;IACzE,IAAI,YAAY,CAAA,GAAA,kCAAY,AAAD,EAAE,CAAA,GAAA,+BAAQ,EAAE,KAAK;IAC5C,IAAI,cAAc,CAAA,GAAA,gCAAS,EAAE,cAAc;IAE3C,yFAAyF;IACzF,CAAA,GAAA,sBAAS,AAAD,EAAE,IAAM;QACd,IAAI,UACF,SAAS;IAEb,GAAG;QAAC;QAAU;KAAM;IAEpB,OAAO;QAAC;QAAa;KAAU;AACjC;AAEO,SAAS,4CAA2C;IACzD,oDAAoD;IACpD,IAAI,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,qBAAO,EAAE,IAAI;IACzC,IAAI,SAAS,CAAA,GAAA,mBAAK,EAAE,KAAK;IAEzB,iEAAiE;IACjE,uDAAuD;IACvD,IAAI,MAAM,CAAA,GAAA,wBAAW,AAAD,EAAE,CAAA,KAAM;QAC1B,OAAO,OAAO,GAAG,IAAI;QACrB,WAAW,CAAC,CAAC;IACf,GAAG,EAAE;IAEL,2DAA2D;IAC3D,CAAA,GAAA,qCAAe,AAAD,EAAE,IAAM;QACpB,IAAI,CAAC,OAAO,OAAO,EACjB,WAAW,KAAK;IAEpB,GAAG,EAAE;IAEL,OAAO;QAAC;QAAK;KAAQ;AACvB;AAEO,SAAS,0CAAkB,GAA2B,EAAE,UAAmB,IAAI,EAAE;IACtF,IAAI,CAAC,YAAY,YAAY,GAAG,CAAA,GAAA,qBAAO,EAAE,IAAI;IAC7C,mCAAa,KAAK,cAAc,SAAS,CAAA,GAAA,wBAAW,AAAD,EAAE,IAAM,YAAY,KAAK,GAAG,EAAE;IACjF,OAAO,cAAc;AACvB;AAEO,SAAS,0CAAiB,GAA2B,EAAE,MAAe,EAAE;IAC7E,iHAAiH;IACjH,wGAAwG;IACxG,IAAI,CAAC,WAAW,WAAW,GAAG,CAAA,GAAA,qBAAO,EAAE,KAAK;IAC5C,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAE;IAEvB,kDAAkD;IAClD,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,UAAU,OAAO,KAAK,QAAQ;QAC1D,YAAY,IAAI;QAChB,WAAW,IAAI;QACf,UAAU,OAAO,GAAG;IACtB,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,IAAI,OAAO,IAAI,UAAU,OAAO,KAAK,UACxC,UAAU,OAAO,GAAG;IAGtB,mCACE,KACA,WACA,CAAA,GAAA,wBAAU,EAAE,IAAM;QAChB,UAAU,OAAO,GAAG;QACpB,WAAW,KAAK;IAClB,GAAG,EAAE;IAGP,OAAO;AACT;AAEA,SAAS,mCAAa,GAA2B,EAAE,QAAiB,EAAE,KAAiB,EAAE;IACvF,IAAI,gBAAgB,CAAA,GAAA,mBAAK,EAAiB,IAAI;IAC9C,IAAI,YAAY,IAAI,OAAO,EACzB,cAAc,OAAO,GAAG,OAAO,gBAAgB,CAAC,IAAI,OAAO,EAAE,SAAS;IAGxE,CAAA,GAAA,qCAAe,AAAD,EAAE,IAAM;QACpB,IAAI,YAAY,IAAI,OAAO,EAAE;YAC3B,+FAA+F;YAC/F,IAAI,gBAAgB,OAAO,gBAAgB,CAAC,IAAI,OAAO;YACvD,IAAI,cAAc,aAAa,KAAK,UAAU,cAAc,SAAS,KAAK,cAAc,OAAO,EAAE;gBAC/F,IAAI,iBAAiB,CAAC,IAAsB;oBAC1C,IAAI,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE;wBAC5B,QAAQ,mBAAmB,CAAC,gBAAgB;wBAC5C;oBACF,CAAC;gBACH;gBAEA,IAAI,UAAU,IAAI,OAAO;gBACzB,QAAQ,gBAAgB,CAAC,gBAAgB;gBACzC,OAAO,IAAM;oBACX,QAAQ,mBAAmB,CAAC,gBAAgB;gBAC9C;YACF,OACE;QAEJ,CAAC;IACH,GAAG;QAAC;QAAK;QAAU;KAAM;AAC3B;AAEO,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAAW,KAAK;;;;AC1OzD;;;;;;;;;;CAUC,GAED;;AAOO,MAAM,0DAAiB,CAAA,GAAA,0BAAY,EAAkD,CAAC;AAE7F,SAAS,8BAAQ,KAAmB,EAAE,GAAqC,EAAE;IAC3E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,YAAC,SAAQ,SAAE,QAAQ,eAAG,UAAS,EAAE,GAAG,UAAS,GAAG;IACpD,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;IAEzB,qBACE,0DAAC;QAAS,GAAG,QAAQ;QAAE,WAAW,sBAAA,uBAAA,YAAa,oBAAoB;OAChE;AAGP;AAEA,MAAM,0DAAW,CAAA,GAAA,uBAAS,EAAE;;;ACjC5B;;;;;;;;;;CAUC,GAED;;;;AAwCO,MAAM,0DAAc,CAAA,GAAA,0BAAY,EAA8C,IAAI;AAEzF,SAAS,2BAAK,KAAgB,EAAE,GAAoC,EAAE;IACpE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAE3C,IAAI,cAAc,OAAO,MAAM,QAAQ,KAAK,WAAW,SAAS,GAAG;IACnE,IAAI,aAAC,UAAS,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,wBAAO,AAAD,EAAE;QAAC,GAAG,KAAK;qBAAE;IAAW,GAAG;IAE9D,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;IACvC,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IAEzD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;YACN,WAAW,CAAC,CAAC,KAAK,CAAC,eAAe;YAClC,YAAY,MAAM,UAAU,IAAI,KAAK;uBACrC;uBACA;uBACA;4BACA;QACF;IACF;IAEA,IAAI,UAAe,OAAO,YAAY,QAAQ,KAAK,yBAC/C,0DAAC,cAAM,YAAY,QAAQ,IAC3B,CAAA,GAAA,sCAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC;IAE7C,qBAAO,CAAA,GAAA,sCAAI,EAAE,YAAY,CAAC,SAAS;QACjC,KAAK,CAAA,GAAA,oBAAM,EAAE,IAAM,QAAQ,GAAG,GAAG,CAAA,GAAA,+BAAQ,EAAE,QAAQ,GAAG,EAAE,OAAO,GAAG,EAAE;YAAC,QAAQ,GAAG;YAAE;SAAI;QACtF,MAAM,MAAM,IAAI;QAChB,GAAG,CAAA,GAAA,2BAAS,EAAE,aAAa,WAAW,YAAY,YAAY;YAC5D,UAAU,QAAQ,KAAK,CAAC,QAAQ;YAChC,gBAAgB,aAAa;YAC7B,gBAAgB,aAAa;YAC7B,sBAAsB,kBAAkB;QAC1C,GAAG,QAAQ,KAAK,CAAC;IACnB;AACF;AAEA;;;CAGC,GACD,MAAM,0DAAQ,CAAA,GAAA,uBAAS,EAAE;;;;AJvElB,MAAM,0DAAqB,CAAA,GAAA,0BAAY,EAAoD,IAAI;AAEtG,SAAS,kCAA8B,KAA0B,EAAE,GAA8B,EAAE;IACjG,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,YAAC,SAAQ,EAAC,GAAG,CAAA,GAAA,+BAAc,AAAD,EAAE;IAChC,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;QAS1B;IAPf,qBACE,0DAAC;QACC,KAAK;QACJ,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACxB,GAAG,QAAQ;QACZ,MAAM,MAAM,IAAI;QAChB,OAAO,MAAM,KAAK;QAClB,WAAW,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,mBAAmB,wBAAwB;qBAEtD,0DAAC,YACE;WAAI;KAAW,CAAC,GAAG,CAAC,CAAC,MAAM,kBAC1B,0DAAC;YACC,KAAK,KAAK,GAAG;YACb,MAAM;YACN,WAAW,MAAM,WAAW,IAAI,GAAG;YACnC,YAAY,MAAM,UAAU;cAGjC;AAGP;AAEA;;CAEC,GACD,MAAM,2CAAe,AAAC,CAAA,GAAA,uBAAS,EAAqB;AASpD,SAAS,qCAAe,QAAC,KAAI,aAAE,UAAS,cAAE,WAAU,EAAsB,EAAE;IAC1E,sGAAsG;IACtG,IAAI,eAA0D,YAAY;QAAC,gBAAgB;IAAM,IAAI,IAAI;IACzG,IAAI,YAAY;QACd,gBAAgB,YAAY,SAAS,IAAI;QACzC,YAAY,cAAc;IAC5B;QAMe;IAJf,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAa,EAAE,KAAK,KAAK,CAAC;QAC9B,OAAO,KAAK,KAAK,CAAC,KAAK;QACvB,WAAW,CAAA,wBAAA,KAAK,KAAK,CAAC,SAAS,cAApB,mCAAA,wBAAwB,iBAAiB;qBACpD,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAU;gBAAG;aAAU;YACxB;gBAAC,CAAA,GAAA,yCAAa;gBAAG;aAAa;SAC/B;OACA,KAAK,QAAQ;AAItB;;CD/EC,GAED;AMZA;;;;;;;;;;CAUC,GACD;;;AAqCO,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAAuD,CAAC;AAEjG,SAAS,6BAAO,KAAkB,EAAE,GAAoC,EAAE;IACxE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,MAAM;IACV,IAAI,eAAC,YAAW,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,0BAAQ,EAAE,OAAO;IAChD,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;IAC3D,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;IACvC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;uBAAC;uBAAW;uBAAW;4BAAW;YAAgB,YAAY,MAAM,UAAU,IAAI,KAAK;QAAA;QAC/F,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,aAAa,YAAY,WAAW;QAClD,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,gBAAc,IAAI,SAAS,IAAI,aAAa;QAC5C,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;;AAE5C;AAEA;;CAEC,GACD,MAAM,0DAAU,CAAA,GAAA,uBAAS,EAAE;;;AC7E3B;;;;;;;;;;CAUC,GACD;;;;;;;;;ACXA;;;;;;;;;;CAUC,GAED;;AAOO,MAAM,0DAAc,CAAA,GAAA,0BAAY,EAAwC,CAAC;AAEhF,SAAS,2BAAK,KAAgB,EAAE,GAA8B,EAAE;IAC9D,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,EAAC,aAAa,cAAc,MAAM,CAAA,EAAE,GAAG,UAAS,GAAG;IACvD,aAAa;IACb,qBAAO,0DAAC;QAAa,GAAG,QAAQ;QAAE,KAAK;;AACzC;AAEA,MAAM,0DAAQ,CAAA,GAAA,uBAAS,EAAE;;;ADWlB,MAAM,0DAAkB,CAAA,GAAA,0BAAY,EAAoD,CAAC;AACzF,MAAM,0DAAuB,CAAA,GAAA,0BAAY,EAAyD,CAAC;AAC1G,MAAM,8DAA0B,CAAA,GAAA,0BAAY,EAA6C,IAAI;AAE7F,SAAS,+BAA8B,KAAuB,EAAE,GAAiC,EAAE;IACjG,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,QAAQ,CAAA,GAAA,oCAAe,EAAE;QAC3B,GAAG,KAAK;gBACR;wBACA;IACF;IAEA,IAAI,iBAAC,cAAa,mBAAE,gBAAe,mBAAE,gBAAe,qBAAE,kBAAiB,SAAE,MAAK,EAAC,GAAG,CAAA,GAAA,4BAAU,EAAE,OAAO;IAErG,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QAAK,GAAG,WAAW;QAAG,GAAG,aAAa;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;qBACjE,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBACd,OAAO;wBACL,UAAU;wBACV,MAAM;oBACR;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAa;gBAAG;oBAAC,eAAe,IAAI;oBAAE,OAAO;oBAAG,UAAU;gBAAK;aAAE;YAClE;gBAAC;gBAAyB;aAAM;YAChC;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,cAAc;oBAChB;gBACF;aAAE;SACH;qBAMD,0DAAC,CAAA,GAAA,+BAAa,uBACZ,0DAAC,YAAI,aAAa,CAAC,aAAa,IAEjC,YAAY,QAAQ,gBAIrB,0DAAC,CAAA,GAAA,+BAAa,uBACZ,0DAAC;QACC,cAAY,eAAe,CAAC,aAAa;QACzC,UAAU,gBAAgB,UAAU;QACpC,SAAS,IAAM,MAAM,aAAa;QAClC,UAAU;;AAKtB;AAEA;;CAEC,GACD,MAAM,4CAAY,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAGjD,SAAS,oCAAmC,KAA4B,EAAE,GAAiC,EAAE;IAC3G,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,QAAQ,CAAA,GAAA,yCAAoB,EAAE;QAChC,GAAG,KAAK;gBACR;wBACA;IACF;IAEA,IAAI,iBAAC,cAAa,mBAAE,gBAAe,mBAAE,gBAAe,qBAAE,kBAAiB,SAAE,MAAK,EAAC,GAAG,CAAA,GAAA,iCAAgB,AAAD,EAC/F,OACA,OACA;IAGF,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QAAK,GAAG,WAAW;QAAG,GAAG,aAAa;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;qBACjE,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBACd,OAAO;wBACL,UAAU;wBACV,MAAM;oBACR;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAa;gBAAG;oBAAC,eAAe,IAAI;oBAAE,OAAO;oBAAG,UAAU;gBAAK;aAAE;YAClE;gBAAC;gBAAyB;aAAM;YAChC;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,cAAc;oBAChB;gBACF;aAAE;SACH;qBAMD,0DAAC,CAAA,GAAA,+BAAa,uBACZ,0DAAC,YAAI,aAAa,CAAC,aAAa,IAEjC,YAAY,QAAQ,gBAIrB,0DAAC,CAAA,GAAA,+BAAa,uBACZ,0DAAC;QACC,cAAY,eAAe,CAAC,aAAa;QACzC,UAAU,gBAAgB,UAAU;QACpC,SAAS,IAAM,MAAM,aAAa;QAClC,UAAU;;AAKtB;AAEA;;CAEC,GACD,MAAM,4CAAiB,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAoGtD,MAAM,kEAA8B,CAAA,GAAA,0BAAY,EAA2C,IAAI;AAE/F,SAAS,mCAAa,KAAwB,EAAE,GAAmC,EAAE;IACnF,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,YAAY,MAAM,YAAY,CAAC,KAAK;IACxC,IAAI,MAAM,MAAM,EACd,YAAY,UAAU,GAAG,CAAC,MAAM,MAAM;IAGxC,IAAI,aAAC,UAAS,eAAE,YAAW,YAAE,SAAQ,EAAC,GAAG,CAAA,GAAA,gCAAc,EAAE;mBACvD;QACA,SAAS,CAAA,GAAA,uCAAS,EAAE;IACtB,GAAG;QASc;IAPjB,qBACE,0DAAC,kDAA4B,QAAQ;QAAC,OAAO;yBAAC;sBAAa;uBAAU;QAAS;qBAC5E,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAa;QAC/B,GAAG,SAAS;QACb,KAAK;QACL,OAAO,MAAM,KAAK;QAClB,WAAW,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,mBAAmB,yBAAyB;OACtD,OAAO,MAAM,QAAQ,KAAK,aACvB,MAAM,QAAQ,iBACb,oIACD,0DAAC,iDACE,CAAA,oBAAO,0DAAC,iDAA8B,qBAEzC,0DAAC,iDACE,MAAM,QAAQ,EAEf;AAKd;AAEA;;;CAGC,GACD,MAAM,0DAAgB,CAAA,GAAA,uBAAS,EAAE;AAQjC,SAAS,yCAAmB,KAA8B,EAAE,GAA0C,EAAE;IACtG,IAAI,YAAC,SAAQ,SAAE,MAAK,aAAE,UAAS,EAAC,GAAG;IACnC,IAAI,eAAC,YAAW,YAAE,SAAQ,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAEzC,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAa;QAC/B,GAAG,WAAW;QACf,KAAK;QACL,OAAO;QACP,WAAW,aAAa;qBACxB,0DAAC,YACE,SAAS,GAAG,CAAC,CAAC,KAAK,oBAAQ,CAAA,GAAA,sCAAI,EAAE,YAAY,CAAC,SAAS,MAAM;iBAAC;QAAG;AAI1E;AAEA;;CAEC,GACD,MAAM,0DAA+B,CAAA,GAAA,uBAAS,EAAE;AAKhD,SAAS,yCAAmB,KAA8B,EAAE,GAAuC,EAAE;IACnG,IAAI,YAAC,SAAQ,SAAE,MAAK,aAAE,UAAS,EAAC,GAAG;IACnC,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAa;QAChC,KAAK;QACL,OAAO;QACP,WAAW,aAAa;OACvB;AAGP;AAEA;;CAEC,GACD,MAAM,0DAA+B,CAAA,GAAA,uBAAS,EAAE;AAQhD,SAAS,uCAAiB,KAA4B,EAAE,GAA0C,EAAE;IAClG,IAAI,YAAC,SAAQ,SAAE,MAAK,aAAE,UAAS,EAAC,GAAG;IACnC,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,aAAC,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC7B,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,eAAe,CAAA,GAAA,4CAAc,EAAE,WAAW;IAE9C,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAa;QAChC,KAAK;QACL,OAAO;QACP,WAAW,aAAa;OACvB;WAAI,IAAI,MAAM,cAAc,IAAI;KAAG,CAAC,GAAG,CAAC,CAAC,0BACxC,0DAAC;YAAG,KAAK;WACN,MAAM,cAAc,CAAC,WAAW,WAAW,GAAG,CAAC,CAAC,MAAM,IACrD,qBACI,CAAA,GAAA,sCAAI,EAAE,YAAY,CAAC,SAAS,OAAO;gBAAC,KAAK;YAAC,mBAC1C,0DAAC;gBAAG,KAAK;cAAK;AAM9B;AAEA;;CAEC,GACD,MAAM,0DAA6B,CAAA,GAAA,uBAAS,EAAE;AAQ9C,SAAS,mCAAa,QAAC,KAAI,EAAE,GAAG,YAA8B,EAAE,GAAiC,EAAE;IACjG,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,EAAC,WAAW,aAAY,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC3C,IAAI,YAAY,CAAA,GAAA,kCAAW,EAAE;IAC7B,IAAI,aAAC,UAAS,eAAE,YAAW,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,gCAAc,EACtD;cAAC;IAAI,GACL,OACA;IAGF,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QAAC,YAAY,OAAO,UAAU;IAAA;IACrE,IAAI,cAAC,WAAU,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IAC9C,IAAI,iBAAiB,CAAC,CAAA,GAAA,wCAAU,EAAE,cAAc;IAChD,IAAI,mBAAmB,KAAK;IAC5B,IAAI,iBAAiB,KAAK;IAC1B,IAAI,sBAAsB,SAAS,MAAM,gBAAgB,EAAE;QACzD,mBAAmB,CAAA,GAAA,sCAAQ,EAAE,MAAM,MAAM,gBAAgB,CAAC,KAAK;QAC/D,iBAAiB,CAAA,GAAA,sCAAQ,EAAE,MAAM,MAAM,gBAAgB,CAAC,GAAG;IAC7D,CAAC;IAED,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,UAAU;QACb,iBAAiB,OAAO,aAAa;QACrC,kBAAkB;QAClB,QAAQ;kBACN;uBACA;4BACA;4BACA;8BACA;4BACA;YACA,GAAG,MAAM;QACX;IACF;IAEA,IAAI,YAAY;QACd,gBAAgB,aAAa;QAC7B,gBAAgB,OAAO,SAAS,IAAI;QACpC,oBAAoB,OAAO,aAAa,IAAI;QAC5C,iBAAiB,OAAO,UAAU,IAAI;QACtC,sBAAsB,kBAAkB;QACxC,8BAA8B,OAAO,qBAAqB,IAAI;QAC9D,sBAAsB,kBAAkB;QACxC,iBAAiB,OAAO,UAAU,IAAI;QACtC,wBAAwB,oBAAoB;QAC5C,sBAAsB,kBAAkB;IAC1C;IAEA,qBACE,0DAAC,MAAO,yBACN,0DAAC;QAAK,GAAG,CAAA,GAAA,2BAAS,EAAE,aAAa,YAAY,YAAY,WAAW,YAAY;QAAE,KAAK;;AAG7F;AAEA;;CAEC,GACD,MAAM,0DAAgB,CAAA,GAAA,uBAAS,EAAE;;;AErdjC;;;;;;;;;;CAUC,GACD;;;ACXA;;;;;;;;;;CAUC,GAED;;AAOO,MAAM,0DAAe,CAAA,GAAA,0BAAY,EAA8C,CAAC;AAEvF,SAAS,4BAAM,KAAiB,EAAE,GAAmC,EAAE;IACrE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,EAAC,aAAa,cAAc,OAAO,CAAA,EAAE,GAAG,YAAW,GAAG;IAC1D,aAAa;IACb,qBAAO,0DAAC;QAAY,WAAU;QAAoB,GAAG,UAAU;QAAE,KAAK;;AACxE;AAEA,MAAM,0DAAS,CAAA,GAAA,uBAAS,EAAE;;;;;ADqEnB,MAAM,0DAAuB,CAAA,GAAA,0BAAY,EAAoD,IAAI;AACxG,MAAM,mEAA+B,CAAA,GAAA,0BAAY,EAA6B,IAAI;AAElF,SAAS,oCAAc,KAAyB,EAAE,GAAiC,EAAE;IACnF,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,QAAQ,CAAA,GAAA,yCAAoB,EAAE;IAClC,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cAAC,WAAU,cAAE,WAAU,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAC,GAAG,CAAA,GAAA,iCAAe,EAAE;QACnF,GAAG,KAAK;eACR;IACF,GAAG;IAEH,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;YACN,YAAY,MAAM,UAAU;YAC5B,YAAY,MAAM,UAAU;YAC5B,YAAY,MAAM,UAAU,IAAI,KAAK;YACrC,iBAAiB,MAAM,eAAe;QACxC;QACA,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QACE,GAAG,UAAU;QACb,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,iBAAe,MAAM,UAAU,IAAI;QACnC,iBAAe,MAAM,UAAU,IAAI;QACnC,yBAAuB,MAAM,eAAe,IAAI;qBAChD,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC;gBAA8B;aAAM;YACrC;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;OACA,YAAY,QAAQ;AAI7B;AAEO,MAAM,0DAAkB,CAAA,GAAA,0BAAY,EAAiD,IAAI;AAEhG,SAAS,+BAAS,KAAoB,EAAE,GAAmC,EAAE;IAC3E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,aAAa,CAAA,GAAA,uBAAS,EAAE;IAC5B,IAAI,cAAC,WAAU,cAAE,WAAU,cAAE,WAAU,cAAE,WAAU,EAAE,WAAW,kBAAiB,EAAC,GAAG,aAEjF,CAAA,GAAA,qCAAmB,EAAE;QACrB,GAAG,KAAK;QACR,qFAAqF;QACrF,2EAA2E;QAC3E,aAAa;QACb,OAAO,MAAM,KAAK;IACpB,GAAG,YAAY,OAEb,CAAA,GAAA,4BAAW,AAAD,EAAE,OAAO,CAAA,GAAA,kCAAa,EAAE,QAAQ,IAAI;IAClD,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,wBAAwB,cAAc;IAE1C,qFAAqF;IACrF,qDAAqD;IACrD,IAAI,CAAC,WAAW,WAAW,GAAG,CAAA,GAAA,qBAAO,EAAE,KAAK;IAC5C,IAAI,cAAC,WAAU,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QAC1B,YAAY;QACZ,cAAa,CAAC,EAAE;YACd,IAAI,EAAE,WAAW,KAAK,YACpB,WAAW,IAAI;QAEnB;QACA,YAAW,CAAC,EAAE;YACZ,IAAI,EAAE,WAAW,KAAK,YACpB,WAAW,KAAK;QAEpB;IACF;IAEA,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QACrC,YAAY;IACd;IAEA,IAAI,UAAU,wBAAwB,KAAK,GAAI,aAAa,iBAAkB;IAE9E,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,qGAAqG;QACrG,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;wBACN;YACA,iBAAiB,MAAM,eAAe,IAAI,KAAK;YAC/C,WAAW;uBACX;uBACA;4BACA;wBACA;wBACA;YACA,iBAAiB,MAAM,eAAe,IAAI,CAAA,uBAAA,wBAAA,KAAA,IAAA,WAAY,eAAe,AAAD;YACpE,YAAY,MAAM,UAAU,IAAI,KAAK;QACvC;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,YAAY,YAAY,YAAY;QACnD,MAAM,MAAM,IAAI;QAChB,iBAAe,cAAc;QAC7B,sBAAoB,MAAM,eAAe,IAAI;QAC7C,gBAAc,WAAW;QACzB,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;QAC7B,iBAAe,cAAc;QAC7B,yBAAuB,MAAM,eAAe,IAAI,CAAA,uBAAA,wBAAA,KAAA,IAAA,WAAY,eAAe,AAAD,KAAK;QAC/E,iBAAe,MAAM,UAAU,IAAI;qBACnC,0DAAC,CAAA,GAAA,+BAAc,AAAD,uBACZ,0DAAC;QAAO,GAAG,UAAU;QAAG,GAAG,UAAU;QAAE,KAAK;SAE7C,YAAY,QAAQ;AAG3B;AAEA;;;CAGC,GACD,MAAM,0DAAY,CAAA,GAAA,uBAAS,EAAE;AAE7B;;CAEC,GACD,MAAM,0DAAiB,CAAA,GAAA,uBAAS,EAAE;;;AE7OlC;;;;;;;;;;CAUC,GACD;;;;ACXA;;;;;;;;;;CAUC,GAED;;;AA6BO,MAAM,0DAAe,CAAA,GAAA,0BAAY,EAA8C,CAAC;AAEvF,SAAS,4BAAM,KAAiB,EAAE,GAAmC,EAAE;IACrE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAE3C,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE,CAAC;IACxC,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;QACzD,aAAa,IAAI;QACjB,WAAW,MAAM,SAAS;IAC5B;IAEA,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;uBAAC;uBAAW;4BAAW;YAAgB,YAAY,MAAM,QAAQ,IAAI,KAAK;QAAA;QAClF,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,OAAO,YAAY,WAAW;QAC5C,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;;AAE5C;AAEA;;CAEC,GACD,MAAM,0DAAS,CAAA,GAAA,uBAAS,EAAE;;;;ACvE1B;;;;;;;;;;CAUC,GAED;;;ACZA;;;;;;;;;;CAUC,GAED;;;AAoFO,SAAS,0CAAe,OAA2B,EAAe;IACvE,IAAI,mBAAmB,CAAA,GAAA,oBAAM,EAAE,IAAM;QACnC,IAAI,UACF,OAAM,YACN,SAAQ,cACR,WAAU,aACV,UAAS,cACT,WAAU,YACV,SAAQ,qBACR,kBAAiB,uBACjB,oBAAmB,sBACnB,mBAAkB,EAClB,GAAG;QAEL,IAAI,cAAc,CAAC,CAAC;QACpB,IAAI,cAAc,CAAC,CAAE,CAAA,UAAU,YAAY,cAAc,aAAa,UAAS;QAE/E,IAAI,QAAQ,CAAC;QACb,IAAI,aAAa;YACf,MAAM,2BAA2B,GAAG,SAAS,oCAAoC,KAAmC,EAAE;gBACpH,OAAO,CAAA,GAAA,+CAA0B,EAAE;oBAAC,GAAG,KAAK;oBAAE,GAAG,OAAO;gBAAA;YAC1D;YACA,MAAM,sBAAsB,GAAG,CAAA,GAAA,uCAAsB,AAAD;YACpD,MAAM,gBAAgB,GAAG,CAAA,GAAA,iCAAgB,AAAD;YACxC,MAAM,WAAW,GAAG,CAAA,GAAA,4BAAW,AAAD;YAC9B,MAAM,iBAAiB,GAAG;QAC5B,CAAC;QAED,IAAI,aAAa;YACf,MAAM,2BAA2B,GAAG,SAAS,oCAAoC,KAAsC,EAAE;gBACvH,OAAO,CAAA,GAAA,+CAA0B,EAAE;oBAAC,GAAG,KAAK;oBAAE,GAAG,OAAO;gBAAA;YAC1D,GACA,MAAM,gBAAgB,GAAG,CAAA,GAAA,iCAAe,CAAC;YACzC,MAAM,sBAAsB,GAAG,SAAS,+BAA+B,KAAiC,EAAE,KAA+B,EAAE,GAA2B,EAAE;gBACtK,OAAO,CAAA,GAAA,uCAAqB,EAAE;oBAAC,GAAG,KAAK;oBAAE,GAAG,OAAO;gBAAA,GAAG,OAAO;YAC/D;YACA,MAAM,gBAAgB,GAAG,CAAA,GAAA,iCAAgB,AAAD;YACxC,MAAM,mBAAmB,GAAG;YAC5B,MAAM,kBAAkB,GAAG;YAC3B,MAAM,sBAAsB,GAAG,CAAA,GAAA,uCAAsB,AAAD;QACtD,CAAC;QAED,OAAO;IACT,GAAG;QAAC;KAAQ;IAEZ,OAAO;0BACL;IACF;AACF;AAEO,MAAM,0DAAuB,CAAA,GAAA,0BAAY,EAAoC,IAAI;AAgBxF,SAAS,oCAAc,KAAyB,EAAE,GAA8B,EAAe;IAC7F,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC1B,qBAAO,sHAAG,OAAO,OAAO;AAC1B;AAEA;;CAEC,GACD,MAAM,0DAAiB,CAAA,GAAA,uBAAS,EAAE;;;;;AC1KlC;;;;;;;;;;CAUC,GAED;;;AAIO,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAA0D,CAAC;AAEpG,SAAS,6BAAO,KAAkC,EAAE,GAA8B,EAAE;IAClF,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,UAAU,CAAA,GAAA,yCAAgB,AAAD,EAAE,UAAU,OAAO;IAChD,IAAI,SACF,OAAO;IAGT,qBACE,0DAAC;QAAO,WAAU;QAAqB,GAAG,KAAK;QAAE,KAAK;OACnD,MAAM,QAAQ;AAGrB;AAEA,MAAM,0DAAU,CAAA,GAAA,uBAAS,EAAE;;;;AChC3B;;;;;;;;;;CAUC,GAED;;;;;AAQO,MAAM,0DAAmB,CAAA,GAAA,0BAAY,EAAyC,CAAC;AAEtF,SAAS,gCAAU,KAAqB,EAAE,GAA0B,EAAE;IACpE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,eAAC,YAAW,eAAE,YAAW,SAAE,MAAK,aAAE,UAAS,EAAC,GAAG;IACnD,IAAI,UAAU,AAAC,eAA+B;IAC9C,IAAI,YAAY,QAAQ,gBAAgB,YACtC,UAAU;IAGZ,IAAI,kBAAC,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAY,AAAD,EAAE;qBAClC;qBACA;IACF;IAEA,IAAI,UAAU,CAAA,GAAA,yCAAgB,AAAD,EAAE,aAAa,OAAO;IACnD,IAAI,SACF,OAAO;IAGT,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACxB,GAAG,cAAc;QAClB,OAAO;QACP,WAAW,sBAAA,uBAAA,YAAa,sBAAsB;QAC9C,KAAK;QACL,MAAM,MAAM,IAAI;;AAEtB;AAEA,MAAM,0DAAa,CAAA,GAAA,uBAAS,EAAE;;;;AHgBvB,MAAM,0DAAiB,CAAA,GAAA,0BAAY,EAA0D,IAAI;AACxG,MAAM,6DAAyB,CAAA,GAAA,0BAAY,EAAsC,IAAI;AAErF,SAAS,8BAAW,KAAsB,EAAE,GAAiC,EAAE;IAC7E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,QAAQ,AAAC,MAAiC,KAAK;IACnD,IAAI,WAAW,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,yCAAY;IAEtC,IAAI,OACF,OAAO,WAAW,IAAI,iBAAG,0DAAC;QAAa,OAAO;QAAO,OAAO;QAAO,YAAY;MAAO;IAGxF,qBAAO,0DAAC;QAAc,OAAO;QAAO,YAAY;;AAClD;AAEA,SAAS,oCAAc,SAAC,MAAK,cAAE,WAAU,EAAC,EAAE;IAC1C,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;IACzC,QAAQ;QAAC,GAAG,KAAK;oBAAE;QAAY,UAAU,IAAI;QAAE,OAAO,IAAI;IAAA;IAC1D,IAAI,QAAQ,CAAA,GAAA,gCAAW,EAAE;IACzB,qBACE,sHACG,sBACD,0DAAC;QAAa,OAAO;QAAO,OAAO;QAAO,YAAY;;AAG5D;AAEA;;CAEC,GACD,MAAM,4CAAW,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAShD,SAAS,mCAAgB,SAAC,MAAK,SAAE,MAAK,cAAE,WAAU,EAAuB,EAAE;IACzE,IAAI,oBAAC,iBAAgB,EAAC,GAAG;IACzB,IAAI,cAAC,WAAU,oBAAE,iBAAgB,EAAC,GAAG;IACrC,IAAI,kBAAkB,CAAC,CAAC,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,2BAA2B,AAAD;IACpE,IAAI,kBAAkB,CAAC,CAAC,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,2BAA2B,AAAD;IACpE,IAAI,gBAAC,aAAY,EAAC,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE;QAC9B,GAAG,KAAK;QACR,uBAAuB,mBAAmB,MAAM,qBAAqB;IACvE,GAAG,OAAO;IAEV,IAAI,WAAW,CAAA,GAAA,yCAAgB,EAAE;QAC/B,OAAO;QACP,UAAU,CAAC,OAAkB;YAC3B,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAe,SAAS;;gBAClC,KAAK;oBACH,qBAAO,0DAAC,CAAA,GAAA,yCAAS,AAAD,GAAM,KAAK,KAAK;gBAClC,KAAK;oBACH,qBAAO,0DAAC;wBAAO,MAAM;;gBACvB;oBACE,MAAM,IAAI,MAAM,oCAAoC,KAAK,IAAI,EAAE;YACnE;QACF;IACF;IAEA,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CAAC;IAEf,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CAAC;IAGf,IAAI,YAAkD;IACtD,IAAI,YAAkD;IACtD,IAAI,sBAA6D;IACjE,IAAI,mBAAmB,KAAK;IAC5B,IAAI,cAAkC,IAAI;IAC1C,IAAI,UAAU,CAAA,GAAA,mBAAK,EAAuB,IAAI;IAE9C,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;wBACxD;8BACA;YACA,SAAS,iBAAiB,iBAAiB,GAAG,UAAU,SAAS;QACnE;QACA,iBAAiB,sBAAsB,CAAE,CAAC,GAAG,WAAW;QAExD,IAAI,cAAc,iBAAiB,WAAW;QAC9C,cAAc,iBAAiB,iBAAiB,iBAC5C,0DAAC;YAAY,KAAK;WAAU,iBAAiB,iBAAiB,IAC9D,IAAI;IACV,CAAC;IAED,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;wBACxD;8BACA;QACF;QAEA,IAAI,mBAAmB,MAAM,gBAAgB,IAAI,IAAI,CAAA,GAAA,qCAAmB,EACtE,YACA,iBAAiB,gBAAgB,KAAK,cAAc,IAAI,QAAQ,iBAAiB,YAAY,EAC7F;QAEF,IAAI,qBAAqB,iBAAiB,kBAAkB,IAAI,IAAI,iBAAiB,sBAAsB,CAAC,YAAY;QACxH,sBAAsB,iBAAiB,sBAAsB,CAAE;8BAC7D;gCACA;QACF,GAAG,WAAW;QAEd,mBAAmB,UAAU,YAAY,CAAC;YAAC,MAAM;QAAM;IACzD,CAAC;IAED,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,WAAW,MAAM,SAAS;QAC1B,OAAO,MAAM,KAAK;QAClB,kBAAkB;QAClB,QAAQ;YACN,cAAc;YACd,SAAS,MAAM,UAAU,CAAC,IAAI,KAAK;uBACnC;4BACA;QACF;IACF;IAEA,IAAI,aAAiC,IAAI;IACzC,IAAI,MAAM,UAAU,CAAC,IAAI,KAAK,KAAK,MAAM,gBAAgB,EACvD,2BACE,0DAAC;QACC,2BAA2B;QAC3B,MAAK;QACL,OAAO;YAAC,SAAS;QAAU;OAC1B,MAAM,gBAAgB;IAK7B,qBACE,0DAAC,CAAA,GAAA,2BAAS,uBACR,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACxB,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,cAAc,YAAY,gCAAA,iCAAA,KAAA,IAAA,oBAAqB,eAAe,CAAC;QAC7E,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,oBAAkB,oBAAoB;QACtC,cAAY,MAAM,UAAU,CAAC,IAAI,KAAK,KAAK;QAC3C,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;qBACtC,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC;gBAAwB;2BAAC;oBAAO,oBAAoB,MAAM,kBAAkB;sCAAE;+BAAkB;+BAAW;gBAAS;aAAE;YACvH;gBAAC,CAAA,GAAA,yCAAe;gBAAG;oBAAC,aAAa;gBAAI;aAAE;YACvC;gBAAC,CAAA,GAAA,yCAAmB;gBAAG;oBAAC,QAAQ;gBAAoB;aAAE;SACvD;OACA,WAEF,YACA;AAIT;AAMA,SAAS,qCAAkB,WAAC,QAAO,aAAE,UAAS,SAAE,MAAK,EAAE,GAAG,YAAmC,EAAE;QAmCjE,gBACR;IAnCpB,IAAI,SAAC,MAAK,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACzB,IAAI,CAAC,YAAY,QAAQ,GAAG,CAAA,GAAA,yCAAO,AAAD;QAGlB;IAFhB,IAAI,gBAAC,aAAY,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD,EAAE;iBACjD;QACA,cAAc,CAAA,qBAAA,OAAO,CAAC,aAAa,cAArB,gCAAA,qBAAyB,SAAS;IAClD;IAEA,IAAI,WAAW,CAAA,GAAA,yCAAgB,EAAE;QAC/B,OAAO,MAAM,UAAU,CAAC,WAAW,CAAE,QAAQ,GAAG;QAChD,UAAU,CAAA,OAAQ;YAChB,OAAQ,KAAK,IAAI;gBACf,KAAK;oBAAU;wBACb,IAAI,OAAC,IAAG,EAAE,GAAG,YAAW,GAAG,KAAK,KAAK;wBACrC,qBACE,0DAAC,CAAA,GAAA,yCAAM,AAAD;4BACH,GAAG,YAAY;4BACf,GAAG,UAAU;4BACd,KAAK,CAAA,GAAA,+BAAS,AAAD,EAAE,YAAY;2BAC1B,KAAK,QAAQ;oBAGpB;gBACA,KAAK;oBACH,qBAAO,0DAAC;wBAAO,MAAM;;gBACvB;oBACE,MAAM,IAAI,MAAM,0CAA0C,KAAK,IAAI,EAAE;YACzE;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,WAAW;QAC7B,GAAG,UAAU;QACd,WAAW,aAAa,CAAA,CAAA,iBAAA,QAAQ,KAAK,cAAb,4BAAA,KAAA,IAAA,eAAe,SAAS,AAAD,KAAK;QACpD,OAAO,SAAS,CAAA,CAAA,kBAAA,QAAQ,KAAK,cAAb,6BAAA,KAAA,IAAA,gBAAe,KAAK,AAAD;OAClC;AAGP;AAMA,SAAS,6BAAU,QAAC,KAAI,EAAiB,EAAE;IACzC,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAkB,IAAI;IACrC,IAAI,SAAC,MAAK,sBAAE,mBAAkB,oBAAE,iBAAgB,aAAE,UAAS,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACrF,IAAI,eAAC,YAAW,cAAE,WAAU,oBAAE,iBAAgB,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,0BAAQ,EACnE;QAAC,KAAK,KAAK,GAAG;IAAA,GACd,OACA;IAGF,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QACrC,YAAY,sBAAuB,CAAC,OAAO,eAAe,IAAI,CAAC,OAAO,SAAS;IACjF;IAEA,IAAI,oBAAoB;QACtB,aAAa,CAAC;QACd,YAAY,OAAO,SAAS;IAC9B,CAAC;IAED,IAAI,gBAA4C,IAAI;IACpD,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QAAC,KAAK,KAAK,GAAG;IAAA,GAAG;IAGtE,IAAI,gBAA4C,IAAI;IACpD,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QACjD,QAAQ;YAAC,MAAM;YAAQ,KAAK,KAAK,GAAG;YAAE,cAAc;QAAI;IAC1D,GAAG,WAAW;IAGhB,IAAI,QAAsB,KAAK,KAAK;IACpC,IAAI,aAAa,aAAa,UAAU,UAAU,CAAC,KAAK,GAAG;IAC3D,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;YACN,GAAG,MAAM;uBACT;YACA,eAAe,MAAM,gBAAgB,CAAC,aAAa;YACnD,mBAAmB,MAAM,gBAAgB,CAAC,iBAAiB;YAC3D,gBAAgB,CAAC,CAAC;wBAClB;YACA,cAAc,0BAAA,2BAAA,KAAA,IAAA,cAAe,YAAY;QAC3C;IACF;IAEA,IAAI,sBAAsB,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,mBAAmB,AAAD,KAAM,CAAA,CAAA,uBAAU,0DAAC,CAAA,GAAA,yCAAa,AAAD;YAAE,QAAQ;UAAS;IAE9G,CAAA,GAAA,sBAAS,AAAD,EAAE,IAAM;QACd,IAAI,CAAC,KAAK,SAAS,EACjB,QAAQ,IAAI,CAAC;IAEjB,GAAG;QAAC,KAAK,SAAS;KAAC;IAEnB,qBACE,sHACG,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,gBAAgB,AAAD,KAChC,oBAAoB;QAAC,MAAM;QAAQ,KAAK,KAAK,GAAG;QAAE,cAAc;IAAQ,kBAE1E,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,aAAa,YAAY,0BAAA,2BAAA,KAAA,IAAA,cAAe,SAAS,EAAE,0BAAA,2BAAA,KAAA,IAAA,cAAe,SAAS,CAAC;QAC1F,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,aAAa;QAC3B,gBAAc,OAAO,SAAS,IAAI;QAClC,sBAAoB,OAAO,cAAc,IAAI;QAC7C,gBAAc,OAAO,SAAS,IAAI;QAClC,iBAAe,cAAc;QAC7B,oBAAkB,CAAA,0BAAA,2BAAA,KAAA,IAAA,cAAe,YAAY,AAAD,KAAK;qBACjD,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,OAAO;wBACP,aAAa;oBACf;gBACF;aAAE;SACH;OACA,YAAY,QAAQ,IAGxB,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,gBAAgB,AAAD,KAAK,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,IAAI,IACnF,oBAAoB;QAAC,MAAM;QAAQ,KAAK,KAAK,GAAG;QAAE,cAAc;IAAO;AAI/E;AAEA,SAAS,2CAAqB,KAAyB,EAAE,GAA8B,EAAE;IACvF,MAAM,CAAA,GAAA,kCAAW,EAAE;IACnB,IAAI,oBAAC,iBAAgB,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC/C,IAAI,sBAAC,mBAAkB,YAAE,SAAQ,gBAAE,aAAY,EAAC,GAAG,iBAAkB,gBAAgB,CACnF,OACA,WACA;IAGF,IAAI,UACF,OAAO,IAAI;IAGb,sDAAsD;IACtD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;0BACN;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,kBAAkB;QACrB,GAAG,WAAW;QACf,2BAA2B;QAC3B,MAAK;QACL,KAAK;QACL,oBAAkB,gBAAgB;;AAExC;;;AIrZA;;;;;;;;;;CAUC,GAED;;ACZA;;;;;;;;;;CAUC,GAED;;;AAUO,MAAM,0DAAsB,CAAA,GAAA,0BAAY,EAAmC,IAAI;AAYtF,SAAS,mCAAa,KAAwB,EAAE,GAAiC,EAAE;IACjF,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACzC,IAAI,QAAuB;QACzB,GAAG,WAAW,KAAK;QACnB,UAAU;QACV,CAAC,UAAU,EAAE;QACb,WAAW,cAAc,SAAS,cAAc,WAAW,qBAAqB,kBAAkB;IACpG;IAEA,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;uBACN;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,gCAAU,AAAD,EAAE,YAAY,MAAM;QAChC,GAAG,WAAW;QACf,OAAO;YACL,GAAG,YAAY,KAAK;YACpB,GAAG,KAAK;QACV;QACA,KAAK;QACL,kBAAgB;;AAEtB;AAEA;;;CAGC,GACD,MAAM,yDAAgB,CAAA,GAAA,uBAAS,EAAE;;;;ADhB1B,MAAM,0DAAiB,CAAA,GAAA,0BAAY,EAAkD,IAAI;AAEhG,SAAS,8BAAQ,KAAmB,EAAE,GAA8B,EAAE;IACpE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,oBAAC,iBAAgB,SAAE,MAAK,cAAE,WAAU,EAAC,GAAG;IAC5C,IAAI,YAAY,CAAA,GAAA,yCAAgB,AAAD,EAAE,KAAK,MAAM,MAAM;IAElD,IAAI,SAAS,CAAC,MAAM,MAAM,IAAI,CAAC,WAC7B,OAAO,iCAAmB,0DAAC,CAAA,GAAA,yCAAa,AAAD,EAAE,QAAQ;QAAC,OAAA,IAAK;OAAE,MAAM,QAAQ,IAA6B,IAAI;IAG1G,qBACE,0DAAC;QACE,GAAG,KAAK;QACT,YAAY;QACZ,OAAO;QACP,YAAY;QACZ,WAAW;;AAEjB;AAEA;;CAEC,GACD,MAAM,0DAAW,CAAA,GAAA,uBAAS,EAAE;AAQ5B,SAAS,mCAAa,YAAC,SAAQ,SAAE,MAAK,aAAE,UAAS,EAAE,GAAG,OAAyB,EAAE;QAGrE;IAFV,IAAI,gBAAC,aAAY,iBAAE,cAAa,cAAE,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,2BAAS,EAAE;QACpE,GAAG,KAAK;QACR,QAAQ,CAAA,gBAAA,MAAM,MAAM,cAAZ,2BAAA,gBAAgB,CAAC;IAC3B,GAAG;IAEH,IAAI,MAAM,MAAM,UAAU;IAC1B,IAAI,aAAa,CAAA,GAAA,yCAAiB,AAAD,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;uBACN;wBACA;uBACA;QACF;IACF;IAEA,IAAI,QAAQ;QAAC,GAAG,YAAY,KAAK;QAAE,GAAG,aAAa,KAAK;IAAA;IAExD,qBACE,0DAAC,CAAA,GAAA,wBAAM,SACJ,CAAC,MAAM,UAAU,kBAAI,0DAAC;QAAK,GAAG,aAAa;QAAE,OAAO;YAAC,UAAU;YAAS,OAAO;QAAC;sBACjF,0DAAC;QACE,GAAG,YAAY;QACf,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,OAAO;QACP,kBAAgB;QAChB,iBAAe,cAAc;QAC7B,gBAAc,aAAa;OAC1B,CAAC,MAAM,UAAU,kBAAI,0DAAC,CAAA,GAAA,8BAAa,AAAD;QAAE,WAAW,MAAM,KAAK;sBAC3D,0DAAC,CAAA,GAAA,yCAAmB,AAAD,EAAE,QAAQ;QAAC,OAAO;wBAAC;uBAAY;QAAS;OACxD,yBAEH,0DAAC,CAAA,GAAA,8BAAa,AAAD;QAAE,WAAW,MAAM,KAAK;;AAI7C;;;;;;;AN/FO,MAAM,0DAAkB,CAAA,GAAA,0BAAY,EAAoD,IAAI;AAEnG,SAAS,+BAA2B,KAAuB,EAAE,GAAiC,EAAE;IAC9F,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,CAAC,kBAAkB,gBAAgB,GAAG,CAAA,GAAA,qBAAQ,AAAD,EAAmB;QAAC,UAAU,EAAE;IAAA;IAEjF,IAAI,YAAC,SAAQ,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD,EAAE;QAAC,aAAa;IAAM;QAEtC,cAAA;IADT,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;QACvC,OAAO,CAAA,OAAA,CAAA,eAAA,MAAM,KAAK,cAAX,0BAAA,eAAe,MAAM,YAAY,cAAjC,kBAAA,OAAqC,iBAAiB,KAAK;QAClE,UAAU,iBAAiB,QAAQ;IACrC;QAI6B;IAH7B,IAAI,QAAQ,CAAA,GAAA,oCAAe,EAAE;QAC3B,eAAe,MAAM,aAAa,IAAI;QACtC,GAAG,KAAK;QACR,OAAO,mBAAoB,CAAA,gBAAA,MAAM,KAAK,cAAX,2BAAA,gBAAe,iBAAiB,KAAK,GAAI,EAAE;QACtE,UAAU;oBACV;IACF;IAEA,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAqB,IAAI;IAC9C,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB,IAAI;IAC5C,IAAI,aAAa,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC5C,IAAI,aAAa,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC5C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,eACF,YAAW,cACX,WAAU,gBACV,aAAY,cACZ,WAAU,oBACV,iBAAgB,qBAChB,kBAAiB,EAClB,GAAG,CAAA,GAAA,4BAAU,EAAE;QACd,GAAG,KAAK;eACR;kBACA;mBACA;oBACA;oBACA;IACF,GACA;IAEA,uCAAuC;IACvC,IAAI,CAAC,WAAW,aAAa,GAAG,CAAA,GAAA,qBAAO,EAAiB,IAAI;IAC5D,IAAI,WAAW,CAAA,GAAA,wBAAU,EAAE,IAAM;QAC/B,IAAI,SAAS,OAAO,EAAE;gBACH;YAAjB,IAAI,aAAa,CAAA,qBAAA,UAAU,OAAO,cAAjB,gCAAA,KAAA,IAAA,mBAAmB;YACpC,IAAI,YAAY,SAAS,OAAO,CAAC,qBAAqB;YACtD,IAAI,OAAO,aAAa,KAAK,GAAG,CAAC,WAAW,IAAI,EAAE,UAAU,IAAI,IAAI,UAAU,IAAI;YAClF,IAAI,OAAO,aAAa,KAAK,GAAG,CAAC,WAAW,KAAK,EAAE,UAAU,KAAK,IAAI,UAAU,KAAK;YACrF,aAAa,AAAC,OAAO,OAAQ;QAC/B,CAAC;IACH,GAAG;QAAC;QAAW;QAAU;KAAa;IAEtC,CAAA,GAAA,uCAAiB,AAAD,EAAE;QAChB,KAAK;QACL,UAAU;IACZ;IAEA,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBAAC,GAAG,WAAW;oBAAE,KAAK;oBAAW,WAAW,MAAM,MAAM;gBAAA;aAAE;YAC1E;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BACf;oBACA,KAAK;oBACL,YAAY;oBACZ,WAAW;oBACX,kBAAkB,IAAI;oBACtB,YAAY,IAAI;oBAChB,OAAO;wBAAC,mBAAmB;oBAAS;gBACtC;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BAAC;oBAAO,CAAC,CAAA,GAAA,yCAAkB,AAAD,EAAE,EAAE;oBAAiB,GAAG,YAAY;oBAAE,KAAK;gBAAU;aAAE;YAClG;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;qBACD,0DAAC;QAAK,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;OAC7C,MAAM,QAAQ,GAEhB;AAGP;AAEA;;CAEC,GACD,MAAM,4CAAY,AAAC,CAAA,GAAA,uBAAS,EAAqB;;;AQ/HjD;;;;;;;;;;CAUC,GACD;;;;;;;;AAiBO,MAAM,0DAAmB,CAAA,GAAA,0BAAY,EAAqD,IAAI;AAC9F,MAAM,0DAAmB,CAAA,GAAA,0BAAY,EAAqD,IAAI;AAC9F,MAAM,0DAAmB,CAAA,GAAA,0BAAY,EAAuD,IAAI;AAEvG,SAAS,gCAA+B,KAAwB,EAAE,GAAiC,EAAE;IACnG,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,QAAQ,CAAA,GAAA,qCAAgB,EAAE;QAC5B,GAAG,KAAK;gBACR;wBACA;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC1C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cAAC,WAAU,cAAE,WAAU,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK,GAAG,OAAO;IAE3G,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC;gBAAkB;2BAAC;gCAAO;oBAAY,KAAK;gBAAQ;aAAE;YACtD;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;qBACD,0DAAC;QAAK,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;OAC7C,MAAM,QAAQ;AAIvB;AAEA;;;CAGC,GACD,MAAM,4CAAa,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAGlD,SAAS,gCAA+B,KAAwB,EAAE,GAAiC,EAAE;IACnG,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,QAAQ,CAAA,GAAA,qCAAgB,EAAE;QAC5B,GAAG,KAAK;gBACR;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC1C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cAAC,WAAU,cAAE,WAAU,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK,GAAG,OAAO;IAE3G,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC;gBAAkB;2BAAC;gCAAO;oBAAY,KAAK;gBAAQ;aAAE;YACtD;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;oBAAU,aAAa;gBAAM;aAAE;YACnE;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;qBACD,0DAAC;QAAK,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;OAC7C,MAAM,QAAQ;AAIvB;AAEA;;;CAGC,GACD,MAAM,4CAAa,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAGlD,MAAM,+DAA2B,CAAA,GAAA,0BAAY,EAAwB,IAAI;AA6BzE,SAAS,gCAAU,YAAC,SAAQ,QAAE,KAAI,EAAE,GAAG,YAA2B,EAAE,GAAiC,EAAE;IACrG,IAAI,CAAC,SAAC,MAAK,cAAE,WAAU,EAAC,EAAE,SAAS,GAAG,CAAA,GAAA,yCAAc,EAAE;cAAC;IAAI,GAA6C,KAAK;IAE7G,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE,CAAC;IACxC,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;QACzD,QAAQ,IAAI;QACZ,aAAa,IAAI;IACnB;IAEA,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,UAAU;QACb,QAAQ;uBAAC;YAAW,eAAe;4BAAW;YAAgB,YAAY,MAAM,UAAU;QAAA;QAC1F,kBAAkB;IACpB;IAEA,qBACE,0DAAC,+CAAyB,QAAQ;QAAC,OAAO;qBACxC,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,YAAY,YAAY,WAAW;QACjD,GAAG,WAAW;QACf,KAAK;QACL,MAAM;QACN,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,MAAM,UAAU,IAAI;OAClC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,kBAAM,CAAA,GAAA,yBAAW,EAAE,SAAS,UAAU;YAAC,KAAK;QAAC;AAInF;AAEA;;CAEC,GACD,MAAM,0DAAa,CAAA,GAAA,uBAAS,EAAE;AA8B9B,SAAS,kCAAY,WAAC,QAAO,EAAE,GAAG,YAA6B,EAAE,GAAiC,EAAE;IAClG,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,SAAS,CAAA,GAAA,kCAAW,EAAE;IAC1B,IAAI,gBAAC,aAAY,EAAC,GAAG,CAAA,GAAA,+BAAc,AAAD,EAAE,SAAS,OAAO;IACpD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,UAAU;QACb,QAAQ;YACN,GAAG,OAAO;YACV,YAAY,CAAC,QAAQ,UAAU;YAC/B,WAAW,MAAM,eAAe,KAAK;QACvC;QACA,iBAAiB,QAAQ,IAAI;QAC7B,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QACE,GAAG,YAAY;QACf,GAAG,WAAW;QACf,KAAK;QACL,aAAW,QAAQ,IAAI;;AAE7B;AAEA;;;CAGC,GACD,MAAM,0DAAe,CAAA,GAAA,uBAAS,EAAE;;;AClPhC;;;;;;;;;;CAUC,GACD;;;;;;;ACXA;;;;;;;;;;CAUC,GACD;;;;;ACXA;;;;;;;;;;CAUC,GAED;;;;;AAqBO,MAAM,0DAAe,CAAA,GAAA,0BAAY,EAA4B,IAAI;AACxE,MAAM,2DAAuB,CAAA,GAAA,0BAAY,EAAoC,IAAI;AAejF,SAAS,4BAAM,KAAwB,EAAE,GAAiC,EAAE;IAC1E,IAAI,MAAM,CAAA,GAAA,uBAAS,EAAE;IAErB,IAAI,KACF,qBAAO,0DAAC;QAAc,GAAG,KAAK;QAAE,UAAU;OAAM,MAAM,QAAQ;IAGhE,IAAI,iBACF,cAAa,6BACb,0BAAyB,UACzB,OAAM,eACN,YAAW,gBACX,aAAY,YACZ,SAAQ,EACR,GAAG,YACJ,GAAG;IAEJ,qBACE,0DAAC;QACC,eAAe;QACf,2BAA2B;QAC3B,QAAQ;QACR,aAAa;QACb,cAAc;qBACd,0DAAC;QAAc,GAAG,UAAU;QAAE,UAAU;OACrC;AAIT;AASA;;CAEC,GACD,MAAM,0DAAS,CAAA,GAAA,uBAAS,EAAE;AAMnB,MAAM,0DAAe,CAAA,GAAA,uBAAU,AAAD,EAAE,CAAC,OAA0B,MAAsC;IACtG,IAAI,MAAM,CAAA,GAAA,uBAAS,EAAE;QAET;IADZ,sDAAsD;IACtD,IAAI,QAAQ,CAAA,aAAA,gBAAA,iBAAA,KAAA,IAAA,IAAK,KAAK,cAAV,wBAAA,aAAc,CAAA,GAAA,0CAAqB,EAAE,MAAM;IAEvD,IAAI,YAAY,CAAA,GAAA,kCAAW,EAAE;IAC7B,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC1C,IAAI,mBAAmB,CAAA,GAAA,yCAAgB,AAAD,EAAE,WAAW,MAAM,MAAM;IAC/D,IAAI,iBAAiB,CAAA,GAAA,yCAAgB,AAAD,EAAE,UAAU,MAAM,MAAM;IAC5D,IAAI,YAAY,oBAAoB;IAEpC,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,WACpB,OAAO,IAAI;IAGb,qBACE,0DAAC;QACE,GAAG,KAAK;QACT,OAAO;QACP,WAAW;QACX,YAAY;QACZ,UAAU;;AAEhB;AAEA,SAAS,wCAAkB,KAA6B,EAAE;IACxD,IAAI,WAAW,MAAM,QAAQ;IAC7B,IAAI,SAAC,MAAK,EAAC,GAAG;IACd,IAAI,cAAC,WAAU,iBAAE,cAAa,EAAC,GAAG,CAAA,GAAA,gCAAc,EAAE,OAAO,OAAO;IAEhE,IAAI,WAAW,CAAA,GAAA,yCAAiB,AAAD,EAAE,MAAM,UAAU;IACjD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;YACN,YAAY;YACZ,WAAW,MAAM,SAAS;QAC5B;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,qCAAe,AAAD;IAC7B,IAAI,QAAQ;QACV,GAAG,YAAY,KAAK;QACpB,4BAA4B,SAAS,MAAM,GAAG;IAChD;IAEA,qBACE,0DAAC,CAAA,GAAA,wBAAM,uBACL,0DAAC;QACE,GAAG,aAAa;QAChB,GAAG,WAAW;QACf,OAAO;QACP,KAAK,MAAM,UAAU;QACrB,iBAAe,YAAY;QAC3B,gBAAc,MAAM,SAAS,IAAI;qBACjC,0DAAC,2CAAqB,QAAQ;QAAC,OAAO;wBAAC;sBAAY;mBAAU;YAAO,WAAW,MAAM,SAAS;YAAE,eAAe,MAAM,aAAa;QAAA;OAC/H,YAAY,QAAQ;AAK/B;AAMA,SAAS,mCAAa,KAAwB,EAAE;IAC9C,IAAI,cAAC,WAAU,YAAE,SAAQ,aAAE,UAAS,iBAAE,cAAa,SAAE,MAAK,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACzE,IAAI,aAAa,CAAA,GAAA,oBAAM,EAAE,IAAM,CAAA,GAAA,+BAAQ,EAAE,MAAM,QAAQ,EAAE,WAAW;QAAC,MAAM,QAAQ;QAAE;KAAS;IAE9F,IAAI,MAAM,CAAA,GAAA,kCAAW,EAAE;IACvB,IAAI,WAAW,CAAA,GAAA,yCAAgB,EAAE;IACjC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;YACN,YAAY;uBACZ;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,UAAU;QACb,GAAG,WAAW;QACf,KAAK;QACL,iBAAe,YAAY;QAC3B,gBAAc,aAAa;OAC1B,+BACC,0DAAC,CAAA,GAAA,8BAAa,AAAD;QAAE,WAAW,MAAM,KAAK;QAEtC,YAAY,QAAQ;AAG3B;;;;;;AD7JO,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAA0C,IAAI;AAKhF,SAAS,0CAAc,KAAyB,EAAE;IACvD,IAAI,QAAQ,CAAA,GAAA,0CAAqB,EAAE;IAEnC,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAqB,IAAI;IAC9C,IAAI,gBAAC,aAAY,gBAAE,aAAY,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD,EAAE;QAAC,MAAM;IAAQ,GAAG,OAAO;IAE9E,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;2BAAC;gBAAK;aAAE;YACvB;gBAAC;gBAAe;oBAAC,GAAG,YAAY;oBAAE,SAAS,MAAM,KAAK;gBAAA;aAAE;YACxD;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBAAC,GAAG,YAAY;oBAAE,WAAW,MAAM,MAAM;oBAAE,KAAK;gBAAS;aAAE;YAC3E;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BAAC;oBAAO,YAAY;gBAAS;aAAE;SACjD;OACA,MAAM,QAAQ;AAGrB;AAGA,SAAS,6BAAO,KAAkB,EAAE,GAA8B,EAAE;IAClE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,eAAC,YAAW,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,0BAAQ,EAAE,OAAO;IAEjD,IAAI,WAAW,MAAM,QAAQ;IAC7B,IAAI,OAAO,aAAa,YACtB,WAAW,SAAS;QAClB,OAAO,MAAM,OAAO,IAAK,CAAA,IAAM,CAAC,CAAA;IAClC;QAUa;IAPf,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACxB,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,OAAO,MAAM,KAAK;QAClB,WAAW,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,mBAAmB,mBAAmB;qBACjD,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAY;gBAAG;aAAU;YAC1B,6CAA6C;YAC7C;gBAAC,CAAA,GAAA,yCAAa;gBAAG;oBAAC,GAAG,UAAU;oBAAE,OAAO;gBAAC;aAAE;SAC5C;OACA;AAIT;AAEA;;CAEC,GACD,MAAM,0DAAU,CAAA,GAAA,uBAAS,EAAE;;;AE7F3B;;;;;;;;;;CAUC,GAED;;;AAwBO,MAAM,0DAAe,CAAA,GAAA,0BAAY,EAA4C,CAAC;AAErF,SAAS,4BAAM,KAAiB,EAAE,GAAiC,EAAE;IACnE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAE3C,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE,CAAC;IACxC,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;QACzD,QAAQ,IAAI;IACd;IAEA,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;uBAAC;YAAW,eAAe;4BAAW;QAAc;QAC5D,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,OAAO,YAAY,WAAW;QAC5C,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;OACrC,MAAM,QAAQ;AAGrB;AAEA;;CAEC,GACD,MAAM,0DAAS,CAAA,GAAA,uBAAS,EAAE;;;;;;;AHvCnB,MAAM,0DAAoB,CAAA,GAAA,0BAAY,EAAsD,IAAI;AAChG,MAAM,yDAAyB,CAAA,GAAA,0BAAY,EAA2D,IAAI;AAEjH,SAAS,iCAAgC,KAAyB,EAAE,GAAiC,EAAE;IACrG,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,QAAQ,CAAA,GAAA,sCAAiB,EAAE;IAC/B,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC1C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cACF,WAAU,cACV,WAAU,cACV,WAAU,eACV,YAAW,eACX,YAAW,iBACX,cAAa,oBACb,iBAAgB,qBAChB,kBAAiB,EAClB,GAAG,CAAA,GAAA,8BAAa,AAAD,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK,GAAG,OAAO;IAE5C,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,aAAa,CAAA,GAAA,qCAAgB,EAAE;QACjC,GAAG,UAAU;gBACb;wBACA;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC1C,IAAI,EAAC,YAAY,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAY,AAAD,EAAE;QAAC,GAAG,UAAU;eAAE;IAAK,GAAG,YAAY;IAEpF,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAe;gBAAG;oBAAC,OAAO;oBAAY,YAAY;oBAAgB,KAAK;gBAAQ;aAAE;YAClF;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBAAC,GAAG,WAAW;oBAAE,WAAW,MAAM,MAAM;gBAAA;aAAE;YAC1D;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;oBAAU,aAAa;gBAAM;aAAE;YACnE;gBAAC,CAAA,GAAA,yCAAc;gBAAG;aAAc;YAChC;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BAAC;oBAAO,YAAY;oBAAU,WAAW;gBAAc;aAAE;YAC1E;gBAAC,CAAA,GAAA,yCAAY;gBAAG;aAAY;YAC5B;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;qBACD,0DAAC;QAAK,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;OAC7C,MAAM,QAAQ;AAIvB;AAEA;;CAEC,GACD,MAAM,4CAAc,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAGnD,SAAS,sCAAqC,KAA8B,EAAE,GAAiC,EAAE;IAC/G,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,QAAQ,CAAA,GAAA,2CAAsB,EAAE;IACpC,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC1C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cACF,WAAU,cACV,WAAU,mBACV,gBAAe,iBACf,cAAa,eACb,YAAW,eACX,YAAW,iBACX,cAAa,oBACb,iBAAgB,qBAChB,kBAAiB,EAClB,GAAG,CAAA,GAAA,mCAAkB,AAAD,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK,GAAG,OAAO;IAEjD,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,kBAAkB,CAAA,GAAA,qCAAgB,EAAE;QACtC,GAAG,eAAe;gBAClB;wBACA;IACF;IAEA,IAAI,gBAAgB,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC/C,IAAI,EAAC,YAAY,oBAAmB,EAAC,GAAG,CAAA,GAAA,6BAAY,AAAD,EAAE;QAAC,GAAG,eAAe;eAAE;IAAK,GAAG,iBAAiB;IAEnG,IAAI,gBAAgB,CAAA,GAAA,qCAAgB,EAAE;QACpC,GAAG,aAAa;gBAChB;wBACA;IACF;IAEA,IAAI,cAAc,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC7C,IAAI,EAAC,YAAY,kBAAiB,EAAC,GAAG,CAAA,GAAA,6BAAY,AAAD,EAAE;QAAC,GAAG,aAAa;eAAE;IAAK,GAAG,eAAe;IAE7F,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBAAC,GAAG,WAAW;oBAAE,WAAW,MAAM,MAAM;gBAAA;aAAE;YAC1D;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;oBAAU,aAAa;gBAAM;aAAE;YACnE;gBAAC,CAAA,GAAA,yCAAmB;gBAAG;aAAc;YACrC;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BAAC;oBAAO,YAAY;oBAAU,WAAW;gBAAc;aAAE;YAC1E;gBAAC,CAAA,GAAA,yCAAY;gBAAG;aAAY;YAC5B;gBAAC,CAAA,GAAA,yCAAe;gBAAG;oBACjB,OAAO;wBACL,OAAO;4BACL,OAAO;4BACP,YAAY;4BACZ,KAAK;wBACP;wBACA,KAAK;4BACH,OAAO;4BACP,YAAY;4BACZ,KAAK;wBACP;oBACF;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;qBACD,0DAAC;QAAK,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;OAC7C,MAAM,QAAQ;AAIvB;AAEA;;;CAGC,GACD,MAAM,4CAAmB,AAAC,CAAA,GAAA,uBAAS,EAAqB;;;;AIhLxD;;;;;;;;;;CAUC,GACD;;;;;;;;;;AAkDO,MAAM,0DAAkB,CAAA,GAAA,0BAAY,EAAoD,IAAI;AACnG,MAAM,8DAA0B,CAAA,GAAA,0BAAY,EAAuC,IAAI;AAEvF,SAAS,+BAA2B,KAAuB,EAAE,GAAiC,EAAE;IAC9F,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,oBAAC,iBAAgB,EAAC,GAAG;IACzB,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;IACzC,IAAI,QAAQ,CAAA,GAAA,gCAAW,EAAE;QACvB,GAAG,KAAK;oBACR;QACA,UAAU;IACZ;IAEA,IAAI,aAAC,UAAS,EAAC,GAAG,CAAA,GAAA,4BAAW,AAAD,EAAE,OAAO,OAAO;IAE5C,IAAI,WAAW,CAAA,GAAA,yCAAgB,EAAE;QAC/B,OAAO;QACP,UAAU,CAAC,OAAkB;YAC3B,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAa,MAAM;;gBAC7B;oBACE,MAAM,IAAI,MAAM,wCAAwC,KAAK,IAAI,EAAE;YACvE;QACF;IACF;IAEA,IAAI,mBAAmB,MAAM,gBAAgB;IAC7C,IAAI,kBAAkB,CAAC,CAAC,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,2BAA2B,AAAD;IACpE,IAAI,kBAAkB,CAAC,CAAC,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,2BAA2B,AAAD;IACpE,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CAAC;IAEf,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CAAC;IAGf,IAAI,YAAkD;IACtD,IAAI,YAAkD;IACtD,IAAI,sBAA6D;IACjE,IAAI,mBAAmB,KAAK;IAC5B,IAAI,cAAkC,IAAI;IAC1C,IAAI,UAAU,CAAA,GAAA,mBAAK,EAAuB,IAAI;IAE9C,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;wBACxD;8BACA;YACA,SAAS,iBAAiB,iBAAiB,GAAG,UAAU,SAAS;QACnE;QACA,iBAAiB,sBAAsB,CAAE,CAAC,GAAG,WAAW;QAExD,IAAI,cAAc,iBAAiB,WAAW;QAC9C,cAAc,iBAAiB,iBAAiB,iBAC5C,0DAAC;YAAY,KAAK;WAAU,iBAAiB,iBAAiB,IAC9D,IAAI;IACV,CAAC;IAED,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;wBACxD;8BACA;QACF;QAEA,IAAI,mBAAmB,IAAI,CAAA,GAAA,qCAAmB,EAC5C,YACA,iBAAiB,gBAAgB,KAAK,cAAc,IAAI,QAAQ,iBAAiB,YAAY,EAC7F;QAEF,IAAI,qBAAqB,iBAAiB,kBAAkB,IAAI,IAAI,iBAAiB,sBAAsB,CAAC,YAAY;QACxH,sBAAsB,iBAAiB,sBAAsB,CAAE;8BAC7D;gCACA;QACF,GAAG,WAAW;QAEd,mBAAmB,UAAU,YAAY,CAAC;YAAC,MAAM;QAAM;IACzD,CAAC;IAED,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,WAAW,MAAM,SAAS;QAC1B,OAAO,MAAM,KAAK;QAClB,kBAAkB;QAClB,QAAQ;YACN,cAAc;YACd,SAAS,MAAM,UAAU,CAAC,IAAI,KAAK;uBACnC;4BACA;QACF;IACF;IAEA,IAAI,aAAwB,IAAI;IAChC,IAAI,0BAA8D,IAAI;IACtE,IAAI,MAAM,UAAU,CAAC,IAAI,KAAK,KAAK,MAAM,gBAAgB,EAAE;QACzD,4EAA4E;QAC5E,8EAA8E;QAC9E,kFAAkF;QAClF,iDAAiD;QACjD,IAAI,UAAU,MAAM,gBAAgB;QACpC,IAAI,CAAA,GAAA,8BAAO,KAAK;YACd,qEAAqE;YACrE,0BAA0B;gBACxB,MAAM;gBACN,wBAAwB;YAC1B;YAEA,IAAI,CAAA,GAAA,2BAAK,AAAD,KACN,uEAAuE;YACvE,yDAAyD;YACzD,2BACE,oIACE,0DAAC,CAAA,GAAA,+BAAc,AAAD,SAAG,SAAS,CAAC,aAAa,GACvC;iBAIL,aAAa;QAEjB,OACE,2BACE,0DAAC;YAAI,MAAK;YAAM,OAAO;gBAAC,SAAS;YAAU;yBACzC,0DAAC;YAAI,MAAK;YAAW,OAAO;gBAAC,SAAS;YAAU;WAC7C;IAKX,CAAC;IAED,qBACE,0DAAC,CAAA,GAAA,2BAAS,uBACR,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACxB,GAAG,WAAW;QACd,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,WAAW,YAAY,gCAAA,iCAAA,KAAA,IAAA,oBAAqB,eAAe,EAAE,wBAAwB;QACpG,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,oBAAkB,oBAAoB;QACtC,cAAY,MAAM,UAAU,CAAC,IAAI,KAAK,KAAK;QAC3C,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;qBACtC,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC;gBAAyB;2BAAC;sCAAO;+BAAkB;+BAAW;gBAAS;aAAE;YAC1E;gBAAC,CAAA,GAAA,yCAAmB;gBAAG;oBAAC,QAAQ;gBAAqB;aAAE;SACxD;OACA,iCAAmB,0DAAC,gDACpB,WAEF,YACA,aACA;AAIT;AAEA;;;CAGC,GACD,MAAM,4CAAY,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAGjD,SAAS,mCAAa,QAAC,KAAI,EAAC,EAAE;IAC5B,IAAI,SAAC,MAAK,oBAAE,iBAAgB,aAAE,UAAS,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACjE,IAAI,MAAM,CAAA,GAAA,sCAAK,AAAD,EAAE,MAAM,CAAiB,IAAI;IAC3C,IAAI,YAAC,SAAQ,iBAAE,cAAa,oBAAE,iBAAgB,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,gCAAc,EACzE;QACE,MAAM;QACN,uBAAuB,CAAC,CAAC;IAC3B,GACA,OACA;IAGF,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QACrC,YAAY,CAAC,OAAO,eAAe,IAAI,CAAC,OAAO,SAAS;IAC1D;IAEA,IAAI,kBAAC,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IAC9C,IAAI,iBAAC,cAAa,EAAC,GAAG,CAAA,GAAA,6CAA4B,AAAD,EAC/C;QAAC,KAAK,KAAK,GAAG;IAAA,GACd;IAGF,IAAI,gBAA4C,IAAI;IACpD,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QAAC,KAAK,KAAK,GAAG;QAAE,eAAe,IAAI;IAAA,GAAG;IAG3F,IAAI,gBAA0C,IAAI;IAClD,IAAI,mBAAmB,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAClD,IAAI,uBAAC,oBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD;IAC5C,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QACjD,QAAQ;YAAC,MAAM;YAAQ,KAAK,KAAK,GAAG;YAAE,cAAc;QAAI;IAC1D,GAAG,WAAW;IAGhB,IAAI,QAA4B,KAAK,KAAK;IAC1C,IAAI,aAAa,aAAa,UAAU,UAAU,CAAC,KAAK,GAAG;IAC3D,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;YACN,GAAG,MAAM;uBACT;4BACA;YACA,eAAe,MAAM,gBAAgB,CAAC,aAAa;YACnD,mBAAmB,MAAM,gBAAgB,CAAC,iBAAiB;YAC3D,gBAAgB,CAAC,CAAC;wBAClB;YACA,cAAc,0BAAA,2BAAA,KAAA,IAAA,cAAe,YAAY;QAC3C;IACF;IAEA,IAAI,sBAAsB,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,mBAAmB,AAAD,KAAM,CAAA,CAAA,uBAAU,0DAAC,CAAA,GAAA,yCAAa,AAAD;YAAE,QAAQ;UAAS;IAC9G,IAAI,gBAAgB,CAAA,GAAA,mBAAK,EAAqB,IAAI;IAClD,CAAA,GAAA,sBAAS,AAAD,EAAE,IAAM;QACd,IAAI,aAAa,CAAC,cAAc,OAAO,EACrC,QAAQ,IAAI,CAAC;IAEjB,2BAA2B;IAC3B,GAAG,EAAE;IAEL,CAAA,GAAA,sBAAS,AAAD,EAAE,IAAM;QACd,IAAI,CAAC,KAAK,SAAS,EACjB,QAAQ,IAAI,CAAC;IAEjB,GAAG;QAAC,KAAK,SAAS;KAAC;IAEnB,qBACE,sHACG,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,gBAAgB,AAAD,KAChC,oBAAoB;QAAC,MAAM;QAAQ,KAAK,KAAK,GAAG;QAAE,cAAc;IAAQ,IAEzE,iBAAiB,CAAC,cAAc,QAAQ,kBACvC,0DAAC;QAAI,MAAK;QAAM,OAAO;YAAC,UAAU;QAAU;qBAC1C,0DAAC;QAAI,MAAK;qBACR,0DAAC;QAAI,MAAK;QAAU,GAAG,mBAAmB;QAAG,GAAG,0BAAA,2BAAA,KAAA,IAAA,cAAe,kBAAkB;QAAE,KAAK;wBAI9F,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,UAAU,YAAY,YAAY,0BAAA,2BAAA,KAAA,IAAA,cAAe,SAAS,CAAC;QACzE,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,aAAa;QAC3B,gBAAc,OAAO,SAAS,IAAI;QAClC,sBAAoB,kBAAkB;QACtC,gBAAc,OAAO,SAAS,IAAI;QAClC,iBAAe,cAAc;QAC7B,oBAAkB,CAAA,0BAAA,2BAAA,KAAA,IAAA,cAAe,YAAY,AAAD,KAAK;qBACjD,0DAAC,OAAQ,6BACP,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAc;gBAAG;aAAc;YAChC;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBACd,OAAO;wBACL,CAAC,CAAA,GAAA,yCAAW,AAAD,EAAE,EAAE,CAAC;wBAChB,MAAM;4BACJ,GAAG,0BAAA,2BAAA,KAAA,IAAA,cAAe,eAAe;4BACjC,KAAK;4BACL,OAAO;gCACL,eAAe;4BACjB;wBACF;oBACF;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;oBACf;gBACF;aAAE;SACH;OACA,YAAY,QAAQ,KAI1B,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,gBAAgB,AAAD,KAAK,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,IAAI,IACnF,oBAAoB;QAAC,MAAM;QAAQ,KAAK,KAAK,GAAG;QAAE,cAAc;IAAO;AAI/E;AAEA,SAAS,4CAAsB,KAAyB,EAAE,GAA8B,EAAE;IACxF,MAAM,CAAA,GAAA,kCAAW,EAAE;IACnB,IAAI,oBAAC,iBAAgB,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC/C,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC3C,IAAI,sBAAC,mBAAkB,YAAE,SAAQ,gBAAE,aAAY,EAAC,GAAG,iBAAkB,gBAAgB,CACnF,OACA,WACA;IAGF,IAAI,uBAAC,oBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD;IAE5C,IAAI,UACF,OAAO,IAAI;IAGb,sDAAsD;IACtD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;0BACN;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,WAAW;QACf,MAAK;QACL,KAAK;QACL,oBAAkB,gBAAgB;qBAClC,0DAAC;QAAI,MAAK;qBACR,0DAAC;QAAK,GAAG,mBAAmB;QAAE,MAAK;QAAU,GAAG,kBAAkB;QAAE,KAAK;;AAIjF;AAEA,SAAS,0CAAoB;IAC3B,IAAI,oBAAC,iBAAgB,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC/C,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAkB,IAAI;IACrC,IAAI,sBAAC,mBAAkB,EAAC,GAAG,iBAAkB,gBAAgB,CAAE;QAC7D,QAAQ;YAAC,MAAM;QAAM;IACvB,GAAG,WAAY;IACf,IAAI,eAAe,UAAW,YAAY,CAAC;QAAC,MAAM;IAAM;IACxD,IAAI,uBAAC,oBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD;IAE5C,IAAI,CAAC,gBAAgB,kBAAkB,CAAC,cAAc,EACpD,OAAO,IAAI;IAGb,qBACE,0DAAC;QAAI,MAAK;QAAM,eAAa,kBAAkB,CAAC,cAAc;QAAE,OAAO;YAAC,UAAU;QAAU;qBAC1F,0DAAC;QAAI,MAAK;qBACR,0DAAC;QAAI,MAAK;QAAU,GAAG,mBAAmB;QAAG,GAAG,kBAAkB;QAAE,KAAK;;AAIjF;;;;;;;;AC1ZA;;;;;;;;;;CAUC,GAED;;AAGO,MAAM,0DAAkB,CAAA,GAAA,0BAAY,EAA0D,CAAC;AAEtG,SAAS,+BAAS,KAAkC,EAAE,GAA8B,EAAE;IACpF,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,qBAAO,0DAAC;QAAI,KAAI;QAAO,GAAG,KAAK;QAAE,KAAK;;AACxC;AAEA,MAAM,0DAAY,CAAA,GAAA,uBAAS,EAAE;;;;;;ACtB7B;;;;;;;;;;CAUC,GAGD;;;;;;;;;;;;AAaO,MAAM,0DAAc,CAAA,GAAA,0BAAY,EAAgD,IAAI;AAC3F,MAAM,0DAAsB,CAAA,GAAA,0BAAY,EAA6B,IAAI;AAMlE,SAAS,0CAAY,KAAuB,EAAE;IACnD,IAAI,QAAQ,CAAA,GAAA,uCAAkB,EAAE;IAEhC,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAqB,IAAI;IACxC,IAAI,oBAAC,iBAAgB,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,+BAAc,AAAD,EAAE;QACjD,GAAG,KAAK;QACR,MAAM;IACR,GAAG,OAAO;IAEV,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC;gBAAa;aAAU;YACxB;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBAAC,GAAG,gBAAgB;yBAAE;oBAAK,WAAW,MAAM,MAAM;gBAAA;aAAE;YACpE;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BAAC;oBAAO,YAAY;oBAAK,WAAW;gBAAc;aAAE;SACtE;OACA,MAAM,QAAQ;AAGrB;AAIA,SAAS,2BAAuB,KAAmB,EAAE,GAAiC,EAAE;IACtF,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;IAEzC,kGAAkG;IAClG,qBACE,sHACG,WAAW,IAAI,GAAG,mBAAK,0DAAC;QAAU,OAAO;QAAO,YAAY;QAAY,SAAS;QACjF;AAGP;AAQA,SAAS,gCAA4B,SAAC,MAAK,cAAE,WAAU,EAAE,SAAS,IAAG,EAAoB,EAAE;IACzF,IAAI,QAAQ,CAAA,GAAA,gCAAW,EAAE;QACvB,GAAG,KAAK;oBACR;QACA,UAAU;IACZ;IACA,IAAI,aAAC,UAAS,EAAC,GAAG,CAAA,GAAA,wBAAO,AAAD,EAAE,OAAO,OAAO;IAExC,IAAI,WAAW,CAAA,GAAA,yCAAgB,EAAE;QAC/B,OAAO,MAAM,UAAU;QACvB,UAAU,CAAC,OAAS;YAClB,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAY,SAAS;;gBAC/B,KAAK;oBACH,qBAAO,0DAAC,CAAA,GAAA,yCAAS,AAAD,GAAM,KAAK,KAAK;gBAClC,KAAK;oBACH,qBAAO,0DAAC;wBAAS,MAAM;;gBACzB;oBACE,MAAM,IAAI,MAAM,oCAAoC,KAAK,IAAI,EAAE;YACnE;QACF;IACF;QASe;IAPf,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACxB,GAAG,SAAS;QACb,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,OAAO,MAAM,KAAK;QAClB,WAAW,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,mBAAmB,iBAAiB;qBAC/C,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC;gBAAqB;aAAM;YAC5B;gBAAC,CAAA,GAAA,yCAAe;gBAAG;oBAAC,aAAa;gBAAK;aAAE;SACzC;OACA;AAIT;AAEA;;CAEC,GACD,MAAM,4CAAQ,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAO7C,SAAS,kCAAe,WAAC,QAAO,aAAE,UAAS,SAAE,MAAK,EAAE,GAAG,YAAgC,EAAE;QAmC3D,gBACR;IAnCpB,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,CAAC,YAAY,QAAQ,GAAG,CAAA,GAAA,yCAAO,AAAD;QAGlB;IAFhB,IAAI,gBAAC,aAAY,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,+BAAc,AAAD,EAAE;iBAC9C;QACA,cAAc,CAAA,qBAAA,OAAO,CAAC,aAAa,cAArB,gCAAA,qBAAyB,SAAS;IAClD;IAEA,IAAI,WAAW,CAAA,GAAA,yCAAgB,EAAE;QAC/B,OAAO,MAAM,UAAU,CAAC,WAAW,CAAE,QAAQ,GAAG;QAChD,UAAU,CAAA,OAAQ;YAChB,OAAQ,KAAK,IAAI;gBACf,KAAK;oBAAU;wBACb,IAAI,OAAC,IAAG,EAAE,GAAG,YAAW,GAAG,KAAK,KAAK;wBACrC,qBACE,0DAAC,CAAA,GAAA,yCAAM,AAAD;4BACH,GAAG,YAAY;4BACf,GAAG,UAAU;4BACd,KAAK,CAAA,GAAA,+BAAS,AAAD,EAAE,YAAY;2BAC1B,KAAK,QAAQ;oBAGpB;gBACA,KAAK;oBACH,qBAAO,0DAAC;wBAAS,MAAM;;gBACzB;oBACE,MAAM,IAAI,MAAM,0CAA0C,KAAK,IAAI,EAAE;YACzE;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,WAAW;QAC7B,GAAG,UAAU;QACd,WAAW,aAAa,CAAA,CAAA,iBAAA,QAAQ,KAAK,cAAb,4BAAA,KAAA,IAAA,eAAe,SAAS,AAAD,KAAK;QACpD,OAAO,SAAS,CAAA,CAAA,kBAAA,QAAQ,KAAK,cAAb,6BAAA,KAAA,IAAA,gBAAe,KAAK,AAAD;OAClC;AAGP;AAcA,SAAS,+BAAY,QAAC,KAAI,EAAmB,EAAE;IAC7C,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IACvB,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAkB,IAAI;IACrC,IAAI,iBAAC,cAAa,cAAE,WAAU,oBAAE,iBAAgB,yBAAE,sBAAqB,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,4BAAU,EAAE;QAAC,KAAK,KAAK,GAAG;IAAA,GAAG,OAAO;IAE1H,IAAI,QAAsB,KAAK,KAAK;IACpC,IAAI,kBAAC,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IAC9C,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;YACN,GAAG,MAAM;YACT,WAAW,OAAO,SAAS;4BAC3B;YACA,eAAe,MAAM,gBAAgB,CAAC,aAAa;YACnD,mBAAmB,MAAM,gBAAgB,CAAC,iBAAiB;QAC7D;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,eAAe,WAAW;QACxC,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,OAAO,SAAS,IAAI;QAClC,gBAAc,OAAO,SAAS,IAAI;QAClC,sBAAoB,kBAAkB;QACtC,gBAAc,OAAO,SAAS,IAAI;qBAClC,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,OAAO;wBACP,aAAa;oBACf;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAc;gBAAG;aAAsB;SACzC;OACA,YAAY,QAAQ;AAI7B;;;AClOA;;;;;;;;;;CAUC,GAED;;;;AAmBO,MAAM,0DAAe,CAAA,GAAA,0BAAY,EAA4C,IAAI;AAExF,SAAS,4BAAM,KAAiB,EAAE,GAAiC,EAAE;IACnE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,SACF,QAAQ,cACR,WAAW,cACX,WAAW,MACZ,GAAG;IAEJ,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cACF,WAAU,cACV,WAAU,EACX,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK;IAE7B,0DAA0D;IAC1D,IAAI,aAAa,AAAC,CAAA,QAAQ,QAAO,IAAM,CAAA,WAAW,QAAO,IAAK;IAE9D,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;wBACN;YACA,WAAW,UAAU,CAAC,iBAAiB;QACzC;IACF;IAEA,qBACE,0DAAC;QAAK,GAAG,UAAU;QAAG,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;qBAC9D,0DAAC,CAAA,GAAA,yCAAY,AAAD,EAAE,QAAQ;QAAC,OAAO;YAAC,GAAG,UAAU;YAAE,KAAK;YAAU,aAAa;QAAM;OAC7E,YAAY,QAAQ;AAI7B;AAEA;;CAEC,GACD,MAAM,0DAAS,CAAA,GAAA,uBAAS,EAAE;;;;ACvE1B;;;;;;;;;;CAUC,GAED;;;;;;;;;AAYO,MAAM,0DAAqB,CAAA,GAAA,0BAAY,EAAkD,IAAI;AAEpG,SAAS,kCAAY,KAAuB,EAAE,GAAiC,EAAE;IAC/E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,UAAC,OAAM,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD;IACvB,IAAI,QAAQ,CAAA,GAAA,uCAAkB,EAAE;QAAC,GAAG,KAAK;gBAAE;IAAM;IACjD,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB,IAAI;IAC5C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cACF,WAAU,cACV,WAAU,cACV,WAAU,wBACV,qBAAoB,wBACpB,qBAAoB,oBACpB,iBAAgB,qBAChB,kBAAiB,EAClB,GAAG,CAAA,GAAA,+BAAc,AAAD,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK,GAAG,OAAO;IAE7C,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;aAAW;YAC1B;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBACd,OAAO;wBACL,WAAW;wBACX,WAAW;oBACb;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;qBACD,0DAAC;QAAK,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;OAC7C,MAAM,QAAQ;AAIvB;AAEA;;CAEC,GACD,MAAM,0DAAe,CAAA,GAAA,uBAAS,EAAE;;;;;AC7EhC;;;;;;;;;;CAUC,GAED;;;;AAwBO,MAAM,0DAAqB,CAAA,GAAA,0BAAY,EAAkD,IAAI;AAEpG,SAAS,kCAAY,KAAuB,EAAE,GAAiC,EAAE;IAC/E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,SACF,QAAQ,cACR,WAAW,cACX,WAAW,uBACX,kBAAkB,KAAK,GACxB,GAAG;IAEJ,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,oBACF,iBAAgB,cAChB,WAAU,EACX,GAAG,CAAA,GAAA,+BAAc,AAAD,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK;IAEnC,0DAA0D;IAC1D,IAAI,aAAa,kBAAkB,YAAY,AAAC,CAAA,QAAQ,QAAO,IAAM,CAAA,WAAW,QAAO,IAAK,GAAG;IAE/F,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;wBACN;YACA,WAAW,gBAAgB,CAAC,iBAAiB;6BAC7C;QACF;IACF;IAEA,qBACE,0DAAC;QAAK,GAAG,gBAAgB;QAAG,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;qBACpE,0DAAC,CAAA,GAAA,yCAAY,AAAD,EAAE,QAAQ;QAAC,OAAO;YAAC,GAAG,UAAU;YAAE,KAAK;YAAU,aAAa;QAAM;OAC7E,YAAY,QAAQ;AAI7B;AAEA;;;CAGC,GACD,MAAM,0DAAe,CAAA,GAAA,uBAAS,EAAE;;;;AC/EhC;;;;;;;;;;CAUC,GAED;;;;;;;AAuFO,MAAM,0DAAoB,CAAA,GAAA,0BAAY,EAAiD,IAAI;AAClG,IAAI,2DAAuB,CAAA,GAAA,0BAAY,EAA0B,IAAI;AAErE,SAAS,iCAAW,KAAsB,EAAE,GAAiC,EAAE;IAC7E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,QAAQ,CAAA,GAAA,sCAAiB,EAAE;IAC/B,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,mBAAC,gBAAe,cAAE,WAAU,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAC,GAAG,CAAA,GAAA,8BAAY,EAAE;QACrF,GAAG,KAAK;eACR;IACF,GAAG;IAEH,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;YACN,aAAa,MAAM,WAAW,IAAI;YAClC,YAAY,MAAM,UAAU;YAC5B,YAAY,MAAM,UAAU;YAC5B,YAAY,MAAM,UAAU;YAC5B,iBAAiB,MAAM,eAAe;QACxC;QACA,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QAAK,GAAG,eAAe;QAAG,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;qBACnE,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC;gBAAsB;aAAM;YAC7B;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;OACA,YAAY,QAAQ;AAI7B;AAEA,SAAS,4BAAM,KAAiB,EAAE,GAAmC,EAAE;IACrE,IAAI,QAAQ,CAAA,GAAA,sCAAK,AAAD,EAAE,UAAU,CAAC;IAC7B,IAAI,SAAS,CAAA,GAAA,kCAAW,EAAE;IAC1B,IAAI,cAAC,WAAU,cAAE,WAAU,cAAE,WAAU,EAAE,WAAW,kBAAiB,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE,OAAO,OAAO;IAChG,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,sBAAsB,cAAc,MAAM,UAAU;IAExD,qFAAqF;IACrF,qDAAqD;IACrD,IAAI,CAAC,WAAW,WAAW,GAAG,CAAA,GAAA,qBAAO,EAAE,KAAK;IAC5C,IAAI,cAAC,WAAU,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QAC1B,YAAY;QACZ,cAAa,CAAC,EAAE;YACd,IAAI,EAAE,WAAW,KAAK,YACpB,WAAW,IAAI;QAEnB;QACA,YAAW,CAAC,EAAE;YACZ,IAAI,EAAE,WAAW,KAAK,YACpB,WAAW,KAAK;QAEpB;IACF;IAEA,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QACrC,YAAY;IACd;IAEA,IAAI,UAAU,sBAAsB,KAAK,GAAI,aAAa,iBAAkB;IAE5E,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;wBACN;YACA,WAAW;uBACX;uBACA;4BACA;wBACA;YACA,YAAY,MAAM,UAAU;YAC5B,iBAAiB,MAAM,eAAe;YACtC,YAAY,MAAM,UAAU;QAC9B;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,gCAAS,EAAE,YAAY,YAAY,YAAY;QACnD,iBAAe,cAAc;QAC7B,gBAAc,WAAW;QACzB,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;QAC7B,iBAAe,MAAM,UAAU,IAAI;QACnC,yBAAuB,MAAM,eAAe,IAAI;QAChD,iBAAe,MAAM,UAAU,IAAI;qBACnC,0DAAC,CAAA,GAAA,+BAAc,AAAD,uBACZ,0DAAC;QAAO,GAAG,UAAU;QAAG,GAAG,UAAU;QAAE,KAAK;SAE7C,YAAY,QAAQ;AAG3B;AAEA;;CAEC,GACD,MAAM,0DAAc,CAAA,GAAA,uBAAS,EAAE;AAE/B;;CAEC,GACD,MAAM,0DAAS,CAAA,GAAA,uBAAS,EAAE;;;ACxN1B;;;;;;;;;;CAUC,GAED;;;;;;;;AAmBO,MAAM,0DAAqB,CAAA,GAAA,0BAAY,EAAkD,IAAI;AAEpG,SAAS,kCAAY,KAAuB,EAAE,GAAiC,EAAE;IAC/E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB,IAAI;IAC5C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,QAAQ,CAAA,GAAA,uCAAkB,EAAE;IAChC,IAAI,cAAC,WAAU,cAAE,WAAU,oBAAE,iBAAgB,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAC,GAAG,CAAA,GAAA,+BAAa,EAAE;QACnG,GAAG,KAAK;eACR;IACF,GAAG,OAAO;IAEV,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QACE,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,cAAY,MAAM,KAAK,KAAK,MAAM;qBAClC,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAY;gBAAG;aAAiB;YACjC;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;OACA,YAAY,QAAQ;AAI7B;AAEA;;CAEC,GACD,MAAM,0DAAe,CAAA,GAAA,uBAAS,EAAE;;;AC5EhC;;;;;;;;;;CAUC,GAED;;;;;;;;;;;;AAoBO,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAAkD,IAAI;AAC/F,MAAM,4DAAwB,CAAA,GAAA,0BAAY,EAA6B,IAAI;AAE3E,SAAS,6BAAyB,KAAqB,EAAE,GAAiC,EAAE;IAC1F,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,CAAC,cAAc,gBAAgB,GAAG,CAAA,GAAA,qBAAQ,AAAD,EAAqB;QAAC,UAAU,EAAE;IAAA;QAGtE;IADT,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;QACvC,OAAO,CAAA,eAAA,MAAM,KAAK,cAAX,0BAAA,eAAe,aAAa,KAAK;QACxC,UAAU,aAAa,QAAQ;IACjC;IACA,IAAI,QAAQ,CAAA,GAAA,kCAAa,EAAE;QACzB,GAAG,KAAK;oBACR;QACA,UAAU;IACZ;IAEA,8CAA8C;IAC9C,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAqB,IAAI;IAC9C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cACF,WAAU,gBACV,aAAY,cACZ,WAAU,aACV,UAAS,oBACT,iBAAgB,qBAChB,kBAAiB,EAClB,GAAG,CAAA,GAAA,0BAAQ,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK,GAAG,OAAO;IAExC,uCAAuC;IACvC,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,qBAAO,EAAiB,IAAI;IAChE,IAAI,WAAW,CAAA,GAAA,wBAAU,EAAE,IAAM;QAC/B,IAAI,UAAU,OAAO,EACnB,eAAe,UAAU,OAAO,CAAC,WAAW,GAAG;IAEnD,GAAG;QAAC;KAAU;IAEd,CAAA,GAAA,uCAAiB,AAAD,EAAE;QAChB,KAAK;QACL,UAAU;IACZ;IAEA,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC;gBAAuB;2BAAC;gCAAO;gBAAU;aAAE;YAC5C;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;oBAAU,aAAa;gBAAM;aAAE;YACnE;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBAAC,GAAG,YAAY;oBAAE,KAAK;oBAAW,WAAW,MAAM,MAAM;gBAAA;aAAE;YAC3E;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BACf;oBACA,YAAY;oBACZ,kBAAkB,IAAI;oBACtB,WAAW;oBACX,OAAO;wBAAC,mBAAmB;oBAAW;gBACxC;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAa;gBAAG;2BAAC;oBAAO,CAAC,CAAA,GAAA,yCAAkB,AAAD,EAAE,EAAE;oBAAiB,GAAG,SAAS;gBAAA;aAAE;YAC9E;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;qBACD,0DAAC;QAAK,GAAG,WAAW;QAAE,KAAK;QAAK,MAAM,MAAM,IAAI;OAC7C,MAAM,QAAQ,GAEhB,sBACD,0DAAC,CAAA,GAAA,6BAAY,AAAD;QACV,OAAO;QACP,YAAY;QACZ,OAAO;QACP,MAAM,MAAM,IAAI;;AAGxB;AAEA;;CAEC,GACD,MAAM,4CAAU,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAiB/C,SAAS,kCAA8B,KAA0B,EAAE,GAAkC,EAAE;QAEtF,qBAsBG,sBACA;IAxBlB,IAAI,SAAC,MAAK,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACrC,IAAI,WAAW,CAAA,sBAAA,MAAM,YAAY,cAAlB,iCAAA,KAAA,IAAA,oBAAoB,QAAQ;IAC3C,IAAI,OAAO,aAAa,YAAY;QAClC,uFAAuF;QACvF,IAAI,KAAK;QACT,WAAW,GAAG;YACZ,WAAW,KAAK;YAChB,WAAW,KAAK;YAChB,YAAY,KAAK;YACjB,WAAW,KAAK;YAChB,gBAAgB,KAAK;YACrB,YAAY,KAAK;YACjB,eAAe;YACf,mBAAmB;QACrB;IACF,CAAC;QAQiB,2BACA;IAPlB,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,uBAAuB;QACvB,iBAAiB,YAAY;QAC7B,kBAAkB;QAClB,QAAQ;YACN,cAAc,CAAA,4BAAA,CAAA,uBAAA,MAAM,YAAY,cAAlB,kCAAA,KAAA,IAAA,qBAAoB,KAAK,cAAzB,uCAAA,4BAAkC,IAAI;YACpD,cAAc,CAAA,gCAAA,CAAA,uBAAA,MAAM,YAAY,cAAlB,kCAAA,KAAA,IAAA,qBAAoB,SAAS,cAA7B,2CAAA,gCAAiC,IAAI;YACnD,eAAe,CAAC,MAAM,YAAY;QACpC;IACF;IAEA,qBACE,0DAAC;QAAK,KAAK;QAAM,GAAG,UAAU;QAAG,GAAG,WAAW;QAAE,oBAAkB,CAAC,MAAM,YAAY,IAAI;qBAExF,0DAAC,CAAA,GAAA,yCAAW,AAAD,EAAE,QAAQ;QAAC,OAAO;OAC1B,YAAY,QAAQ;AAI7B;AAEA;;;CAGC,GACD,MAAM,4CAAe,AAAC,CAAA,GAAA,uBAAS,EAAqB;;;;AClLpD;;;;;;;;;;CAUC,GAED;;;;;;AAsBO,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAA6C,IAAI;AAC1F,MAAM,4DAAwB,CAAA,GAAA,0BAAY,EAA6B,IAAI;AAe3E,SAAS,6BAAoC,KAAqB,EAAE,GAAiC,EAAE;IACrG,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC1C,IAAI,kBAAkB,CAAA,GAAA,mCAAkB,AAAD,EAAE,MAAM,aAAa;IAC5D,IAAI,QAAQ,CAAA,GAAA,kCAAa,EAAE;QAAC,GAAG,KAAK;yBAAE;IAAe;IACrD,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cACF,WAAU,cACV,WAAU,cACV,WAAU,eACV,YAAW,EACZ,GAAG,CAAA,GAAA,0BAAQ,EAAE;QAAC,GAAG,KAAK;eAAE;IAAK,GAAG,OAAO;IAExC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;QACR,kBAAkB;IACpB;IAEA,qBACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC;gBAAuB;2BAAC;gCAAO;8BAAY;iCAAU;gBAAW;aAAE;YACnE;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;SAC/C;qBACD,0DAAC;QACE,GAAG,UAAU;QACb,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,oBAAkB,MAAM,WAAW;QACnC,iBAAe,MAAM,UAAU,IAAI;;AAG3C;AAEA;;CAEC,GACD,MAAM,4CAAU,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAK/C,SAAS,mCAAa,YAAC,SAAQ,SAAE,MAAK,aAAE,UAAS,EAAoB,EAAE,GAAoC,EAAE;IAC3G,IAAI,SAAC,MAAK,eAAE,YAAW,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACtC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;mBAC/B;eACA;kBACA;QACA,iBAAiB,MAAM,kBAAkB,CAAC;QAC1C,kBAAkB;QAClB,QAAQ;IACV;IAEA,qBAAO,0DAAC;QAAQ,GAAG,WAAW;QAAG,GAAG,WAAW;QAAE,KAAK;;AACxD;AAEA;;CAEC,GACD,MAAM,0DAAgB,CAAA,GAAA,uBAAS,EAAE;AAKjC,SAAS,kCAAY,KAAuB,EAAE,GAAiC,EAAE;IAC/E,IAAI,SAAC,MAAK,cAAE,WAAU,YAAE,SAAQ,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IAC/C,IAAI,SAAS,CAAA,GAAA,+BAAQ,EAAE,KAAK;IAC5B,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;IACV;IAEA,qBAAO,0DAAC;QAAK,GAAG,UAAU;QAAG,GAAG,WAAW;QAAE,KAAK;;AACpD;AAEA;;CAEC,GACD,MAAM,0DAAe,CAAA,GAAA,uBAAS,EAAE;AAmChC,SAAS,kCAAY,KAAuB,EAAE,GAAiC,EAAE;IAC/E,IAAI,SAAC,MAAK,YAAE,SAAQ,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACnC,IAAI,SAAC,QAAQ,IAAE,GAAG;IAClB,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB,IAAI;IAC5C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cAAC,WAAU,cAAE,WAAU,cAAE,WAAU,cAAE,WAAU,aAAE,UAAS,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,+BAAa,EAAE;QAC3F,GAAG,KAAK;eACR;kBACA;kBACA;eACA;IACF,GAAG;IAEH,IAAI,cAAC,WAAU,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IAC9C,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAO,EAAE,CAAC;IAExC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;mBAAC;uBAAO;wBAAW;uBAAY;4BAAW;wBAAgB;QAAU;IAC9E;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,YAAY,WAAW;QACrC,GAAG,WAAW;QACf,KAAK;QACL,OAAO;YAAC,GAAG,WAAW,KAAK;YAAE,GAAG,YAAY,KAAK;QAAA;QACjD,gBAAc,aAAa;QAC3B,iBAAe,cAAc;QAC7B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;qBAC7B,0DAAC,CAAA,GAAA,+BAAc,AAAD,uBACZ,0DAAC;QAAM,KAAK;QAAW,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,YAAY,WAAW;uBAE9D,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;SAC/C;OACA,YAAY,QAAQ;AAI7B;AAEA;;CAEC,GACD,MAAM,0DAAe,CAAA,GAAA,uBAAS,EAAE;;;ACvNhC;;;;;;;;;;CAUC,GAED;;;;AA6CO,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAA+C,IAAI;AAE5F,SAAS,6BAAO,KAAkB,EAAE,GAAmC,EAAE;IACvE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,QAAQ,CAAA,GAAA,kCAAa,EAAE;IAC3B,IAAI,cAAC,WAAU,cAAE,WAAU,cAAE,WAAU,cAAE,WAAU,EAAE,WAAW,kBAAiB,EAAC,GAAG,CAAA,GAAA,0BAAS,AAAD,EAAE,OAAO,OAAO;IAC7G,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,wBAAwB,MAAM,UAAU,IAAI,MAAM,UAAU;IAEhE,mFAAmF;IACnF,qDAAqD;IACrD,IAAI,CAAC,WAAW,WAAW,GAAG,CAAA,GAAA,qBAAO,EAAE,KAAK;IAC5C,IAAI,cAAC,WAAU,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QAC1B,YAAY;QACZ,cAAa,CAAC,EAAE;YACd,IAAI,EAAE,WAAW,KAAK,YACpB,WAAW,IAAI;QAEnB;QACA,YAAW,CAAC,EAAE;YACZ,IAAI,EAAE,WAAW,KAAK,YACpB,WAAW,KAAK;QAEpB;IACF;IAEA,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QACrC,YAAY;IACd;IAEA,IAAI,UAAU,wBAAwB,KAAK,GAAI,aAAa,iBAAkB;IAE9E,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;wBACN;YACA,WAAW;uBACX;uBACA;4BACA;wBACA;wBACA;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,YAAY,YAAY,YAAY;QACnD,MAAM,MAAM,IAAI;QAChB,iBAAe,cAAc;QAC7B,gBAAc,WAAW;QACzB,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;QAC7B,iBAAe,cAAc;qBAC7B,0DAAC,CAAA,GAAA,+BAAc,AAAD,uBACZ,0DAAC;QAAO,GAAG,UAAU;QAAG,GAAG,UAAU;QAAE,KAAK;SAE7C,YAAY,QAAQ;AAG3B;AAEA;;CAEC,GACD,MAAM,0DAAU,CAAA,GAAA,uBAAS,EAAE;;;AC7H3B;;;;;;;;;;;IAuFI,yCAAA,OAAO,QAAQ;AAzEnB,MAAM,8CAA2B,CAAA,GAAA,yCAAc,AAAD;IAQ5C,QAAQ,IAAkB,EAAE;QAC1B,KAAK,CAAC,OAAO,CAAC;QAEd,IAAI,CAAC,iBAAL,IAAI,CAAC,eAAiB,KAAK,IAAI,KAAK;QACpC,IAAI,KAAK,IAAI,KAAK,eAChB,IAAI,CAAC,IAAI,GAAG;QAGd,IAAI,KAAK,IAAI,KAAK,aAChB,IAAI,CAAC,IAAI,GAAG;IAEhB;IAEA,OAAO,QAAa,EAAE,OAAY,EAAE;QAClC,IAAI,CAAC,aAAa;QAClB,KAAK,CAAC,MAAM,CAAC,UAAU;IACzB;IAEQ,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EACpB;QAGF,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,GAAG,EAAE;QAEjB,IAAI,eAAe,IAAI;QACvB,IAAI,QAAQ,CAAC,OAAkB;YAC7B,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,aAAa,GAAG,CAAC,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,KAAK,aAAa,EAAE;wBACvB,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;wBAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;wBAElB,IAAI,KAAK,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,GAAG;oBAEzC,CAAC;oBACD,KAAM;YACV;YACA,KAAK,IAAI,SAAS,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,EACzC,MAAM;QAEV;QAEA,KAAK,IAAI,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC7C,MAAM;QAGR,IAAI,CAAC,UAAU,GAAG,CAAA,GAAA,wCAAe,AAAD,EAAE,cAAc,IAAI,CAAC,OAAO;QAC5D,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAC/D,MAAM,IAAI,MAAM,+EAA+E;IAEnG;IAEA,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;IAC5B;IAEA,IAAI,OAAO;QACT,OAAO;eAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAAE;IAC7C;IAEA,CAAC,CAAC,uCAAgB,GAAG;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;IACvC;IAEA,IAAI,OAAO;QACT,OAAO;eAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAAE,CAAC,MAAM;IACpD;IAEA,cAAc;YACL;QAAP,OAAO,CAAA,IAAA;eAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAAE,CAAC,EAAE,cAAvC,eAAA,KAAA,IAAA,EAAyC,GAAG;IACrD;IAEA,aAAa;YAEJ;QADP,IAAI,OAAO;eAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAAE;QAC/C,OAAO,CAAA,SAAA,IAAI,CAAC,KAAK,MAAM,GAAG,EAAE,cAArB,oBAAA,KAAA,IAAA,OAAuB,GAAG;IACnC;IAEA,YAAY,GAAQ,EAAE;QACpB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;YAEf;QADT,IAAI,CAAA,iBAAA,kBAAA,KAAA,IAAA,KAAM,IAAI,AAAD,MAAM,UACjB,OAAO,CAAA,gBAAA,KAAK,OAAO,cAAZ,2BAAA,gBAAgB,IAAI;QAG7B,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B;IAEA,aAAa,GAAQ,EAAE;YAOJ;QANjB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;YAEf;QADT,IAAI,CAAA,iBAAA,kBAAA,KAAA,IAAA,KAAM,IAAI,AAAD,MAAM,UACjB,OAAO,CAAA,gBAAA,KAAK,OAAO,cAAZ,2BAAA,gBAAgB,IAAI;QAG7B,IAAI,IAAI,KAAK,CAAC,YAAY,CAAC;QAC3B,IAAI,KAAK,IAAI,IAAI,CAAA,CAAA,gBAAA,IAAI,CAAC,OAAO,CAAC,gBAAb,2BAAA,KAAA,IAAA,cAAiB,IAAI,AAAD,MAAM,aACzC,OAAO,IAAI;QAGb,OAAO;IACT;IAEA,YAAY,GAAQ,EAAqB;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAChB,KAAK,IAAI,OAAO,IAAI,CAAC,UAAU,CAAE;YAC/B,IAAI,IAAI,GAAG,KAAK,KACd,OAAO,IAAI,UAAU;QAEzB;QAGF,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B;IAEA,QAAQ;QACN,IAAI,aAAa,KAAK,CAAC,KAAK;QAC5B,WAAW,UAAU,GAAG,IAAI,CAAC,UAAU;QACvC,WAAW,OAAO,GAAG,IAAI,CAAC,OAAO;QACjC,WAAW,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;QACzD,WAAW,IAAI,GAAG,IAAI,CAAC,IAAI;QAC3B,WAAW,IAAI,GAAG,IAAI,CAAC,IAAI;QAC3B,OAAO;IACT;IAEA,aAAa,GAAQ,EAAU;QAC7B,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,KACH,OAAO;QAGT,wCAAwC;QACxC,IAAI,IAAI,SAAS,EACf,OAAO,IAAI,SAAS;QAGtB,gEAAgE;QAChE,IAAI,sBAAsB,IAAI,CAAC,mBAAmB;QAClD,IAAI,OAAiB,EAAE;QACvB,KAAK,IAAI,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAM;YACtC,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAE;YACtC,IAAI,oBAAoB,GAAG,CAAC,OAAO,GAAG,KAAK,KAAK,SAAS,EACvD,KAAK,IAAI,CAAC,KAAK,SAAS;YAG1B,IAAI,KAAK,MAAM,KAAK,oBAAoB,IAAI,EAC1C,KAAM;QAEV;QAEA,OAAO,KAAK,IAAI,CAAC;IACnB;;;QAhKA,4EAAA,cAA4B,EAAE;QAC9B,4EAAA,WAAyB,EAAE;QAC3B,4EAAA,uBAAgC,IAAI;QACpC,4EAAA,QAAqB,IAAI,CAAA,GAAA,yCAAQ,EAAE,eAAe;QAClD,4EAAA,QAAqB,IAAI,CAAA,GAAA,yCAAQ,EAAE,aAAa;QAChD,4EAAA,gBAAe,IAAI;;AA4JrB;AASO,MAAM,0DAAe,CAAA,GAAA,0BAAY,EAA8C,IAAI;AAC1F,MAAM,2DAAuB,CAAA,GAAA,0BAAY,EAAoC,IAAI;AAyCjF,SAAS,4BAAM,KAAiB,EAAE,GAAmC,EAAE;IACrE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,oBAAoB,CAAA,GAAA,oBAAM,EAAE,IAAM,IAAI,yCAAwB,EAAE;IACpE,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAY,EAAE,OAAO;IAChD,IAAI,QAAQ,CAAA,GAAA,iCAAY,EAAE;QACxB,GAAG,KAAK;oBACR;QACA,UAAU;IACZ;IAEA,IAAI,aAAC,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE,OAAO,OAAO;IAEzC,IAAI,oBAAC,iBAAgB,EAAC,GAAG;IACzB,IAAI,mBAAmB,MAAM,gBAAgB;IAC7C,IAAI,kBAAkB,CAAC,CAAC,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,2BAA2B,AAAD;IACpE,IAAI,kBAAkB,CAAC,CAAC,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,2BAA2B,AAAD;IACpE,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CAAC;IAEf,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CAAC;IAGf,IAAI,YAAkD;IACtD,IAAI,YAAkD;IACtD,IAAI,sBAA6D;IACjE,IAAI,mBAAmB,KAAK;IAC5B,IAAI,cAAkC,IAAI;IAC1C,IAAI,UAAU,CAAA,GAAA,mBAAK,EAAuB,IAAI;IAE9C,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;wBACxD;8BACA;YACA,SAAS,iBAAiB,iBAAiB,GAAG,UAAU,SAAS;QACnE;QACA,iBAAiB,sBAAsB,CAAE,CAAC,GAAG,WAAW;QAExD,IAAI,cAAc,iBAAiB,WAAW;QAC9C,cAAc,iBAAiB,iBAAiB,iBAC5C,0DAAC;YAAY,KAAK;WAAU,iBAAiB,iBAAiB,IAC9D,IAAI;IACV,CAAC;IAED,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;wBACxD;8BACA;QACF;QAEA,IAAI,mBAAmB,IAAI,CAAA,GAAA,qCAAmB,EAC5C,YACA,iBAAiB,gBAAgB,KAAK,cAAc,IAAI,QAAQ,iBAAiB,YAAY,EAC7F;QAEF,IAAI,qBAAqB,iBAAiB,kBAAkB,IAAI,IAAI,iBAAiB,sBAAsB,CAAC,YAAY;QACxH,sBAAsB,iBAAiB,sBAAsB,CAAE;8BAC7D;gCACA;QACF,GAAG,WAAW;QAEd,mBAAmB,UAAU,YAAY,CAAC;YAAC,MAAM;QAAM;IACzD,CAAC;IAED,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,WAAW,MAAM,SAAS;QAC1B,OAAO,MAAM,KAAK;QAClB,kBAAkB;QAClB,QAAQ;YACN,cAAc;uBACd;4BACA;QACF;IACF;IAEA,IAAI,qBAAC,kBAAiB,iBAAE,cAAa,0BAAE,uBAAsB,EAAC,GAAG,MAAM,gBAAgB;IACvF,IAAI,MAAM,CAAA,GAAA,oBAAO,AAAD,EAAE,IAAO,CAAA;YACvB,mBAAmB,kBAAkB,SAAS,IAAI,GAAG,iBAAiB;2BACtE;oCACA;YACA,gBAAgB;QAClB,CAAA,GAAI;QAAC;QAAmB;QAAe;QAAwB;KAAgB;IAE/E,qBACE,oIACE,0DAAC,CAAA,GAAA,yCAAQ,AAAD;QACN,QAAQ;YACN;gBAAC;gBAAsB;2BAAC;sCAAO;+BAAkB;+BAAW;gBAAS;aAAE;YACvE;gBAAC,CAAA,GAAA,yCAAmB;gBAAG;oBAAC,QAAQ;gBAAkB;aAAE;SACrD;qBACD,0DAAC,CAAA,GAAA,2BAAU,AAAD,uBACR,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACxB,GAAG,WAAW;QACd,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,WAAW,YAAY,gCAAA,iCAAA,KAAA,IAAA,oBAAqB,eAAe,CAAC;QAC3E,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,oBAAkB,oBAAoB;QACtC,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;qBACtC,0DAAC;QAAoB,YAAY;sBACjC,0DAAC;QAAkB,YAAY;QAAY,aAAa;UAG3D,4BAEH,0DAAC,0CAAoB,QAAQ;QAAC,OAAO;OAClC;AAIT;AAEA;;;CAGC,GACD,MAAM,0DAAS,CAAA,GAAA,uBAAS,EAAE;AAc1B,MAAM,0DAAsB,CAAA,GAAA,0BAAY,EAAmC,IAAI;AAKxE,SAAS,4CAA4C;IAC1D,OAAO,CAAA,GAAA,uBAAS,EAAE;AACpB;AAYO,SAAS,0CAA8B,KAA0B,EAAE;IACxE,IAAI,WAAW,CAAA,GAAA,yCAAoB,EAAE;QACnC,UAAU,MAAM,QAAQ;QACxB,OAAO,MAAM,OAAO;IACtB;IAEA,IAAI,WAAW,OAAO,MAAM,QAAQ,KAAK,aAAa,MAAM,QAAQ,GAAG,IAAI;IAC3E,qBACE,0DAAC,CAAA,GAAA,yCAAwB,EAAE,QAAQ;QAAC,OAAO;qBAEzC,0DAAC;QAAY,UAAU;OAAQ;AAGrC;AA0CO,SAAS,0CAAyB,KAAqB,EAAe;IAC3E,IAAI,SAAS,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,yCAAwB;IAChD,IAAI,eAAe,OAAO,WAAW,aAAa,SAAS,MAAM,QAAQ;IACzE,IAAI,WAAW,CAAA,GAAA,yCAAoB,EAAE;QACnC,UAAU,AAAC,MAAM,KAAK,IAAI,MAAM,YAAY,GAAI,eAAe,IAAI;QACnE,OAAO,MAAM,YAAY;IAC3B;QAG8C;IAD9C,aAAa;IACb,qBAAO,0DAAC;QAAO,UAAU;YAAC,GAAG,KAAK;YAAE,UAAU,CAAA,eAAA,MAAM,KAAK,cAAX,0BAAA,eAAe,MAAM,QAAQ;QAAA;OAAI;AACjF;AAkBO,SAAS,0CAA4B,KAAwB,EAAE;IACpE,IAAI,WAAW,CAAA,GAAA,yCAAoB,EAAE;IAErC,aAAa;IACb,qBAAO,0DAAC;QAAU,UAAU;OAAQ;AACtC;AAiBO,SAAS,0CAAsB,KAAkB,EAAE;IACxD,IAAI,WAAW,CAAA,GAAA,yCAAoB,EAAE;QACnC,UAAU,MAAM,QAAQ;QACxB,OAAO,MAAM,OAAO;QACpB,SAAS,MAAM,EAAE;IACnB;IAEA,IAAI,MAAM,CAAA,GAAA,oBAAO,AAAD,EAAE,IAAO,CAAA;YAAC,SAAS,MAAM,EAAE;QAAA,CAAA,GAAI;QAAC,MAAM,EAAE;KAAC;IAEzD,OACE,aAAa;kBACb,0DAAC;QAAK,UAAU;qBACd,0DAAC,CAAA,GAAA,yCAAiB,AAAD,EAAE,QAAQ;QAAC,OAAO;OAChC;AAKT;AA+BO,SAAS,0CAAK,KAAgB,EAAe;IAClD,aAAa;IACb,qBAAO,0DAAC;QAAK,UAAU;YAAC,GAAG,KAAK;YAAE,UAAU,MAAM,QAAQ;QAAA;;AAC5D;AAEA,SAAS,0CAAuB,cAAC,WAAU,EAAmC,EAAE;IAC9E,IAAI,aAAa,CAAA,GAAA,yCAAgB,EAAE;QACjC,OAAO,WAAW,UAAU;QAC5B,UAAU,CAAA,GAAA,wBAAW,AAAD,EAAE,CAAC,OAAkB;YACvC,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAe,MAAM;;gBAC/B;oBACE,MAAM,IAAI,MAAM,2CAA2C,KAAK,IAAI,EAAE;YAC1E;QACF,GAAG,EAAE;IACP;IAEA,IAAI,iBAAC,cAAa,EAAC,GAAG,CAAA,GAAA,iCAAgB,AAAD;QAKtB;IAJf,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAa,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC;QACxC,GAAG,aAAa;QACjB,WAAW,CAAA,mCAAA,WAAW,IAAI,CAAC,KAAK,CAAC,SAAS,cAA/B,8CAAA,mCAAmC,wBAAwB;QACtE,OAAO,WAAW,IAAI,CAAC,KAAK,CAAC,KAAK;OACjC;AAGP;AAEA,SAAS,wCAAqB,cAAC,WAAU,eAAE,YAAW,EAAyD,EAAE;IAC/G,IAAI,WAAW,CAAA,GAAA,yCAAgB,EAAE;QAC/B,OAAO,WAAW,IAAI;QACtB,UAAU,CAAA,GAAA,wBAAW,AAAD,EAAE,CAAC,OAAkB;YACvC,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAS,MAAM;;gBACzB;oBACE,MAAM,IAAI,MAAM,yCAAyC,KAAK,IAAI,EAAE;YACxE;QACF,GAAG,EAAE;IACP;IAEA,IAAI,QAA2B,WAAW,IAAI,CAAC,KAAK;IACpD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU;QACV,kBAAkB;QAClB,QAAQ;YACN,SAAS,WAAW,IAAI,KAAK;QAC/B;IACF;IAEA,IAAI;IACJ,IAAI,WAAW,IAAI,KAAK,KAAK,MAAM,gBAAgB,EACjD,2BACE,0DAAC;QAAG,MAAK;qBACP,0DAAC;QAAG,MAAK;QAAW,SAAS,WAAW,WAAW;OAChD,MAAM,gBAAgB;IAM/B,IAAI,iBAAC,cAAa,EAAC,GAAG,CAAA,GAAA,iCAAgB,AAAD;IACrC,qBACE,0DAAC;QACE,GAAG,WAAW;QACd,GAAG,aAAa;QACjB,cAAY,WAAW,IAAI,KAAK,KAAK;OACpC,6BAAe,0DAAC,gDAChB,UACA;AAGP;AAEA,SAAS,qCAAkB,QAAC,KAAI,EAAsB,EAAE;IACtD,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAuB,IAAI;IAC1C,IAAI,SAAC,MAAK,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACzB,IAAI,YAAC,SAAQ,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD,EAAE;QAAC,MAAM;IAAI,GAAG,OAAO;IACxD,IAAI,iBAAC,cAAa,EAAC,GAAG,CAAA,GAAA,0CAAyB,AAAD,EAAE;IAEhD,IAAI,QAAQ,CAAA,GAAA,yCAAgB,EAAE;QAC5B,OAAO,MAAM,UAAU,CAAC,WAAW,CAAE,KAAK,GAAG;QAC7C,UAAU,CAAC,OAAS;YAClB,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAkB,QAAQ;;gBACpC;oBACE,MAAM,IAAI,MAAM,mCAAmC,KAAK,IAAI,EAAE;YAClE;QACF;IACF;IAEA,qBACE,0DAAC;QAAI,GAAG,QAAQ;QAAE,KAAK;qBACrB,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAc;gBAAG;oBAChB,OAAO;wBACL,WAAW;oBACb;gBACF;aAAE;SACH;OACA;AAIT;AAEA,SAAS,wCAAqB,UAAC,OAAM,EAAwB,EAAE;QAoB1C;IAnBnB,IAAI,MAAM,CAAA,GAAA,mBAAK,EAA8B,IAAI;IACjD,IAAI,SAAC,MAAK,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACzB,IAAI,qBAAC,kBAAiB,EAAC,GAAG,CAAA,GAAA,qCAAoB,AAAD,EAC3C;QAAC,MAAM;IAAM,GACb,OACA;IAEF,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IAEzD,IAAI,QAA8B,OAAO,KAAK;IAC9C,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU,OAAO,QAAQ;QACzB,kBAAkB;QAClB,QAAQ;uBACN;4BACA;YACA,eAAe,OAAO,KAAK,CAAC,aAAa;YACzC,eAAe,CAAA,CAAA,wBAAA,MAAM,cAAc,cAApB,mCAAA,KAAA,IAAA,sBAAsB,MAAM,AAAD,MAAM,OAAO,GAAG,GACtD,MAAM,cAAc,CAAC,SAAS,GAC9B,SAAS;QACf;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,mBAAmB,WAAW;QAC5C,GAAG,WAAW;QACf,SAAS,OAAO,OAAO;QACvB,KAAK;QACL,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;OACrC,YAAY,QAAQ;AAG3B;AAEA,SAAS,+BAAY,QAAC,KAAI,EAAsB,EAAE;IAChD,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAuB,IAAI;IAC1C,IAAI,SAAC,MAAK,oBAAE,iBAAgB,aAAE,UAAS,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACjE,IAAI,YAAC,SAAQ,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,4BAAW,AAAD,EACpC;QACE,MAAM;QACN,uBAAuB,CAAC,CAAC;IAC3B,GACA,OACA;IAEF,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;QACrC,YAAY,CAAC,OAAO,eAAe,IAAI,CAAC,OAAO,SAAS;IAC1D;IAEA,IAAI,iBAAC,cAAa,EAAC,GAAG,CAAA,GAAA,0CAAyB,AAAD,EAC5C;QAAC,KAAK,KAAK,GAAG;IAAA,GACd;IAGF,IAAI,gBAAiD;IACrD,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QAAC,KAAK,KAAK,GAAG;QAAE,eAAe,IAAI;IAAA,GAAG;IAG3F,IAAI,gBAA+C;IACnD,IAAI,mBAAmB,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAClD,IAAI,uBAAC,oBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD;IAC5C,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAAE;QACjD,QAAQ;YAAC,MAAM;YAAQ,KAAK,KAAK,GAAG;YAAE,cAAc;QAAI;IAC1D,GAAG,WAAW;IAGhB,IAAI,sBAAsB,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,mBAAmB,AAAD,KAAM,CAAA,CAAA,uBAAU,0DAAC,CAAA,GAAA,yCAAa,AAAD;YAAE,QAAQ;UAAS;IAC9G,IAAI,gBAAgB,CAAA,GAAA,mBAAK,EAAqB,IAAI;IAClD,CAAA,GAAA,sBAAS,AAAD,EAAE,IAAM;QACd,IAAI,aAAa,CAAC,cAAc,OAAO,EACrC,QAAQ,IAAI,CAAC;IAEjB,2BAA2B;IAC3B,GAAG,EAAE;IAEL,IAAI,QAAQ,KAAK,KAAK;IACtB,IAAI,aAAa,aAAa,UAAU,UAAU,CAAC,KAAK,GAAG;IAC3D,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,kBAAkB;QAClB,QAAQ;YACN,GAAG,MAAM;uBACT;uBACA;4BACA;YACA,eAAe,MAAM,gBAAgB,CAAC,aAAa;YACnD,mBAAmB,MAAM,gBAAgB,CAAC,iBAAiB;wBAC3D;YACA,cAAc,0BAAA,2BAAA,KAAA,IAAA,cAAe,YAAY;QAC3C;IACF;IAEA,IAAI,QAAQ,CAAA,GAAA,yCAAgB,EAAE;QAC5B,OAAO,MAAM,UAAU,CAAC,WAAW,CAAE,KAAK,GAAG;QAC7C,UAAU,CAAC,OAAwB;YACjC,OAAQ,KAAK,IAAI;gBACf,KAAK;oBACH,qBAAO,0DAAC;wBAAU,MAAM;;gBAC1B;oBACE,MAAM,IAAI,MAAM,mCAAmC,KAAK,IAAI,EAAE;YAClE;QACF;IACF;IAEA,qBACE,sHACG,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,gBAAgB,AAAD,KAChC,oBAAoB;QAAC,MAAM;QAAQ,KAAK,KAAK,GAAG;QAAE,cAAc;IAAQ,IAEzE,iBAAiB,CAAC,cAAc,QAAQ,kBACvC,0DAAC;QAAG,MAAK;QAAM,OAAO;YAAC,QAAQ;QAAC;qBAC9B,0DAAC;QAAG,MAAK;QAAW,SAAS,MAAM,UAAU,CAAC,WAAW;QAAE,OAAO;YAAC,SAAS;QAAC;qBAC3E,0DAAC;QAAI,MAAK;QAAU,GAAG,mBAAmB;QAAG,GAAG,cAAc,kBAAkB;QAAE,KAAK;wBAI7F,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,UAAU,YAAY,YAAY,0BAAA,2BAAA,KAAA,IAAA,cAAe,SAAS,CAAC;QACzE,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,aAAa;QAC3B,gBAAc,OAAO,SAAS,IAAI;QAClC,sBAAoB,kBAAkB;QACtC,gBAAc,OAAO,SAAS,IAAI;QAClC,iBAAe,cAAc;QAC7B,oBAAkB,CAAA,0BAAA,2BAAA,KAAA,IAAA,cAAe,YAAY,AAAD,KAAK;qBACjD,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAc;gBAAG;oBAChB,OAAO;wBACL,WAAW;oBACb;gBACF;aAAE;YACF;gBAAC,CAAA,GAAA,yCAAY;gBAAG;oBACd,OAAO;wBACL,CAAC,CAAA,GAAA,yCAAW,AAAD,EAAE,EAAE,CAAC;wBAChB,MAAM;4BACJ,GAAG,0BAAA,2BAAA,KAAA,IAAA,cAAe,eAAe;4BACjC,KAAK;4BACL,OAAO;gCACL,eAAe;4BACjB;wBACF;oBACF;gBACF;aAAE;SACH;OACA,SAGJ,CAAA,6BAAA,8BAAA,KAAA,IAAA,iBAAkB,gBAAgB,AAAD,KAAK,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK,IAAI,IACnF,oBAAoB;QAAC,MAAM;QAAQ,KAAK,KAAK,GAAG;QAAE,cAAc;IAAO;AAI/E;AAEA,SAAS,gCAAa,QAAC,KAAI,EAAsB,EAAE;IACjD,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAwB,IAAI;IAC3C,IAAI,SAAC,MAAK,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAEpC,aAAa;IACb,KAAK,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;IAElD,IAAI,iBAAC,cAAa,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,6BAAY,AAAD,EAAE;QAC5C,MAAM;QACN,uBAAuB,CAAC,CAAC;IAC3B,GAAG,OAAO;IACV,IAAI,aAAC,UAAS,kBAAE,eAAc,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,6BAAW;IAEzD,IAAI,QAAmB,KAAK,KAAK;IACjC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,kBAAkB;QAClB,QAAQ;uBACN;4BACA;uBACA;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,eAAe,WAAW;QACxC,GAAG,WAAW;QACf,KAAK;QACL,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,gBAAc,aAAa;OAC1B,KAAK,QAAQ;AAGpB;AAEA,SAAS,yCAAmB,KAAyB,EAAE,GAA8B,EAAE;IACrF,MAAM,CAAA,GAAA,kCAAW,EAAE;IACnB,IAAI,SAAC,MAAK,oBAAE,iBAAgB,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACtD,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC3C,IAAI,sBAAC,mBAAkB,YAAE,SAAQ,gBAAE,aAAY,EAAC,GAAG,iBAAkB,gBAAgB,CACnF,OACA,WACA;IAGF,IAAI,uBAAC,oBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD;IAE5C,IAAI,UACF,OAAO,IAAI;IAGb,sDAAsD;IACtD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;0BACN;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,WAAW;QACf,MAAK;QACL,KAAK;QACL,oBAAkB,gBAAgB;qBAClC,0DAAC;QACC,MAAK;QACL,SAAS,MAAM,UAAU,CAAC,WAAW;QACrC,OAAO;YAAC,SAAS;QAAC;qBAClB,0DAAC;QAAK,GAAG,mBAAmB;QAAE,MAAK;QAAU,GAAG,kBAAkB;QAAE,KAAK;;AAIjF;AAEA,SAAS,0CAAoB;IAC3B,IAAI,SAAC,MAAK,oBAAE,iBAAgB,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IACtD,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAkB,IAAI;IACrC,IAAI,sBAAC,mBAAkB,EAAC,GAAG,iBAAkB,gBAAgB,CAAE;QAC7D,QAAQ;YAAC,MAAM;QAAM;IACvB,GAAG,WAAY;IACf,IAAI,eAAe,UAAW,YAAY,CAAC;QAAC,MAAM;IAAM;IACxD,IAAI,uBAAC,oBAAmB,EAAC,GAAG,CAAA,GAAA,kCAAiB,AAAD;IAE5C,IAAI,CAAC,gBAAgB,kBAAkB,CAAC,cAAc,EACpD,OAAO,IAAI;IAGb,qBACE,0DAAC;QACC,MAAK;QACL,eAAa,kBAAkB,CAAC,cAAc;QAC9C,OAAO;YAAC,QAAQ;QAAC;qBACjB,0DAAC;QACC,MAAK;QACL,SAAS,MAAM,UAAU,CAAC,WAAW;QACrC,OAAO;YAAC,SAAS;QAAC;qBAClB,0DAAC;QAAI,MAAK;QAAU,GAAG,mBAAmB;QAAG,GAAG,kBAAkB;QAAE,KAAK;;AAIjF;;;ACp5BA;;;;;;;;;;CAUC,GAED;;;;;;AA2FO,MAAM,0DAAc,CAAA,GAAA,0BAAY,EAA2C,IAAI;AACtF,MAAM,0DAAsB,CAAA,GAAA,0BAAY,EAAmC,IAAI;AAE/E,SAAS,2BAAK,KAAgB,EAAE,GAAiC,EAAE;IACjE,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,eAAC,cAAc,eAAa,GAAG;IACnC,IAAI,CAAC,OAAO,SAAS,GAAG,CAAA,GAAA,qBAAO,EAAgC,IAAI;IAEnE,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;yBACN;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,oBAAkB;qBAClB,0DAAC,0CAAoB,QAAQ;QAAC,OAAO;mBAAC;sBAAO;yBAAU;QAAW;OAC/D,MAAM,QAAQ;AAIvB;AAEA;;CAEC,GACD,MAAM,0DAAQ,CAAA,GAAA,uBAAS,EAAE;AAGzB,SAAS,8BAA0B,KAAsB,EAAE,GAAiC,EAAE;IAC5F,IAAI,YAAC,SAAQ,eAAE,YAAW,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACzC,IAAI,YAAY,CAAA,GAAA,kCAAW,EAAE;IAE7B,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;IACzC,IAAI,QAAQ,CAAA,GAAA,mCAAc,EAAE;QAC1B,GAAG,KAAK;oBACR;QACA,UAAU;IACZ;IAEA,IAAI,gBAAC,aAAY,EAAC,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE;QAC9B,GAAG,KAAK;qBACR;IACF,GAAG,OAAO;IAEV,CAAA,GAAA,sBAAS,AAAD,EAAE,IAAM;QACd,SAAS;IACT,uDAAuD;IACzD,GAAG;QAAC;QAAY,MAAM,WAAW;KAAC;IAElC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,UAAU,IAAI;QACd,kBAAkB;QAClB,QAAQ;yBACN;QACF;IACF;IAEA,qBACE,oIACE,0DAAC;QAAK,GAAG,YAAY;QAAE,KAAK;QAAY,GAAG,WAAW;OACnD;WAAI,MAAM,UAAU;KAAC,CAAC,GAAG,CAAC,CAAC,qBAC1B,0DAAC;YACC,KAAK,KAAK,GAAG;YACb,MAAM;YACN,OAAO;cAGZ;AAGP;AAEA;;;CAGC,GACD,MAAM,4CAAW,AAAC,CAAA,GAAA,uBAAS,EAAqB;AAMzC,SAAS,0CAAI,KAAe,EAAe;IAChD,aAAa;IACb,OAAO,CAAA,GAAA,yCAAG,EAAE;AACd;AAEA,SAAS,+BAAS,QAAC,KAAI,SAAE,MAAK,EAAoD,EAAE;IAClF,IAAI,OAAC,IAAG,EAAC,GAAG;IACZ,IAAI,MAAM,CAAA,GAAA,sCAAK,AAAD,EAAE,MAAM,CAAiB,IAAI;IAC3C,IAAI,YAAC,SAAQ,cAAE,WAAU,cAAE,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,uBAAK,EAAE;aAAC;IAAG,GAAG,OAAO;IACzE,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IACzD,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;oBACrC;IACF;IAEA,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK,KAAK;QACb,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;wBACN;wBACA;uBACA;4BACA;uBACA;uBACA;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,UAAU,YAAY,YAAY,YAAY;QAC7D,KAAK;QACL,sBAAoB,kBAAkB;QACtC,gBAAc,aAAa;QAC3B,gBAAc,aAAa;;AAEjC;AAQO,SAAS,0CAA4B,KAAwB,EAAE;IACpE,MAAM,SAAC,MAAK,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC3B,IAAI,UAAC,OAAM,cAAE,WAAU,EAAC,GAAG,CAAA,GAAA,yCAAa,AAAD,EAAE;IACzC,MAAM,eAAe,CAAA,kBAAA,mBAAA,KAAA,IAAA,MAAO,WAAW,AAAD,KAAK,IAAI,GAC3C,WAAW,OAAO,CAAC,MAAO,WAAW,IACrC,IAAI;IAER,qBACE,sHACG,8BAAgB,0DAAC;QAAiB,MAAM;QACxC;AAGP;AAKO,SAAS,0CAAS,KAAoB,EAAe;IAC1D,OAAO,CAAA,GAAA,yCAAG,EAAE;AACd;AAEA,SAAS,uCAAiB,QAAC,KAAI,EAAuB,EAAE;IACtD,MAAM,SAAC,MAAK,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IAC3B,IAAI,MAAM,CAAA,GAAA,sCAAK,AAAD,EAAE,MAAM,CAAiB,IAAI;IAC3C,IAAI,iBAAC,cAAa,EAAC,GAAG,CAAA,GAAA,4BAAU,EAAE,KAAK,KAAK,EAAE,OAAQ;IACtD,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW;IAEzD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK,KAAK;QACb,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;uBACN;4BACA;QACF;IACF;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,eAAe,YAAY,YAAY;QACtD,KAAK;QACL,sBAAoB,kBAAkB;;AAE5C;;;;ACzRA;;;;;;;;;;CAUC,GAED;;;;;;;AAUO,MAAM,0DAAmB,CAAA,GAAA,0BAAY,EAAgD,IAAI;AAEhG,SAAS,gCAAU,KAAqB,EAAE,GAAiC,EAAE;IAC3E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB,IAAI;IAC5C,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,yCAAO,AAAD;IAC9B,IAAI,cAAC,WAAU,cAAE,WAAU,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;QAC/E,GAAG,KAAK;eACR;IACF,GAAG;QAOY;IALf,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,oCAAc,AAAD,EAAE,MAAM;QACzB,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,WAAW,CAAA,mBAAA,MAAM,SAAS,cAAf,8BAAA,mBAAmB,sBAAsB;QACpD,OAAO,MAAM,KAAK;qBAClB,0DAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;gBAAQ;aAAE;YAC9C;gBAAC,CAAA,GAAA,yCAAU;gBAAG;oBACZ,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aAAE;SACH;OACA,MAAM,QAAQ;AAIvB;AAEA;;CAEC,GACD,MAAM,0DAAa,CAAA,GAAA,uBAAS,EAAE;;;AC5D9B;;;;;;;;;;CAUC,GAED;;;;AAgBO,MAAM,0DAAsB,CAAA,GAAA,0BAAY,EAAsD,CAAC;AAEtG,SAAS,mCAAa,KAAwB,EAAE,GAAoC,EAAE;IACpF,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,QAAQ,CAAA,GAAA,kCAAa,EAAE;IAC3B,IAAI,eAAC,YAAW,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,gCAAc,EAAE,OAAO,OAAO;IAC7D,IAAI,cAAC,WAAU,aAAE,UAAS,kBAAE,eAAc,EAAC,GAAG,CAAA,GAAA,6BAAW,EAAE;IAC3D,IAAI,cAAC,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,yBAAQ,AAAD,EAAE;IACvC,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;uBAAC;uBAAW;uBAAW;YAAW,YAAY,MAAM,UAAU;4BAAE;YAAgB,YAAY,MAAM,UAAU,IAAI,KAAK;QAAA;QAC7H,kBAAkB;IACpB;IAEA,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAS,EAAE,aAAa,YAAY,WAAW;QAClD,GAAG,WAAW;QACf,KAAK;QACL,MAAM,MAAM,IAAI;QAChB,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;;AAE5C;AAEA;;CAEC,GACD,MAAM,0DAAgB,CAAA,GAAA,uBAAS,EAAE;;;ACzDjC;;;;;;;;;;CAUC,GAED;;;;;;;AAuCA,MAAM,6DAAyB,CAAA,GAAA,0BAAY,EAA8B,IAAI;AAOtE,SAAS,0CAAe,KAAmC,EAAE;IAClE,IAAI,QAAQ,CAAA,GAAA,0CAAqB,EAAE;IACnC,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAoB,IAAI;IACvC,IAAI,gBAAC,aAAY,gBAAE,aAAY,EAAC,GAAG,CAAA,GAAA,kCAAgB,EAAE,OAAO,OAAO;IAEnE,qBACE,0DAAC,6CAAuB,QAAQ;QAAC,OAAO;mBAAC;YAAO,YAAY;0BAAK;QAAY;qBAC3E,0DAAC,CAAA,GAAA,uCAAgB;QAAG,GAAG,YAAY;QAAE,KAAK;OACvC,MAAM,QAAQ;AAIvB;AAEA,SAAS,8BAAQ,KAAmB,EAAE,GAAiC,EAAE;IACvE,IAAI,SAAC,MAAK,EAAC,GAAG,CAAA,GAAA,uBAAU,AAAD,EAAE;IACzB,IAAI,YAAY,CAAA,GAAA,kCAAW,EAAE;IAC7B,IAAI,YAAY,CAAA,GAAA,yCAAgB,AAAD,EAAE,WAAW,MAAM,MAAM;IACxD,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,WACpB,OAAO,IAAI;IAGb,qBACE,0DAAC,CAAA,GAAA,iCAAe,uBACd,0DAAC;QAAc,GAAG,KAAK;QAAE,YAAY;QAAW,WAAW;;AAGjE;AAEA;;CAEC,GACD,MAAM,0DAAW,CAAA,GAAA,uBAAS,EAAE;AAG5B,SAAS,mCAAa,KAAoF,EAAE;IAC1G,IAAI,SAAC,MAAK,cAAE,WAAU,EAAE,cAAc,oBAAmB,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE;IAExE,IAAI,aAAa,CAAA,GAAA,mBAAK,EAAkB,IAAI;IAC5C,IAAI,gBAAC,aAAY,cAAE,WAAU,aAAE,UAAS,EAAC,GAAG,CAAA,GAAA,mCAAiB,EAAE;QAC7D,WAAW,MAAM,SAAS,IAAI;QAC9B,WAAW;oBACX;QACA,QAAQ,MAAM,MAAM;QACpB,aAAa,MAAM,WAAW;QAC9B,QAAQ,MAAM,MAAM;IACtB;IAEA,IAAI,aAAa,CAAA,GAAA,yCAAiB,AAAD,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,cAAc,CAAA,GAAA,uCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;uBACN;wBACA;YACA,WAAW,MAAM,SAAS;QAC5B;IACF;IAEA,QAAQ,CAAA,GAAA,2BAAU,AAAD,EAAE,OAAO;IAC1B,IAAI,gBAAC,aAAY,EAAC,GAAG,CAAA,GAAA,2BAAS,EAAE,OAAO;IAEvC,qBACE,0DAAC;QACE,GAAG,CAAA,GAAA,2BAAU,AAAD,EAAE,qBAAqB,aAAa;QACjD,KAAK,CAAA,GAAA,+BAAQ,EAAE,YAAY,MAAM,UAAU;QAC1C,GAAG,WAAW;QACf,OAAO;YAAC,GAAG,YAAY,KAAK;YAAE,GAAG,aAAa,KAAK;QAAA;QACnD,kBAAgB;QAChB,iBAAe,cAAc;QAC7B,gBAAc,MAAM,SAAS,IAAI;qBACjC,0DAAC,CAAA,GAAA,yCAAmB,AAAD,EAAE,QAAQ;QAAC,OAAO;wBAAC;uBAAY;QAAS;OACxD,YAAY,QAAQ;AAI7B;;","sources":["packages/react-aria-components/src/index.ts","packages/react-aria-components/src/Breadcrumbs.tsx","packages/react-aria-components/src/Collection.tsx","packages/react-aria-components/src/utils.tsx","packages/react-aria-components/src/Heading.tsx","packages/react-aria-components/src/Link.tsx","packages/react-aria-components/src/Button.tsx","packages/react-aria-components/src/Calendar.tsx","packages/react-aria-components/src/Text.tsx","packages/react-aria-components/src/Checkbox.tsx","packages/react-aria-components/src/Label.tsx","packages/react-aria-components/src/ComboBox.tsx","packages/react-aria-components/src/Input.tsx","packages/react-aria-components/src/ListBox.tsx","packages/react-aria-components/src/useDragAndDrop.tsx","packages/react-aria-components/src/Header.tsx","packages/react-aria-components/src/Separator.tsx","packages/react-aria-components/src/Popover.tsx","packages/react-aria-components/src/OverlayArrow.tsx","packages/react-aria-components/src/DateField.tsx","packages/react-aria-components/src/DatePicker.tsx","packages/react-aria-components/src/Dialog.tsx","packages/react-aria-components/src/Modal.tsx","packages/react-aria-components/src/Group.tsx","packages/react-aria-components/src/GridList.tsx","packages/react-aria-components/src/Keyboard.tsx","packages/react-aria-components/src/Menu.tsx","packages/react-aria-components/src/Meter.tsx","packages/react-aria-components/src/NumberField.tsx","packages/react-aria-components/src/ProgressBar.tsx","packages/react-aria-components/src/RadioGroup.tsx","packages/react-aria-components/src/SearchField.tsx","packages/react-aria-components/src/Select.tsx","packages/react-aria-components/src/Slider.tsx","packages/react-aria-components/src/Switch.tsx","packages/react-aria-components/src/Table.tsx","packages/react-aria-components/src/Tabs.tsx","packages/react-aria-components/src/TextField.tsx","packages/react-aria-components/src/ToggleButton.tsx","packages/react-aria-components/src/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport {Breadcrumbs, BreadcrumbsContext} from './Breadcrumbs';\nexport {Button, ButtonContext} from './Button';\nexport {Calendar, CalendarGrid, CalendarGridHeader, CalendarGridBody, CalendarHeaderCell, CalendarCell, RangeCalendar, CalendarContext, RangeCalendarContext} from './Calendar';\nexport {Checkbox, CheckboxGroup, CheckboxGroupContext, CheckboxContext} from './Checkbox';\nexport {ComboBox, ComboBoxContext} from './ComboBox';\nexport {DateField, DateInput, DateSegment, TimeField, DateFieldContext, TimeFieldContext} from './DateField';\nexport {DatePicker, DateRangePicker, DatePickerContext, DateRangePickerContext} from './DatePicker';\nexport {DialogTrigger, Dialog, DialogContext} from './Dialog';\nexport {GridList, GridListContext} from './GridList';\nexport {Group, GroupContext} from './Group';\nexport {Header} from './Header';\nexport {Heading, HeadingContext} from './Heading';\nexport {Input, InputContext} from './Input';\nexport {Item, Section, Collection} from './Collection';\nexport {Keyboard, KeyboardContext} from './Keyboard';\nexport {Label, LabelContext} from './Label';\nexport {Link, LinkContext} from './Link';\nexport {ListBox, ListBoxContext} from './ListBox';\nexport {Menu, MenuTrigger, MenuContext} from './Menu';\nexport {Meter, MeterContext} from './Meter';\nexport {Modal, ModalOverlay, ModalContext} from './Modal';\nexport {NumberField, NumberFieldContext} from './NumberField';\nexport {OverlayArrow} from './OverlayArrow';\nexport {Popover, PopoverContext} from './Popover';\nexport {ProgressBar, ProgressBarContext} from './ProgressBar';\nexport {Provider, useContextProps} from './utils';\nexport {RadioGroup, Radio, RadioGroupContext} from './RadioGroup';\nexport {SearchField, SearchFieldContext} from './SearchField';\nexport {Select, SelectValue, SelectContext} from './Select';\nexport {Separator, SeparatorContext} from './Separator';\nexport {Slider, SliderOutput, SliderTrack, SliderThumb, SliderContext} from './Slider';\nexport {Switch, SwitchContext} from './Switch';\nexport {Table, Row, Cell, Column, TableHeader, TableBody, TableContext, useTableOptions} from './Table';\nexport {Tabs, TabList, TabPanels, TabPanel, Tab, TabsContext} from './Tabs';\nexport {Text, TextContext} from './Text';\nexport {TextField, TextFieldContext} from './TextField';\nexport {ToggleButton, ToggleButtonContext} from './ToggleButton';\nexport {TooltipTrigger, Tooltip} from './Tooltip';\nexport {useDragAndDrop, DropIndicator, DropIndicatorContext} from './useDragAndDrop';\nexport {DIRECTORY_DRAG_TYPE, isDirectoryDropItem, isFileDropItem, isTextDropItem, SSRProvider} from 'react-aria';\n\nexport type {BreadcrumbsProps} from './Breadcrumbs';\nexport type {ButtonProps, ButtonRenderProps} from './Button';\nexport type {CalendarCellProps, CalendarProps, CalendarGridProps, CalendarGridHeaderProps, CalendarGridBodyProps, CalendarHeaderCellProps, CalendarCellRenderProps, RangeCalendarProps} from './Calendar';\nexport type {CheckboxGroupProps, CheckboxGroupRenderProps, CheckboxRenderProps, CheckboxProps} from './Checkbox';\nexport type {ComboBoxProps} from './ComboBox';\nexport type {DateFieldProps, DateInputProps, DateInputRenderProps, DateSegmentProps, DateSegmentRenderProps, TimeFieldProps} from './DateField';\nexport type {DatePickerProps, DateRangePickerProps} from './DatePicker';\nexport type {DialogProps, DialogTriggerProps} from './Dialog';\nexport type {GridListProps, GridListRenderProps} from './GridList';\nexport type {GroupProps, GroupRenderProps} from './Group';\nexport type {HeadingProps} from './Heading';\nexport type {InputProps, InputRenderProps} from './Input';\nexport type {ItemProps, ItemRenderProps, SectionProps} from './Collection';\nexport type {LabelProps} from './Label';\nexport type {LinkProps} from './Link';\nexport type {LinkRenderProps} from './Link';\nexport type {ListBoxProps, ListBoxRenderProps} from './ListBox';\nexport type {MenuItemRenderProps, MenuProps, MenuTriggerProps} from './Menu';\nexport type {MeterProps, MeterRenderProps} from './Meter';\nexport type {ModalOverlayProps, ModalRenderProps} from './Modal';\nexport type {NumberFieldProps} from './NumberField';\nexport type {OverlayArrowProps, OverlayArrowRenderProps} from './OverlayArrow';\nexport type {PopoverProps, PopoverRenderProps} from './Popover';\nexport type {ProgressBarProps, ProgressBarRenderProps} from './ProgressBar';\nexport type {RadioGroupProps, RadioGroupRenderProps, RadioProps, RadioRenderProps} from './RadioGroup';\nexport type {SearchFieldProps, SearchFieldRenderProps} from './SearchField';\nexport type {SelectProps, SelectValueProps, SelectValueRenderProps} from './Select';\nexport type {SeparatorProps} from './Separator';\nexport type {SliderOutputProps, SliderProps, SliderRenderProps, SliderThumbProps, SliderTrackProps, SliderThumbRenderProps} from './Slider';\nexport type {SwitchProps, SwitchRenderProps} from './Switch';\nexport type {TableProps, TableRenderProps, TableHeaderProps, TableBodyProps, ColumnProps, ColumnRenderProps, RowProps, RowRenderProps, CellProps, CellRenderProps} from './Table';\nexport type {TabListProps, TabListRenderProps, TabPanelProps, TabPanelsProps, TabPanelRenderProps, TabProps, TabsProps, TabRenderProps, TabsRenderProps} from './Tabs';\nexport type {TextFieldProps} from './TextField';\nexport type {TextProps} from './Text';\nexport type {ToggleButtonProps, ToggleButtonRenderProps} from './ToggleButton';\nexport type {TooltipProps, TooltipRenderProps, TooltipTriggerComponentProps} from './Tooltip';\nexport type {DragAndDropHooks, DragAndDropOptions} from './useDragAndDrop';\n\nexport type {DateValue, DateRange, TimeValue} from 'react-aria';\nexport type {DirectoryDropItem, DraggableCollectionEndEvent, DraggableCollectionMoveEvent, DraggableCollectionStartEvent, DragPreviewRenderer, DragTypes, DropItem, DropOperation, DroppableCollectionDropEvent, DroppableCollectionEnterEvent, DroppableCollectionExitEvent, DroppableCollectionInsertDropEvent, DroppableCollectionMoveEvent, DroppableCollectionOnItemDropEvent, DroppableCollectionReorderEvent, DroppableCollectionRootDropEvent, DropPosition, DropTarget, FileDropItem, ItemDropTarget, RootDropTarget, TextDropItem} from 'react-aria';\nexport type {Selection} from 'react-stately';\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaBreadcrumbsProps, useBreadcrumbs} from 'react-aria';\nimport {CollectionProps, useCollection} from './Collection';\nimport {ContextValue, forwardRefType, Provider, SlotProps, StyleProps, useContextProps} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {HeadingContext} from './Heading';\nimport {LinkContext} from './Link';\nimport {Node} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, HTMLAttributes} from 'react';\n\nexport interface BreadcrumbsProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, Omit<AriaBreadcrumbsProps, 'children'>, StyleProps, SlotProps {\n /** Whether the breadcrumbs are disabled. */\n isDisabled?: boolean\n}\n\nexport const BreadcrumbsContext = createContext<ContextValue<BreadcrumbsProps<any>, HTMLElement>>(null);\n\nfunction Breadcrumbs<T extends object>(props: BreadcrumbsProps<T>, ref: ForwardedRef<HTMLElement>) {\n [props, ref] = useContextProps(props, ref, BreadcrumbsContext);\n let {navProps} = useBreadcrumbs(props);\n let {portal, collection} = useCollection(props);\n\n return (\n <nav\n ref={ref}\n {...filterDOMProps(props)}\n {...navProps}\n slot={props.slot}\n style={props.style}\n className={props.className ?? 'react-aria-Breadcrumbs'}>\n {/* TODO: cannot style this element directly */}\n <ol>\n {[...collection].map((node, i) => (\n <BreadcrumbItem\n key={node.key}\n node={node}\n isCurrent={i === collection.size - 1}\n isDisabled={props.isDisabled} />\n ))}\n </ol>\n {portal}\n </nav>\n );\n}\n\n/**\n * Breadcrumbs display a heirarchy of links to the current page or resource in an application.\n */\nconst _Breadcrumbs = (forwardRef as forwardRefType)(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n\ninterface BreadcrumbItemProps {\n node: Node<object>,\n isCurrent: boolean,\n isDisabled?: boolean\n}\n\nfunction BreadcrumbItem({node, isCurrent, isDisabled}: BreadcrumbItemProps) {\n // Recreating useBreadcrumbItem because we want to use composition instead of having the link builtin.\n let headingProps: HTMLAttributes<HTMLHeadingElement> | null = isCurrent ? {'aria-current': 'page'} : null;\n let linkProps = {\n 'aria-current': isCurrent ? 'page' : null,\n isDisabled: isDisabled || isCurrent\n };\n\n return (\n <li\n {...filterDOMProps(node.props)}\n style={node.props.style}\n className={node.props.className ?? 'react-aria-Item'}>\n <Provider\n values={[\n [LinkContext, linkProps],\n [HeadingContext, headingProps]\n ]}>\n {node.rendered}\n </Provider>\n </li>\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {CollectionBase} from '@react-types/shared';\nimport {createPortal} from 'react-dom';\nimport {DOMProps, RenderProps} from './utils';\nimport {Collection as ICollection, Node, SelectionBehavior, SelectionMode, ItemProps as SharedItemProps, SectionProps as SharedSectionProps} from 'react-stately';\nimport {mergeProps, useIsSSR} from 'react-aria';\nimport React, {cloneElement, createContext, Key, ReactElement, ReactNode, ReactPortal, useCallback, useContext, useMemo} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {useSyncExternalStore} from 'use-sync-external-store/shim/index.js';\n\n// This Collection implementation is perhaps a little unusual. It works by rendering the React tree into a\n// Portal to a fake DOM implementation. This gives us efficient access to the tree of rendered objects, and\n// supports React features like composition and context. We use this fake DOM to access the full set of elements\n// before we render into the real DOM, which allows us to render a subset of the elements (e.g. virtualized scrolling),\n// and compute properties like the total number of items. It also enables keyboard navigation, selection, and other features.\n// React takes care of efficiently rendering components and updating the collection for us via this fake DOM.\n//\n// The DOM is a mutable API, and React expects the node instances to remain stable over time. So the implementation is split\n// into two parts. Each mutable fake DOM node owns an instance of an immutable collection node. When a fake DOM node is updated,\n// it queues a second render for the collection. Multiple updates to a collection can be queued at once. Collection nodes are\n// lazily copied on write, so only the changed nodes need to be cloned. During the second render, the new immutable collection\n// is finalized by updating the map of Key -> Node with the new cloned nodes. Then the new collection is frozen so it can no\n// longer be mutated, and returned to the calling component to render.\n\ntype Mutable<T> = {\n -readonly[P in keyof T]: T[P]\n}\n\n/** An immutable object representing a Node in a Collection. */\nexport class NodeValue<T> implements Node<T> {\n readonly type: string;\n readonly key: Key;\n readonly value: T | null = null;\n readonly level: number = 0;\n readonly hasChildNodes: boolean = false;\n readonly rendered: ReactNode = null;\n readonly textValue: string = '';\n readonly 'aria-label'?: string = undefined;\n readonly index: number = 0;\n readonly parentKey: Key | null = null;\n readonly prevKey: Key | null = null;\n readonly nextKey: Key | null = null;\n readonly firstChildKey: Key | null = null;\n readonly lastChildKey: Key | null = null;\n readonly props: any = {};\n\n constructor(type: string, key: Key) {\n this.type = type;\n this.key = key;\n }\n\n get childNodes(): Iterable<Node<T>> {\n throw new Error('childNodes is not supported');\n }\n\n clone(): NodeValue<T> {\n let node: Mutable<NodeValue<T>> = new NodeValue(this.type, this.key);\n node.value = this.value;\n node.level = this.level;\n node.hasChildNodes = this.hasChildNodes;\n node.rendered = this.rendered;\n node.textValue = this.textValue;\n node['aria-label'] = this['aria-label'];\n node.index = this.index;\n node.parentKey = this.parentKey;\n node.prevKey = this.prevKey;\n node.nextKey = this.nextKey;\n node.firstChildKey = this.firstChildKey;\n node.lastChildKey = this.lastChildKey;\n node.props = this.props;\n return node;\n }\n}\n\n/**\n * A mutable node in the fake DOM tree. When mutated, it marks itself as dirty\n * and queues an update with the owner document.\n */\nclass BaseNode<T> {\n private _firstChild: ElementNode<T> | null = null;\n private _lastChild: ElementNode<T> | null = null;\n private _previousSibling: ElementNode<T> | null = null;\n private _nextSibling: ElementNode<T> | null = null;\n private _parentNode: BaseNode<T> | null = null;\n ownerDocument: Document<T, any>;\n\n constructor(ownerDocument: Document<T, any>) {\n this.ownerDocument = ownerDocument;\n }\n\n *[Symbol.iterator]() {\n let node = this.firstChild;\n while (node) {\n yield node;\n node = node.nextSibling;\n }\n }\n\n get firstChild() {\n return this._firstChild;\n }\n\n set firstChild(firstChild) {\n this._firstChild = firstChild;\n this.ownerDocument.dirtyNodes.add(this);\n }\n\n get lastChild() {\n return this._lastChild;\n }\n\n set lastChild(lastChild) {\n this._lastChild = lastChild;\n this.ownerDocument.dirtyNodes.add(this);\n }\n\n get previousSibling() {\n return this._previousSibling;\n }\n\n set previousSibling(previousSibling) {\n this._previousSibling = previousSibling;\n this.ownerDocument.dirtyNodes.add(this);\n }\n\n get nextSibling() {\n return this._nextSibling;\n }\n\n set nextSibling(nextSibling) {\n this._nextSibling = nextSibling;\n this.ownerDocument.dirtyNodes.add(this);\n }\n\n get parentNode() {\n return this._parentNode;\n }\n\n set parentNode(parentNode) {\n this._parentNode = parentNode;\n this.ownerDocument.dirtyNodes.add(this);\n }\n\n appendChild(child: ElementNode<T>) {\n if (child.parentNode) {\n child.parentNode.removeChild(child);\n }\n\n if (this.firstChild == null) {\n this.firstChild = child;\n }\n\n if (this.lastChild) {\n this.lastChild.nextSibling = child;\n child.index = this.lastChild.index + 1;\n child.previousSibling = this.lastChild;\n } else {\n child.previousSibling = null;\n child.index = 0;\n }\n\n child.parentNode = this;\n child.nextSibling = null;\n this.lastChild = child;\n\n this.ownerDocument.dirtyNodes.add(this);\n this.ownerDocument.addNode(child);\n }\n\n insertBefore(newNode: ElementNode<T>, referenceNode: ElementNode<T>) {\n if (referenceNode == null) {\n return this.appendChild(newNode);\n }\n\n if (newNode.parentNode) {\n newNode.parentNode.removeChild(newNode);\n }\n\n newNode.nextSibling = referenceNode;\n newNode.previousSibling = referenceNode.previousSibling;\n newNode.index = referenceNode.index;\n\n if (this.firstChild === referenceNode) {\n this.firstChild = newNode;\n } else if (referenceNode.previousSibling) {\n referenceNode.previousSibling.nextSibling = newNode;\n }\n\n referenceNode.previousSibling = newNode;\n newNode.parentNode = referenceNode.parentNode;\n\n let node: ElementNode<T> | null = referenceNode;\n while (node) {\n node.index++;\n node = node.nextSibling;\n }\n\n this.ownerDocument.addNode(newNode);\n }\n\n removeChild(child: ElementNode<T>) {\n if (child.parentNode !== this) {\n return;\n }\n\n let node = child.nextSibling;\n while (node) {\n node.index--;\n node = node.nextSibling;\n }\n\n if (child.nextSibling) {\n child.nextSibling.previousSibling = child.previousSibling;\n }\n\n if (child.previousSibling) {\n child.previousSibling.nextSibling = child.nextSibling;\n }\n\n if (this.firstChild === child) {\n this.firstChild = child.nextSibling;\n }\n\n if (this.lastChild === child) {\n this.lastChild = child.previousSibling;\n }\n\n child.parentNode = null;\n child.nextSibling = null;\n child.previousSibling = null;\n child.index = 0;\n\n this.ownerDocument.removeNode(child);\n }\n\n addEventListener() {}\n removeEventListener() {}\n}\n\nlet id = 0;\nconst TYPE_MAP = {\n hr: 'separator',\n optgroup: 'section',\n option: 'item'\n};\n\n/**\n * A mutable element node in the fake DOM tree. It owns an immutable\n * Collection Node which is copied on write.\n */\nexport class ElementNode<T> extends BaseNode<T> {\n nodeType = 8; // COMMENT_NODE (we'd use ELEMENT_NODE but React DevTools will fail to get its dimensions)\n node: NodeValue<T>;\n private _index: number = 0;\n\n constructor(type: string, ownerDocument: Document<T, any>) {\n super(ownerDocument);\n this.node = new NodeValue(TYPE_MAP[type] || type, `react-aria-${++id}`);\n }\n\n get index() {\n return this._index;\n }\n\n set index(index) {\n this._index = index;\n this.ownerDocument.dirtyNodes.add(this);\n }\n\n get level(): number {\n if (this.parentNode instanceof ElementNode) {\n return this.parentNode.level + (this.node.type === 'item' ? 1 : 0);\n }\n\n return 0;\n }\n\n updateNode() {\n let node = this.ownerDocument.getMutableNode(this);\n node.index = this.index;\n node.level = this.level;\n node.parentKey = this.parentNode instanceof ElementNode ? this.parentNode.node.key : null;\n node.prevKey = this.previousSibling?.node.key ?? null;\n node.nextKey = this.nextSibling?.node.key ?? null;\n node.hasChildNodes = !!this.firstChild;\n node.firstChildKey = this.firstChild?.node.key ?? null;\n node.lastChildKey = this.lastChild?.node.key ?? null;\n }\n\n // Special property that React passes through as an object rather than a string via setAttribute.\n // See below for details.\n set multiple(obj: any) {\n let node = this.ownerDocument.getMutableNode(this);\n let {rendered, value, textValue, id, ...props} = obj;\n node.props = props;\n node.rendered = rendered;\n node.value = value;\n node.textValue = textValue || (typeof rendered === 'string' ? rendered : '') || obj['aria-label'] || '';\n if (id != null && id !== node.key) {\n if (this.parentNode) {\n throw new Error('Cannot change the id of an item');\n }\n node.key = id;\n }\n }\n\n get style() {\n let node = this.ownerDocument.getMutableNode(this);\n if (!node.props.style) {\n node.props.style = {};\n }\n return node.props.style;\n }\n\n hasAttribute() {}\n setAttribute(key: string, value: string) {\n let node = this.ownerDocument.getMutableNode(this);\n if (key in node) {\n node[key] = value;\n }\n }\n\n setAttributeNS() {}\n removeAttribute() {}\n}\n\n/**\n * An immutable Collection implementation. Updates are only allowed\n * when it is not marked as frozen.\n */\nexport class BaseCollection<T> implements ICollection<Node<T>> {\n private keyMap: Map<Key, NodeValue<T>> = new Map();\n private firstKey: Key | null = null;\n private lastKey: Key | null = null;\n private frozen = false;\n\n get size() {\n return this.keyMap.size;\n }\n\n getKeys() {\n return this.keyMap.keys();\n }\n\n *[Symbol.iterator]() {\n let node: Node<T> | undefined = this.firstKey != null ? this.keyMap.get(this.firstKey) : undefined;\n while (node) {\n yield node;\n node = node.nextKey != null ? this.keyMap.get(node.nextKey) : undefined;\n }\n }\n\n getChildren(key: Key): Iterable<Node<T>> {\n let keyMap = this.keyMap;\n return {\n *[Symbol.iterator]() {\n let parent = keyMap.get(key);\n let node = parent?.firstChildKey != null ? keyMap.get(parent.firstChildKey) : null;\n while (node) {\n yield node as Node<T>;\n node = node.nextKey != null ? keyMap.get(node.nextKey) : undefined;\n }\n }\n };\n }\n\n getKeyBefore(key: Key) {\n let node = this.keyMap.get(key);\n if (!node) {\n return null;\n }\n\n if (node.prevKey != null) {\n node = this.keyMap.get(node.prevKey);\n\n while (node && node.type !== 'item' && node.lastChildKey != null) {\n node = this.keyMap.get(node.lastChildKey);\n }\n\n return node?.key ?? null;\n }\n\n return node.parentKey;\n }\n\n getKeyAfter(key: Key) {\n let node = this.keyMap.get(key);\n if (!node) {\n return null;\n }\n\n if (node.type !== 'item' && node.firstChildKey != null) {\n return node.firstChildKey;\n }\n\n while (node) {\n if (node.nextKey != null) {\n return node.nextKey;\n }\n\n if (node.parentKey != null) {\n node = this.keyMap.get(node.parentKey);\n } else {\n return null;\n }\n }\n\n return null;\n }\n\n getFirstKey() {\n return this.firstKey;\n }\n\n getLastKey() {\n let node = this.lastKey != null ? this.keyMap.get(this.lastKey) : null;\n while (node?.lastChildKey != null) {\n node = this.keyMap.get(node.lastChildKey);\n }\n\n return node?.key ?? null;\n }\n\n getItem(key: Key): Node<T> | null {\n return this.keyMap.get(key) ?? null;\n }\n\n at(): Node<T> {\n throw new Error('Not implemented');\n }\n\n clone(): this {\n // We need to clone using this.constructor so that subclasses have the right prototype.\n // TypeScript isn't happy about this yet.\n // https://github.com/microsoft/TypeScript/issues/3841\n let Constructor: any = this.constructor;\n let collection: this = new Constructor();\n collection.keyMap = new Map(this.keyMap);\n collection.firstKey = this.firstKey;\n collection.lastKey = this.lastKey;\n return collection;\n }\n\n addNode(node: NodeValue<T>) {\n if (this.frozen) {\n throw new Error('Cannot add a node to a frozen collection');\n }\n\n this.keyMap.set(node.key, node);\n }\n\n removeNode(key: Key) {\n if (this.frozen) {\n throw new Error('Cannot remove a node to a frozen collection');\n }\n\n this.keyMap.delete(key);\n }\n\n commit(firstKey: Key | null, lastKey: Key | null) {\n if (this.frozen) {\n throw new Error('Cannot commit a frozen collection');\n }\n\n this.firstKey = firstKey;\n this.lastKey = lastKey;\n this.frozen = true;\n }\n}\n\n/**\n * A mutable Document in the fake DOM. It owns an immutable Collection instance,\n * which is lazily copied on write during updates.\n */\nexport class Document<T, C extends BaseCollection<T>> extends BaseNode<T> {\n nodeType = 11; // DOCUMENT_FRAGMENT_NODE\n ownerDocument = this;\n dirtyNodes: Set<BaseNode<T>> = new Set();\n private collection: C;\n private collectionMutated: boolean;\n private mutatedNodes: Set<ElementNode<T>> = new Set();\n private subscriptions: Set<() => void> = new Set();\n\n constructor(collection: C) {\n // @ts-ignore\n super(null);\n this.collection = collection;\n this.collectionMutated = true;\n }\n\n createElement(type: string) {\n return new ElementNode(type, this);\n }\n\n /**\n * Lazily gets a mutable instance of a Node. If the node has already\n * been cloned during this update cycle, it just returns the existing one.\n */\n getMutableNode(element: ElementNode<T>): Mutable<NodeValue<T>> {\n let node = element.node;\n if (!this.mutatedNodes.has(element)) {\n node = element.node.clone();\n this.mutatedNodes.add(element);\n element.node = node;\n }\n this.dirtyNodes.add(element);\n return node;\n }\n\n private getMutableCollection() {\n if (!this.collectionMutated) {\n this.collection = this.collection.clone();\n this.collectionMutated = true;\n }\n\n return this.collection;\n }\n\n addNode(element: ElementNode<T>) {\n let collection = this.getMutableCollection();\n if (!collection.getItem(element.node.key)) {\n collection.addNode(element.node);\n\n for (let child of element) {\n this.addNode(child);\n }\n }\n\n this.dirtyNodes.add(element);\n }\n\n removeNode(node: ElementNode<T>) {\n for (let child of node) {\n child.parentNode = null;\n this.removeNode(child);\n }\n\n let collection = this.getMutableCollection();\n collection.removeNode(node.node.key);\n this.dirtyNodes.add(node);\n }\n\n /** Finalizes the collection update, updating all nodes and freezing the collection. */\n getCollection(): C {\n for (let element of this.dirtyNodes) {\n if (element instanceof ElementNode && element.parentNode) {\n element.updateNode();\n }\n }\n\n this.dirtyNodes.clear();\n\n if (this.mutatedNodes.size) {\n let collection = this.getMutableCollection();\n for (let element of this.mutatedNodes) {\n if (element.parentNode) {\n collection.addNode(element.node);\n }\n }\n\n collection.commit(this.firstChild?.node.key ?? null, this.lastChild?.node.key ?? null);\n this.mutatedNodes.clear();\n }\n\n this.collectionMutated = false;\n return this.collection;\n }\n\n queueUpdate() {\n for (let fn of this.subscriptions) {\n fn();\n }\n }\n\n subscribe(fn: () => void) {\n this.subscriptions.add(fn);\n return () => this.subscriptions.delete(fn);\n }\n}\n\nexport interface CollectionProps<T> extends Omit<CollectionBase<T>, 'children'> {\n /** The contents of the collection. */\n children?: ReactNode | ((item: T) => ReactElement)\n}\n\ninterface CachedChildrenOptions<T> extends CollectionProps<T> {\n idScope?: Key,\n addIdAndValue?: boolean\n}\n\nexport function useCachedChildren<T extends object>(props: CachedChildrenOptions<T>) {\n let {children, items, idScope, addIdAndValue} = props;\n let cache = useMemo(() => new WeakMap(), []);\n return useMemo(() => {\n if (items && typeof children === 'function') {\n let res: ReactElement[] = [];\n for (let item of items) {\n let rendered = cache.get(item);\n if (!rendered) {\n rendered = children(item);\n if (rendered.key == null) {\n // @ts-ignore\n let key = rendered.props.id ?? item.key ?? item.id;\n // eslint-disable-next-line max-depth\n if (key == null) {\n throw new Error('Could not determine key for item');\n }\n // eslint-disable-next-line max-depth\n if (idScope) {\n key = idScope + ':' + key;\n }\n // TODO: only works if wrapped Item passes through id...\n rendered = cloneElement(\n rendered,\n addIdAndValue ? {key, id: key, value: item} : {key}\n );\n }\n cache.set(item, rendered);\n }\n res.push(rendered);\n }\n return res;\n } else {\n return children;\n }\n }, [children, items, cache, idScope, addIdAndValue]);\n}\n\nexport function useCollectionChildren<T extends object>(props: CachedChildrenOptions<T>) {\n return useCachedChildren({...props, addIdAndValue: true});\n}\n\nconst ShallowRenderContext = createContext(false);\n\ninterface CollectionResult<C> {\n portal: ReactPortal | null,\n collection: C\n}\n\nexport function useCollection<T extends object, C extends BaseCollection<T>>(props: CollectionProps<T>, initialCollection?: C): CollectionResult<C> {\n // The document instance is mutable, and should never change between renders.\n // useSyncExternalStore is used to subscribe to updates, which vends immutable Collection objects.\n let document = useMemo(() => new Document<T, C>(initialCollection || new BaseCollection() as C), [initialCollection]);\n let subscribe = useCallback((fn: () => void) => document.subscribe(fn), [document]);\n let getSnapshot = useCallback(() => document.getCollection(), [document]);\n let collection = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n let children = useCollectionChildren(props);\n let wrappedChildren = useMemo(() => (\n <ShallowRenderContext.Provider value>\n {children}\n </ShallowRenderContext.Provider>\n ), [children]);\n let portal = useIsSSR() ? null : createPortal(wrappedChildren, document as unknown as Element);\n\n useLayoutEffect(() => {\n if (document.dirtyNodes.size > 0) {\n document.queueUpdate();\n }\n });\n\n return {portal, collection};\n}\n\n/** Renders a DOM element (e.g. separator or header) shallowly when inside a collection. */\nexport function useShallowRender<T extends Element>(Element: string, props: React.HTMLAttributes<T>, ref: React.RefObject<T>): ReactElement | null {\n let isShallow = useContext(ShallowRenderContext);\n if (isShallow) {\n // @ts-ignore\n return <Element multiple={{...props, ref, rendered: props.children}} />;\n }\n\n return null;\n}\n\nexport interface ItemRenderProps {\n /**\n * Whether the item is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the item is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the item is currently selected.\n * @selector [aria-selected=true]\n */\n isSelected: boolean,\n /**\n * Whether the item is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the item is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the item is non-interactive, i.e. both selection and actions are disabled and the item may\n * not be focused. Dependent on `disabledKeys` and `disabledBehavior`.\n * @selector [aria-disabled]\n */\n isDisabled: boolean,\n /** The type of selection that is allowed in the collection. */\n selectionMode: SelectionMode,\n /** The selection behavior for the collection. */\n selectionBehavior: SelectionBehavior,\n /**\n * Whether the item allows dragging.\n * @note This property is only available in collection components that support drag and drop.\n * @selector [draggable]\n */\n allowsDragging?: boolean,\n /**\n * Whether the item is currently being dragged.\n * @note This property is only available in collection components that support drag and drop.\n * @selector [data-dragging]\n */\n isDragging?: boolean,\n /**\n * Whether the item is currently an active drop target.\n * @note This property is only available in collection components that support drag and drop.\n * @selector [data-drop-target]\n */\n isDropTarget?: boolean\n}\n\nexport interface ItemProps<T = object> extends Omit<SharedItemProps<T>, 'children'>, RenderProps<ItemRenderProps> {\n /** The unique id of the item. */\n id?: Key,\n /** The object value that this item represents. When using dynamic collections, this is set automatically. */\n value?: T\n}\n\nexport function Item<T extends object>(props: ItemProps<T>): JSX.Element {\n // HACK: the `multiple` prop is special in that React will pass it through as a property rather\n // than converting to a string and using setAttribute. This allows our custom fake DOM to receive\n // the props as an object. Once React supports custom elements, we can switch to that instead.\n // https://github.com/facebook/react/issues/11347\n // https://github.com/facebook/react/blob/82c64e1a49239158c0daa7f0d603d2ad2ee667a9/packages/react-dom/src/shared/DOMProperty.js#L386\n // @ts-ignore\n return <item multiple={{...props, rendered: props.children}} />;\n}\n\nexport interface SectionProps<T> extends Omit<SharedSectionProps<T>, 'children' | 'title'>, DOMProps {\n /** The unique id of the section. */\n id?: Key,\n /** The object value that this section represents. When using dynamic collections, this is set automatically. */\n value?: T,\n /** Static child items or a function to render children. */\n children?: ReactNode | ((item: T) => ReactElement)\n}\n\nexport function Section<T extends object>(props: SectionProps<T>): JSX.Element {\n let children = useCollectionChildren(props);\n\n // @ts-ignore\n return <section multiple={{...props, rendered: props.title}}>{children}</section>;\n}\n\nexport const CollectionContext = createContext<CachedChildrenOptions<unknown> | null>(null);\nexport const CollectionRendererContext = createContext<CollectionProps<unknown>['children']>(null);\n\n/** A Collection renders a list of items, automatically managing caching and keys. */\nexport function Collection<T extends object>(props: CollectionProps<T>): JSX.Element {\n let ctx = useContext(CollectionContext)!;\n props = mergeProps(ctx, props);\n let renderer = typeof props.children === 'function' ? props.children : null;\n return (\n <CollectionRendererContext.Provider value={renderer}>\n {useCollectionChildren(props)}\n </CollectionRendererContext.Provider>\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps as SharedDOMProps} from '@react-types/shared';\nimport {filterDOMProps, mergeProps, mergeRefs, useLayoutEffect, useObjectRef} from '@react-aria/utils';\nimport React, {createContext, CSSProperties, ReactNode, RefCallback, RefObject, useCallback, useContext, useEffect, useRef, useState} from 'react';\n\n// Override forwardRef types so generics work.\ndeclare function forwardRef<T, P = {}>(\n render: (props: P, ref: React.Ref<T>) => React.ReactElement | null\n): (props: P & React.RefAttributes<T>) => React.ReactElement | null;\n\nexport type forwardRefType = typeof forwardRef;\n\nexport const slotCallbackSymbol = Symbol('callback');\nexport const defaultSlot = Symbol('default');\n\ninterface SlottedValue<T> {\n slots?: Record<string | symbol, T>,\n [slotCallbackSymbol]?: (value: T) => void\n}\n\nexport type ContextValue<T extends SlotProps, E extends Element> = SlottedValue<WithRef<T, E>> | WithRef<T, E> | null | undefined;\n\ntype ProviderValue<T> = [React.Context<T>, T];\ntype ProviderValues<A, B, C, D, E, F, G, H> =\n | [ProviderValue<A>]\n | [ProviderValue<A>, ProviderValue<B>]\n | [ProviderValue<A>, ProviderValue<B>, ProviderValue<C>]\n | [ProviderValue<A>, ProviderValue<B>, ProviderValue<C>, ProviderValue<D>]\n | [ProviderValue<A>, ProviderValue<B>, ProviderValue<C>, ProviderValue<D>, ProviderValue<E>]\n | [ProviderValue<A>, ProviderValue<B>, ProviderValue<C>, ProviderValue<D>, ProviderValue<E>, ProviderValue<F>]\n | [ProviderValue<A>, ProviderValue<B>, ProviderValue<C>, ProviderValue<D>, ProviderValue<E>, ProviderValue<F>, ProviderValue<G>]\n | [ProviderValue<A>, ProviderValue<B>, ProviderValue<C>, ProviderValue<D>, ProviderValue<E>, ProviderValue<F>, ProviderValue<G>, ProviderValue<H>];\n\ninterface ProviderProps<A, B, C, D, E, F, G, H> {\n values: ProviderValues<A, B, C, D, E, F, G, H>,\n children: React.ReactNode\n}\n\nexport function Provider<A, B, C, D, E, F, G, H>({values, children}: ProviderProps<A, B, C, D, E, F, G, H>): JSX.Element {\n for (let [Context, value] of values) {\n // @ts-ignore\n children = <Context.Provider value={value}>{children}</Context.Provider>;\n }\n\n return children as JSX.Element;\n}\n\nexport interface StyleProps {\n /** The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. */\n className?: string,\n /** The inline [style](https://developer.mozilla.org/en-US/docs/Web/API/Element/style) for the element. */\n style?: CSSProperties\n}\n\nexport interface DOMProps extends StyleProps {\n /** The children of the component. */\n children?: ReactNode\n}\n\nexport interface StyleRenderProps<T> {\n /** The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state. */\n className?: string | ((values: T) => string),\n /** The inline [style](https://developer.mozilla.org/en-US/docs/Web/API/Element/style) for the element. A function may be provided to compute the style based on component state. */\n style?: CSSProperties | ((values: T) => CSSProperties)\n}\n\nexport interface RenderProps<T> extends StyleRenderProps<T> {\n /** The children of the component. A function may be provided to alter the children based on component state. */\n children?: ReactNode | ((values: T) => ReactNode)\n}\n\ninterface RenderPropsHookOptions<T> extends RenderProps<T>, SharedDOMProps, AriaLabelingProps {\n values: T,\n defaultChildren?: ReactNode,\n defaultClassName?: string\n}\n\nexport function useRenderProps<T>({className, style, children, defaultClassName, defaultChildren, values, ...otherProps}: RenderPropsHookOptions<T>) {\n if (typeof className === 'function') {\n className = className(values);\n }\n\n if (typeof style === 'function') {\n style = style(values);\n }\n\n if (typeof children === 'function') {\n children = children(values);\n } else if (children == null) {\n children = defaultChildren;\n }\n\n delete otherProps.id;\n return {\n ...filterDOMProps(otherProps),\n className: className ?? defaultClassName,\n style,\n children\n };\n}\n\nexport type WithRef<T, E> = T & {ref?: React.ForwardedRef<E>};\nexport interface SlotProps {\n /** A slot name for the component. Slots allow the component to receive props from a parent component. */\n slot?: string\n}\n\nexport function useContextProps<T, U, E extends Element>(props: T & SlotProps, ref: React.ForwardedRef<E>, context: React.Context<ContextValue<U, E>>): [T, React.RefObject<E>] {\n let ctx = useContext(context) || {};\n if ('slots' in ctx && ctx.slots) {\n if (!props.slot && !ctx.slots[defaultSlot]) {\n throw new Error('A slot prop is required');\n }\n let slot = props.slot || defaultSlot;\n if (!ctx.slots[slot]) {\n // @ts-ignore\n throw new Error(`Invalid slot \"${props.slot}\". Valid slot names are ` + new Intl.ListFormat().format(Object.keys(ctx.slots).map(p => `\"${p}\"`)) + '.');\n }\n ctx = ctx.slots[slot];\n }\n // @ts-ignore - TS says \"Type 'unique symbol' cannot be used as an index type.\" but not sure why.\n let {ref: contextRef, [slotCallbackSymbol]: callback, ...contextProps} = ctx;\n let mergedRef = useObjectRef(mergeRefs(ref, contextRef));\n let mergedProps = mergeProps(contextProps, props) as unknown as T;\n\n // A parent component might need the props from a child, so call slot callback if needed.\n useEffect(() => {\n if (callback) {\n callback(props);\n }\n }, [callback, props]);\n\n return [mergedProps, mergedRef];\n}\n\nexport function useSlot(): [RefCallback<Element>, boolean] {\n // Assume we do have the slot in the initial render.\n let [hasSlot, setHasSlot] = useState(true);\n let hasRun = useRef(false);\n\n // A callback ref which will run when the slotted element mounts.\n // This should happen before the useLayoutEffect below.\n let ref = useCallback(el => {\n hasRun.current = true;\n setHasSlot(!!el);\n }, []);\n\n // If the callback hasn't been called, then reset to false.\n useLayoutEffect(() => {\n if (!hasRun.current) {\n setHasSlot(false);\n }\n }, []);\n\n return [ref, hasSlot];\n}\n\nexport function useEnterAnimation(ref: RefObject<HTMLElement>, isReady: boolean = true) {\n let [isEntering, setEntering] = useState(true);\n useAnimation(ref, isEntering && isReady, useCallback(() => setEntering(false), []));\n return isEntering && isReady;\n}\n\nexport function useExitAnimation(ref: RefObject<HTMLElement>, isOpen: boolean) {\n // State to trigger a re-render after animation is complete, which causes the element to be removed from the DOM.\n // Ref to track the state we're in, so we don't immediately reset isExiting to true after the animation.\n let [isExiting, setExiting] = useState(false);\n let exitState = useRef('idle');\n\n // If isOpen becomes false, set isExiting to true.\n if (!isOpen && ref.current && exitState.current === 'idle') {\n isExiting = true;\n setExiting(true);\n exitState.current = 'exiting';\n }\n\n // If we exited, and the element has been removed, reset exit state to idle.\n if (!ref.current && exitState.current === 'exited') {\n exitState.current = 'idle';\n }\n\n useAnimation(\n ref,\n isExiting,\n useCallback(() => {\n exitState.current = 'exited';\n setExiting(false);\n }, [])\n );\n\n return isExiting;\n}\n\nfunction useAnimation(ref: RefObject<HTMLElement>, isActive: boolean, onEnd: () => void) {\n let prevAnimation = useRef<string | null>(null);\n if (isActive && ref.current) {\n prevAnimation.current = window.getComputedStyle(ref.current).animation;\n }\n\n useLayoutEffect(() => {\n if (isActive && ref.current) {\n // Make sure there's actually an animation, and it wasn't there before we triggered the update.\n let computedStyle = window.getComputedStyle(ref.current);\n if (computedStyle.animationName !== 'none' && computedStyle.animation !== prevAnimation.current) {\n let onAnimationEnd = (e: AnimationEvent) => {\n if (e.target === ref.current) {\n element.removeEventListener('animationend', onAnimationEnd);\n onEnd();\n }\n };\n\n let element = ref.current;\n element.addEventListener('animationend', onAnimationEnd);\n return () => {\n element.removeEventListener('animationend', onAnimationEnd);\n };\n } else {\n onEnd();\n }\n }\n }, [ref, isActive, onEnd]);\n}\n\nexport const HiddenContext = createContext<boolean>(false);\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ContextValue, useContextProps} from './utils';\nimport React, {createContext, ElementType, ForwardedRef, forwardRef, HTMLAttributes} from 'react';\n\nexport interface HeadingProps extends HTMLAttributes<HTMLElement> {\n level?: number\n}\n\nexport const HeadingContext = createContext<ContextValue<HeadingProps, HTMLHeadingElement>>({});\n\nfunction Heading(props: HeadingProps, ref: ForwardedRef<HTMLHeadingElement>) {\n [props, ref] = useContextProps(props, ref, HeadingContext);\n let {children, level = 3, className, ...domProps} = props;\n let Element = `h${level}` as ElementType;\n\n return (\n <Element {...domProps} className={className ?? 'react-aria-Heading'}>\n {children}\n </Element>\n );\n}\n\nconst _Heading = forwardRef(Heading);\nexport {_Heading as Heading};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLinkOptions, mergeProps, useFocusRing, useHover, useLink} from 'react-aria';\nimport {ContextValue, RenderProps, SlotProps, useContextProps, useRenderProps} from './utils';\nimport {mergeRefs} from '@react-aria/utils';\nimport React, {createContext, ForwardedRef, forwardRef, useMemo} from 'react';\n\nexport interface LinkProps extends Omit<AriaLinkOptions, 'elementType'>, RenderProps<LinkRenderProps>, SlotProps {}\n\nexport interface LinkRenderProps {\n /**\n * Whether the link is the current item within a list.\n * @selector [aria-current]\n */\n isCurrent: boolean,\n /**\n * Whether the link is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the link is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the link is focused, either via a mouse or keyboard.\n * @selector :focus\n */\n isFocused: boolean,\n /**\n * Whether the link is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the link is disabled.\n * @selector [aria-disabled]\n */\n isDisabled: boolean\n}\n\nexport const LinkContext = createContext<ContextValue<LinkProps, HTMLAnchorElement>>(null);\n\nfunction Link(props: LinkProps, ref: ForwardedRef<HTMLAnchorElement>) {\n [props, ref] = useContextProps(props, ref, LinkContext);\n\n let elementType = typeof props.children === 'string' ? 'span' : 'a';\n let {linkProps, isPressed} = useLink({...props, elementType}, ref);\n\n let {hoverProps, isHovered} = useHover(props);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Link',\n values: {\n isCurrent: !!props['aria-current'],\n isDisabled: props.isDisabled || false,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible\n }\n });\n\n let element: any = typeof renderProps.children === 'string'\n ? <span>{renderProps.children}</span>\n : React.Children.only(renderProps.children);\n\n return React.cloneElement(element, {\n ref: useMemo(() => element.ref ? mergeRefs(element.ref, ref) : ref, [element.ref, ref]),\n slot: props.slot,\n ...mergeProps(renderProps, linkProps, hoverProps, focusProps, {\n children: element.props.children,\n 'data-hovered': isHovered || undefined,\n 'data-pressed': isPressed || undefined,\n 'data-focus-visible': isFocusVisible || undefined\n }, element.props)\n });\n}\n\n/**\n * A link allows a user to navigate to another page or resource within a web page\n * or application.\n */\nconst _Link = forwardRef(Link);\nexport {_Link as Link};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaButtonProps, mergeProps, useButton, useFocusRing, useHover} from 'react-aria';\nimport {ContextValue, RenderProps, SlotProps, useContextProps, useRenderProps} from './utils';\nimport React, {createContext, ForwardedRef, forwardRef} from 'react';\n\nexport interface ButtonRenderProps {\n /**\n * Whether the button is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the button is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the button is focused, either via a mouse or keyboard.\n * @selector :focus\n */\n isFocused: boolean,\n /**\n * Whether the button is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the button is disabled.\n * @selector :disabled\n */\n isDisabled: boolean\n}\n\nexport interface ButtonProps extends Omit<AriaButtonProps, 'children' | 'href' | 'target' | 'rel' | 'elementType'>, SlotProps, RenderProps<ButtonRenderProps> {}\ninterface ButtonContextValue extends ButtonProps {\n isPressed?: boolean\n}\n\nexport const ButtonContext = createContext<ContextValue<ButtonContextValue, HTMLButtonElement>>({});\n\nfunction Button(props: ButtonProps, ref: ForwardedRef<HTMLButtonElement>) {\n [props, ref] = useContextProps(props, ref, ButtonContext);\n let ctx = props as ButtonContextValue;\n let {buttonProps, isPressed} = useButton(props, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing(props);\n let {hoverProps, isHovered} = useHover(props);\n let renderProps = useRenderProps({\n ...props,\n values: {isHovered, isPressed, isFocused, isFocusVisible, isDisabled: props.isDisabled || false},\n defaultClassName: 'react-aria-Button'\n });\n\n return (\n <button\n {...mergeProps(buttonProps, focusProps, hoverProps)}\n {...renderProps}\n ref={ref}\n slot={props.slot}\n data-pressed={ctx.isPressed || isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined} />\n );\n}\n\n/**\n * A button allows a user to perform an action, with mouse, touch, and keyboard interactions.\n */\nconst _Button = forwardRef(Button);\nexport {_Button as Button};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {CalendarProps as BaseCalendarProps, RangeCalendarProps as BaseRangeCalendarProps, DateValue, mergeProps, useCalendar, useCalendarCell, useCalendarGrid, useFocusRing, useHover, useLocale, useRangeCalendar, VisuallyHidden} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {CalendarDate, createCalendar, DateDuration, endOfMonth, getWeeksInMonth, isSameDay, isSameMonth} from '@internationalized/date';\nimport {CalendarState, RangeCalendarState, useCalendarState, useRangeCalendarState} from 'react-stately';\nimport {ContextValue, DOMProps, forwardRefType, Provider, RenderProps, SlotProps, StyleProps, useContextProps, useRenderProps} from './utils';\nimport {createContext, ForwardedRef, forwardRef, ReactElement, useContext} from 'react';\nimport {DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {filterDOMProps, useObjectRef} from '@react-aria/utils';\nimport {HeadingContext} from './Heading';\nimport React from 'react';\nimport {TextContext} from './Text';\n\nexport interface CalendarProps<T extends DateValue> extends Omit<BaseCalendarProps<T>, 'errorMessage'>, RenderProps<CalendarState>, SlotProps {\n /**\n * The amount of days that will be displayed at once. This affects how pagination works.\n * @default {months: 1}\n */\n visibleDuration?: DateDuration\n}\n\nexport interface RangeCalendarProps<T extends DateValue> extends Omit<BaseRangeCalendarProps<T>, 'errorMessage'>, RenderProps<RangeCalendarState>, SlotProps {\n /**\n * The amount of days that will be displayed at once. This affects how pagination works.\n * @default {months: 1}\n */\n visibleDuration?: DateDuration\n}\n\nexport const CalendarContext = createContext<ContextValue<CalendarProps<any>, HTMLDivElement>>({});\nexport const RangeCalendarContext = createContext<ContextValue<RangeCalendarProps<any>, HTMLDivElement>>({});\nconst InternalCalendarContext = createContext<CalendarState | RangeCalendarState | null>(null);\n\nfunction Calendar<T extends DateValue>(props: CalendarProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, CalendarContext);\n let {locale} = useLocale();\n let state = useCalendarState({\n ...props,\n locale,\n createCalendar\n });\n\n let {calendarProps, prevButtonProps, nextButtonProps, errorMessageProps, title} = useCalendar(props, state);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-Calendar'\n });\n\n return (\n <div {...renderProps} {...calendarProps} ref={ref} slot={props.slot}>\n <Provider\n values={[\n [ButtonContext, {\n slots: {\n previous: prevButtonProps,\n next: nextButtonProps\n }\n }],\n [HeadingContext, {'aria-hidden': true, level: 2, children: title}],\n [InternalCalendarContext, state],\n [TextContext, {\n slots: {\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n {/* Add a screen reader only description of the entire visible range rather than\n * a separate heading above each month grid. This is placed first in the DOM order\n * so that it is the first thing a touch screen reader user encounters.\n * In addition, VoiceOver on iOS does not announce the aria-label of the grid\n * elements, so the aria-label of the Calendar is included here as well. */}\n <VisuallyHidden>\n <h2>{calendarProps['aria-label']}</h2>\n </VisuallyHidden>\n {renderProps.children}\n {/* For touch screen readers, add a visually hidden next button after the month grid\n * so it's easy to navigate after reaching the end without going all the way\n * back to the start of the month. */}\n <VisuallyHidden>\n <button\n aria-label={nextButtonProps['aria-label']}\n disabled={nextButtonProps.isDisabled}\n onClick={() => state.focusNextPage()}\n tabIndex={-1} />\n </VisuallyHidden>\n </Provider>\n </div>\n );\n}\n\n/**\n * A calendar displays one or more date grids and allows users to select a single date.\n */\nconst _Calendar = (forwardRef as forwardRefType)(Calendar);\nexport {_Calendar as Calendar};\n\nfunction RangeCalendar<T extends DateValue>(props: RangeCalendarProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, RangeCalendarContext);\n let {locale} = useLocale();\n let state = useRangeCalendarState({\n ...props,\n locale,\n createCalendar\n });\n\n let {calendarProps, prevButtonProps, nextButtonProps, errorMessageProps, title} = useRangeCalendar(\n props,\n state,\n ref\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-RangeCalendar'\n });\n\n return (\n <div {...renderProps} {...calendarProps} ref={ref} slot={props.slot}>\n <Provider\n values={[\n [ButtonContext, {\n slots: {\n previous: prevButtonProps,\n next: nextButtonProps\n }\n }],\n [HeadingContext, {'aria-hidden': true, level: 2, children: title}],\n [InternalCalendarContext, state],\n [TextContext, {\n slots: {\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n {/* Add a screen reader only description of the entire visible range rather than\n * a separate heading above each month grid. This is placed first in the DOM order\n * so that it is the first thing a touch screen reader user encounters.\n * In addition, VoiceOver on iOS does not announce the aria-label of the grid\n * elements, so the aria-label of the Calendar is included here as well. */}\n <VisuallyHidden>\n <h2>{calendarProps['aria-label']}</h2>\n </VisuallyHidden>\n {renderProps.children}\n {/* For touch screen readers, add a visually hidden next button after the month grid\n * so it's easy to navigate after reaching the end without going all the way\n * back to the start of the month. */}\n <VisuallyHidden>\n <button\n aria-label={nextButtonProps['aria-label']}\n disabled={nextButtonProps.isDisabled}\n onClick={() => state.focusNextPage()}\n tabIndex={-1} />\n </VisuallyHidden>\n </Provider>\n </div>\n );\n}\n\n/**\n * A range calendar displays one or more date grids and allows users to select a contiguous range of dates.\n */\nconst _RangeCalendar = (forwardRef as forwardRefType)(RangeCalendar);\nexport {_RangeCalendar as RangeCalendar};\n\nexport interface CalendarCellRenderProps {\n /** The date that the cell represents. */\n date: CalendarDate,\n /** The day number formatted according to the current locale. */\n formattedDate: string,\n /**\n * Whether the cell is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the cell is currently being pressed.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the cell is selected.\n * @selector [data-selected]\n */\n isSelected: boolean,\n /**\n * Whether the cell is the first date in a range selection.\n * @selector [data-selection-start]\n */\n isSelectionStart: boolean,\n /**\n * Whether the cell is the last date in a range selection.\n * @selector [data-selection-end]\n */\n isSelectionEnd: boolean,\n /**\n * Whether the cell is focused.\n * @selector :focus\n */\n isFocused: boolean,\n /**\n * Whether the cell is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the cell is disabled, according to the calendar's `minValue`, `maxValue`, and `isDisabled` props.\n * Disabled dates are not focusable, and cannot be selected by the user. They are typically\n * displayed with a dimmed appearance.\n * @selector [data-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the cell is outside the visible range of the calendar.\n * For example, dates before the first day of a month in the same week.\n * @selector [data-outside-visible-range]\n */\n isOutsideVisibleRange: boolean,\n /**\n * Whether the cell is outside the current month.\n * @selector [data-outside-month]\n */\n isOutsideMonth: boolean,\n /**\n * Whether the cell is unavailable, according to the calendar's `isDateUnavailable` prop. Unavailable dates remain\n * focusable, but cannot be selected by the user. They should be displayed with a visual affordance to indicate they\n * are unavailable, such as a different color or a strikethrough.\n *\n * Note that because they are focusable, unavailable dates must meet a 4.5:1 color contrast ratio,\n * [as defined by WCAG](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html).\n *\n * @selector [data-unavailable]\n */\n isUnavailable: boolean,\n /**\n * Whether the cell is part of an invalid selection.\n * @selector [aria-invalid]\n */\n isInvalid: boolean\n}\n\nexport interface CalendarGridProps extends StyleProps {\n /**\n * Either a function to render calendar cells for each date in the month,\n * or children containing a `<CalendarGridHeader>`` and `<CalendarGridBody>`\n * when additional customization is needed.\n */\n children?: ReactElement | ReactElement[] | ((date: CalendarDate) => ReactElement),\n /**\n * An offset from the beginning of the visible date range that this\n * CalendarGrid should display. Useful when displaying more than one\n * month at a time.\n */\n offset?: DateDuration\n}\n\ninterface InternalCalendarGridContextValue {\n headerProps: DOMAttributes<FocusableElement>,\n weekDays: string[],\n startDate: CalendarDate\n}\n\nconst InternalCalendarGridContext = createContext<InternalCalendarGridContextValue | null>(null);\n\nfunction CalendarGrid(props: CalendarGridProps, ref: ForwardedRef<HTMLTableElement>) {\n let state = useContext(InternalCalendarContext)!;\n let startDate = state.visibleRange.start;\n if (props.offset) {\n startDate = startDate.add(props.offset);\n }\n\n let {gridProps, headerProps, weekDays} = useCalendarGrid({\n startDate,\n endDate: endOfMonth(startDate)\n }, state);\n\n return (\n <InternalCalendarGridContext.Provider value={{headerProps, weekDays, startDate}}>\n <table\n {...filterDOMProps(props as any)}\n {...gridProps}\n ref={ref}\n style={props.style}\n className={props.className ?? 'react-aria-CalendarGrid'}>\n {typeof props.children !== 'function'\n ? props.children\n : (<>\n <CalendarGridHeaderForwardRef>\n {day => <CalendarHeaderCellForwardRef>{day}</CalendarHeaderCellForwardRef>}\n </CalendarGridHeaderForwardRef>\n <CalendarGridBodyForwardRef>\n {props.children}\n </CalendarGridBodyForwardRef>\n </>)\n }\n </table>\n </InternalCalendarGridContext.Provider>\n );\n}\n\n/**\n * A calendar grid displays a single grid of days within a calendar or range calendar which\n * can be keyboard navigated and selected by the user.\n */\nconst _CalendarGrid = forwardRef(CalendarGrid);\nexport {_CalendarGrid as CalendarGrid};\n\nexport interface CalendarGridHeaderProps extends StyleProps {\n /** A function to render a `<CalendarHeaderCell>` for a weekday name. */\n children: (day: string) => ReactElement\n}\n\nfunction CalendarGridHeader(props: CalendarGridHeaderProps, ref: ForwardedRef<HTMLTableSectionElement>) {\n let {children, style, className} = props;\n let {headerProps, weekDays} = useContext(InternalCalendarGridContext)!;\n\n return (\n <thead\n {...filterDOMProps(props as any)}\n {...headerProps}\n ref={ref}\n style={style}\n className={className || 'react-aria-CalendarGridHeader'}>\n <tr>\n {weekDays.map((day, key) => React.cloneElement(children(day), {key}))}\n </tr>\n </thead>\n );\n}\n\n/**\n * A calendar grid header displays a row of week day names at the top of a month.\n */\nconst CalendarGridHeaderForwardRef = forwardRef(CalendarGridHeader);\nexport {CalendarGridHeaderForwardRef as CalendarGridHeader};\n\nexport interface CalendarHeaderCellProps extends DOMProps {}\n\nfunction CalendarHeaderCell(props: CalendarHeaderCellProps, ref: ForwardedRef<HTMLTableCellElement>) {\n let {children, style, className} = props;\n return (\n <th\n {...filterDOMProps(props as any)}\n ref={ref}\n style={style}\n className={className || 'react-aria-CalendarHeaderCell'}>\n {children}\n </th>\n );\n}\n\n/**\n * A calendar header cell displays a week day name at the top of a column within a calendar.\n */\nconst CalendarHeaderCellForwardRef = forwardRef(CalendarHeaderCell);\nexport {CalendarHeaderCellForwardRef as CalendarHeaderCell};\n\nexport interface CalendarGridBodyProps extends StyleProps {\n /** A function to render a `<CalendarCell>` for a given date. */\n children: (date: CalendarDate) => ReactElement\n}\n\nfunction CalendarGridBody(props: CalendarGridBodyProps, ref: ForwardedRef<HTMLTableSectionElement>) {\n let {children, style, className} = props;\n let state = useContext(InternalCalendarContext)!;\n let {startDate} = useContext(InternalCalendarGridContext)!;\n let {locale} = useLocale();\n let weeksInMonth = getWeeksInMonth(startDate, locale);\n\n return (\n <tbody\n {...filterDOMProps(props as any)}\n ref={ref}\n style={style}\n className={className || 'react-aria-CalendarGridBody'}>\n {[...new Array(weeksInMonth).keys()].map((weekIndex) => (\n <tr key={weekIndex}>\n {state.getDatesInWeek(weekIndex, startDate).map((date, i) => (\n date\n ? React.cloneElement(children(date), {key: i})\n : <td key={i} />\n ))}\n </tr>\n ))}\n </tbody>\n );\n}\n\n/**\n * A calendar grid body displays a grid of calendar cells within a month.\n */\nconst CalendarGridBodyForwardRef = forwardRef(CalendarGridBody);\nexport {CalendarGridBodyForwardRef as CalendarGridBody};\n\nexport interface CalendarCellProps extends RenderProps<CalendarCellRenderProps> {\n /** The date to render in the cell. */\n date: CalendarDate\n}\n\nfunction CalendarCell({date, ...otherProps}: CalendarCellProps, ref: ForwardedRef<HTMLDivElement>) {\n let state = useContext(InternalCalendarContext)!;\n let {startDate: currentMonth} = useContext(InternalCalendarGridContext)!;\n let objectRef = useObjectRef(ref);\n let {cellProps, buttonProps, ...states} = useCalendarCell(\n {date},\n state,\n objectRef\n );\n\n let {hoverProps, isHovered} = useHover({isDisabled: states.isDisabled});\n let {focusProps, isFocusVisible} = useFocusRing();\n let isOutsideMonth = !isSameMonth(currentMonth, date);\n let isSelectionStart = false;\n let isSelectionEnd = false;\n if ('highlightedRange' in state && state.highlightedRange) {\n isSelectionStart = isSameDay(date, state.highlightedRange.start);\n isSelectionEnd = isSameDay(date, state.highlightedRange.end);\n }\n\n let renderProps = useRenderProps({\n ...otherProps,\n defaultChildren: states.formattedDate,\n defaultClassName: 'react-aria-CalendarCell',\n values: {\n date,\n isHovered,\n isOutsideMonth,\n isFocusVisible,\n isSelectionStart,\n isSelectionEnd,\n ...states\n }\n });\n\n let dataAttrs = {\n 'data-hovered': isHovered || undefined,\n 'data-pressed': states.isPressed || undefined,\n 'data-unavailable': states.isUnavailable || undefined,\n 'data-disabled': states.isDisabled || undefined,\n 'data-focus-visible': isFocusVisible || undefined,\n 'data-outside-visible-range': states.isOutsideVisibleRange || undefined,\n 'data-outside-month': isOutsideMonth || undefined,\n 'data-selected': states.isSelected || undefined,\n 'data-selection-start': isSelectionStart || undefined,\n 'data-selection-end': isSelectionEnd || undefined\n };\n\n return (\n <td {...cellProps}>\n <div {...mergeProps(buttonProps, focusProps, hoverProps, dataAttrs, renderProps)} ref={objectRef} />\n </td>\n );\n}\n\n/**\n * A calendar cell displays a date cell within a calendar grid which can be selected by the user.\n */\nconst _CalendarCell = forwardRef(CalendarCell);\nexport {_CalendarCell as CalendarCell};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ContextValue, useContextProps} from './utils';\nimport React, {createContext, ForwardedRef, forwardRef, HTMLAttributes} from 'react';\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n elementType?: string\n}\n\nexport const TextContext = createContext<ContextValue<TextProps, HTMLElement>>({});\n\nfunction Text(props: TextProps, ref: ForwardedRef<HTMLElement>) {\n [props, ref] = useContextProps(props, ref, TextContext);\n let {elementType: ElementType = 'span', ...domProps} = props;\n // @ts-ignore\n return <ElementType {...domProps} ref={ref} />;\n}\n\nconst _Text = forwardRef(Text);\nexport {_Text as Text};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaCheckboxGroupProps, AriaCheckboxProps, mergeProps, useCheckbox, useCheckboxGroup, useCheckboxGroupItem, useFocusRing, useHover, usePress, VisuallyHidden} from 'react-aria';\nimport {CheckboxGroupState, useCheckboxGroupState, useToggleState, ValidationState} from 'react-stately';\nimport {ContextValue, Provider, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {LabelContext} from './Label';\nimport React, {createContext, ForwardedRef, forwardRef, useContext, useState} from 'react';\nimport {TextContext} from './Text';\n\nexport interface CheckboxGroupProps extends Omit<AriaCheckboxGroupProps, 'children' | 'label' | 'description' | 'errorMessage'>, RenderProps<CheckboxGroupRenderProps>, SlotProps {}\nexport interface CheckboxProps extends Omit<AriaCheckboxProps, 'children'>, RenderProps<CheckboxRenderProps>, SlotProps {}\n\nexport interface CheckboxGroupRenderProps {\n /**\n * Whether the checkbox group is disabled.\n * @selector [aria-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the checkbox group is read only.\n * @selector [data-readonly]\n */\n isReadOnly: boolean,\n /**\n * Whether the checkbox group is required.\n * @selector [data-required]\n */\n isRequired: boolean,\n /**\n * The validation state of the checkbox group.\n * @selector [data-validation-state=\"invalid\" | \"valid\"]\n */\n validationState: ValidationState\n}\n\nexport interface CheckboxRenderProps {\n /**\n * Whether the checkbox is selected.\n * @selector [data-selected]\n */\n isSelected: boolean,\n /**\n * Whether the checkbox is selected.\n * @selector [data-indeterminate]\n */\n isIndeterminate: boolean,\n /**\n * Whether the checkbox is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the checkbox is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the checkbox is focused, either via a mouse or keyboard.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the checkbox is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the checkbox is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the checkbox is read only.\n * @selector [data-readonly]\n */\n isReadOnly: boolean,\n /**\n * Whether the checkbox is valid or invalid.\n * @selector [data-validation-state=\"valid | invalid\"]\n */\n validationState?: ValidationState,\n /**\n * Whether the checkbox is required.\n * @selector [data-required]\n */\n isRequired: boolean\n}\n\nexport const CheckboxGroupContext = createContext<ContextValue<CheckboxGroupProps, HTMLDivElement>>(null);\nconst InternalCheckboxGroupContext = createContext<CheckboxGroupState | null>(null);\n\nfunction CheckboxGroup(props: CheckboxGroupProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, CheckboxGroupContext);\n let state = useCheckboxGroupState(props);\n let [labelRef, label] = useSlot();\n let {groupProps, labelProps, descriptionProps, errorMessageProps} = useCheckboxGroup({\n ...props,\n label\n }, state);\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: props.isRequired || false,\n validationState: state.validationState\n },\n defaultClassName: 'react-aria-CheckboxGroup'\n });\n\n return (\n <div\n {...groupProps}\n {...renderProps}\n ref={ref}\n slot={props.slot}\n data-readonly={state.isReadOnly || undefined}\n data-required={props.isRequired || undefined}\n data-validation-state={state.validationState || undefined}>\n <Provider\n values={[\n [InternalCheckboxGroupContext, state],\n [LabelContext, {...labelProps, ref: labelRef}],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n\nexport const CheckboxContext = createContext<ContextValue<CheckboxProps, HTMLInputElement>>(null);\n\nfunction Checkbox(props: CheckboxProps, ref: ForwardedRef<HTMLInputElement>) {\n [props, ref] = useContextProps(props, ref, CheckboxContext);\n let groupState = useContext(InternalCheckboxGroupContext);\n let {inputProps, isSelected, isDisabled, isReadOnly, isPressed: isPressedKeyboard} = groupState\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ? useCheckboxGroupItem({\n ...props,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires ignore).\n // @ts-ignore\n value: props.value\n }, groupState, ref)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n : useCheckbox(props, useToggleState(props), ref);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let isInteractionDisabled = isDisabled || isReadOnly;\n\n // Handle press state for full label. Keyboard press state is returned by useCheckbox\n // since it is handled on the <input> element itself.\n let [isPressed, setPressed] = useState(false);\n let {pressProps} = usePress({\n isDisabled: isInteractionDisabled,\n onPressStart(e) {\n if (e.pointerType !== 'keyboard') {\n setPressed(true);\n }\n },\n onPressEnd(e) {\n if (e.pointerType !== 'keyboard') {\n setPressed(false);\n }\n }\n });\n\n let {hoverProps, isHovered} = useHover({\n isDisabled: isInteractionDisabled\n });\n\n let pressed = isInteractionDisabled ? false : (isPressed || isPressedKeyboard);\n\n let renderProps = useRenderProps({\n // TODO: should data attrs go on the label or on the <input>? useCheckbox passes them to the input...\n ...props,\n defaultClassName: 'react-aria-Checkbox',\n values: {\n isSelected,\n isIndeterminate: props.isIndeterminate || false,\n isPressed: pressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly,\n validationState: props.validationState || groupState?.validationState,\n isRequired: props.isRequired || false\n }\n });\n\n return (\n <label\n {...mergeProps(pressProps, hoverProps, renderProps)}\n slot={props.slot}\n data-selected={isSelected || undefined}\n data-indeterminate={props.isIndeterminate || undefined}\n data-pressed={pressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-validation-state={props.validationState || groupState?.validationState || undefined}\n data-required={props.isRequired || undefined}>\n <VisuallyHidden>\n <input {...inputProps} {...focusProps} ref={ref} />\n </VisuallyHidden>\n {renderProps.children}\n </label>\n );\n}\n\n/**\n * A checkbox allows a user to select multiple items from a list of individual items, or\n * to mark one individual item as selected.\n */\nconst _Checkbox = forwardRef(Checkbox);\n\n/**\n * A checkbox group allows a user to select multiple items from a list of options.\n */\nconst _CheckboxGroup = forwardRef(CheckboxGroup);\n\nexport {_Checkbox as Checkbox, _CheckboxGroup as CheckboxGroup};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ContextValue, useContextProps} from './utils';\nimport React, {createContext, ForwardedRef, forwardRef, LabelHTMLAttributes} from 'react';\n\nexport interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n elementType?: string\n}\n\nexport const LabelContext = createContext<ContextValue<LabelProps, HTMLLabelElement>>({});\n\nfunction Label(props: LabelProps, ref: ForwardedRef<HTMLLabelElement>) {\n [props, ref] = useContextProps(props, ref, LabelContext);\n let {elementType: ElementType = 'label', ...labelProps} = props;\n // @ts-ignore\n return <ElementType className=\"react-aria-Label\" {...labelProps} ref={ref} />;\n}\n\nconst _Label = forwardRef(Label);\nexport {_Label as Label};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaComboBoxProps, useComboBox, useFilter} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {ComboBoxState, useComboBoxState} from 'react-stately';\nimport {ContextValue, forwardRefType, Provider, RenderProps, slotCallbackSymbol, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {InputContext} from './Input';\nimport {LabelContext} from './Label';\nimport {ListBoxContext, ListBoxProps} from './ListBox';\nimport {PopoverContext} from './Popover';\nimport React, {createContext, ForwardedRef, forwardRef, useCallback, useRef, useState} from 'react';\nimport {TextContext} from './Text';\nimport {useCollection} from './Collection';\nimport {useResizeObserver} from '@react-aria/utils';\n\nexport interface ComboBoxProps<T extends object> extends Omit<AriaComboBoxProps<T>, 'children' | 'placeholder' | 'name' | 'label' | 'description' | 'errorMessage'>, RenderProps<ComboBoxState<T>>, SlotProps {\n /** The filter function used to determine if a option should be included in the combo box list. */\n defaultFilter?: (textValue: string, inputValue: string) => boolean\n}\n\nexport const ComboBoxContext = createContext<ContextValue<ComboBoxProps<any>, HTMLDivElement>>(null);\n\nfunction ComboBox<T extends object>(props: ComboBoxProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, ComboBoxContext);\n let [propsFromListBox, setListBoxProps] = useState<ListBoxProps<T>>({children: []});\n\n let {contains} = useFilter({sensitivity: 'base'});\n let {portal, collection} = useCollection({\n items: props.items ?? props.defaultItems ?? propsFromListBox.items,\n children: propsFromListBox.children\n });\n let state = useComboBoxState({\n defaultFilter: props.defaultFilter || contains,\n ...props,\n items: propsFromListBox ? (props.items ?? propsFromListBox.items) : [],\n children: undefined,\n collection\n });\n\n let buttonRef = useRef<HTMLButtonElement>(null);\n let inputRef = useRef<HTMLInputElement>(null);\n let listBoxRef = useRef<HTMLDivElement>(null);\n let popoverRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {\n buttonProps,\n inputProps,\n listBoxProps,\n labelProps,\n descriptionProps,\n errorMessageProps\n } = useComboBox({\n ...props,\n label,\n inputRef,\n buttonRef,\n listBoxRef,\n popoverRef\n },\n state);\n\n // Make menu width match input + button\n let [menuWidth, setMenuWidth] = useState<string | null>(null);\n let onResize = useCallback(() => {\n if (inputRef.current) {\n let buttonRect = buttonRef.current?.getBoundingClientRect();\n let inputRect = inputRef.current.getBoundingClientRect();\n let minX = buttonRect ? Math.min(buttonRect.left, inputRect.left) : inputRect.left;\n let maxX = buttonRect ? Math.max(buttonRect.right, inputRect.right) : inputRect.right;\n setMenuWidth((maxX - minX) + 'px');\n }\n }, [buttonRef, inputRef, setMenuWidth]);\n\n useResizeObserver({\n ref: inputRef,\n onResize: onResize\n });\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-ComboBox'\n });\n\n return (\n <Provider\n values={[\n [LabelContext, {...labelProps, ref: labelRef}],\n [ButtonContext, {...buttonProps, ref: buttonRef, isPressed: state.isOpen}],\n [InputContext, {...inputProps, ref: inputRef}],\n [PopoverContext, {\n state,\n ref: popoverRef,\n triggerRef: inputRef,\n placement: 'bottom start',\n preserveChildren: true,\n isNonModal: true,\n style: {'--trigger-width': menuWidth} as React.CSSProperties\n }],\n [ListBoxContext, {state, [slotCallbackSymbol]: setListBoxProps, ...listBoxProps, ref: listBoxRef}],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n <div {...renderProps} ref={ref} slot={props.slot}>\n {props.children}\n </div>\n {portal}\n </Provider>\n );\n}\n\n/**\n * A combo box combines a text input with a listbox, allowing users to filter a list of options to items matching a query.\n */\nconst _ComboBox = (forwardRef as forwardRefType)(ComboBox);\nexport {_ComboBox as ComboBox};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ContextValue, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {mergeProps, useFocusRing, useHover} from 'react-aria';\nimport React, {createContext, ForwardedRef, forwardRef, InputHTMLAttributes} from 'react';\n\nexport interface InputRenderProps {\n /**\n * Whether the input is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the input is focused, either via a mouse or keyboard.\n * @selector :focus\n */\n isFocused: boolean,\n /**\n * Whether the input is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the input is disabled.\n * @selector :disabled\n */\n isDisabled: boolean\n}\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'>, StyleRenderProps<InputRenderProps> {}\n\nexport const InputContext = createContext<ContextValue<InputProps, HTMLInputElement>>({});\n\nfunction Input(props: InputProps, ref: ForwardedRef<HTMLInputElement>) {\n [props, ref] = useContextProps(props, ref, InputContext);\n\n let {hoverProps, isHovered} = useHover({});\n let {isFocused, isFocusVisible, focusProps} = useFocusRing({\n isTextInput: true,\n autoFocus: props.autoFocus\n });\n\n let renderProps = useRenderProps({\n ...props,\n values: {isHovered, isFocused, isFocusVisible, isDisabled: props.disabled || false},\n defaultClassName: 'react-aria-Input'\n });\n\n return (\n <input\n {...mergeProps(props, focusProps, hoverProps)}\n {...renderProps}\n ref={ref}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined} />\n );\n}\n\n/**\n * An input allows a user to input text.\n */\nconst _Input = forwardRef(Input);\nexport {_Input as Input};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaListBoxOptions, AriaListBoxProps, DraggableItemResult, DragPreviewRenderer, DroppableCollectionResult, DroppableItemResult, FocusScope, ListKeyboardDelegate, mergeProps, useFocusRing, useHover, useListBox, useListBoxSection, useOption} from 'react-aria';\nimport {CollectionProps, ItemProps, useCachedChildren, useCollection} from './Collection';\nimport {ContextValue, forwardRefType, HiddenContext, Provider, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {DragAndDropHooks, DropIndicator, DropIndicatorContext, DropIndicatorProps} from './useDragAndDrop';\nimport {DraggableCollectionState, DroppableCollectionState, ListState, Node, SelectionBehavior, useListState} from 'react-stately';\nimport {filterDOMProps, mergeRefs, useObjectRef} from '@react-aria/utils';\nimport {Header} from './Header';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {Separator, SeparatorContext} from './Separator';\nimport {TextContext} from './Text';\n\nexport interface ListBoxRenderProps {\n /**\n * Whether the listbox has no items and should display its empty state.\n * @selector [data-empty]\n */\n isEmpty: boolean,\n /**\n * Whether the listbox is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the listbox is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the listbox is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface ListBoxProps<T> extends Omit<AriaListBoxProps<T>, 'children'>, CollectionProps<T>, StyleRenderProps<ListBoxRenderProps>, SlotProps {\n /** How multiple selection should behave in the collection. */\n selectionBehavior?: SelectionBehavior,\n /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the ListBox. */\n dragAndDropHooks?: DragAndDropHooks,\n /** Provides content to display when there are no items in the list. */\n renderEmptyState?: () => ReactNode\n}\n\ninterface ListBoxContextValue<T> extends ListBoxProps<T> {\n state?: ListState<T>\n}\n\ninterface InternalListBoxContextValue {\n state: ListState<unknown>,\n shouldFocusOnHover?: boolean,\n dragAndDropHooks?: DragAndDropHooks,\n dragState?: DraggableCollectionState,\n dropState?: DroppableCollectionState\n}\n\nexport const ListBoxContext = createContext<ContextValue<ListBoxContextValue<any>, HTMLDivElement>>(null);\nconst InternalListBoxContext = createContext<InternalListBoxContextValue | null>(null);\n\nfunction ListBox<T>(props: ListBoxProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, ListBoxContext);\n let state = (props as ListBoxContextValue<T>).state;\n let isHidden = useContext(HiddenContext);\n\n if (state) {\n return isHidden ? null : <ListBoxInner state={state} props={props} listBoxRef={ref} />;\n }\n\n return <ListBoxPortal props={props} listBoxRef={ref} />;\n}\n\nfunction ListBoxPortal({props, listBoxRef}) {\n let {portal, collection} = useCollection(props);\n props = {...props, collection, children: null, items: null};\n let state = useListState(props);\n return (\n <>\n {portal}\n <ListBoxInner state={state} props={props} listBoxRef={listBoxRef} />\n </>\n );\n}\n\n/**\n * A listbox displays a list of options and allows a user to select one or more of them.\n */\nconst _ListBox = (forwardRef as forwardRefType)(ListBox);\nexport {_ListBox as ListBox};\n\ninterface ListBoxInnerProps<T> {\n state: ListState<T>,\n props: ListBoxProps<T> & AriaListBoxOptions<T>,\n listBoxRef: RefObject<HTMLDivElement>\n}\n\nfunction ListBoxInner<T>({state, props, listBoxRef}: ListBoxInnerProps<T>) {\n let {dragAndDropHooks} = props;\n let {collection, selectionManager} = state;\n let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let {listBoxProps} = useListBox({\n ...props,\n shouldSelectOnPressUp: isListDraggable || props.shouldSelectOnPressUp\n }, state, listBoxRef);\n\n let children = useCachedChildren({\n items: collection,\n children: (item: Node<T>) => {\n switch (item.type) {\n case 'section':\n return <ListBoxSection section={item} />;\n case 'separator':\n return <Separator {...item.props} />;\n case 'item':\n return <Option item={item} />;\n default:\n throw new Error('Unsupported node type in Menu: ' + item.type);\n }\n }\n });\n\n let dragHooksProvided = useRef(isListDraggable);\n let dropHooksProvided = useRef(isListDroppable);\n if (dragHooksProvided.current !== isListDraggable) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== isListDroppable) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n\n let dragState: DraggableCollectionState | undefined = undefined;\n let dropState: DroppableCollectionState | undefined = undefined;\n let droppableCollection: DroppableCollectionResult | undefined = undefined;\n let isRootDropTarget = false;\n let dragPreview: JSX.Element | null = null;\n let preview = useRef<DragPreviewRenderer>(null);\n\n if (isListDraggable && dragAndDropHooks) {\n dragState = dragAndDropHooks.useDraggableCollectionState!({\n collection,\n selectionManager,\n preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n });\n dragAndDropHooks.useDraggableCollection!({}, dragState, listBoxRef);\n\n let DragPreview = dragAndDropHooks.DragPreview!;\n dragPreview = dragAndDropHooks.renderDragPreview\n ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n : null;\n }\n\n if (isListDroppable && dragAndDropHooks) {\n dropState = dragAndDropHooks.useDroppableCollectionState!({\n collection,\n selectionManager\n });\n\n let keyboardDelegate = props.keyboardDelegate || new ListKeyboardDelegate(\n collection,\n selectionManager.disabledBehavior === 'selection' ? new Set() : selectionManager.disabledKeys,\n listBoxRef\n );\n let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection, listBoxRef);\n droppableCollection = dragAndDropHooks.useDroppableCollection!({\n keyboardDelegate,\n dropTargetDelegate\n }, dropState, listBoxRef);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-ListBox',\n values: {\n isDropTarget: isRootDropTarget,\n isEmpty: state.collection.size === 0,\n isFocused,\n isFocusVisible\n }\n });\n\n let emptyState: JSX.Element | null = null;\n if (state.collection.size === 0 && props.renderEmptyState) {\n emptyState = (\n <div\n // eslint-disable-next-line\n role=\"option\"\n style={{display: 'contents'}}>\n {props.renderEmptyState()}\n </div>\n );\n }\n\n return (\n <FocusScope>\n <div\n {...filterDOMProps(props)}\n {...mergeProps(listBoxProps, focusProps, droppableCollection?.collectionProps)}\n {...renderProps}\n ref={listBoxRef}\n slot={props.slot}\n data-drop-target={isRootDropTarget || undefined}\n data-empty={state.collection.size === 0 || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n <Provider\n values={[\n [InternalListBoxContext, {state, shouldFocusOnHover: props.shouldFocusOnHover, dragAndDropHooks, dragState, dropState}],\n [SeparatorContext, {elementType: 'li'}],\n [DropIndicatorContext, {render: ListBoxDropIndicator}]\n ]}>\n {children}\n </Provider>\n {emptyState}\n {dragPreview}\n </div>\n </FocusScope>\n );\n}\n\ninterface ListBoxSectionProps<T> extends StyleProps {\n section: Node<T>\n}\n\nfunction ListBoxSection<T>({section, className, style, ...otherProps}: ListBoxSectionProps<T>) {\n let {state} = useContext(InternalListBoxContext)!;\n let [headingRef, heading] = useSlot();\n let {headingProps, groupProps} = useListBoxSection({\n heading,\n 'aria-label': section['aria-label'] ?? undefined\n });\n\n let children = useCachedChildren({\n items: state.collection.getChildren!(section.key),\n children: item => {\n switch (item.type) {\n case 'header': {\n let {ref, ...otherProps} = item.props;\n return (\n <Header\n {...headingProps}\n {...otherProps}\n ref={mergeRefs(headingRef, ref)}>\n {item.rendered}\n </Header>\n );\n }\n case 'item':\n return <Option item={item} />;\n default:\n throw new Error('Unsupported element type in Section: ' + item.type);\n }\n }\n });\n\n return (\n <section\n {...filterDOMProps(otherProps)}\n {...groupProps}\n className={className || section.props?.className || 'react-aria-Section'}\n style={style || section.props?.style}>\n {children}\n </section>\n );\n}\n\ninterface OptionProps<T> {\n item: Node<T>\n}\n\nfunction Option<T>({item}: OptionProps<T>) {\n let ref = useRef<HTMLDivElement>(null);\n let {state, shouldFocusOnHover, dragAndDropHooks, dragState, dropState} = useContext(InternalListBoxContext)!;\n let {optionProps, labelProps, descriptionProps, ...states} = useOption(\n {key: item.key},\n state,\n ref\n );\n\n let {hoverProps, isHovered} = useHover({\n isDisabled: shouldFocusOnHover || (!states.allowsSelection && !states.hasAction)\n });\n\n if (shouldFocusOnHover) {\n hoverProps = {};\n isHovered = states.isFocused;\n }\n\n let draggableItem: DraggableItemResult | null = null;\n if (dragState && dragAndDropHooks) {\n draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key}, dragState);\n }\n\n let droppableItem: DroppableItemResult | null = null;\n if (dropState && dragAndDropHooks) {\n droppableItem = dragAndDropHooks.useDroppableItem!({\n target: {type: 'item', key: item.key, dropPosition: 'on'}\n }, dropState, ref);\n }\n\n let props: ItemProps<T> = item.props;\n let isDragging = dragState && dragState.isDragging(item.key);\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-Item',\n values: {\n ...states,\n isHovered,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior,\n allowsDragging: !!dragState,\n isDragging,\n isDropTarget: droppableItem?.isDropTarget\n }\n });\n\n let renderDropIndicator = dragAndDropHooks?.renderDropIndicator || (target => <DropIndicator target={target} />);\n\n useEffect(() => {\n if (!item.textValue) {\n console.warn('A `textValue` prop is required for <Item> elements with non-plain text children in order to support accessibility features such as type to select.');\n }\n }, [item.textValue]);\n\n return (\n <>\n {dragAndDropHooks?.useDropIndicator &&\n renderDropIndicator({type: 'item', key: item.key, dropPosition: 'before'})\n }\n <div\n {...mergeProps(optionProps, hoverProps, draggableItem?.dragProps, droppableItem?.dropProps)}\n {...renderProps}\n ref={ref}\n data-hovered={isHovered || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={states.isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}\n data-dragging={isDragging || undefined}\n data-drop-target={droppableItem?.isDropTarget || undefined}>\n <Provider\n values={[\n [TextContext, {\n slots: {\n label: labelProps,\n description: descriptionProps\n }\n }]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n {dragAndDropHooks?.useDropIndicator && state.collection.getKeyAfter(item.key) == null &&\n renderDropIndicator({type: 'item', key: item.key, dropPosition: 'after'})\n }\n </>\n );\n}\n\nfunction ListBoxDropIndicator(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n ref = useObjectRef(ref);\n let {dragAndDropHooks, dropState} = useContext(InternalListBoxContext)!;\n let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n props,\n dropState!,\n ref\n );\n\n if (isHidden) {\n return null;\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-DropIndicator',\n values: {\n isDropTarget\n }\n });\n\n return (\n <div\n {...dropIndicatorProps}\n {...renderProps}\n // eslint-disable-next-line\n role=\"option\"\n ref={ref as RefObject<HTMLDivElement>}\n data-drop-target={isDropTarget || undefined} />\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n DropIndicatorProps as AriaDropIndicatorProps,\n DraggableCollectionOptions,\n DraggableItemProps,\n DraggableItemResult,\n DragItem,\n DragPreview,\n DropIndicatorAria,\n DroppableCollectionOptions,\n DroppableCollectionResult,\n DroppableItemOptions,\n DroppableItemResult,\n DropTarget,\n DropTargetDelegate,\n ListDropTargetDelegate,\n useDraggableCollection,\n useDraggableItem,\n useDropIndicator,\n useDroppableCollection,\n useDroppableItem\n} from 'react-aria';\nimport {DraggableCollectionProps, DroppableCollectionProps} from '@react-types/shared';\nimport {\n DraggableCollectionState,\n DraggableCollectionStateOptions,\n DroppableCollectionState,\n DroppableCollectionStateOptions,\n useDraggableCollectionState,\n useDroppableCollectionState\n} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, Key, ReactNode, RefObject, useContext, useMemo} from 'react';\nimport {RenderProps} from './utils';\n\ninterface DraggableCollectionStateOpts extends Omit<DraggableCollectionStateOptions, 'getItems'> {}\n\ninterface DragHooks {\n useDraggableCollectionState?: (props: DraggableCollectionStateOpts) => DraggableCollectionState,\n useDraggableCollection?: (props: DraggableCollectionOptions, state: DraggableCollectionState, ref: RefObject<HTMLElement>) => void,\n useDraggableItem?: (props: DraggableItemProps, state: DraggableCollectionState) => DraggableItemResult,\n DragPreview?: typeof DragPreview,\n renderDragPreview?: (items: DragItem[]) => JSX.Element\n}\n\ninterface DropHooks {\n useDroppableCollectionState?: (props: DroppableCollectionStateOptions) => DroppableCollectionState,\n useDroppableCollection?: (props: DroppableCollectionOptions, state: DroppableCollectionState, ref: RefObject<HTMLElement>) => DroppableCollectionResult,\n useDroppableItem?: (options: DroppableItemOptions, state: DroppableCollectionState, ref: RefObject<HTMLElement>) => DroppableItemResult,\n useDropIndicator?: (props: AriaDropIndicatorProps, state: DroppableCollectionState, ref: RefObject<HTMLElement>) => DropIndicatorAria,\n renderDropIndicator?: (target: DropTarget) => JSX.Element,\n dropTargetDelegate?: DropTargetDelegate,\n ListDropTargetDelegate: typeof ListDropTargetDelegate\n}\n\nexport type DragAndDropHooks = DragHooks & DropHooks;\n\nexport interface DragAndDrop {\n /** Drag and drop hooks for the collection element. */\n dragAndDropHooks: DragAndDropHooks\n}\n\nexport interface DragAndDropOptions extends Omit<DraggableCollectionProps, 'preview' | 'getItems'>, DroppableCollectionProps {\n /**\n * A function that returns the items being dragged. If not specified, we assume that the collection is not draggable.\n * @default () => []\n */\n getItems?: (keys: Set<Key>) => DragItem[],\n /**\n * A function that renders a drag preview, which is shown under the user's cursor while dragging.\n * By default, a copy of the dragged element is rendered.\n */\n renderDragPreview?: (items: DragItem[]) => JSX.Element,\n /**\n * A function that renders a drop indicator element between two items in a collection.\n * This should render a `<DropIndicator>` element. If this function is not provided, a\n * default DropIndicator is provided.\n */\n renderDropIndicator?: (target: DropTarget) => JSX.Element,\n /** A custom delegate object that provides drop targets for pointer coordinates within the collection. */\n dropTargetDelegate?: DropTargetDelegate\n}\n\n/**\n * Provides the hooks required to enable drag and drop behavior for a drag and drop compatible collection component.\n */\nexport function useDragAndDrop(options: DragAndDropOptions): DragAndDrop {\n let dragAndDropHooks = useMemo(() => {\n let {\n onDrop,\n onInsert,\n onItemDrop,\n onReorder,\n onRootDrop,\n getItems,\n renderDragPreview,\n renderDropIndicator,\n dropTargetDelegate\n } = options;\n\n let isDraggable = !!getItems;\n let isDroppable = !!(onDrop || onInsert || onItemDrop || onReorder || onRootDrop);\n\n let hooks = {} as DragHooks & DropHooks;\n if (isDraggable) {\n hooks.useDraggableCollectionState = function useDraggableCollectionStateOverride(props: DraggableCollectionStateOpts) {\n return useDraggableCollectionState({...props, ...options} as DraggableCollectionStateOptions);\n };\n hooks.useDraggableCollection = useDraggableCollection;\n hooks.useDraggableItem = useDraggableItem;\n hooks.DragPreview = DragPreview;\n hooks.renderDragPreview = renderDragPreview;\n }\n\n if (isDroppable) {\n hooks.useDroppableCollectionState = function useDroppableCollectionStateOverride(props: DroppableCollectionStateOptions) {\n return useDroppableCollectionState({...props, ...options});\n },\n hooks.useDroppableItem = useDroppableItem;\n hooks.useDroppableCollection = function useDroppableCollectionOverride(props: DroppableCollectionOptions, state: DroppableCollectionState, ref: RefObject<HTMLElement>) {\n return useDroppableCollection({...props, ...options}, state, ref);\n };\n hooks.useDropIndicator = useDropIndicator;\n hooks.renderDropIndicator = renderDropIndicator;\n hooks.dropTargetDelegate = dropTargetDelegate;\n hooks.ListDropTargetDelegate = ListDropTargetDelegate;\n }\n\n return hooks;\n }, [options]);\n\n return {\n dragAndDropHooks\n };\n}\n\nexport const DropIndicatorContext = createContext<DropIndicatorContextValue | null>(null);\n\nexport interface DropIndicatorRenderProps {\n /**\n * Whether the drop indicator is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface DropIndicatorProps extends AriaDropIndicatorProps, RenderProps<DropIndicatorRenderProps> {}\n\ninterface DropIndicatorContextValue {\n render: (props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) => ReactNode\n}\n\nfunction DropIndicator(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>): JSX.Element {\n let {render} = useContext(DropIndicatorContext)!;\n return <>{render(props, ref)}</>;\n}\n\n/**\n * A DropIndicator is rendered between items in a collection to indicate where dropped data will be inserted.\n */\nconst _DropIndicator = forwardRef(DropIndicator);\nexport {_DropIndicator as DropIndicator};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ContextValue, useContextProps} from './utils';\nimport React, {createContext, ForwardedRef, forwardRef, HTMLAttributes} from 'react';\nimport {useShallowRender} from './Collection';\n\nexport const HeaderContext = createContext<ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>>({});\n\nfunction Header(props: HTMLAttributes<HTMLElement>, ref: ForwardedRef<HTMLElement>) {\n [props, ref] = useContextProps(props, ref, HeaderContext);\n let shallow = useShallowRender('header', props, ref);\n if (shallow) {\n return shallow;\n }\n\n return (\n <header className=\"react-aria-Header\" {...props} ref={ref}>\n {props.children}\n </header>\n );\n}\n\nconst _Header = forwardRef(Header);\nexport {_Header as Header};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {SeparatorProps as AriaSeparatorProps, useSeparator} from 'react-aria';\nimport {ContextValue, SlotProps, StyleProps, useContextProps} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport React, {createContext, ElementType, ForwardedRef, forwardRef} from 'react';\nimport {useShallowRender} from './Collection';\n\nexport interface SeparatorProps extends AriaSeparatorProps, StyleProps, SlotProps {}\n\nexport const SeparatorContext = createContext<ContextValue<SeparatorProps, Element>>({});\n\nfunction Separator(props: SeparatorProps, ref: ForwardedRef<Element>) {\n [props, ref] = useContextProps(props, ref, SeparatorContext);\n let {elementType, orientation, style, className} = props;\n let Element = (elementType as ElementType) || 'hr';\n if (Element === 'hr' && orientation === 'vertical') {\n Element = 'div';\n }\n\n let {separatorProps} = useSeparator({\n elementType,\n orientation\n });\n\n let shallow = useShallowRender('separator', props, ref);\n if (shallow) {\n return shallow;\n }\n\n return (\n <Element\n {...filterDOMProps(props)}\n {...separatorProps}\n style={style}\n className={className ?? 'react-aria-Separator'}\n ref={ref}\n slot={props.slot} />\n );\n}\n\nconst _Separator = forwardRef(Separator);\nexport {_Separator as Separator};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaPopoverProps, DismissButton, Overlay, PlacementAxis, PositionProps, usePopover} from 'react-aria';\nimport {ContextValue, HiddenContext, RenderProps, SlotProps, useContextProps, useEnterAnimation, useExitAnimation, useRenderProps} from './utils';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport {OverlayTriggerState} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, RefObject} from 'react';\n\nexport interface PopoverProps extends Omit<PositionProps, 'isOpen'>, Omit<AriaPopoverProps, 'popoverRef' | 'triggerRef'>, RenderProps<PopoverRenderProps>, SlotProps {\n /**\n * The ref for the element which the popover positions itself with respect to.\n *\n * When used within a trigger component such as DialogTrigger, MenuTrigger, Select, etc.,\n * this is set automatically. It is only required when used standalone.\n */\n triggerRef?: RefObject<Element>\n}\n\nexport interface PopoverRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis,\n /**\n * Whether the popover is currently entering. Use this to apply animations.\n * @selector [data-entering]\n */\n isEntering: boolean,\n /**\n * Whether the popover is currently exiting. Use this to apply animations.\n * @selector [data-exiting]\n */\n isExiting: boolean\n}\n\ninterface PopoverContextValue extends PopoverProps {\n state: OverlayTriggerState,\n preserveChildren?: boolean,\n triggerRef: RefObject<Element>\n}\n\nexport const PopoverContext = createContext<ContextValue<PopoverContextValue, HTMLElement>>(null);\n\nfunction Popover(props: PopoverProps, ref: ForwardedRef<HTMLElement>) {\n [props, ref] = useContextProps(props, ref, PopoverContext);\n let {preserveChildren, state, triggerRef} = props as PopoverContextValue;\n let isExiting = useExitAnimation(ref, state.isOpen);\n\n if (state && !state.isOpen && !isExiting) {\n return preserveChildren ? <HiddenContext.Provider value>{props.children}</HiddenContext.Provider> : null;\n }\n\n return (\n <PopoverInner\n {...props}\n triggerRef={triggerRef}\n state={state}\n popoverRef={ref}\n isExiting={isExiting} />\n );\n}\n\n/**\n * A popover is an overlay element positioned relative to a trigger.\n */\nconst _Popover = forwardRef(Popover);\nexport {_Popover as Popover};\n\ninterface PopoverInnerProps extends AriaPopoverProps, RenderProps<PopoverRenderProps>, SlotProps {\n state: OverlayTriggerState,\n isExiting: boolean\n}\n\nfunction PopoverInner({children, state, isExiting, ...props}: PopoverInnerProps) {\n let {popoverProps, underlayProps, arrowProps, placement} = usePopover({\n ...props,\n offset: props.offset ?? 8\n }, state);\n\n let ref = props.popoverRef as RefObject<HTMLDivElement>;\n let isEntering = useEnterAnimation(ref, !!placement);\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Popover',\n values: {\n placement,\n isEntering,\n isExiting\n }\n });\n\n let style = {...renderProps.style, ...popoverProps.style};\n\n return (\n <Overlay>\n {!props.isNonModal && <div {...underlayProps} style={{position: 'fixed', inset: 0}} />}\n <div\n {...popoverProps}\n {...renderProps}\n ref={ref}\n slot={props.slot}\n style={style}\n data-placement={placement}\n data-entering={isEntering || undefined}\n data-exiting={isExiting || undefined}>\n {!props.isNonModal && <DismissButton onDismiss={state.close} />}\n <OverlayArrowContext.Provider value={{arrowProps, placement}}>\n {children}\n </OverlayArrowContext.Provider>\n <DismissButton onDismiss={state.close} />\n </div>\n </Overlay>\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport {PlacementAxis} from 'react-aria';\nimport React, {createContext, CSSProperties, ForwardedRef, forwardRef, HTMLAttributes, useContext} from 'react';\nimport {RenderProps, useRenderProps} from './utils';\n\ninterface OverlayArrowContextValue {\n arrowProps: HTMLAttributes<HTMLElement>,\n placement: PlacementAxis\n}\n\nexport const OverlayArrowContext = createContext<OverlayArrowContextValue | null>(null);\n\nexport interface OverlayArrowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style' | 'children'>, RenderProps<OverlayArrowRenderProps> {}\n\nexport interface OverlayArrowRenderProps {\n /**\n * The placement of the overlay relative to the trigger.\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis\n}\n\nfunction OverlayArrow(props: OverlayArrowProps, ref: ForwardedRef<HTMLDivElement>) {\n let {arrowProps, placement} = useContext(OverlayArrowContext)!;\n let style: CSSProperties = {\n ...arrowProps.style,\n position: 'absolute',\n [placement]: '100%',\n transform: placement === 'top' || placement === 'bottom' ? 'translateX(-50%)' : 'translateY(-50%)'\n };\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-OverlayArrow',\n values: {\n placement\n }\n });\n\n return (\n <div\n {...mergeProps(arrowProps, props)}\n {...renderProps}\n style={{\n ...renderProps.style,\n ...style\n }}\n ref={ref}\n data-placement={placement} />\n );\n}\n\n/**\n * An OverlayArrow renders a custom arrow element relative to an overlay element\n * such as a popover or tooltip such that it aligns with a trigger element.\n */\nconst _OverlayArrow = forwardRef(OverlayArrow);\nexport {_OverlayArrow as OverlayArrow};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDateFieldProps, AriaTimeFieldProps, DateValue, mergeProps, TimeValue, useDateField, useDateSegment, useFocusRing, useHover, useLocale, useTimeField} from 'react-aria';\nimport {ContextValue, forwardRefType, Provider, RenderProps, SlotProps, StyleRenderProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {createCalendar} from '@internationalized/date';\nimport {DateFieldState, DateSegmentType, DateSegment as IDateSegment, useDateFieldState, useTimeFieldState} from 'react-stately';\nimport {LabelContext} from './Label';\nimport React, {cloneElement, createContext, ForwardedRef, forwardRef, HTMLAttributes, ReactElement, useContext, useRef} from 'react';\nimport {TextContext} from './Text';\nimport {useObjectRef} from '@react-aria/utils';\n\nexport interface DateFieldProps<T extends DateValue> extends Omit<AriaDateFieldProps<T>, 'label' | 'description' | 'errorMessage'>, RenderProps<DateFieldState>, SlotProps {}\nexport interface TimeFieldProps<T extends TimeValue> extends Omit<AriaTimeFieldProps<T>, 'label' | 'description' | 'errorMessage'>, RenderProps<DateFieldState>, SlotProps {}\n\ninterface DateInputContextValue extends SlotProps {\n state: DateFieldState,\n fieldProps: HTMLAttributes<HTMLElement>\n}\n\nexport const DateFieldContext = createContext<ContextValue<DateFieldProps<any>, HTMLDivElement>>(null);\nexport const TimeFieldContext = createContext<ContextValue<TimeFieldProps<any>, HTMLDivElement>>(null);\nexport const DateInputContext = createContext<ContextValue<DateInputContextValue, HTMLDivElement>>(null);\n\nfunction DateField<T extends DateValue>(props: DateFieldProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, DateFieldContext);\n let {locale} = useLocale();\n let state = useDateFieldState({\n ...props,\n locale,\n createCalendar\n });\n\n let fieldRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useDateField({...props, label}, state, fieldRef);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-DateField'\n });\n\n return (\n <Provider\n values={[\n [DateInputContext, {state, fieldProps, ref: fieldRef}],\n [LabelContext, {...labelProps, ref: labelRef}],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n <div {...renderProps} ref={ref} slot={props.slot}>\n {props.children}\n </div>\n </Provider>\n );\n}\n\n/**\n * A date field allows users to enter and edit date and time values using a keyboard.\n * Each part of a date value is displayed in an individually editable segment.\n */\nconst _DateField = (forwardRef as forwardRefType)(DateField);\nexport {_DateField as DateField};\n\nfunction TimeField<T extends TimeValue>(props: TimeFieldProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TimeFieldContext);\n let {locale} = useLocale();\n let state = useTimeFieldState({\n ...props,\n locale\n });\n\n let fieldRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useTimeField({...props, label}, state, fieldRef);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-TimeField'\n });\n\n return (\n <Provider\n values={[\n [DateInputContext, {state, fieldProps, ref: fieldRef}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n <div {...renderProps} ref={ref} slot={props.slot}>\n {props.children}\n </div>\n </Provider>\n );\n}\n\n/**\n * A time field allows users to enter and edit time values using a keyboard.\n * Each part of a time value is displayed in an individually editable segment.\n */\nconst _TimeField = (forwardRef as forwardRefType)(TimeField);\nexport {_TimeField as TimeField};\n\nconst InternalDateInputContext = createContext<DateFieldState| null>(null);\n\nexport interface DateInputRenderProps {\n /**\n * Whether the date input is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether an element within the date input is focused, either via a mouse or keyboard.\n * @selector :focus-within\n */\n isFocusWithin: boolean,\n /**\n * Whether an element within the date input is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the date input is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean\n}\n\nexport interface DateInputProps extends SlotProps, StyleRenderProps<DateInputRenderProps> {\n children: (segment: IDateSegment) => ReactElement\n}\n\nfunction DateInput({children, slot, ...otherProps}: DateInputProps, ref: ForwardedRef<HTMLDivElement>) {\n let [{state, fieldProps}, fieldRef] = useContextProps({slot} as DateInputProps & DateInputContextValue, ref, DateInputContext);\n\n let {hoverProps, isHovered} = useHover({});\n let {isFocused, isFocusVisible, focusProps} = useFocusRing({\n within: true,\n isTextInput: true\n });\n\n let renderProps = useRenderProps({\n ...otherProps,\n values: {isHovered, isFocusWithin: isFocused, isFocusVisible, isDisabled: state.isDisabled},\n defaultClassName: 'react-aria-DateInput'\n });\n\n return (\n <InternalDateInputContext.Provider value={state}>\n <div\n {...mergeProps(fieldProps, focusProps, hoverProps)}\n {...renderProps}\n ref={fieldRef}\n slot={slot}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={state.isDisabled || undefined}>\n {state.segments.map((segment, i) => cloneElement(children(segment), {key: i}))}\n </div>\n </InternalDateInputContext.Provider>\n );\n}\n\n/**\n * A date input groups the editable date segments within a date field.\n */\nconst _DateInput = forwardRef(DateInput);\nexport {_DateInput as DateInput};\n\nexport interface DateSegmentRenderProps extends Omit<IDateSegment, 'isEditable'> {\n /**\n * Whether the value is a placeholder.\n * @selector [data-placeholder]\n */\n isPlaceholder: boolean,\n /**\n * Whether the segment is read only.\n * @selector [aria-readonly]\n */\n isReadOnly: boolean,\n /**\n * Whether the date field is in an invalid state.\n * @selector [aria-invalid]\n */\n isInvalid: boolean,\n /**\n * The type of segment. Values include `literal`, `year`, `month`, `day`, etc.\n * @selector [data-type=\"...\"]\n */\n type: DateSegmentType\n}\n\nexport interface DateSegmentProps extends RenderProps<DateSegmentRenderProps> {\n segment: IDateSegment\n}\n\nfunction DateSegment({segment, ...otherProps}: DateSegmentProps, ref: ForwardedRef<HTMLDivElement>) {\n let state = useContext(InternalDateInputContext)!;\n let domRef = useObjectRef(ref);\n let {segmentProps} = useDateSegment(segment, state, domRef);\n let renderProps = useRenderProps({\n ...otherProps,\n values: {\n ...segment,\n isReadOnly: !segment.isEditable,\n isInvalid: state.validationState === 'invalid'\n },\n defaultChildren: segment.text,\n defaultClassName: 'react-aria-DateSegment'\n });\n\n return (\n <div\n {...segmentProps}\n {...renderProps}\n ref={domRef}\n data-type={segment.type} />\n );\n}\n\n/**\n * A date segment displays an individual unit of a date and time, and allows users to edit\n * the value by typing or using the arrow keys to increment and decrement.\n */\nconst _DateSegment = forwardRef(DateSegment);\nexport {_DateSegment as DateSegment};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDatePickerProps, AriaDateRangePickerProps, DateValue, useDateField, useDatePicker, useDateRangePicker, useLocale} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {CalendarContext, RangeCalendarContext} from './Calendar';\nimport {ContextValue, forwardRefType, Provider, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {createCalendar} from '@internationalized/date';\nimport {DateInputContext} from './DateField';\nimport {DatePickerState, DateRangePickerState, useDateFieldState, useDatePickerState, useDateRangePickerState} from 'react-stately';\nimport {DialogContext} from './Dialog';\nimport {GroupContext} from './Group';\nimport {LabelContext} from './Label';\nimport {PopoverContext} from './Popover';\nimport React, {createContext, ForwardedRef, forwardRef, useRef} from 'react';\nimport {TextContext} from './Text';\n\nexport interface DatePickerProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'label' | 'description' | 'errorMessage'>, RenderProps<DatePickerState>, SlotProps {}\nexport interface DateRangePickerProps<T extends DateValue> extends Omit<AriaDateRangePickerProps<T>, 'label' | 'description' | 'errorMessage'>, RenderProps<DateRangePickerState>, SlotProps {}\n\nexport const DatePickerContext = createContext<ContextValue<DatePickerProps<any>, HTMLDivElement>>(null);\nexport const DateRangePickerContext = createContext<ContextValue<DateRangePickerProps<any>, HTMLDivElement>>(null);\n\nfunction DatePicker<T extends DateValue>(props: DatePickerProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, DatePickerContext);\n let state = useDatePickerState(props);\n let groupRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n descriptionProps,\n errorMessageProps\n } = useDatePicker({...props, label}, state, groupRef);\n\n let {locale} = useLocale();\n let fieldState = useDateFieldState({\n ...fieldProps,\n locale,\n createCalendar\n });\n\n let fieldRef = useRef<HTMLDivElement>(null);\n let {fieldProps: dateFieldProps} = useDateField({...fieldProps, label}, fieldState, fieldRef);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-DatePicker'\n });\n\n return (\n <Provider\n values={[\n [GroupContext, {...groupProps, ref: groupRef}],\n [DateInputContext, {state: fieldState, fieldProps: dateFieldProps, ref: fieldRef}],\n [ButtonContext, {...buttonProps, isPressed: state.isOpen}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [CalendarContext, calendarProps],\n [PopoverContext, {state, triggerRef: groupRef, placement: 'bottom start'}],\n [DialogContext, dialogProps],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n <div {...renderProps} ref={ref} slot={props.slot}>\n {props.children}\n </div>\n </Provider>\n );\n}\n\n/**\n * A date picker combines a DateField and a Calendar popover to allow users to enter or select a date and time value.\n */\nconst _DatePicker = (forwardRef as forwardRefType)(DatePicker);\nexport {_DatePicker as DatePicker};\n\nfunction DateRangePicker<T extends DateValue>(props: DateRangePickerProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, DateRangePickerContext);\n let state = useDateRangePickerState(props);\n let groupRef = useRef<HTMLDivElement>(null);\n let [labelRef, label] = useSlot();\n let {\n groupProps,\n labelProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n descriptionProps,\n errorMessageProps\n } = useDateRangePicker({...props, label}, state, groupRef);\n\n let {locale} = useLocale();\n let startFieldState = useDateFieldState({\n ...startFieldProps,\n locale,\n createCalendar\n });\n\n let startFieldRef = useRef<HTMLDivElement>(null);\n let {fieldProps: startDateFieldProps} = useDateField({...startFieldProps, label}, startFieldState, startFieldRef);\n\n let endFieldState = useDateFieldState({\n ...endFieldProps,\n locale,\n createCalendar\n });\n\n let endFieldRef = useRef<HTMLDivElement>(null);\n let {fieldProps: endDateFieldProps} = useDateField({...endFieldProps, label}, endFieldState, endFieldRef);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-DateRangePicker'\n });\n\n return (\n <Provider\n values={[\n [GroupContext, {...groupProps, ref: groupRef}],\n [ButtonContext, {...buttonProps, isPressed: state.isOpen}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [RangeCalendarContext, calendarProps],\n [PopoverContext, {state, triggerRef: groupRef, placement: 'bottom start'}],\n [DialogContext, dialogProps],\n [DateInputContext, {\n slots: {\n start: {\n state: startFieldState,\n fieldProps: startDateFieldProps,\n ref: startFieldRef\n },\n end: {\n state: endFieldState,\n fieldProps: endDateFieldProps,\n ref: endFieldRef\n }\n }\n }],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n <div {...renderProps} ref={ref} slot={props.slot}>\n {props.children}\n </div>\n </Provider>\n );\n}\n\n/**\n * A date range picker combines two DateFields and a RangeCalendar popover to allow\n * users to enter or select a date and time range.\n */\nconst _DateRangePicker = (forwardRef as forwardRefType)(DateRangePicker);\nexport {_DateRangePicker as DateRangePicker};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaDialogProps, useDialog, useOverlayTrigger} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {ContextValue, DOMProps, Provider, SlotProps, useContextProps} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {HeadingContext} from './Heading';\nimport {ModalContext} from './Modal';\nimport {OverlayTriggerProps, useOverlayTriggerState} from 'react-stately';\nimport {PopoverContext} from './Popover';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, useRef} from 'react';\n\nexport interface DialogTriggerProps extends OverlayTriggerProps {\n children: ReactNode\n}\n\ninterface DialogRenderProps {\n close: () => void\n}\n\nexport interface DialogProps extends AriaDialogProps, DOMProps, SlotProps {\n children?: ReactNode | ((opts: DialogRenderProps) => ReactNode),\n onClose?: () => void\n}\n\nexport const DialogContext = createContext<ContextValue<DialogProps, HTMLElement>>(null);\n\n/**\n * A DialogTrigger opens a dialog when a trigger element is pressed.\n */\nexport function DialogTrigger(props: DialogTriggerProps) {\n let state = useOverlayTriggerState(props);\n\n let buttonRef = useRef<HTMLButtonElement>(null);\n let {triggerProps, overlayProps} = useOverlayTrigger({type: 'dialog'}, state, buttonRef);\n\n return (\n <Provider\n values={[\n [ModalContext, {state}],\n [DialogContext, {...overlayProps, onClose: state.close}],\n [ButtonContext, {...triggerProps, isPressed: state.isOpen, ref: buttonRef}],\n [PopoverContext, {state, triggerRef: buttonRef}]\n ]}>\n {props.children}\n </Provider>\n );\n}\n\n\nfunction Dialog(props: DialogProps, ref: ForwardedRef<HTMLElement>) {\n [props, ref] = useContextProps(props, ref, DialogContext);\n let {dialogProps, titleProps} = useDialog(props, ref);\n\n let children = props.children;\n if (typeof children === 'function') {\n children = children({\n close: props.onClose || (() => {})\n });\n }\n\n return (\n <section\n {...filterDOMProps(props)}\n {...dialogProps}\n ref={ref}\n slot={props.slot}\n style={props.style}\n className={props.className ?? 'react-aria-Dialog'}>\n <Provider\n values={[\n [ButtonContext, undefined],\n // TODO: clear context within dialog content?\n [HeadingContext, {...titleProps, level: 2}]\n ]}>\n {children}\n </Provider>\n </section>\n );\n}\n\n/**\n * A dialog is an overlay shown above other content in an application.\n */\nconst _Dialog = forwardRef(Dialog);\nexport {_Dialog as Dialog};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaModalOverlayProps, DismissButton, Overlay, useModalOverlay} from 'react-aria';\nimport {DOMAttributes} from '@react-types/shared';\nimport {mergeRefs, useObjectRef, useViewportSize} from '@react-aria/utils';\nimport {OverlayTriggerProps, OverlayTriggerState, useOverlayTriggerState} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, RefObject, useContext, useMemo, useRef} from 'react';\nimport {RenderProps, useEnterAnimation, useExitAnimation, useRenderProps} from './utils';\n\nexport interface ModalOverlayProps extends AriaModalOverlayProps, OverlayTriggerProps, RenderProps<ModalRenderProps> {}\n\ninterface ModalContextValue {\n state?: OverlayTriggerState\n}\n\ninterface InternalModalContextValue {\n modalProps: DOMAttributes,\n modalRef: RefObject<HTMLDivElement>,\n isExiting: boolean,\n isDismissable?: boolean,\n state: OverlayTriggerState\n}\n\nexport const ModalContext = createContext<ModalContextValue | null>(null);\nconst InternalModalContext = createContext<InternalModalContextValue | null>(null);\n\nexport interface ModalRenderProps {\n /**\n * Whether the modal is currently entering. Use this to apply animations.\n * @selector [data-entering]\n */\n isEntering: boolean,\n /**\n * Whether the modal is currently exiting. Use this to apply animations.\n * @selector [data-exiting]\n */\n isExiting: boolean\n}\n\nfunction Modal(props: ModalOverlayProps, ref: ForwardedRef<HTMLDivElement>) {\n let ctx = useContext(InternalModalContext);\n\n if (ctx) {\n return <ModalContent {...props} modalRef={ref}>{props.children}</ModalContent>;\n }\n\n let {\n isDismissable,\n isKeyboardDismissDisabled,\n isOpen,\n defaultOpen,\n onOpenChange,\n children,\n ...otherProps\n } = props;\n\n return (\n <ModalOverlay\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n isOpen={isOpen}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}>\n <ModalContent {...otherProps} modalRef={ref}>\n {children}\n </ModalContent>\n </ModalOverlay>\n );\n}\n\ninterface ModalOverlayInnerProps extends ModalOverlayProps {\n overlayRef: RefObject<HTMLDivElement>,\n modalRef: RefObject<HTMLDivElement>,\n state: OverlayTriggerState,\n isExiting: boolean\n}\n\n/**\n * A modal is an overlay element which blocks interaction with elements outside it.\n */\nconst _Modal = forwardRef(Modal);\nexport {_Modal as Modal};\n\n/**\n * A ModalOverlay is a wrapper for a Modal which allows customizing the backdrop element.\n */\nexport const ModalOverlay = forwardRef((props: ModalOverlayProps, ref: ForwardedRef<HTMLDivElement>) => {\n let ctx = useContext(ModalContext);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let state = ctx?.state ?? useOverlayTriggerState(props);\n\n let objectRef = useObjectRef(ref);\n let modalRef = useRef<HTMLDivElement>(null);\n let isOverlayExiting = useExitAnimation(objectRef, state.isOpen);\n let isModalExiting = useExitAnimation(modalRef, state.isOpen);\n let isExiting = isOverlayExiting || isModalExiting;\n\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <ModalOverlayInner\n {...props}\n state={state}\n isExiting={isExiting}\n overlayRef={objectRef}\n modalRef={modalRef} />\n );\n});\n\nfunction ModalOverlayInner(props: ModalOverlayInnerProps) {\n let modalRef = props.modalRef;\n let {state} = props;\n let {modalProps, underlayProps} = useModalOverlay(props, state, modalRef);\n\n let entering = useEnterAnimation(props.overlayRef);\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-ModalOverlay',\n values: {\n isEntering: entering,\n isExiting: props.isExiting\n }\n });\n\n let viewport = useViewportSize();\n let style = {\n ...renderProps.style,\n '--visual-viewport-height': viewport.height + 'px'\n };\n\n return (\n <Overlay>\n <div\n {...underlayProps}\n {...renderProps}\n style={style}\n ref={props.overlayRef}\n data-entering={entering || undefined}\n data-exiting={props.isExiting || undefined}>\n <InternalModalContext.Provider value={{modalProps, modalRef, state, isExiting: props.isExiting, isDismissable: props.isDismissable}}>\n {renderProps.children}\n </InternalModalContext.Provider>\n </div>\n </Overlay>\n );\n}\n\ninterface ModalContentProps extends RenderProps<ModalRenderProps> {\n modalRef: ForwardedRef<HTMLDivElement>\n}\n\nfunction ModalContent(props: ModalContentProps) {\n let {modalProps, modalRef, isExiting, isDismissable, state} = useContext(InternalModalContext)!;\n let mergedRefs = useMemo(() => mergeRefs(props.modalRef, modalRef), [props.modalRef, modalRef]);\n\n let ref = useObjectRef(mergedRefs);\n let entering = useEnterAnimation(ref);\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Modal',\n values: {\n isEntering: entering,\n isExiting\n }\n });\n\n return (\n <div\n {...modalProps}\n {...renderProps}\n ref={ref}\n data-entering={entering || undefined}\n data-exiting={isExiting || undefined}>\n {isDismissable &&\n <DismissButton onDismiss={state.close} />\n }\n {renderProps.children}\n </div>\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ContextValue, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {mergeProps, useFocusRing, useHover} from 'react-aria';\nimport React, {createContext, ForwardedRef, forwardRef, HTMLAttributes} from 'react';\n\nexport interface GroupRenderProps {\n /**\n * Whether the group is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether an element within the group is focused, either via a mouse or keyboard.\n * @selector :focus-within\n */\n isFocusWithin: boolean,\n /**\n * Whether an element within the group is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean\n}\n\nexport interface GroupProps extends Omit<HTMLAttributes<HTMLElement>, 'className' | 'style'>, StyleRenderProps<GroupRenderProps> {}\n\nexport const GroupContext = createContext<ContextValue<GroupProps, HTMLDivElement>>({});\n\nfunction Group(props: GroupProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, GroupContext);\n\n let {hoverProps, isHovered} = useHover({});\n let {isFocused, isFocusVisible, focusProps} = useFocusRing({\n within: true\n });\n\n let renderProps = useRenderProps({\n ...props,\n values: {isHovered, isFocusWithin: isFocused, isFocusVisible},\n defaultClassName: 'react-aria-Group'\n });\n\n return (\n <div\n {...mergeProps(props, focusProps, hoverProps)}\n {...renderProps}\n ref={ref}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n {props.children}\n </div>\n );\n}\n\n/**\n * An group represents a set of related UI controls.\n */\nconst _Group = forwardRef(Group);\nexport {_Group as Group};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaGridListProps, DraggableItemResult, DragPreviewRenderer, DropIndicatorAria, DroppableCollectionResult, FocusScope, ListKeyboardDelegate, mergeProps, useFocusRing, useGridList, useGridListItem, useGridListSelectionCheckbox, useHover, useVisuallyHidden, VisuallyHidden} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {CheckboxContext} from './Checkbox';\nimport {CollectionProps, ItemProps, useCachedChildren, useCollection} from './Collection';\nimport {ContextValue, defaultSlot, forwardRefType, Provider, SlotProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {DragAndDropHooks, DropIndicator, DropIndicatorContext, DropIndicatorProps} from './useDragAndDrop';\nimport {DraggableCollectionState, DroppableCollectionState, ListState, Node, SelectionBehavior, useListState} from 'react-stately';\nimport {filterDOMProps, isIOS, isWebKit, useObjectRef} from '@react-aria/utils';\nimport React, {createContext, ForwardedRef, forwardRef, HTMLAttributes, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {TextContext} from './Text';\n\nexport interface GridListRenderProps {\n /**\n * Whether the list has no items and should display its empty state.\n * @selector [data-empty]\n */\n isEmpty: boolean,\n /**\n * Whether the grid list is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the grid list is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the grid list is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface GridListProps<T> extends Omit<AriaGridListProps<T>, 'children'>, CollectionProps<T>, StyleRenderProps<GridListRenderProps>, SlotProps {\n /** How multiple selection should behave in the collection. */\n selectionBehavior?: SelectionBehavior,\n /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the GridList. */\n dragAndDropHooks?: DragAndDropHooks,\n /** Provides content to display when there are no items in the list. */\n renderEmptyState?: () => ReactNode\n}\n\ninterface InternalGridListContextValue {\n state: ListState<unknown>,\n dragAndDropHooks?: DragAndDropHooks,\n dragState?: DraggableCollectionState,\n dropState?: DroppableCollectionState\n}\n\nexport const GridListContext = createContext<ContextValue<GridListProps<any>, HTMLDivElement>>(null);\nconst InternalGridListContext = createContext<InternalGridListContextValue | null>(null);\n\nfunction GridList<T extends object>(props: GridListProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, GridListContext);\n let {dragAndDropHooks} = props;\n let {portal, collection} = useCollection(props);\n let state = useListState({\n ...props,\n collection,\n children: undefined\n });\n\n let {gridProps} = useGridList(props, state, ref);\n\n let children = useCachedChildren({\n items: collection,\n children: (item: Node<T>) => {\n switch (item.type) {\n case 'item':\n return <GridListItem item={item} />;\n default:\n throw new Error('Unsupported node type in GridList: ' + item.type);\n }\n }\n });\n\n let selectionManager = state.selectionManager;\n let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isListDraggable);\n let dropHooksProvided = useRef(isListDroppable);\n if (dragHooksProvided.current !== isListDraggable) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== isListDroppable) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n\n let dragState: DraggableCollectionState | undefined = undefined;\n let dropState: DroppableCollectionState | undefined = undefined;\n let droppableCollection: DroppableCollectionResult | undefined = undefined;\n let isRootDropTarget = false;\n let dragPreview: JSX.Element | null = null;\n let preview = useRef<DragPreviewRenderer>(null);\n\n if (isListDraggable && dragAndDropHooks) {\n dragState = dragAndDropHooks.useDraggableCollectionState!({\n collection,\n selectionManager,\n preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n });\n dragAndDropHooks.useDraggableCollection!({}, dragState, ref);\n\n let DragPreview = dragAndDropHooks.DragPreview!;\n dragPreview = dragAndDropHooks.renderDragPreview\n ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n : null;\n }\n\n if (isListDroppable && dragAndDropHooks) {\n dropState = dragAndDropHooks.useDroppableCollectionState!({\n collection,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate(\n collection,\n selectionManager.disabledBehavior === 'selection' ? new Set() : selectionManager.disabledKeys,\n ref\n );\n let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection, ref);\n droppableCollection = dragAndDropHooks.useDroppableCollection!({\n keyboardDelegate,\n dropTargetDelegate\n }, dropState, ref);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-GridList',\n values: {\n isDropTarget: isRootDropTarget,\n isEmpty: state.collection.size === 0,\n isFocused,\n isFocusVisible\n }\n });\n\n let emptyState: ReactNode = null;\n let emptyStatePropOverrides: HTMLAttributes<HTMLElement> | null = null;\n if (state.collection.size === 0 && props.renderEmptyState) {\n // Ideally we'd use `display: contents` on the row and cell elements so that\n // they don't affect the layout of the children. However, WebKit currently has\n // a bug that makes grid elements with display: contents hidden to screen readers.\n // https://bugs.webkit.org/show_bug.cgi?id=239479\n let content = props.renderEmptyState();\n if (isWebKit()) {\n // For now, when in an empty state, swap the role to group in webkit.\n emptyStatePropOverrides = {\n role: 'group',\n 'aria-multiselectable': undefined\n };\n\n if (isIOS()) {\n // iOS VoiceOver also doesn't announce the aria-label of group elements\n // so try to add a visually hidden label element as well.\n emptyState = (\n <>\n <VisuallyHidden>{gridProps['aria-label']}</VisuallyHidden>\n {content}\n </>\n );\n } else {\n emptyState = content;\n }\n } else {\n emptyState = (\n <div role=\"row\" style={{display: 'contents'}}>\n <div role=\"gridcell\" style={{display: 'contents'}}>\n {content}\n </div>\n </div>\n );\n }\n }\n\n return (\n <FocusScope>\n <div\n {...filterDOMProps(props)}\n {...renderProps}\n {...mergeProps(gridProps, focusProps, droppableCollection?.collectionProps, emptyStatePropOverrides)}\n ref={ref}\n slot={props.slot}\n data-drop-target={isRootDropTarget || undefined}\n data-empty={state.collection.size === 0 || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n <Provider\n values={[\n [InternalGridListContext, {state, dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: GridListDropIndicator}]\n ]}>\n {isListDroppable && <RootDropIndicator />}\n {children}\n </Provider>\n {emptyState}\n {dragPreview}\n {portal}\n </div>\n </FocusScope>\n );\n}\n\n/**\n * A grid list displays a list of interactive items, with support for keyboard navigation,\n * single or multiple selection, and row actions.\n */\nconst _GridList = (forwardRef as forwardRefType)(GridList);\nexport {_GridList as GridList};\n\nfunction GridListItem({item}) {\n let {state, dragAndDropHooks, dragState, dropState} = useContext(InternalGridListContext)!;\n let ref = React.useRef<HTMLDivElement>(null);\n let {rowProps, gridCellProps, descriptionProps, ...states} = useGridListItem(\n {\n node: item,\n shouldSelectOnPressUp: !!dragState\n },\n state,\n ref\n );\n\n let {hoverProps, isHovered} = useHover({\n isDisabled: !states.allowsSelection && !states.hasAction\n });\n\n let {isFocusVisible, focusProps} = useFocusRing();\n let {checkboxProps} = useGridListSelectionCheckbox(\n {key: item.key},\n state\n );\n\n let draggableItem: DraggableItemResult | null = null;\n if (dragState && dragAndDropHooks) {\n draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key, hasDragButton: true}, dragState);\n }\n\n let dropIndicator: DropIndicatorAria | null = null;\n let dropIndicatorRef = useRef<HTMLDivElement>(null);\n let {visuallyHiddenProps} = useVisuallyHidden();\n if (dropState && dragAndDropHooks) {\n dropIndicator = dragAndDropHooks.useDropIndicator!({\n target: {type: 'item', key: item.key, dropPosition: 'on'}\n }, dropState, dropIndicatorRef);\n }\n\n let props: ItemProps<unknown> = item.props;\n let isDragging = dragState && dragState.isDragging(item.key);\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-Item',\n values: {\n ...states,\n isHovered,\n isFocusVisible,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior,\n allowsDragging: !!dragState,\n isDragging,\n isDropTarget: dropIndicator?.isDropTarget\n }\n });\n\n let renderDropIndicator = dragAndDropHooks?.renderDropIndicator || (target => <DropIndicator target={target} />);\n let dragButtonRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (dragState && !dragButtonRef.current) {\n console.warn('Draggable items in a GridList must contain a <Button slot=\"drag\"> element so that keyboard and screen reader users can drag them.');\n }\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (!item.textValue) {\n console.warn('A `textValue` prop is required for <Item> elements with non-plain text children in order to support accessibility features such as type to select.');\n }\n }, [item.textValue]);\n\n return (\n <>\n {dragAndDropHooks?.useDropIndicator &&\n renderDropIndicator({type: 'item', key: item.key, dropPosition: 'before'})\n }\n {dropIndicator && !dropIndicator.isHidden &&\n <div role=\"row\" style={{position: 'absolute'}}>\n <div role=\"gridcell\">\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicator?.dropIndicatorProps} ref={dropIndicatorRef} />\n </div>\n </div>\n }\n <div\n {...mergeProps(rowProps, focusProps, hoverProps, draggableItem?.dragProps)}\n {...renderProps}\n ref={ref}\n data-hovered={isHovered || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}\n data-dragging={isDragging || undefined}\n data-drop-target={dropIndicator?.isDropTarget || undefined}>\n <div {...gridCellProps}>\n <Provider\n values={[\n [CheckboxContext, checkboxProps],\n [ButtonContext, {\n slots: {\n [defaultSlot]: {},\n drag: {\n ...draggableItem?.dragButtonProps,\n ref: dragButtonRef,\n style: {\n pointerEvents: 'none'\n }\n }\n }\n }],\n [TextContext, {\n slots: {\n description: descriptionProps\n }\n }]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n </div>\n {dragAndDropHooks?.useDropIndicator && state.collection.getKeyAfter(item.key) == null &&\n renderDropIndicator({type: 'item', key: item.key, dropPosition: 'after'})\n }\n </>\n );\n}\n\nfunction GridListDropIndicator(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n ref = useObjectRef(ref);\n let {dragAndDropHooks, dropState} = useContext(InternalGridListContext)!;\n let buttonRef = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n props,\n dropState!,\n buttonRef\n );\n\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (isHidden) {\n return null;\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-DropIndicator',\n values: {\n isDropTarget\n }\n });\n\n return (\n <div\n {...renderProps}\n role=\"row\"\n ref={ref as RefObject<HTMLDivElement>}\n data-drop-target={isDropTarget || undefined}>\n <div role=\"gridcell\">\n <div {...visuallyHiddenProps} role=\"button\" {...dropIndicatorProps} ref={buttonRef} />\n </div>\n </div>\n );\n}\n\nfunction RootDropIndicator() {\n let {dragAndDropHooks, dropState} = useContext(InternalGridListContext)!;\n let ref = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!({\n target: {type: 'root'}\n }, dropState!, ref);\n let isDropTarget = dropState!.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n <div role=\"row\" aria-hidden={dropIndicatorProps['aria-hidden']} style={{position: 'absolute'}}>\n <div role=\"gridcell\">\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />\n </div>\n </div>\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ContextValue, useContextProps} from './utils';\nimport React, {createContext, ForwardedRef, forwardRef, HTMLAttributes} from 'react';\n\nexport const KeyboardContext = createContext<ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>>({});\n\nfunction Keyboard(props: HTMLAttributes<HTMLElement>, ref: ForwardedRef<HTMLElement>) {\n [props, ref] = useContextProps(props, ref, KeyboardContext);\n return <kbd dir=\"ltr\" {...props} ref={ref} />;\n}\n\nconst _Keyboard = forwardRef(Keyboard);\nexport {_Keyboard as Keyboard};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n\nimport {AriaMenuProps, mergeProps, useFocusRing, useMenu, useMenuItem, useMenuSection, useMenuTrigger} from 'react-aria';\nimport {BaseCollection, CollectionProps, ItemProps, ItemRenderProps, useCachedChildren, useCollection} from './Collection';\nimport {MenuTriggerProps as BaseMenuTriggerProps, Node, TreeState, useMenuTriggerState, useTreeState} from 'react-stately';\nimport {ButtonContext} from './Button';\nimport {ContextValue, forwardRefType, Provider, SlotProps, StyleProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {filterDOMProps, mergeRefs} from '@react-aria/utils';\nimport {Header} from './Header';\nimport {KeyboardContext} from './Keyboard';\nimport {PopoverContext} from './Popover';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, RefObject, useContext, useRef} from 'react';\nimport {Separator, SeparatorContext} from './Separator';\nimport {TextContext} from './Text';\n\nexport const MenuContext = createContext<ContextValue<MenuProps<any>, HTMLDivElement>>(null);\nconst InternalMenuContext = createContext<TreeState<unknown> | null>(null);\n\nexport interface MenuTriggerProps extends BaseMenuTriggerProps {\n children?: ReactNode\n}\n\nexport function MenuTrigger(props: MenuTriggerProps) {\n let state = useMenuTriggerState(props);\n\n let ref = useRef<HTMLButtonElement>(null);\n let {menuTriggerProps, menuProps} = useMenuTrigger({\n ...props,\n type: 'menu'\n }, state, ref);\n\n return (\n <Provider\n values={[\n [MenuContext, menuProps],\n [ButtonContext, {...menuTriggerProps, ref, isPressed: state.isOpen}],\n [PopoverContext, {state, triggerRef: ref, placement: 'bottom start'}]\n ]}>\n {props.children}\n </Provider>\n );\n}\n\nexport interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children'>, CollectionProps<T>, StyleProps, SlotProps {}\n\nfunction Menu<T extends object>(props: MenuProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, MenuContext);\n let {portal, collection} = useCollection(props);\n\n // Delay rendering the actual menu until we have the collection so that auto focus works properly.\n return (\n <>\n {collection.size > 0 && <MenuInner props={props} collection={collection} menuRef={ref} />}\n {portal}\n </>\n );\n}\n\ninterface MenuInnerProps<T> {\n props: MenuProps<T>,\n collection: BaseCollection<T>,\n menuRef: RefObject<HTMLDivElement>\n}\n\nfunction MenuInner<T extends object>({props, collection, menuRef: ref}: MenuInnerProps<T>) {\n let state = useTreeState({\n ...props,\n collection,\n children: undefined\n });\n let {menuProps} = useMenu(props, state, ref);\n\n let children = useCachedChildren({\n items: state.collection,\n children: (item) => {\n switch (item.type) {\n case 'section':\n return <MenuSection section={item} />;\n case 'separator':\n return <Separator {...item.props} />;\n case 'item':\n return <MenuItem item={item} />;\n default:\n throw new Error('Unsupported node type in Menu: ' + item.type);\n }\n }\n });\n\n return (\n <div\n {...filterDOMProps(props)}\n {...menuProps}\n ref={ref}\n slot={props.slot}\n style={props.style}\n className={props.className ?? 'react-aria-Menu'}>\n <Provider\n values={[\n [InternalMenuContext, state],\n [SeparatorContext, {elementType: 'div'}]\n ]}>\n {children}\n </Provider>\n </div>\n );\n}\n\n/**\n * A menu displays a list of actions or options that a user can choose.\n */\nconst _Menu = (forwardRef as forwardRefType)(Menu);\nexport {_Menu as Menu};\n\ninterface MenuSectionProps<T> extends StyleProps {\n section: Node<T>\n}\n\nfunction MenuSection<T>({section, className, style, ...otherProps}: MenuSectionProps<T>) {\n let state = useContext(InternalMenuContext)!;\n let [headingRef, heading] = useSlot();\n let {headingProps, groupProps} = useMenuSection({\n heading,\n 'aria-label': section['aria-label'] ?? undefined\n });\n\n let children = useCachedChildren({\n items: state.collection.getChildren!(section.key),\n children: item => {\n switch (item.type) {\n case 'header': {\n let {ref, ...otherProps} = item.props;\n return (\n <Header\n {...headingProps}\n {...otherProps}\n ref={mergeRefs(headingRef, ref)}>\n {item.rendered}\n </Header>\n );\n }\n case 'item':\n return <MenuItem item={item} />;\n default:\n throw new Error('Unsupported element type in Section: ' + item.type);\n }\n }\n });\n\n return (\n <section\n {...filterDOMProps(otherProps)}\n {...groupProps}\n className={className || section.props?.className || 'react-aria-Section'}\n style={style || section.props?.style}>\n {children}\n </section>\n );\n}\n\nexport interface MenuItemRenderProps extends ItemRenderProps {\n /**\n * Whether the item is currently selected.\n * @selector [aria-checked=true]\n */\n isSelected: boolean\n}\n\ninterface MenuItemProps<T> {\n item: Node<T>\n}\n\nfunction MenuItem<T>({item}: MenuItemProps<T>) {\n let state = useContext(InternalMenuContext)!;\n let ref = useRef<HTMLDivElement>(null);\n let {menuItemProps, labelProps, descriptionProps, keyboardShortcutProps, ...states} = useMenuItem({key: item.key}, state, ref);\n\n let props: ItemProps<T> = item.props;\n let {isFocusVisible, focusProps} = useFocusRing();\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-Item',\n values: {\n ...states,\n isHovered: states.isFocused,\n isFocusVisible,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior\n }\n });\n\n return (\n <div\n {...mergeProps(menuItemProps, focusProps)}\n {...renderProps}\n ref={ref}\n data-hovered={states.isFocused || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}>\n <Provider\n values={[\n [TextContext, {\n slots: {\n label: labelProps,\n description: descriptionProps\n }\n }],\n [KeyboardContext, keyboardShortcutProps]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaMeterProps, useMeter} from 'react-aria';\nimport {ContextValue, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {LabelContext} from './Label';\nimport React, {createContext, ForwardedRef, forwardRef} from 'react';\n\nexport interface MeterProps extends Omit<AriaMeterProps, 'label'>, RenderProps<MeterRenderProps>, SlotProps {}\n\nexport interface MeterRenderProps {\n /**\n * The value as a percentage between the minimum and maximum.\n */\n percentage: number,\n /**\n * A formatted version of the value.\n * @selector [aria-valuetext]\n */\n valueText?: string\n}\n\nexport const MeterContext = createContext<ContextValue<MeterProps, HTMLDivElement>>(null);\n\nfunction Meter(props: MeterProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, MeterContext);\n let {\n value = 0,\n minValue = 0,\n maxValue = 100\n } = props;\n\n let [labelRef, label] = useSlot();\n let {\n meterProps,\n labelProps\n } = useMeter({...props, label});\n\n // Calculate the width of the progress bar as a percentage\n let percentage = (value - minValue) / (maxValue - minValue) * 100;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Meter',\n values: {\n percentage,\n valueText: meterProps['aria-valuetext']\n }\n });\n\n return (\n <div {...meterProps} {...renderProps} ref={ref} slot={props.slot}>\n <LabelContext.Provider value={{...labelProps, ref: labelRef, elementType: 'span'}}>\n {renderProps.children}\n </LabelContext.Provider>\n </div>\n );\n}\n\n/**\n * A meter represents a quantity within a known range, or a fractional value.\n */\nconst _Meter = forwardRef(Meter);\nexport {_Meter as Meter};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaNumberFieldProps, useLocale, useNumberField} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {ContextValue, Provider, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {GroupContext} from './Group';\nimport {InputContext} from './Input';\nimport {LabelContext} from './Label';\nimport {NumberFieldState, useNumberFieldState} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, useRef} from 'react';\nimport {TextContext} from './Text';\n\nexport interface NumberFieldProps extends Omit<AriaNumberFieldProps, 'label' | 'placeholder' | 'description' | 'errorMessage'>, RenderProps<NumberFieldState>, SlotProps {}\n\nexport const NumberFieldContext = createContext<ContextValue<NumberFieldProps, HTMLDivElement>>(null);\n\nfunction NumberField(props: NumberFieldProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, NumberFieldContext);\n let {locale} = useLocale();\n let state = useNumberFieldState({...props, locale});\n let inputRef = useRef<HTMLInputElement>(null);\n let [labelRef, label] = useSlot();\n let {\n labelProps,\n groupProps,\n inputProps,\n incrementButtonProps,\n decrementButtonProps,\n descriptionProps,\n errorMessageProps\n } = useNumberField({...props, label}, state, inputRef);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-NumberField'\n });\n\n return (\n <Provider\n values={[\n [GroupContext, groupProps],\n [InputContext, {...inputProps, ref: inputRef}],\n [LabelContext, {...labelProps, ref: labelRef}],\n [ButtonContext, {\n slots: {\n increment: incrementButtonProps,\n decrement: decrementButtonProps\n }\n }],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n <div {...renderProps} ref={ref} slot={props.slot}>\n {props.children}\n </div>\n </Provider>\n );\n}\n\n/**\n * A number field allows a user to enter a number, and increment or decrement the value using stepper buttons.\n */\nconst _NumberField = forwardRef(NumberField);\nexport {_NumberField as NumberField};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaProgressBarProps, useProgressBar} from 'react-aria';\nimport {ContextValue, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {LabelContext} from './Label';\nimport React, {createContext, ForwardedRef, forwardRef} from 'react';\n\nexport interface ProgressBarProps extends Omit<AriaProgressBarProps, 'label'>, RenderProps<ProgressBarRenderProps>, SlotProps {}\n\nexport interface ProgressBarRenderProps {\n /**\n * The value as a percentage between the minimum and maximum.\n */\n percentage?: number,\n /**\n * A formatted version of the value.\n * @selector [aria-valuetext]\n */\n valueText?: string,\n /**\n * Whether the progress bar is indeterminate.\n * @selector :not([aria-valuenow])\n */\n isIndeterminate: boolean\n}\n\nexport const ProgressBarContext = createContext<ContextValue<ProgressBarProps, HTMLDivElement>>(null);\n\nfunction ProgressBar(props: ProgressBarProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, ProgressBarContext);\n let {\n value = 0,\n minValue = 0,\n maxValue = 100,\n isIndeterminate = false\n } = props;\n\n let [labelRef, label] = useSlot();\n let {\n progressBarProps,\n labelProps\n } = useProgressBar({...props, label});\n\n // Calculate the width of the progress bar as a percentage\n let percentage = isIndeterminate ? undefined : (value - minValue) / (maxValue - minValue) * 100;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-ProgressBar',\n values: {\n percentage,\n valueText: progressBarProps['aria-valuetext'],\n isIndeterminate\n }\n });\n\n return (\n <div {...progressBarProps} {...renderProps} ref={ref} slot={props.slot}>\n <LabelContext.Provider value={{...labelProps, ref: labelRef, elementType: 'span'}}>\n {renderProps.children}\n </LabelContext.Provider>\n </div>\n );\n}\n\n/**\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n */\nconst _ProgressBar = forwardRef(ProgressBar);\nexport {_ProgressBar as ProgressBar};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaRadioGroupProps, AriaRadioProps, Orientation, useFocusRing, useHover, usePress, useRadio, useRadioGroup, VisuallyHidden} from 'react-aria';\nimport {ContextValue, Provider, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {LabelContext} from './Label';\nimport {mergeProps, useObjectRef} from '@react-aria/utils';\nimport {RadioGroupState, useRadioGroupState, ValidationState} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, useState} from 'react';\nimport {TextContext} from './Text';\n\nexport interface RadioGroupProps extends Omit<AriaRadioGroupProps, 'children' | 'label' | 'description' | 'errorMessage'>, RenderProps<RadioGroupRenderProps>, SlotProps {}\nexport interface RadioProps extends Omit<AriaRadioProps, 'children'>, RenderProps<RadioRenderProps> {}\n\nexport interface RadioGroupRenderProps {\n /**\n * The orientation of the radio group.\n * @selector [aria-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation,\n /**\n * Whether the radio group is disabled.\n * @selector [aria-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the radio group is read only.\n * @selector [aria-readonly]\n */\n isReadOnly: boolean,\n /**\n * Whether the radio group is required.\n * @selector [aria-required]\n */\n isRequired: boolean,\n /**\n * The validation state of the radio group.\n * @selector [aria-invalid]\n */\n validationState: ValidationState | null\n}\n\nexport interface RadioRenderProps {\n /**\n * Whether the radio is selected.\n * @selector [data-selected]\n */\n isSelected: boolean,\n /**\n * Whether the radio is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the radio is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the radio is focused, either via a mouse or keyboard.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the radio is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the radio is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the radio is read only.\n * @selector [data-readonly]\n */\n isReadOnly: boolean,\n /**\n * Whether the radio is valid or invalid.\n * @selector [data-validation-state=\"valid | invalid\"]\n */\n validationState: ValidationState | null,\n /**\n * Whether the checkbox is required.\n * @selector [data-required]\n */\n isRequired: boolean\n}\n\nexport const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\nlet InternalRadioContext = createContext<RadioGroupState | null>(null);\n\nfunction RadioGroup(props: RadioGroupProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n let state = useRadioGroupState(props);\n let [labelRef, label] = useSlot();\n let {radioGroupProps, labelProps, descriptionProps, errorMessageProps} = useRadioGroup({\n ...props,\n label\n }, state);\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n orientation: props.orientation || 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n validationState: state.validationState\n },\n defaultClassName: 'react-aria-RadioGroup'\n });\n\n return (\n <div {...radioGroupProps} {...renderProps} ref={ref} slot={props.slot}>\n <Provider\n values={[\n [InternalRadioContext, state],\n [LabelContext, {...labelProps, ref: labelRef}],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n\nfunction Radio(props: RadioProps, ref: ForwardedRef<HTMLInputElement>) {\n let state = React.useContext(InternalRadioContext)!;\n let domRef = useObjectRef(ref);\n let {inputProps, isSelected, isDisabled, isPressed: isPressedKeyboard} = useRadio(props, state, domRef);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let interactionDisabled = isDisabled || state.isReadOnly;\n\n // Handle press state for full label. Keyboard press state is returned by useCheckbox\n // since it is handled on the <input> element itself.\n let [isPressed, setPressed] = useState(false);\n let {pressProps} = usePress({\n isDisabled: interactionDisabled,\n onPressStart(e) {\n if (e.pointerType !== 'keyboard') {\n setPressed(true);\n }\n },\n onPressEnd(e) {\n if (e.pointerType !== 'keyboard') {\n setPressed(false);\n }\n }\n });\n\n let {hoverProps, isHovered} = useHover({\n isDisabled: interactionDisabled\n });\n\n let pressed = interactionDisabled ? false : (isPressed || isPressedKeyboard);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Radio',\n values: {\n isSelected,\n isPressed: pressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly: state.isReadOnly,\n validationState: state.validationState,\n isRequired: state.isRequired\n }\n });\n\n return (\n <label\n {...mergeProps(pressProps, hoverProps, renderProps)}\n data-selected={isSelected || undefined}\n data-pressed={pressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-validation-state={state.validationState || undefined}\n data-required={state.isRequired || undefined}>\n <VisuallyHidden>\n <input {...inputProps} {...focusProps} ref={domRef} />\n </VisuallyHidden>\n {renderProps.children}\n </label>\n );\n}\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n */\nconst _RadioGroup = forwardRef(RadioGroup);\n\n/**\n * A radio represents an individual option within a radio group.\n */\nconst _Radio = forwardRef(Radio);\n\nexport {_RadioGroup as RadioGroup, _Radio as Radio};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaSearchFieldProps, useSearchField} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {ContextValue, Provider, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {InputContext} from './Input';\nimport {LabelContext} from './Label';\nimport React, {createContext, ForwardedRef, forwardRef, useRef} from 'react';\nimport {SearchFieldState, useSearchFieldState} from 'react-stately';\nimport {TextContext} from './Text';\n\nexport interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'label' | 'placeholder' | 'description' | 'errorMessage'>, RenderProps<SearchFieldState>, SlotProps {}\n\nexport interface SearchFieldRenderProps {\n /**\n * Whether the search field is empty.\n * @selector [data-empty]\n */\n isEmpty: boolean\n}\n\nexport const SearchFieldContext = createContext<ContextValue<SearchFieldProps, HTMLDivElement>>(null);\n\nfunction SearchField(props: SearchFieldProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, SearchFieldContext);\n let inputRef = useRef<HTMLInputElement>(null);\n let [labelRef, label] = useSlot();\n let state = useSearchFieldState(props);\n let {labelProps, inputProps, clearButtonProps, descriptionProps, errorMessageProps} = useSearchField({\n ...props,\n label\n }, state, inputRef);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-SearchField'\n });\n\n return (\n <div\n {...renderProps}\n ref={ref}\n slot={props.slot}\n data-empty={state.value === '' || undefined}>\n <Provider\n values={[\n [LabelContext, {...labelProps, ref: labelRef}],\n [InputContext, {...inputProps, ref: inputRef}],\n [ButtonContext, clearButtonProps],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n\n/**\n * A search field allows a user to enter and clear a search query.\n */\nconst _SearchField = forwardRef(SearchField);\nexport {_SearchField as SearchField};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaSelectProps, HiddenSelect, useSelect} from 'react-aria';\nimport {ButtonContext} from './Button';\nimport {ContextValue, forwardRefType, Provider, RenderProps, slotCallbackSymbol, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {createContext, ForwardedRef, HTMLAttributes, ReactNode, useCallback, useContext, useRef, useState} from 'react';\nimport {ItemRenderProps, useCollection} from './Collection';\nimport {LabelContext} from './Label';\nimport {ListBoxContext, ListBoxProps} from './ListBox';\nimport {PopoverContext} from './Popover';\nimport React, {forwardRef} from 'react';\nimport {SelectState, useSelectState} from 'react-stately';\nimport {TextContext} from './Text';\nimport {useResizeObserver} from '@react-aria/utils';\n\nexport interface SelectProps<T extends object> extends Omit<AriaSelectProps<T>, 'children' | 'label' | 'description' | 'errorMessage'>, RenderProps<SelectState<T>>, SlotProps {}\n\ninterface SelectValueContext {\n state: SelectState<unknown>,\n valueProps: HTMLAttributes<HTMLElement>\n}\n\nexport const SelectContext = createContext<ContextValue<SelectProps<any>, HTMLDivElement>>(null);\nconst InternalSelectContext = createContext<SelectValueContext | null>(null);\n\nfunction Select<T extends object>(props: SelectProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, SelectContext);\n let [listBoxProps, setListBoxProps] = useState<ListBoxProps<any>>({children: []});\n\n let {portal, collection} = useCollection({\n items: props.items ?? listBoxProps.items,\n children: listBoxProps.children\n });\n let state = useSelectState({\n ...props,\n collection,\n children: undefined\n });\n\n // Get props for child elements from useSelect\n let buttonRef = useRef<HTMLButtonElement>(null);\n let [labelRef, label] = useSlot();\n let {\n labelProps,\n triggerProps,\n valueProps,\n menuProps,\n descriptionProps,\n errorMessageProps\n } = useSelect({...props, label}, state, buttonRef);\n\n // Make menu width match input + button\n let [buttonWidth, setButtonWidth] = useState<string | null>(null);\n let onResize = useCallback(() => {\n if (buttonRef.current) {\n setButtonWidth(buttonRef.current.offsetWidth + 'px');\n }\n }, [buttonRef]);\n\n useResizeObserver({\n ref: buttonRef,\n onResize: onResize\n });\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-Select'\n });\n\n return (\n <Provider\n values={[\n [InternalSelectContext, {state, valueProps}],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [ButtonContext, {...triggerProps, ref: buttonRef, isPressed: state.isOpen}],\n [PopoverContext, {\n state,\n triggerRef: buttonRef,\n preserveChildren: true,\n placement: 'bottom start',\n style: {'--trigger-width': buttonWidth} as React.CSSProperties\n }],\n [ListBoxContext, {state, [slotCallbackSymbol]: setListBoxProps, ...menuProps}],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n <div {...renderProps} ref={ref} slot={props.slot}>\n {props.children}\n </div>\n {portal}\n <HiddenSelect\n state={state}\n triggerRef={buttonRef}\n label={label}\n name={props.name} />\n </Provider>\n );\n}\n\n/**\n * A select displays a collapsible list of options and allows a user to select one of them.\n */\nconst _Select = (forwardRef as forwardRefType)(Select);\nexport {_Select as Select};\n\nexport interface SelectValueRenderProps<T> {\n /**\n * Whether the value is a placeholder.\n * @selector [data-placeholder]\n */\n isPlaceholder: boolean,\n /** The object value of the currently selected item. */\n selectedItem: T | null,\n /** The textValue of the currently selected item. */\n selectedText: string | null\n}\n\nexport interface SelectValueProps<T extends object> extends Omit<HTMLAttributes<HTMLElement>, keyof RenderProps<unknown>>, RenderProps<SelectValueRenderProps<T>> {}\n\nfunction SelectValue<T extends object>(props: SelectValueProps<T>, ref: ForwardedRef<HTMLSpanElement>) {\n let {state, valueProps} = useContext(InternalSelectContext)!;\n let rendered = state.selectedItem?.rendered;\n if (typeof rendered === 'function') {\n // If the selected item has a function as a child, we need to call it to render to JSX.\n let fn = rendered as (s: ItemRenderProps) => ReactNode;\n rendered = fn({\n isHovered: false,\n isPressed: false,\n isSelected: false,\n isFocused: false,\n isFocusVisible: false,\n isDisabled: false,\n selectionMode: 'single',\n selectionBehavior: 'toggle'\n });\n }\n\n let renderProps = useRenderProps({\n ...props,\n // TODO: localize this.\n defaultChildren: rendered || 'Select an item',\n defaultClassName: 'react-aria-SelectValue',\n values: {\n selectedItem: state.selectedItem?.value as T ?? null,\n selectedText: state.selectedItem?.textValue ?? null,\n isPlaceholder: !state.selectedItem\n }\n });\n\n return (\n <span ref={ref} {...valueProps} {...renderProps} data-placeholder={!state.selectedItem || undefined}>\n {/* clear description and error message slots */}\n <TextContext.Provider value={undefined}>\n {renderProps.children}\n </TextContext.Provider>\n </span>\n );\n}\n\n/**\n * SelectValue renders the current value of a Select, or a placeholder if no value is selected.\n * It is usually placed within the button element.\n */\nconst _SelectValue = (forwardRef as forwardRefType)(SelectValue);\nexport {_SelectValue as SelectValue};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaSliderProps, AriaSliderThumbProps, mergeProps, Orientation, useFocusRing, useHover, useNumberFormatter, useSlider, useSliderThumb, VisuallyHidden} from 'react-aria';\nimport {ContextValue, forwardRefType, Provider, RenderProps, SlotProps, useContextProps, useRenderProps, useSlot} from './utils';\nimport {DOMAttributes} from '@react-types/shared';\nimport {LabelContext} from './Label';\nimport {mergeRefs} from '@react-aria/utils';\nimport React, {createContext, ForwardedRef, forwardRef, OutputHTMLAttributes, RefObject, useContext, useRef} from 'react';\nimport {SliderState, useSliderState} from 'react-stately';\n\nexport interface SliderProps<T = number | number[]> extends AriaSliderProps<T>, RenderProps<SliderState>, SlotProps {\n /**\n * The display format of the value label.\n */\n formatOptions?: Intl.NumberFormatOptions\n}\n\ninterface SliderContextValue {\n state: SliderState,\n trackProps: DOMAttributes,\n outputProps: OutputHTMLAttributes<HTMLOutputElement>,\n trackRef: RefObject<HTMLDivElement>\n}\n\nexport const SliderContext = createContext<ContextValue<SliderProps, HTMLDivElement>>(null);\nconst InternalSliderContext = createContext<SliderContextValue | null>(null);\n\nexport interface SliderRenderProps {\n /**\n * The orientation of the slider.\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation,\n /**\n * Whether the slider is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean\n}\n\nfunction Slider<T extends number | number[]>(props: SliderProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, SliderContext);\n let trackRef = useRef<HTMLDivElement>(null);\n let numberFormatter = useNumberFormatter(props.formatOptions);\n let state = useSliderState({...props, numberFormatter});\n let [labelRef, label] = useSlot();\n let {\n groupProps,\n trackProps,\n labelProps,\n outputProps\n } = useSlider({...props, label}, state, trackRef);\n\n let renderProps = useRenderProps({\n ...props,\n values: state,\n defaultClassName: 'react-aria-Slider'\n });\n\n return (\n <Provider\n values={[\n [InternalSliderContext, {state, trackProps, trackRef, outputProps}],\n [LabelContext, {...labelProps, ref: labelRef}]\n ]}>\n <div\n {...groupProps}\n {...renderProps}\n ref={ref}\n slot={props.slot}\n data-orientation={state.orientation}\n data-disabled={state.isDisabled || undefined} />\n </Provider>\n );\n}\n\n/**\n * A slider allows a user to select one or more values within a range.\n */\nconst _Slider = (forwardRef as forwardRefType)(Slider);\nexport {_Slider as Slider};\n\nexport interface SliderOutputProps extends RenderProps<SliderState> {}\n\nfunction SliderOutput({children, style, className}: SliderOutputProps, ref: ForwardedRef<HTMLOutputElement>) {\n let {state, outputProps} = useContext(InternalSliderContext)!;\n let renderProps = useRenderProps({\n className,\n style,\n children,\n defaultChildren: state.getThumbValueLabel(0),\n defaultClassName: 'react-aria-SliderOutput',\n values: state\n });\n\n return <output {...outputProps} {...renderProps} ref={ref} />;\n}\n\n/**\n * A slider output displays the current value of a slider as text.\n */\nconst _SliderOutput = forwardRef(SliderOutput);\nexport {_SliderOutput as SliderOutput};\n\nexport interface SliderTrackProps extends RenderProps<SliderState> {}\n\nfunction SliderTrack(props: SliderTrackProps, ref: ForwardedRef<HTMLDivElement>) {\n let {state, trackProps, trackRef} = useContext(InternalSliderContext)!;\n let domRef = mergeRefs(ref, trackRef);\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-SliderTrack',\n values: state\n });\n\n return <div {...trackProps} {...renderProps} ref={domRef} />;\n}\n\n/**\n * A slider track is a container for one or more slider thumbs.\n */\nconst _SliderTrack = forwardRef(SliderTrack);\nexport {_SliderTrack as SliderTrack};\n\nexport interface SliderThumbRenderProps {\n /** The slider state object. */\n state: SliderState,\n /**\n * Whether this thumb is currently being dragged.\n * @selector [data-dragging]\n */\n isDragging: boolean,\n /**\n * Whether the thumb is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the thumb is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the thumb is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the thumb is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean\n}\n\nexport interface SliderThumbProps extends AriaSliderThumbProps, RenderProps<SliderThumbRenderProps> {}\n\nfunction SliderThumb(props: SliderThumbProps, ref: ForwardedRef<HTMLDivElement>) {\n let {state, trackRef} = useContext(InternalSliderContext)!;\n let {index = 0} = props;\n let inputRef = useRef<HTMLInputElement>(null);\n let [labelRef, label] = useSlot();\n let {thumbProps, inputProps, labelProps, isDragging, isFocused, isDisabled} = useSliderThumb({\n ...props,\n index,\n trackRef,\n inputRef,\n label\n }, state);\n\n let {focusProps, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover({});\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-SliderThumb',\n values: {state, isHovered, isDragging, isFocused, isFocusVisible, isDisabled}\n });\n\n return (\n <div\n {...mergeProps(thumbProps, hoverProps)}\n {...renderProps}\n ref={ref}\n style={{...thumbProps.style, ...renderProps.style}}\n data-hovered={isHovered || undefined}\n data-dragging={isDragging || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}>\n <VisuallyHidden>\n <input ref={inputRef} {...mergeProps(inputProps, focusProps)} />\n </VisuallyHidden>\n <Provider\n values={[\n [LabelContext, {...labelProps, ref: labelRef}]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n\n/**\n * A slider thumb represents an individual value that the user can adjust within a slider track.\n */\nconst _SliderThumb = forwardRef(SliderThumb);\nexport {_SliderThumb as SliderThumb};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaSwitchProps, mergeProps, useFocusRing, useHover, usePress, useSwitch, VisuallyHidden} from 'react-aria';\nimport {ContextValue, RenderProps, SlotProps, useContextProps, useRenderProps} from './utils';\nimport React, {createContext, ForwardedRef, forwardRef, useState} from 'react';\nimport {useToggleState} from 'react-stately';\n\nexport interface SwitchProps extends Omit<AriaSwitchProps, 'children'>, RenderProps<SwitchRenderProps>, SlotProps {}\n\nexport interface SwitchRenderProps {\n /**\n * Whether the switch is selected.\n * @selector [data-selected]\n */\n isSelected: boolean,\n /**\n * Whether the switch is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the switch is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the switch is focused, either via a mouse or keyboard.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the switch is keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the switch is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean,\n /**\n * Whether the switch is read only.\n * @selector [data-readonly]\n */\n isReadOnly: boolean\n}\n\nexport const SwitchContext = createContext<ContextValue<SwitchProps, HTMLInputElement>>(null);\n\nfunction Switch(props: SwitchProps, ref: ForwardedRef<HTMLInputElement>) {\n [props, ref] = useContextProps(props, ref, SwitchContext);\n let state = useToggleState(props);\n let {inputProps, isSelected, isDisabled, isReadOnly, isPressed: isPressedKeyboard} = useSwitch(props, state, ref);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let isInteractionDisabled = props.isDisabled || props.isReadOnly;\n\n // Handle press state for full label. Keyboard press state is returned by useSwitch\n // since it is handled on the <input> element itself.\n let [isPressed, setPressed] = useState(false);\n let {pressProps} = usePress({\n isDisabled: isInteractionDisabled,\n onPressStart(e) {\n if (e.pointerType !== 'keyboard') {\n setPressed(true);\n }\n },\n onPressEnd(e) {\n if (e.pointerType !== 'keyboard') {\n setPressed(false);\n }\n }\n });\n\n let {hoverProps, isHovered} = useHover({\n isDisabled: isInteractionDisabled\n });\n\n let pressed = isInteractionDisabled ? false : (isPressed || isPressedKeyboard);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Switch',\n values: {\n isSelected,\n isPressed: pressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly\n }\n });\n\n return (\n <label \n {...mergeProps(pressProps, hoverProps, renderProps)}\n slot={props.slot}\n data-selected={isSelected || undefined}\n data-pressed={pressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}>\n <VisuallyHidden>\n <input {...inputProps} {...focusProps} ref={ref} />\n </VisuallyHidden>\n {renderProps.children}\n </label>\n );\n}\n\n/**\n * A switch allows a user to turn a setting on or off.\n */\nconst _Switch = forwardRef(Switch);\nexport {_Switch as Switch};\n","import {AriaLabelingProps} from '@react-types/shared';\nimport {BaseCollection, CollectionContext, CollectionProps, CollectionRendererContext, ItemRenderProps, NodeValue, useCachedChildren, useCollection, useCollectionChildren} from './Collection';\nimport {buildHeaderRows} from '@react-stately/table';\nimport {ButtonContext} from './Button';\nimport {CheckboxContext} from './Checkbox';\nimport {ContextValue, defaultSlot, Provider, RenderProps, SlotProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {DisabledBehavior, DraggableCollectionState, DroppableCollectionState, Node, SelectionBehavior, SelectionMode, SortDirection, TableState, useTableState} from 'react-stately';\nimport {DragAndDropHooks, DropIndicator, DropIndicatorContext, DropIndicatorProps} from './useDragAndDrop';\nimport {DraggableItemResult, DragPreviewRenderer, DropIndicatorAria, DroppableCollectionResult, FocusScope, ListKeyboardDelegate, mergeProps, useFocusRing, useHover, useTable, useTableCell, useTableColumnHeader, useTableHeaderRow, useTableRow, useTableRowGroup, useTableSelectAllCheckbox, useTableSelectionCheckbox, useVisuallyHidden} from 'react-aria';\nimport {filterDOMProps, useObjectRef} from '@react-aria/utils';\nimport {GridNode} from '@react-types/grid';\nimport {TableCollection as ITableCollection, TableProps as SharedTableProps} from '@react-types/table';\nimport React, {createContext, ForwardedRef, forwardRef, Key, ReactElement, ReactNode, RefObject, useCallback, useContext, useEffect, useMemo, useRef} from 'react';\n\nclass TableCollection<T> extends BaseCollection<T> implements ITableCollection<T> {\n headerRows: GridNode<T>[] = [];\n columns: GridNode<T>[] = [];\n rowHeaderColumnKeys: Set<Key> = new Set();\n head: NodeValue<T> = new NodeValue('tableheader', -1);\n body: NodeValue<T> = new NodeValue('tablebody', -2);\n columnsDirty = true;\n\n addNode(node: NodeValue<T>) {\n super.addNode(node);\n\n this.columnsDirty ||= node.type === 'column';\n if (node.type === 'tableheader') {\n this.head = node;\n }\n\n if (node.type === 'tablebody') {\n this.body = node;\n }\n }\n\n commit(firstKey: Key, lastKey: Key) {\n this.updateColumns();\n super.commit(firstKey, lastKey);\n }\n\n private updateColumns() {\n if (!this.columnsDirty) {\n return;\n }\n\n this.rowHeaderColumnKeys = new Set();\n this.columns = [];\n\n let columnKeyMap = new Map();\n let visit = (node: Node<T>) => {\n switch (node.type) {\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n node.index = this.columns.length;\n this.columns.push(node);\n\n if (node.props.isRowHeader) {\n this.rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n }\n for (let child of this.getChildren(node.key)) {\n visit(child);\n }\n };\n\n for (let node of this.getChildren(this.head.key)) {\n visit(node);\n }\n\n this.headerRows = buildHeaderRows(columnKeyMap, this.columns);\n this.columnsDirty = false;\n if (this.rowHeaderColumnKeys.size === 0 && this.columns.length > 0) {\n throw new Error('A table must have at least one Column with the isRowHeader prop set to true');\n }\n }\n\n get columnCount() {\n return this.columns.length;\n }\n\n get rows() {\n return [...this.getChildren(this.body.key)];\n }\n\n *[Symbol.iterator]() {\n yield* this.getChildren(this.body.key);\n }\n\n get size() {\n return [...this.getChildren(this.body.key)].length;\n }\n\n getFirstKey() {\n return [...this.getChildren(this.body.key)][0]?.key;\n }\n\n getLastKey() {\n let rows = [...this.getChildren(this.body.key)];\n return rows[rows.length - 1]?.key;\n }\n\n getKeyAfter(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.nextKey ?? null;\n }\n\n return super.getKeyAfter(key);\n }\n\n getKeyBefore(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.prevKey ?? null;\n }\n\n let k = super.getKeyBefore(key);\n if (k != null && this.getItem(k)?.type === 'tablebody') {\n return null;\n }\n\n return k;\n }\n\n getChildren(key: Key): Iterable<Node<T>> {\n if (!this.getItem(key)) {\n for (let row of this.headerRows) {\n if (row.key === key) {\n return row.childNodes;\n }\n }\n }\n\n return super.getChildren(key);\n }\n\n clone() {\n let collection = super.clone();\n collection.headerRows = this.headerRows;\n collection.columns = this.columns;\n collection.rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n collection.head = this.head;\n collection.body = this.body;\n return collection;\n }\n\n getTextValue(key: Key): string {\n let row = this.getItem(key);\n if (!row) {\n return '';\n }\n\n // If the row has a textValue, use that.\n if (row.textValue) {\n return row.textValue;\n }\n\n // Otherwise combine the text of each of the row header columns.\n let rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n let text: string[] = [];\n for (let cell of this.getChildren(key)) {\n let column = this.columns[cell.index!];\n if (rowHeaderColumnKeys.has(column.key) && cell.textValue) {\n text.push(cell.textValue);\n }\n\n if (text.length === rowHeaderColumnKeys.size) {\n break;\n }\n }\n\n return text.join(' ');\n }\n}\n\ninterface InternalTableContextValue {\n state: TableState<unknown>,\n dragAndDropHooks?: DragAndDropHooks,\n dragState?: DraggableCollectionState,\n dropState?: DroppableCollectionState\n}\n\nexport const TableContext = createContext<ContextValue<TableProps, HTMLTableElement>>(null);\nconst InternalTableContext = createContext<InternalTableContextValue | null>(null);\n\nexport interface TableRenderProps {\n /**\n * Whether the table is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the table is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface TableProps extends Omit<SharedTableProps<any>, 'children'>, StyleRenderProps<TableRenderProps>, SlotProps, AriaLabelingProps {\n /** The elements that make up the table. Includes the TableHeader, TableBody, Columns, and Rows. */\n children?: ReactNode,\n /**\n * How multiple selection should behave in the collection.\n * @default \"toggle\"\n */\n selectionBehavior?: SelectionBehavior,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"selection\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Handler that is called when a user performs an action on the row. */\n onRowAction?: (key: Key) => void,\n /** Handler that is called when a user performs an action on the cell. */\n onCellAction?: (key: Key) => void,\n /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the Table. */\n dragAndDropHooks?: DragAndDropHooks\n}\n\nfunction Table(props: TableProps, ref: ForwardedRef<HTMLTableElement>) {\n [props, ref] = useContextProps(props, ref, TableContext);\n let initialCollection = useMemo(() => new TableCollection<any>(), []);\n let {portal, collection} = useCollection(props, initialCollection);\n let state = useTableState({\n ...props,\n collection,\n children: undefined\n });\n\n let {gridProps} = useTable(props, state, ref);\n\n let {dragAndDropHooks} = props;\n let selectionManager = state.selectionManager;\n let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(isListDraggable);\n let dropHooksProvided = useRef(isListDroppable);\n if (dragHooksProvided.current !== isListDraggable) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== isListDroppable) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n\n let dragState: DraggableCollectionState | undefined = undefined;\n let dropState: DroppableCollectionState | undefined = undefined;\n let droppableCollection: DroppableCollectionResult | undefined = undefined;\n let isRootDropTarget = false;\n let dragPreview: JSX.Element | null = null;\n let preview = useRef<DragPreviewRenderer>(null);\n\n if (isListDraggable && dragAndDropHooks) {\n dragState = dragAndDropHooks.useDraggableCollectionState!({\n collection,\n selectionManager,\n preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n });\n dragAndDropHooks.useDraggableCollection!({}, dragState, ref);\n\n let DragPreview = dragAndDropHooks.DragPreview!;\n dragPreview = dragAndDropHooks.renderDragPreview\n ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n : null;\n }\n\n if (isListDroppable && dragAndDropHooks) {\n dropState = dragAndDropHooks.useDroppableCollectionState!({\n collection,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate(\n collection,\n selectionManager.disabledBehavior === 'selection' ? new Set() : selectionManager.disabledKeys,\n ref\n );\n let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection, ref);\n droppableCollection = dragAndDropHooks.useDroppableCollection!({\n keyboardDelegate,\n dropTargetDelegate\n }, dropState, ref);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-Table',\n values: {\n isDropTarget: isRootDropTarget,\n isFocused,\n isFocusVisible\n }\n });\n\n let {selectionBehavior, selectionMode, disallowEmptySelection} = state.selectionManager;\n let ctx = useMemo(() => ({\n selectionBehavior: selectionMode === 'none' ? null : selectionBehavior,\n selectionMode,\n disallowEmptySelection,\n allowsDragging: isListDraggable\n }), [selectionBehavior, selectionMode, disallowEmptySelection, isListDraggable]);\n\n return (\n <>\n <Provider\n values={[\n [InternalTableContext, {state, dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: TableDropIndicator}]\n ]}>\n <FocusScope>\n <table\n {...filterDOMProps(props)}\n {...renderProps}\n {...mergeProps(gridProps, focusProps, droppableCollection?.collectionProps)}\n ref={ref}\n slot={props.slot}\n data-drop-target={isRootDropTarget || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n <TableHeaderRowGroup collection={collection} />\n <TableBodyRowGroup collection={collection} isDroppable={isListDroppable} />\n </table>\n </FocusScope>\n {dragPreview}\n </Provider>\n <TableOptionsContext.Provider value={ctx}>\n {portal}\n </TableOptionsContext.Provider>\n </>\n );\n}\n\n/**\n * A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,\n * and optionally supports row selection and sorting.\n */\nconst _Table = forwardRef(Table);\nexport {_Table as Table};\n\nexport interface TableOptionsContextValue {\n /** The type of selection that is allowed in the table. */\n selectionMode: SelectionMode,\n /** The selection behavior for the table. If selectionMode is `\"none\"`, this will be `null`. */\n selectionBehavior: SelectionBehavior | null,\n /** Whether the table allows empty selection. */\n disallowEmptySelection: boolean,\n /** Whether the table allows rows to be dragged. */\n allowsDragging: boolean\n}\n\nconst TableOptionsContext = createContext<TableOptionsContextValue | null>(null);\n\n/**\n * Returns options from the parent `<Table>` component.\n */\nexport function useTableOptions(): TableOptionsContextValue {\n return useContext(TableOptionsContext)!;\n}\n\nexport interface TableHeaderProps<T> {\n /** A list of table columns. */\n columns?: T[],\n /** A list of `Column(s)` or a function. If the latter, a list of columns must be provided using the `columns` prop. */\n children?: ReactNode | ((item: T) => ReactElement)\n}\n\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport function TableHeader<T extends object>(props: TableHeaderProps<T>) {\n let children = useCollectionChildren({\n children: props.children,\n items: props.columns\n });\n\n let renderer = typeof props.children === 'function' ? props.children : null;\n return (\n <CollectionRendererContext.Provider value={renderer}>\n {/* @ts-ignore */}\n <tableheader multiple={props}>{children}</tableheader>\n </CollectionRendererContext.Provider>\n );\n}\n\nexport interface ColumnRenderProps {\n /**\n * Whether the item is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the item is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the column allows sorting.\n * @selector [aria-sort]\n */\n allowsSorting: boolean,\n /**\n * The current sort direction.\n * @selector [aria-sort=\"ascending | descending\"]\n */\n sortDirection?: SortDirection\n}\n\nexport interface ColumnProps<T = object> extends RenderProps<ColumnRenderProps> {\n id?: Key,\n /** Rendered contents of the column if `children` contains child columns. */\n title?: ReactNode,\n /** A list of child columns used when dynamically rendering nested child columns. */\n childColumns?: T[],\n /** Whether the column allows sorting. */\n allowsSorting?: boolean,\n /** Whether a column is a [row header](https://www.w3.org/TR/wai-aria-1.1/#rowheader) and should be announced by assistive technology during row navigation. */\n isRowHeader?: boolean,\n /** A string representation of the column's contents, used for accessibility announcements. */\n textValue?: string\n}\n\n/**\n * A column within a `<Table>`.\n */\nexport function Column<T extends object>(props: ColumnProps<T>): JSX.Element {\n let render = useContext(CollectionRendererContext);\n let childColumns = typeof render === 'function' ? render : props.children;\n let children = useCollectionChildren({\n children: (props.title || props.childColumns) ? childColumns : null,\n items: props.childColumns\n });\n\n // @ts-ignore\n return <column multiple={{...props, rendered: props.title ?? props.children}}>{children}</column>;\n}\n\nexport interface TableBodyRenderProps {\n /**\n * Whether the table body has no rows and should display its empty state.\n * @selector [data-empty]\n */\n isEmpty: boolean\n}\n\nexport interface TableBodyProps<T> extends CollectionProps<T>, StyleRenderProps<TableBodyRenderProps> {\n /** Provides content to display when there are no rows in the table. */\n renderEmptyState?: () => ReactNode\n}\n\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport function TableBody<T extends object>(props: TableBodyProps<T>) {\n let children = useCollectionChildren(props);\n\n // @ts-ignore\n return <tablebody multiple={props}>{children}</tablebody>;\n}\n\nexport interface RowRenderProps extends ItemRenderProps {}\n\nexport interface RowProps<T> extends RenderProps<RowRenderProps> {\n id?: Key,\n /** A list of columns used when dynamically rendering cells. */\n columns?: Iterable<T>,\n /** The cells within the row. Supports static items or a function for dynamic rendering. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** A string representation of the row's contents, used for features like typeahead. */\n textValue?: string\n}\n\n/**\n * A row within a `<Table>`.\n */\nexport function Row<T extends object>(props: RowProps<T>) {\n let children = useCollectionChildren({\n children: props.children,\n items: props.columns,\n idScope: props.id\n });\n\n let ctx = useMemo(() => ({idScope: props.id}), [props.id]);\n\n return (\n // @ts-ignore\n <item multiple={props}>\n <CollectionContext.Provider value={ctx}>\n {children}\n </CollectionContext.Provider>\n {/* @ts-ignore */}\n </item>\n );\n}\n\nexport interface CellRenderProps {\n /**\n * Whether the cell is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the cell is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the cell is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean\n}\n\nexport interface CellProps extends RenderProps<CellRenderProps> {\n id?: Key,\n /** The contents of the cell. */\n children: ReactNode,\n /** A string representation of the cell's contents, used for features like typeahead. */\n textValue?: string\n}\n\n/**\n * A cell within a table row.\n */\nexport function Cell(props: CellProps): JSX.Element {\n // @ts-ignore\n return <cell multiple={{...props, rendered: props.children}} />;\n}\n\nfunction TableHeaderRowGroup<T>({collection}: {collection: TableCollection<T>}) {\n let headerRows = useCachedChildren({\n items: collection.headerRows,\n children: useCallback((item: Node<T>) => {\n switch (item.type) {\n case 'headerrow':\n return <TableHeaderRow item={item} />;\n default:\n throw new Error('Unsupported node type in TableHeader: ' + item.type);\n }\n }, [])\n });\n\n let {rowGroupProps} = useTableRowGroup();\n return (\n <thead\n {...filterDOMProps(collection.head.props)}\n {...rowGroupProps}\n className={collection.head.props.className ?? 'react-aria-TableHeader'}\n style={collection.head.props.style}>\n {headerRows}\n </thead>\n );\n}\n\nfunction TableBodyRowGroup<T>({collection, isDroppable}: {collection: TableCollection<T>, isDroppable: boolean}) {\n let bodyRows = useCachedChildren({\n items: collection.rows,\n children: useCallback((item: Node<T>) => {\n switch (item.type) {\n case 'item':\n return <TableRow item={item} />;\n default:\n throw new Error('Unsupported node type in TableBody: ' + item.type);\n }\n }, [])\n });\n\n let props: TableBodyProps<T> = collection.body.props;\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: undefined,\n defaultClassName: 'react-aria-TableBody',\n values: {\n isEmpty: collection.size === 0\n }\n });\n\n let emptyState;\n if (collection.size === 0 && props.renderEmptyState) {\n emptyState = (\n <tr role=\"row\">\n <td role=\"gridcell\" colSpan={collection.columnCount}>\n {props.renderEmptyState()}\n </td>\n </tr>\n );\n }\n\n let {rowGroupProps} = useTableRowGroup();\n return (\n <tbody\n {...renderProps}\n {...rowGroupProps}\n data-empty={collection.size === 0 || undefined}>\n {isDroppable && <RootDropIndicator />}\n {bodyRows}\n {emptyState}\n </tbody>\n );\n}\n\nfunction TableHeaderRow<T>({item}: {item: GridNode<T>}) {\n let ref = useRef<HTMLTableRowElement>(null);\n let {state} = useContext(InternalTableContext)!;\n let {rowProps} = useTableHeaderRow({node: item}, state, ref);\n let {checkboxProps} = useTableSelectAllCheckbox(state);\n\n let cells = useCachedChildren({\n items: state.collection.getChildren!(item.key),\n children: (item) => {\n switch (item.type) {\n case 'column':\n return <TableColumnHeader column={item} />;\n default:\n throw new Error('Unsupported node type in Row: ' + item.type);\n }\n }\n });\n\n return (\n <tr {...rowProps} ref={ref}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n selection: checkboxProps\n }\n }]\n ]}>\n {cells}\n </Provider>\n </tr>\n );\n}\n\nfunction TableColumnHeader<T>({column}: {column: GridNode<T>}) {\n let ref = useRef<HTMLTableHeaderCellElement>(null);\n let {state} = useContext(InternalTableContext)!;\n let {columnHeaderProps} = useTableColumnHeader(\n {node: column},\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n\n let props: ColumnProps<unknown> = column.props;\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: column.rendered,\n defaultClassName: 'react-aria-Column',\n values: {\n isFocused,\n isFocusVisible,\n allowsSorting: column.props.allowsSorting,\n sortDirection: state.sortDescriptor?.column === column.key\n ? state.sortDescriptor.direction\n : undefined\n }\n });\n\n return (\n <th\n {...mergeProps(columnHeaderProps, focusProps)}\n {...renderProps}\n colSpan={column.colspan}\n ref={ref}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n {renderProps.children}\n </th>\n );\n}\n\nfunction TableRow<T>({item}: {item: GridNode<T>}) {\n let ref = useRef<HTMLTableRowElement>(null);\n let {state, dragAndDropHooks, dragState, dropState} = useContext(InternalTableContext)!;\n let {rowProps, ...states} = useTableRow(\n {\n node: item,\n shouldSelectOnPressUp: !!dragState\n },\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {hoverProps, isHovered} = useHover({\n isDisabled: !states.allowsSelection && !states.hasAction\n });\n\n let {checkboxProps} = useTableSelectionCheckbox(\n {key: item.key},\n state\n );\n\n let draggableItem: DraggableItemResult | undefined = undefined;\n if (dragState && dragAndDropHooks) {\n draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key, hasDragButton: true}, dragState);\n }\n\n let dropIndicator: DropIndicatorAria | undefined = undefined;\n let dropIndicatorRef = useRef<HTMLDivElement>(null);\n let {visuallyHiddenProps} = useVisuallyHidden();\n if (dropState && dragAndDropHooks) {\n dropIndicator = dragAndDropHooks.useDropIndicator!({\n target: {type: 'item', key: item.key, dropPosition: 'on'}\n }, dropState, dropIndicatorRef);\n }\n\n let renderDropIndicator = dragAndDropHooks?.renderDropIndicator || (target => <DropIndicator target={target} />);\n let dragButtonRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (dragState && !dragButtonRef.current) {\n console.warn('Draggable items in a Table must contain a <Button slot=\"drag\"> element so that keyboard and screen reader users can drag them.');\n }\n // eslint-disable-next-line\n }, []);\n\n let props = item.props as RowProps<unknown>;\n let isDragging = dragState && dragState.isDragging(item.key);\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Row',\n values: {\n ...states,\n isHovered,\n isFocused,\n isFocusVisible,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior,\n isDragging,\n isDropTarget: dropIndicator?.isDropTarget\n }\n });\n\n let cells = useCachedChildren({\n items: state.collection.getChildren!(item.key),\n children: (item: Node<unknown>) => {\n switch (item.type) {\n case 'cell':\n return <TableCell cell={item} />;\n default:\n throw new Error('Unsupported node type in Row: ' + item.type);\n }\n }\n });\n\n return (\n <>\n {dragAndDropHooks?.useDropIndicator &&\n renderDropIndicator({type: 'item', key: item.key, dropPosition: 'before'})\n }\n {dropIndicator && !dropIndicator.isHidden && (\n <tr role=\"row\" style={{height: 0}}>\n <td role=\"gridcell\" colSpan={state.collection.columnCount} style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicator.dropIndicatorProps} ref={dropIndicatorRef} />\n </td>\n </tr>\n )}\n <tr\n {...mergeProps(rowProps, focusProps, hoverProps, draggableItem?.dragProps)}\n {...renderProps}\n ref={ref}\n data-hovered={isHovered || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}\n data-dragging={isDragging || undefined}\n data-drop-target={dropIndicator?.isDropTarget || undefined}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n selection: checkboxProps\n }\n }],\n [ButtonContext, {\n slots: {\n [defaultSlot]: {},\n drag: {\n ...draggableItem?.dragButtonProps,\n ref: dragButtonRef,\n style: {\n pointerEvents: 'none'\n }\n }\n }\n }]\n ]}>\n {cells}\n </Provider>\n </tr>\n {dragAndDropHooks?.useDropIndicator && state.collection.getKeyAfter(item.key) == null &&\n renderDropIndicator({type: 'item', key: item.key, dropPosition: 'after'})\n }\n </>\n );\n}\n\nfunction TableCell<T>({cell}: {cell: GridNode<T>}) {\n let ref = useRef<HTMLTableCellElement>(null);\n let {state, dragState} = useContext(InternalTableContext)!;\n\n // @ts-ignore\n cell.column = state.collection.columns[cell.index];\n\n let {gridCellProps, isPressed} = useTableCell({\n node: cell,\n shouldSelectOnPressUp: !!dragState\n }, state, ref);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n\n let props: CellProps = cell.props;\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Cell',\n values: {\n isFocused,\n isFocusVisible,\n isPressed\n }\n });\n\n return (\n <td\n {...mergeProps(gridCellProps, focusProps)}\n {...renderProps}\n ref={ref}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}>\n {cell.rendered}\n </td>\n );\n}\n\nfunction TableDropIndicator(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n ref = useObjectRef(ref);\n let {state, dragAndDropHooks, dropState} = useContext(InternalTableContext)!;\n let buttonRef = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n props,\n dropState!,\n buttonRef\n );\n\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (isHidden) {\n return null;\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-DropIndicator',\n values: {\n isDropTarget\n }\n });\n\n return (\n <tr\n {...renderProps}\n role=\"row\"\n ref={ref as RefObject<HTMLTableRowElement>}\n data-drop-target={isDropTarget || undefined}>\n <td\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div {...visuallyHiddenProps} role=\"button\" {...dropIndicatorProps} ref={buttonRef} />\n </td>\n </tr>\n );\n}\n\nfunction RootDropIndicator() {\n let {state, dragAndDropHooks, dropState} = useContext(InternalTableContext)!;\n let ref = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!({\n target: {type: 'root'}\n }, dropState!, ref);\n let isDropTarget = dropState!.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n <tr\n role=\"row\"\n aria-hidden={dropIndicatorProps['aria-hidden']}\n style={{height: 0}}>\n <td\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />\n </td>\n </tr>\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\nimport {AriaTabListProps, AriaTabPanelProps, mergeProps, Orientation, useFocusRing, useHover, useTab, useTabList, useTabPanel} from 'react-aria';\nimport {CollectionProps, Item, useCollection} from './Collection';\nimport {ContextValue, forwardRefType, RenderProps, SlotProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {Node, TabListState, useTabListState} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, Key, useContext, useEffect, useState} from 'react';\nimport {useObjectRef} from '@react-aria/utils';\n\nexport interface TabsProps extends RenderProps<TabsRenderProps>, SlotProps {\n /**\n * The orientation of the tabs.\n * @default 'horizontal'\n */\n orientation?: Orientation\n}\n\nexport interface TabsRenderProps {\n /**\n * The orientation of the tabs.\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation\n}\n\nexport interface TabListProps<T> extends Omit<AriaTabListProps<T>, 'children' | 'orientation'>, StyleRenderProps<TabListRenderProps>, AriaLabelingProps, CollectionProps<T> {}\n\nexport interface TabListRenderProps {\n /**\n * The orientation of the tab list.\n * @selector [aria-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation\n}\n\nexport interface TabProps extends RenderProps<TabRenderProps>, AriaLabelingProps {\n id?: Key\n}\n\nexport interface TabRenderProps {\n /**\n * Whether the tab is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the tab is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the tab is currently selected.\n * @selector [aria-selected=true]\n */\n isSelected: boolean,\n /**\n * Whether the tab is currently focused.\n * @selector :focus\n */\n isFocused: boolean,\n /**\n * Whether the tab is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the tab is disabled.\n * @selector [aria-disabled]\n */\n isDisabled: boolean\n}\n\nexport interface TabPanelProps extends AriaTabPanelProps, RenderProps<TabPanelRenderProps> {}\nexport interface TabPanelRenderProps {\n /**\n * Whether the tab panel is currently focused.\n * @selector :focus\n */\n isFocused: boolean,\n /**\n * Whether the tab panel is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean\n}\n\ninterface InternalTabsContextValue {\n state: TabListState<unknown> | null,\n setState: React.Dispatch<React.SetStateAction<TabListState<unknown> | null>>,\n orientation: Orientation\n}\n\nexport const TabsContext = createContext<ContextValue<TabsProps, HTMLDivElement>>(null);\nconst InternalTabsContext = createContext<InternalTabsContextValue | null>(null);\n\nfunction Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TabsContext);\n let {orientation = 'horizontal'} = props;\n let [state, setState] = useState<TabListState<unknown> | null>(null);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tabs',\n values: {\n orientation\n }\n });\n\n return (\n <div\n {...renderProps}\n ref={ref}\n slot={props.slot}\n data-orientation={orientation}>\n <InternalTabsContext.Provider value={{state, setState, orientation}}>\n {props.children}\n </InternalTabsContext.Provider>\n </div>\n );\n}\n\n/**\n * Tabs organize content into multiple sections and allow users to navigate between them.\n */\nconst _Tabs = forwardRef(Tabs);\nexport {_Tabs as Tabs};\n\nfunction TabList<T extends object>(props: TabListProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n let {setState, orientation} = useContext(InternalTabsContext)!;\n let objectRef = useObjectRef(ref);\n\n let {portal, collection} = useCollection(props);\n let state = useTabListState({\n ...props,\n collection,\n children: undefined\n });\n\n let {tabListProps} = useTabList({\n ...props,\n orientation\n }, state, objectRef);\n\n useEffect(() => {\n setState(state);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [collection, state.selectedKey]);\n\n let renderProps = useRenderProps({\n ...props,\n children: null,\n defaultClassName: 'react-aria-TabList',\n values: {\n orientation\n }\n });\n\n return (\n <>\n <div {...tabListProps} ref={objectRef} {...renderProps}>\n {[...state.collection].map((item) => (\n <TabInner\n key={item.key}\n item={item}\n state={state} />\n ))}\n </div>\n {portal}\n </>\n );\n}\n\n/**\n * A TabList is used within Tabs to group tabs that a user can switch between.\n * The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.\n */\nconst _TabList = (forwardRef as forwardRefType)(TabList);\nexport {_TabList as TabList};\n\n/**\n * A Tab provides a title for an individual item within a TabList.\n */\nexport function Tab(props: TabProps): JSX.Element {\n // @ts-ignore\n return Item(props);\n}\n\nfunction TabInner({item, state}: {item: Node<object>, state: TabListState<object>}) {\n let {key} = item;\n let ref = React.useRef<HTMLDivElement>(null);\n let {tabProps, isSelected, isDisabled, isPressed} = useTab({key}, state, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover({\n isDisabled\n });\n\n let renderProps = useRenderProps({\n ...item.props,\n children: item.rendered,\n defaultClassName: 'react-aria-Tab',\n values: {\n isSelected,\n isDisabled,\n isFocused,\n isFocusVisible,\n isPressed,\n isHovered\n }\n });\n\n return (\n <div\n {...mergeProps(tabProps, focusProps, hoverProps, renderProps)}\n ref={ref}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined} />\n );\n}\n\nexport interface TabPanelsProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'> {}\n\n/**\n * TabPanels is used within Tabs as a container for the content of each tab.\n * The ids of the items within the <TabPanels> must match up with a corresponding item inside the <TabList>.\n */\nexport function TabPanels<T extends object>(props: TabPanelsProps<T>) {\n const {state} = useContext(InternalTabsContext)!;\n let {portal, collection} = useCollection(props);\n const selectedItem = state?.selectedKey != null\n ? collection.getItem(state!.selectedKey)\n : null;\n\n return (\n <>\n {selectedItem && <SelectedTabPanel item={selectedItem} />}\n {portal}\n </>\n );\n}\n\n/**\n * A TabPanel provides the content for a tab.\n */\nexport function TabPanel(props: TabPanelProps): JSX.Element {\n return Item(props);\n}\n\nfunction SelectedTabPanel({item}: {item: Node<object>}) {\n const {state} = useContext(InternalTabsContext)!;\n let ref = React.useRef<HTMLDivElement>(null);\n let {tabPanelProps} = useTabPanel(item.props, state!, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n\n let renderProps = useRenderProps({\n ...item.props,\n children: item.rendered,\n defaultClassName: 'react-aria-TabPanel',\n values: {\n isFocused,\n isFocusVisible\n }\n });\n\n return (\n <div\n {...mergeProps(tabPanelProps, focusProps, renderProps)}\n ref={ref}\n data-focus-visible={isFocusVisible || undefined} />\n );\n}\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaTextFieldProps, useTextField} from 'react-aria';\nimport {ContextValue, DOMProps, Provider, SlotProps, useContextProps, useSlot} from './utils';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {InputContext} from './Input';\nimport {LabelContext} from './Label';\nimport React, {createContext, ForwardedRef, forwardRef, useRef} from 'react';\nimport {TextContext} from './Text';\n\nexport interface TextFieldProps extends Omit<AriaTextFieldProps, 'label' | 'placeholder' | 'description' | 'errorMessage'>, DOMProps, SlotProps {}\n\nexport const TextFieldContext = createContext<ContextValue<TextFieldProps, HTMLDivElement>>(null);\n\nfunction TextField(props: TextFieldProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TextFieldContext);\n let inputRef = useRef<HTMLInputElement>(null);\n let [labelRef, label] = useSlot();\n let {labelProps, inputProps, descriptionProps, errorMessageProps} = useTextField({\n ...props,\n label\n }, inputRef);\n\n return (\n <div\n {...filterDOMProps(props)}\n ref={ref}\n slot={props.slot}\n className={props.className ?? 'react-aria-TextField'}\n style={props.style}>\n <Provider\n values={[\n [LabelContext, {...labelProps, ref: labelRef}],\n [InputContext, {...inputProps, ref: inputRef}],\n [TextContext, {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }]\n ]}>\n {props.children}\n </Provider>\n </div>\n );\n}\n\n/**\n * A text field allows a user to enter a plain text value with a keyboard.\n */\nconst _TextField = forwardRef(TextField);\nexport {_TextField as TextField};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaToggleButtonProps, mergeProps, useFocusRing, useHover, useToggleButton} from 'react-aria';\nimport {ButtonRenderProps} from './Button';\nimport {ContextValue, RenderProps, SlotProps, useContextProps, useRenderProps} from './utils';\nimport React, {createContext, ForwardedRef, forwardRef} from 'react';\nimport {useToggleState} from 'react-stately';\n\nexport interface ToggleButtonRenderProps extends ButtonRenderProps {\n /**\n * Whether the button is currently selected.\n * @selector [aria-pressed=true]\n */\n isSelected: boolean\n}\n\nexport interface ToggleButtonProps extends Omit<AriaToggleButtonProps, 'children' | 'elementType'>, SlotProps, RenderProps<ToggleButtonRenderProps> {}\n\nexport const ToggleButtonContext = createContext<ContextValue<ToggleButtonProps, HTMLButtonElement>>({});\n\nfunction ToggleButton(props: ToggleButtonProps, ref: ForwardedRef<HTMLButtonElement>) {\n [props, ref] = useContextProps(props, ref, ToggleButtonContext);\n let state = useToggleState(props);\n let {buttonProps, isPressed} = useToggleButton(props, state, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing(props);\n let {hoverProps, isHovered} = useHover(props);\n let renderProps = useRenderProps({\n ...props,\n values: {isHovered, isPressed, isFocused, isSelected: state.isSelected, isFocusVisible, isDisabled: props.isDisabled || false},\n defaultClassName: 'react-aria-ToggleButton'\n });\n\n return (\n <button\n {...mergeProps(buttonProps, focusProps, hoverProps)}\n {...renderProps}\n ref={ref}\n slot={props.slot}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined} />\n );\n}\n\n/**\n * A toggle button allows a user to toggle a selection on or off, for example switching between two states or modes.\n */\nconst _ToggleButton = forwardRef(ToggleButton);\nexport {_ToggleButton as ToggleButton};\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMAttributes, FocusableElement} from '@react-types/shared';\nimport {FocusableProvider} from '@react-aria/focus';\nimport {mergeProps, OverlayContainer, PlacementAxis, PositionProps, useOverlayPosition, useTooltip, useTooltipTrigger} from 'react-aria';\nimport {mergeRefs, useObjectRef} from '@react-aria/utils';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport React, {createContext, ForwardedRef, forwardRef, ReactNode, RefObject, useContext, useRef} from 'react';\nimport {RenderProps, useEnterAnimation, useExitAnimation, useRenderProps} from './utils';\nimport {TooltipTriggerProps, TooltipTriggerState, useTooltipTriggerState} from 'react-stately';\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children: ReactNode\n}\n\nexport interface TooltipProps extends PositionProps, AriaLabelingProps, RenderProps<TooltipRenderProps> {}\n\nexport interface TooltipRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis,\n /**\n * Whether the tooltip is currently entering. Use this to apply animations.\n * @selector [data-entering]\n */\n isEntering: boolean,\n /**\n * Whether the tooltip is currently exiting. Use this to apply animations.\n * @selector [data-exiting]\n */\n isExiting: boolean\n}\n\ninterface TooltipContextValue {\n state: TooltipTriggerState,\n triggerRef: RefObject<FocusableElement>,\n tooltipProps: DOMAttributes\n}\n\nconst InternalTooltipContext = createContext<TooltipContextValue | null>(null);\n\n/**\n * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing\n * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip\n * relative to the trigger.\n */\nexport function TooltipTrigger(props: TooltipTriggerComponentProps) {\n let state = useTooltipTriggerState(props);\n let ref = useRef<FocusableElement>(null);\n let {triggerProps, tooltipProps} = useTooltipTrigger(props, state, ref);\n\n return (\n <InternalTooltipContext.Provider value={{state, triggerRef: ref, tooltipProps}}>\n <FocusableProvider {...triggerProps} ref={ref}>\n {props.children}\n </FocusableProvider>\n </InternalTooltipContext.Provider>\n );\n}\n\nfunction Tooltip(props: TooltipProps, ref: ForwardedRef<HTMLDivElement>) {\n let {state} = useContext(InternalTooltipContext)!;\n let objectRef = useObjectRef(ref);\n let isExiting = useExitAnimation(objectRef, state.isOpen);\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <OverlayContainer>\n <TooltipInner {...props} tooltipRef={objectRef} isExiting={isExiting} />\n </OverlayContainer>\n );\n}\n\n/**\n * A tooltip displays a description of an element on hover or focus.\n */\nconst _Tooltip = forwardRef(Tooltip);\nexport {_Tooltip as Tooltip};\n\nfunction TooltipInner(props: TooltipProps & {isExiting: boolean, tooltipRef: ForwardedRef<HTMLDivElement>}) {\n let {state, triggerRef, tooltipProps: triggerTooltipProps} = useContext(InternalTooltipContext)!;\n\n let overlayRef = useRef<HTMLDivElement>(null);\n let {overlayProps, arrowProps, placement} = useOverlayPosition({\n placement: props.placement || 'top',\n targetRef: triggerRef,\n overlayRef,\n offset: props.offset,\n crossOffset: props.crossOffset,\n isOpen: state.isOpen\n });\n\n let isEntering = useEnterAnimation(overlayRef, !!placement);\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tooltip',\n values: {\n placement,\n isEntering,\n isExiting: props.isExiting\n }\n });\n\n props = mergeProps(props, overlayProps);\n let {tooltipProps} = useTooltip(props, state);\n\n return (\n <div\n {...mergeProps(triggerTooltipProps, tooltipProps)}\n ref={mergeRefs(overlayRef, props.tooltipRef)}\n {...renderProps}\n style={{...renderProps.style, ...overlayProps.style}}\n data-placement={placement}\n data-entering={isEntering || undefined}\n data-exiting={props.isExiting || undefined}>\n <OverlayArrowContext.Provider value={{arrowProps, placement}}>\n {renderProps.children}\n </OverlayArrowContext.Provider>\n </div>\n );\n}\n"],"names":[],"version":3,"file":"main.js.map"}
|