@parrot-co/parrot-ui 0.0.83 → 0.0.85
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/dist/main.js +151 -75
- package/dist/main.js.map +1 -1
- package/dist/module.js +152 -76
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +16 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/styles.css +28 -20
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;ACAA;;AEAO,SAAS,0CAAS,KAAc,EAAW;IAChD,OAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,0CAAQ,KAAc,EAAW;IAC/C,OAAO,UAAU,IAAI,IAAI,MAAM,OAAO,CAAC;AACzC;AAEO,SAAS,0CAAa,KAAqB,EAAW;IAC3D,OAAO,0CAAQ,UAAU,MAAM,MAAM,KAAK;AAC5C;AAEO,SAAS,0CAAS,KAAa,EAAW;IAC/C,OACE,AAAC,CAAA,OAAO,UAAU,YAAY,OAAO,UAAU,UAAS,KACxD,CAAC,MAAM,OAAO,CAAC,UACf,UAAU,IAAI;AAElB;AAEO,SAAS,0CAAc,KAAa,EAAE;IAC3C,OAAO,0CAAS,UAAU,OAAO,IAAI,CAAC,OAAO,MAAM,KAAK;AAC1D;AAEO,SAAS,0CAAoB,KAAa,EAAE;IACjD,OACE,OAAO,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,QAAU;QACrC,OAAO,UAAU,MAAM,UAAU,aAAa,UAAU,IAAI;IAC9D,GAAG,MAAM,GAAG;AAEhB;AAEO,SAAS,0CAAkB,KAAc,EAAE;IAChD,OAAO,SAAS,IAAI;AACtB;AAEO,SAAS,yCAAY,KAAc,EAAE;IAC1C,OAAO,UAAU;AACnB;;ADtCA;AAGO,SAAS,0CACd,UAA2E,EACnE;IACR,IAAI,CAAA,GAAA,yCAAM,EAAE,aACV,OAAO,AAAC,WACL,MAAM,CAAC,CAAC,YAAc;QACrB,OAAO,CAAC,CAAC;IACX,GACC,IAAI,CAAC;IAGV,IAAI,CAAA,GAAA,yCAAQ,AAAD,EAAE,aAA2C;QACtD,MAAM,YAAY,OAAO,IAAI,CAAC,YAC3B,MAAM,CAAC,CAAC,MAAQ;YACf,OAAO,AAAC,UAAyC,CAAC,IAAI;QACxD,GACC,IAAI,CAAC;QACR,OAAO;IACT,CAAC;IAED,OAAO,CAAC,EAAE,WAAW,CAAC;AACxB;AAQO,SAAS,0CAAa,GAAG,IAAuB,EAAE;IACvD,OAAO,CAAC,OAAY;QAClB,KAAK,MAAM,OAAO,KAAM;YACtB,IAAI,OAAO,QAAQ,YACjB,IAAI;iBACC,IAAI,OAAO,OAAO,QAAQ,UAC/B,IAAI,OAAO,GAAG;QAElB;IACF;AACF;;;AD9BO,MAAM,0DAAM,kBAIjB,CACE,YACE,SAAQ,YACR,SAAQ,aACR,UAAS,YACT,SAAQ,aACR,UAAS,YACT,SAAQ,MACR,KAAK,QACL,GAAG,OACJ,EACD,MACG;IACH,MAAM,OAAO;IACb,qBACE,gBAAC;QACC,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,aAAa,CAAC,CAAC;YACf,aAAa,CAAC,CAAC;YACf,cAAc,CAAC,CAAC;YAChB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;QACA,KAAK;QACJ,GAAG,KAAK;kBAER;;AAGP;AAGF,0CAAI,WAAW,GAAG;;ADhDlB;AIAA;;;;AA4CO,MAAM,0DAAO,kBAIlB,CACE,WAAE,UAAU,UAAI,IAAG,QAAE,KAAI,QAAE,KAAI,SAAE,MAAK,WAAE,QAAO,MAAE,GAAE,aAAE,UAAS,EAAE,GAAG,OAAO,EAC1E,MACG;IACH,qBACE,gBAAC,CAAA,GAAA,yCAAG,AAAD;QACD,IAAI;QACJ,KAAK;QACL,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,UAAU,IAAI;YACd,gBAAgB,IAAI;YACpB,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;QACC,GAAG,KAAK;;AAGf;AAGF,0CAAK,WAAW,GAAG;AAMZ,MAAM,0DAAW,kBAGtB,CAAC,WAAE,UAAU,QAAG,GAAE,aAAE,UAAS,EAAE,GAAG,OAAO,EAAE,MAAQ;IACnD,qBACE,gBAAC,CAAA,GAAA,yCAAG,AAAD;QACD,IAAI;QACJ,QAAQ;QACR,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,eAAe,IAAI;YACnB,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;QACA,KAAK;QACJ,GAAG,KAAK;;AAGf;AAEA,0CAAS,WAAW,GAAG;;;AClGvB;;;;AAsBO,MAAM,0DAAO,kBAClB,CAAC,OAAO,MAAQ;IACd,MAAM,WACJ,QAAO,SACP,MAAK,aACL,UAAS,OACT,MAAM,kBACN,UAAS,UACT,OAAM,UACN,OAAM,QACN,KAAI,SACJ,MAAK,aACL,UAAS,EACT,GAAG,YACJ,GAAG;IAEJ,MAAM,eAAe,mBAAkB,IAAM;QAC3C,IAAI,OACF,OAAO;QAGT,OAAO,aAAa;IACtB,GAAG;QAAC;QAAO;KAAU;IAErB,qBACE,gBAAC,CAAA,GAAA,yCAAG,AAAD;QACD,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,SAAS,wBAAwB,cAAc,CAAC,EAAE,IAAI;YACvD,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;QACA,KAAK;QACJ,GAAG,UAAU;kBAEb,MAAM,QAAQ;;AAGrB;AAGF,0CAAK,WAAW,GAAG;;;ACpEnB;;;;ACAA;;;ACAA;;;AAgCO,MAAM,4CAAO,CAClB,QACG;IACH,MAAM,QACJ,KAAI,UACJ,OAAM,SACN,QAAQ,kBACR,UAAU,uBACV,UAAS,SACT,MAAK,cACL,WAAU,aACV,UAAS,UACT,OAAM,EACN,IAAI,MAAM,MAAM,CAAA,WAChB,QAAO,aACP,UAAS,EACT,GAAG,MACJ,GAAG;IAEJ,qBACE,gBAAC;QACC,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,UAAU,IAAI;YACd,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;QACA,kBAAgB;QAChB,eAAa;QACb,cAAY;QACZ,qBAAmB;QACnB,KAAK;QACJ,GAAG,IAAI;;AAGd;AAEA,0CAAK,WAAW,GAAG;;;AD9DnB,MAAM,iDAAa,CAAA,GAAA,YAAK,AAAD,EAAE,UAAU,CACjC,CAAC,YAAE,SAAQ,aAAE,UAAS,EAAE,GAAG,OAAO,EAAE,MAAQ;IAC1C,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,MAAK;QACL,OAAM;QACN,SAAQ;QACR,IAAG;QACH,SAAS;QACT,WAAW,CAAA,GAAA,yCAAC,EAAE;YAAC;YAAW;SAAgB;QACzC,GAAG,KAAK;kBAER;;AAGP;AAGF,iCAAW,WAAW,GAAG;IAEzB,2CAAe;;;AE9Bf;;;AAOA,MAAM,iDAAa,CAAA,GAAA,YAAK,AAAD,EAAE,UAAU,CACjC,CAAC,YAAE,SAAQ,oBAAE,mBAAmB,UAAS,GAAG,OAAO,EAAE,MAAQ;IAC3D,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,MAAK;QACL,WAAU;QACV,YAAY;QACZ,IAAG;QACH,OAAM;QACN,SAAQ;QACR,0BAAwB;QACxB,KAAK;QACJ,GAAG,KAAK;kBAER;;AAGP;AAGF,iCAAW,WAAW,GAAG;IAEzB,2CAAe;;;;AC7Bf;;;;AAKA,MAAM,mDAAe,qBAGlB;IAAE,YAAY,CAAC;IAAG,0BAA0B;AAAG;AAQlD,SAAS,qCACP,YACE,SAAQ,WACR,QAAO,OACP,IAAG,aACH,UAAS,EACT,GAAG,OACiC,EACtC,GAAuC,EACvC;IACA,MAAM,gBAAgB,gBAAe,KAAK,CAAC;IAE3C,MAAM,QAAQ,eAAc,IAAM;QAChC,OAAO,gBAAe,GAAG,CAAC,UAAU,CAAC,OAAO,QAAU;YACpD,MAAM,eAAe,SAAS;YAC9B,MAAM,cAAc,SAAS,gBAAgB;YAE7C,IAAI,eAAC,sBAAqB,QAAQ,OAAO,IAAI;YAE7C,qBACE,gBAAC,mCAAa,QAAQ;gBACpB,OAAO;oBACL,YAAY;wBACV,oBAAoB;wBACpB,mBAAmB;wBACnB,cAAc,IAAI;oBACpB;oBACA,0BAA0B,cACtB,KACA,6BAA6B;gBACnC;0BAEC;;QAGP;IACF,GAAG;QAAC;KAAS;IAEb,MAAM,UAAU,UAAU,SAAS,GAAG;IAEtC,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,gBAAc;QACd,WAAW,CAAA,GAAA,yCAAC,EAAE;YAAC;YAAW;SAAU;QACpC,KAAK;QACL,KAAK;QACJ,GAAG,KAAK;kBAER;;AAGP;AAEO,MAAM,0DAAQ,kBAAiB;AAE/B,SAAS,4CAAW;IACzB,OAAO,kBAAiB;AAC1B;;;;AJrCO,MAAM,0DAAQ,CAAA,GAAA,YAAK,AAAD,EAAE,UAAU,CACnC,CACE,SACE,MAAK,SACL,MAAK,SACL,QAAQ,qBACR,aAAa,kBACb,OAAO,cACP,QAAQ,oBACR,OAAM,WACN,QAAO,eACP,YAAW,cACX,WAAU,oBACV,iBAAgB,aAChB,UAAS,YACT,SAAQ,EACR,GAAG,OACJ,EACD,MACG;IACH,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IAErB,MAAM,mBAAmB,CAAA,GAAA,YAAK,AAAD,EAAE,MAAM,CAAmB,IAAI;IAE5D,MAAM,cAAE,WAAU,cAAE,WAAU,qBAAE,kBAAiB,oBAAE,iBAAgB,EAAE,GACnE,CAAA,GAAA,mBAAW,EACT;QACE,GAAG,KAAK;QACR,kBAAkB;eAClB;qBACA;QACA,YAAY;IACd,GACA;IAGJ,MAAM,YAAY,CAAA,GAAA,YAAK,AAAD,EAAE,WAAW,CAAC,IAAM;QACxC,IAAI,UAAU,SAAS,OAAO;QAC9B,IAAI,UAAU,WAAW,OAAO;QAChC,OAAO;IACT,GAAG;QAAC;KAAM;IAEV,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,cAAY;QACZ,eAAa;QACb,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,CAAC,CAAC,EAAE,MAAM,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI;YAC3C,iBAAiB,IAAI;YACrB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;QACA,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,aAAW;;YAEV,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,UAAU;0BAAG;;0BAEvC,iBAAC,CAAA,GAAA,yCAAG;gBAAE,WAAU;gBAAoB,QAAQ;gBAAC,MAAM;gBAAC,UAAS;;oBAC1D,yBACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,WAAU;wBAAqB,UAAS;kCAC3C;;kCAGL,gBAAC;wBACC,KAAK,CAAA,GAAA,yCAAS,AAAD,EAAE,kBAAkB;wBACjC,kBAAgB,CAAC,CAAC;wBAClB,mBAAiB;wBACjB,uBAAqB,CAAC,CAAC;wBACvB,wBAAsB,CAAC,CAAC;wBACxB,WAAW,CAAA,GAAA,yCAAC,EAAE;4BACZ,WAAW,IAAI;4BACf,GAAG,MAAM,UAAU;wBACrB;wBACC,GAAG,UAAU;;oBAEf,wBACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,WAAU;wBAAsB,UAAS;kCAC5C;;;;YAKN,6BACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gBACF,IAAG;gBACH,QAAO;gBACP,SAAQ;gBACR,OAAM;gBACN,MAAK;gBACL,YAAY;gBACX,GAAG,gBAAgB;0BAEnB;;YAIJ,uBACC,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBACR,kBAAkB;gBACjB,GAAG,iBAAiB;0BAEpB;;;;AAKX;AAGF,0CAAM,WAAW,GAAG;;AKnJpB;;ACAA;;;;ACAA;;;AAOO,MAAM,0DAAS,kBACpB,CACE,SAAE,QAAQ,+BAAmB,UAAS,SAAE,MAAK,QAAE,OAAO,OAAM,GAAG,OAAO,EACtE,MACG;IACH,qBACE,gBAAC;QACC,OAAO;YAAE,MAAM;YAAO,GAAG,KAAK;QAAC;QAC/B,WAAW,CAAA,GAAA,yCAAC,EAAE;YAAC;YAAW;SAAiB;QAC3C,KAAK;QACJ,GAAG,KAAK;kBAET,cAAA,gBAAC;YACC,WAAU;YACV,aAAW;YACX,SAAQ;YACR,MAAM;sBAEN,cAAA,gBAAC;gBAAK,GAAE;;;;AAIhB;AAGF,0CAAO,WAAW,GAAG;;;AChCrB;;;ACEO,SAAS,0CAAwC,MAAS,EAAE,IAAS,EAAE;IAC5E,OAAO,OAAO,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,MAAQ;QAC9C,IAAI,KAAK,QAAQ,CAAC,MAChB,OAAO;YAAE,GAAG,GAAG;QAAC;QAElB,OAAO;YACL,GAAG,GAAG;YACN,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;QACpB;IACF,GAAG,CAAC;AACN;AACO,SAAS,0CACd,MAAqB,EACrB,IAAS,EACT;IACA,uCAAuC;IACvC,IAAI,CAAC,QACH,OAAO,CAAC;IAGV,OAAO,OAAO,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,MAAQ;QAC9C,IAAI,KAAK,QAAQ,CAAC,MAChB,OAAO;YACL,GAAG,GAAG;YACN,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;QACpB;QACF,OAAO;YAAE,GAAG,GAAG;QAAC;IAClB,GAAG,CAAC;AACN;AACO,SAAS,0CAAyC,MAAS,EAAE,IAAS,EAAE;IAC7E,MAAM,SAAS,0CAAK,QAAQ;IAC5B,MAAM,UAAU,0CAAK,QAAQ;IAE7B,OAAO;QAAC;QAAQ;KAAQ;AAC1B;AAEO,SAAS,0CAAoC,MAAS,EAAc;IACzE,OAAO,OAAO,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,MAAQ;QAC9C,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EACrB,OAAO;YAAE,GAAG,GAAG;QAAC;QAElB,OAAO;YACL,GAAG,GAAG;YACN,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI;QACpB;IACF,GAAG,CAAC;AACN;;;AD3CA,MAAM,yDAAqB,qBAAsC,CAAC;AAkB3D,SAAS,0CAAY,SAC1B,MAAK,WACL,QAAO,QACP,KAAI,WACJ,QAAO,UACP,OAAM,OACN,IAAG,YACH,SAAQ,aACR,UAAS,eACT,YAAW,eACX,YAAW,iBACX,cAAa,YACb,SAAQ,EAC8C,EAAE;IACxD,MAAM,aAAa,CAAA,GAAA,yCAAkB,EAAE;eACrC;iBACA;cACA;gBACA;mBACA;qBACA;qBACA;uBACA;kBACA;IACF;IAEA,qBACE,gBAAC,yCAAmB,QAAQ;QAAC,OAAO;kBAClC,cAAA,gBAAC,CAAA,GAAA,yCAAK,AAAD;YAAE,KAAK;YAAK,SAAS;sBACvB;;;AAIT;AAEO,SAAS,4CAAiB;IAC/B,OAAO,kBAAiB;AAC1B;;;;;AE5DA;;;AAuBA,MAAM,mDAAe,qBAA+C,IAAI;AAEjE,SAAS,0CAAc,KAAyB,EAAE;IACvD,MAAM,YAAE,SAAQ,aAAE,UAAS,EAAE,GAAG,YAAY,GAAG;IAC/C,qBACE,gBAAC,mCAAa,QAAQ;QAAC,OAAO;kBAC5B,cAAA,gBAAC;YACC,IAAG;YACH,eAAa,WAAW,MAAM;YAC9B,cAAY,WAAW,KAAK;YAC5B,WAAW,CAAA,GAAA,yCAAC,EAAE;gBAAC;gBAAgB;aAAU;sBAExC;;;AAIT;AAEO,SAAS,0CAAS,OAA2C,EAAE;IACpE,MAAM,QAAQ,kBAAiB;IAC/B,IAAI,CAAC,SAAS,SAAS,sBACrB,MAAM,IAAI,MAAM,kBAAkB;IACpC,OAAO;AACT;;;AJHO,MAAM,0DAAS,CAAA,GAAA,YAAI,EAAE,UAAU,CACpC,CAAC,OAAO,MAAQ;IACd,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IACrB,MAAM,mBAAmB,CAAA,GAAA,yCAAc,AAAD;IACtC,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IAErB,MAAM,SACJ,MAAK,WACL,UAAU,kBACV,OAAM,WACN,QAAO,QACP,OAAO,iBACP,SAAQ,MACR,KAAK,sBACL,UAAS,aACT,UAAS,UACT,SAAS,mBACT,SAAQ,eACR,cAAc,0BACd,gBAAgB,qBAChB,YAAY,sBACZ,cAAc,0BACd,aAAY,cACZ,WAAU,SACV,MAAK,EACL,GAAG,YACJ,GAAG;QAAE,GAAG,gBAAgB;QAAE,GAAG,KAAK;IAAC;IAEpC,MAAM,QAAQ,CAAA,GAAA,qBAAa,EAAE;QAC3B,GAAG,UAAU;IACf;IAEA,MAAM,YAAY,CAAA,GAAA,YAAK,AAAD,EAAE,MAAM,CAAC,IAAI;IACnC,MAAM,eAAE,YAAW,aAAE,UAAS,EAAE,GAAG,CAAA,GAAA,sBAAe,AAAD,EAC/C;QAAE,GAAG,UAAU;QAAE,aAAa;IAAG,GACjC,OACA;IAGF,MAAM,gBAAgB,CAAA,GAAA,YAAK,AAAD,EAAE,WAAW,CAAC,IAAM;QAC5C,IAAI,OAAO,oBAAoB,YAC7B,OAAO;YACL,OAAO,MAAM,gBAAgB,CAAC,WAAW,EAAE;YAC3C,SAAS,MAAM,gBAAgB,CAAC,WAAW,EAAE;QAC/C;QAGF,OAAO;mBACL;qBACA;QACF;IACF,GAAG;QAAC;KAAW;IAEf,SAAS,WAAW;QAClB,IAAI,CAAC,MAAM,UAAU,IAAI,UACvB,OAAO;YAAE,OAAO;YAAW,SAAS;QAAY;QAElD,IAAI,MAAM,UAAU,IAAI,UACtB,OAAO;YAAE,OAAO;YAAa,SAAS;QAAc;QAGtD,OAAO;YAAE,SAAS,gBAAgB,OAAO;YAAE,OAAO,gBAAgB,KAAK;QAAC;IAC1E;IAEA,MAAM,OAAO;IAEb,qBACE,iBAAC;QACC,OAAO;QACP,mBAAiB;QACjB,gBAAc;QACd,eAAa;QACb,oBAAkB;QAClB,gBAAc;QACd,aAAW;QACX,cAAY,WAAW,KAAK;QAC5B,gBAAc,WAAW,OAAO;QAChC,aAAW;QACX,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ;YACA;YACA,CAAC,YAAY,EAAE,KAAK,CAAC;eAClB,OAAO,IAAI,CAAC,MAAM,UAAU,EAAE,MAAM,CAAC,CAAC,MACvC,QAAQ,MAAM,UAAU,CAAC,IAAI;SAEhC;QACD,KAAK,CAAA,GAAA,yCAAS,AAAD,EAAE,KAAK;QACnB,GAAI,WAAW;;YAEf;0BACD,gBAAC;gBAAK,OAAO;oBAAE,SAAS,eAAe,YAAY,OAAO;gBAAC;0BACxD;;YAEF,0BACC,gBAAC,CAAA,GAAA,yCAAM,AAAD;gBAAE,OAAO;oBAAE,YAAY;gBAAE;gBAAG,OAAM;gBAAU,MAAM;iBAExD,MACD;;;AAGP;AAGF,0CAAO,WAAW,GAAG;;;;;;;;;;;;AD9Hd,MAAM,0DAAc,kBACzB,CAAC,OAAO,MAAQ;IACd,MAAM,cACJ,aAAa,kBACb,OAAO,cACP,QAAQ,oBACR,UAAS,UACT,OAAM,WACN,QAAO,eACP,YAAW,gBACX,eAAe,KAAK,GACpB,GAAG,MACJ,GAAG;IAEJ,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IACrB,MAAM,mBAAmB,cAA+B,IAAI;IAE5D,MAAM,UAAE,OAAM,EAAE,GAAG,CAAA,GAAA,gBAAS,AAAD;IAC3B,MAAM,QAAQ,CAAA,GAAA,0BAAkB,EAAE;QAAE,GAAG,IAAI;gBAAE;IAAO;IACpD,MAAM,qBACJ,kBAAiB,oBACjB,iBAAgB,cAChB,WAAU,cACV,WAAU,cACV,WAAU,wBACV,qBAAoB,wBACpB,qBAAoB,EACrB,GAAG,CAAA,GAAA,qBAAa,EAAE,MAAM,OAAO;IAEhC,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,KAAK;QACL,KAAI;QACJ,KAAK;QACL,eAAY;QACZ,cAAY;QACZ,aAAW;QACX,QAAQ;QACR,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,iBAAiB,IAAI;YACrB,CAAC,CAAC,EAAE,MAAM,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI;QAC7C;;YAEC,KAAK,KAAK,kBAAI,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,UAAU;0BAAG,KAAK,KAAK;;0BACtD,iBAAC,CAAA,GAAA,yCAAG;gBAAE,KAAI;gBAAO,GAAG,UAAU;gBAAE,WAAU;;oBACvC,8BACC,gBAAC,CAAA,GAAA,yCAAM,AAAD;wBACH,GAAG,oBAAoB;wBACxB,QAAO;wBACP,OAAM;wBACN,SAAQ;wBACR,MAAM;kCAEN,cAAA,gBAAC,CAAA,GAAA,cAAO,AAAD;;kCAGX,gBAAC;wBACC,KAAK,CAAA,GAAA,yCAAS,AAAD,EAAE,kBAAkB;wBACjC,aAAa;wBACb,WAAW,CAAA,GAAA,yCAAC,EAAE;4BACZ,WAAW,IAAI;4BACf,cAAc,IAAI;4BAClB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;4BACpB,GAAG,MAAM,UAAU;wBACrB;wBACA,mBAAiB;wBACjB,uBAAqB,CAAC,CAAC;wBACvB,wBAAsB,CAAC,CAAC;wBACxB,MAAK;wBACJ,GAAG,UAAU;;oBAEf,8BACC,gBAAC,CAAA,GAAA,yCAAM,AAAD;wBACH,GAAG,oBAAoB;wBACxB,QAAO;wBACP,OAAM;wBACN,SAAQ;wBACR,MAAM;kCAEN,cAAA,gBAAC,CAAA,GAAA,aAAM,AAAD;;;;YAKX,KAAK,WAAW,kBACf,gBAAC,CAAA,GAAA,yCAAI,AAAD;gBACF,QAAO;gBACP,MAAK;gBACL,OAAM;gBACN,SAAQ;gBACR,YAAW;gBACV,GAAG,gBAAgB;gBACpB,IAAI;0BAEH,KAAK,WAAW;;YAIpB,KAAK,KAAK,kBACT,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,iBAAiB;0BAAG,KAAK,KAAK;;;;AAItD;AAGF,0CAAY,WAAW,GAAG;;;;AM9H1B;;;;;;;AAcO,MAAM,0DAAW,CAAA,GAAA,YAAK,AAAD,EAAE,UAAU,CACtC,CACE,cACE,aAAa,oBACb,OAAM,SACN,MAAK,eACL,YAAW,SACX,MAAK,SACL,MAAK,SACL,MAAK,EACL,GAAG,OACJ,EACD,MACG;IACH,MAAM,cAAc,CAAA,GAAA,YAAK,AAAD,EAAE,MAAM,CAAC,IAAI;IACrC,MAAM,cAAE,WAAU,cAAE,WAAU,qBAAE,kBAAiB,oBAAE,iBAAgB,EAAE,GACnE,CAAA,GAAA,mBAAW,EACT;QACE,GAAG,KAAK;QACR,kBAAkB;eAClB;qBACA;QACA,cAAc;IAChB,GACA;IAGJ,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QAAE,OAAO;QAAO,WAAU;QAAgB,KAAK;QAAK,KAAK;QAAC,KAAK;;YAChE,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,UAAU;0BAAG;;0BACvC,gBAAC;gBACC,cAAY;gBACZ,WAAU;gBACV,UAAU,MAAM,UAAU;gBAC1B,kBAAgB,CAAC,CAAC;gBAClB,eAAa;gBACb,mBAAiB;gBAChB,GAAG,UAAU;;YAEf,6BACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gBACF,YAAY;gBACX,GAAG,gBAAgB;gBACpB,SAAS;gBACT,IAAG;gBACH,MAAM;0BAEL;;YAGJ,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,iBAAiB;0BAAG;;;;AAGpD;AAGF,0CAAS,WAAW,GAAG;;;ACtEvB;;;AAOO,MAAM,0DAAa,kBACxB,CAAC,OAAO,MAAQ;IACd,qBACE,gBAAC,CAAA,GAAA,yCAAM,AAAD;QAAE,YAAY;QAAC,KAAK;QAAM,GAAG,KAAK;kBACrC,MAAM,QAAQ;;AAGrB;AAGF,0CAAW,WAAW,GAAG;;;ACjBzB;;;;ACAA;;;;;;;AAQO,MAAM,0DACX,CAAA,GAAA,YAAK,AAAD,EAAE,aAAa,CAGT,IAAI;AAMT,MAAM,0DAAgB,CAAA,GAAA,YAAI,EAAE,UAAU,CAG3C,CAAC,OAAO,MAAQ;IAChB,MAAM,YACJ,SAAQ,SACR,MAAK,WACL,QAAO,SACP,MAAK,eACL,YAAW,gBACX,aAAY,QACZ,KAAI,cACJ,WAAU,SACV,MAAK,SACL,MAAK,EACN,GAAG;IAEJ,MAAM,QAAQ,CAAA,GAAA,4BAAoB,EAAE;IACpC,MAAM,cAAE,WAAU,cAAE,WAAU,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAE,GACnE,CAAA,GAAA,uBAAgB,AAAD,EAAE,OAAO;IAE1B,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,OAAO;QACP,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACJ,GAAG,UAAU;;0BAEd,gBAAC,CAAA,GAAA,yCAAG;gBAAG,GAAG,UAAU;0BAAG;;0BACvB,gBAAC,0CAAa,QAAQ;gBACpB,OAAO;2BAAE;oBAAO,OAAO;8BAAE;oCAAM;+BAAY;+BAAO;oBAAM;gBAAE;0BAEzD;;YAEF,6BACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gBACF,YAAY;gBACZ,SAAQ;gBACR,MAAK;gBACJ,GAAG,gBAAgB;0BAEnB;;YAGJ,8BACC,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,iBAAiB;0BAAG;;;;AAI5C;AAEA,0CAAc,WAAW,GAAG;;;;AD/CrB,MAAM,0DAAW,CAAA,GAAA,YAAI,EAAE,UAAU,CACtC,CAAC,OAAO,MAAQ;IACd,MAAM,cAAE,WAAU,QAAE,KAAI,SAAE,MAAK,SAAE,MAAK,EAAE,GAAG,YAAY,GAAG;IAE1D,mDAAmD;IACnD,MAAM,eAAe,CAAA,GAAA,YAAK,AAAD,EAAE,UAAU,CAAC,CAAA,GAAA,yCAAW;IACjD,MAAM,aAAa,cAAc;IACjC,MAAM,aAAa,cAAc;IACjC,MAAM,gBAAgB,cAAc,IAAI;IAExC,MAAM,cAAc,CAAA,GAAA,qBAAa,EAAE;IACnC,MAAM,WAAW,CAAA,GAAA,YAAK,AAAD,EAAE,MAAM,CAAmB,IAAI;IAEpD,MAAM,SAAS,CAAA,GAAA,kBAAW,AAAD,EAAE,YAAY,aAAa;IACpD,MAAM,QACJ,cACA,CAAA,GAAA,2BAAmB,EACjB,YACA,YACA;IAGJ,MAAM,kBAAE,eAAc,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,mBAAW;IAElD,MAAM,aAAa,gBAAgB,OAAO,aAAa,OAAO,UAAU;IACxE,MAAM,QAAQ,gBAAgB,aAAa,WAAW;IACtD,MAAM,aAAa,gBACf,WAAW,UAAU,CAAC,MAAM,KAAK,IAAI,MACrC,MAAM,UAAU;IAEpB,SAAS,YAAY;QACnB,MAAM,gBAAgB,SAAS,YAAY,SAAS;QAEpD,IAAI,kBAAkB,SACpB,OAAO;QAGT,IAAI,kBAAkB,SACpB,OAAO;QAGT,OAAO;IACT;IAEA,MAAM,gBAAgB,SAAS,YAAY,SAAS;IACpD,MAAM,qBACJ,cAAc,YAAY,cAAc;IAC1C,MAAM,eAAe,QAAQ,YAAY,QAAQ;IAEjD,qBACE,iBAAC;QACC,WAAU;QACV,iBAAe,YAAY;QAC3B,KAAK;;0BAEL,gBAAC,CAAA,GAAA,qBAAa;0BACZ,cAAA,gBAAC;oBACC,MAAK;oBACL,KAAK;oBACJ,GAAG,UAAU;oBACb,GAAG,UAAU;;;0BAGlB,iBAAC;gBACC,cAAY;gBACZ,eAAa;gBACb,WAAU;gBACV,gBAAc;gBACd,eAAY;gBACZ,gBAAc;gBACd,sBAAoB,MAAM,eAAe;gBACzC,aAAW;gBACX,mBAAiB;;oBAEhB,4BACC,gBAAC;wBACC,QAAO;wBACP,OAAO;wBACP,QAAQ;wBACR,SAAQ;kCAER,cAAA,gBAAC;4BACC,QAAO;4BACP,MAAK;4BACL,aAAa;4BACb,iBAAiB;4BACjB,kBAAkB,aAAa,KAAK,EAAE;4BACtC,OAAO;gCACL,YAAY;4BACd;;;oBAKL,MAAM,eAAe,kBACpB,gBAAC,CAAA,GAAA,yCAAG,AAAD;wBACD,OAAO;4BACL,YAAY;4BACZ,OAAO;4BACP,QAAQ;4BACR,cAAc;wBAChB;;;;YAIL,WAAW,QAAQ;;;AAG1B;AAGF,0CAAS,WAAW,GAAG;;;AEvIvB;;;;;;;;;AAwBO,MAAM,0DAAe,CAAA,GAAA,YAAK,AAAD,EAAE,aAAa,CAAyB,IAAI;AAErE,MAAM,0DAAQ,CAAA,GAAA,YAAI,EAAE,UAAU,CACnC,CAAC,OAAO,MAAQ;IACd,MAAM,QAAQ,CAAA,GAAA,YAAK,AAAD,EAAE,UAAU,CAAC;IAE/B,MAAM,QACJ,OAAO,kBACP,UAAS,SACT,MAAK,cACL,WAAU,SACV,MAAK,EACL,GAAG,YACJ,GAAG;IACJ,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,0CAA0C;IAEtE,MAAM,WAAW,CAAA,GAAA,YAAK,AAAD,EAAE,MAAM,CAAC,IAAI;IAClC,MAAM,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,eAAQ,AAAD,EAAE,YAAY,OAAO;IAEnD,qBACE,iBAAC;QAAM,OAAO;QAAO,WAAW,CAAA,GAAA,yCAAC,EAAE;YAAC;YAAW;SAAU;QAAG,KAAK;;0BAC/D,gBAAC,CAAA,GAAA,qBAAa;0BACZ,cAAA,gBAAC;oBAAO,GAAG,UAAU;oBAAE,KAAK;;;0BAE9B,gBAAC;gBACC,cAAY;gBACZ,WAAU;gBACV,mBAAiB;gBACjB,gBAAc,WAAW,OAAO;gBAChC,aAAW;;YAEZ,MAAM,QAAQ;;;AAGrB;AAOK,MAAM,0DAAa,CAAA,GAAA,YAAI,EAAE,UAAU,CAIxC,CACE,SACE,QAAQ,IAAI,cACZ,UAAS,OACT,MAAM,eACN,OAAM,SACN,MAAK,WACL,QAAO,QACP,KAAI,aACJ,UAAS,EACT,GAAG,OACJ,EACD,MACG;IACH,MAAM,YAAE,SAAQ,SAAE,MAAK,eAAE,YAAW,gBAAE,aAAY,EAAE,GAAG;IACvD,MAAM,QAAQ,CAAA,GAAA,yBAAiB,EAAE;IACjC,MAAM,mBAAE,gBAAe,cAAE,WAAU,oBAAE,iBAAgB,qBAAE,kBAAiB,EAAE,GACxE,CAAA,GAAA,oBAAa,AAAD,EAAE,OAAO;IAEvB,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,KAAK;QACL,OAAO;QACP,KAAK;QACL,WAAW;QACX,QAAQ;QACR,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;QACL,GAAG,eAAe;;YAElB,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,UAAU;0BAAG;;YACtC,6BACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gBAAE,SAAQ;gBAAS,GAAG,gBAAgB;0BACvC;;0BAIL,gBAAC,0CAAa,QAAQ;gBAAC,OAAO;0BAAQ;;YAErC,8BACC,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,iBAAiB;0BAAG;;;;AAI5C;AAGF,0CAAW,WAAW,GAAG;AACzB,0CAAM,WAAW,GAAG;;ACvHpB;;;;;;AAgBO,MAAM,0DAAY,kBACvB,CACE,SACE,MAAK,eACL,YAAW,YACX,SAAQ,cACR,WAAU,iBACV,gBAAgB,IAAI,UACpB,MAAK,EACL,GAAG,OACJ,EACD,MACG;IACH,MAAM,QAAQ,kBAAiB,CAAA,GAAA,yCAAY,AAAD;IAC1C,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,8CAA8C;IAE1E,MAAM,WAAW,cAAa,IAAI;IAClC,MAAM,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,OAAO;IAE9C,qBACE,iBAAC;QACC,WAAU;QACV,cAAY;QACZ,mBAAiB;QACjB,gBAAc,WAAW,OAAO;QAChC,KAAK;;0BAEL,gBAAC,CAAA,GAAA,qBAAa;0BACZ,cAAA,gBAAC;oBAAO,GAAG,UAAU;oBAAE,KAAK;;;YAE7B,+BACC,gBAAC;gBACC,WAAU;gBACV,aAAU;gBACV,gBAAc,WAAW,OAAO;;0BAGpC,iBAAC,CAAA,GAAA,yCAAG;gBAAE,KAAK;gBAAC,KAAK;;oBACb,CAAA,SAAS,WAAU,mBACnB,iBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,KAAK;wBAAO,KAAK;;4BACpB,uBACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gCAAE,OAAO;gCAAO,MAAK;0CACtB;;4BAGJ,6BACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gCACF,OAAO;gCACP,YAAY;gCACZ,MAAK;gCACL,SAAQ;0CAEP;;;;oBAKR;;;;;AAIT;AAGF,0CAAU,WAAW,GAAG;;;AChFxB;;ACAA;;;;;;ACAA;;;AAGO,SAAS,0CAAwB,YACtC,SAAQ,gBACR,aAAY,YACZ,SAAQ,cACR,WAAU,mBACV,gBAAe,YACf,SAAQ,SACR,MAAK,EACW,EAAE;IAClB,MAAM,cAAc,gBAAe,KAAK,CAAC,YAAY;IAErD,IAAI,aACF,OAAO;IAGT,IAAI,OACF,8CAA8C;IAC9C,OAAO,CAAC,OAAY;QAClB,MAAM,QAAS,MAAc,CAAC,YAAY,QAAQ;QAClD,MAAM,QAAS,MAAc,CAAC,YAAY,KAAK;QAC/C,MAAM,kBAAkB,AAAC,MAAc,CAAC,cAAc,WAAW,IAAI,EAAE;QAEvE,IAAK,MAAc,CAAC,WAAW,EAC7B,qBACE,gBAAC,CAAA,GAAA,yCAAM;YACL,OAAO;YAEP,OAAO,kBAAkB;sBAExB,CAAC,qBACA,gBAAC,CAAA,GAAA,yCAAM,AAAD;oBACJ,WAAY,MAAc,CAAC,YAAY,QAAQ;8BAG9C,AAAC,MAAc,CAAC,YAAY,QAAQ,IACnC,eAAe;mBAHX,MAAc,CAAC,YAAY,KAAK;WANrC;QAgBX,qBACE,gBAAC,CAAA,GAAA,yCAAM,AAAD;YAAE,WAAW;sBAChB,eAAe,SAAS;WADK,MAAc,CAAC,YAAY,KAAK;IAIpE;AAEJ;;;;ADfO,SAAS,0CAAQ,SACtB,MAAK,SACL,MAAK,SACL,QAAQ,MACR,GAAG,OACe,EAAE;IACpB,MAAM,gBAAgB,CAAA,GAAA,mBAAW,EAAE;QACjC,GAAG,KAAK;QACR,UAAU,CAAA,GAAA,yCAAmB,EAAE;IACjC;IACA,MAAM,UAAU,cAAa,IAAI;IACjC,MAAM,YAAY,SAAS;IAC3B,MAAM,gBAAE,aAAY,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,iBAAS,EAAE,OAAO,WAAW;IAElE,MAAM,UAAU;WAAI,UAAU,UAAU;KAAC;IAEzC,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,cAAY;QACZ,OAAO;YAAE,OAAO;YAAO,UAAU;QAAI;QACrC,KAAK;QACL,KAAI;;YAEH,MAAM,KAAK,kBACV,gBAAC,CAAA,GAAA,yCAAI,AAAD;gBAAE,MAAK;gBAAK,SAAQ;gBAAQ,IAAG;gBAAO,GAAG,UAAU;0BACpD,MAAM,KAAK;;0BAGhB,iBAAC,CAAA,GAAA,yCAAG;gBACF,IAAG;gBACH,KAAK;gBACL,KAAI;gBACJ,WAAU;gBACV,KAAK;gBACJ,GAAG,YAAY;;oBAEf,QAAQ,MAAM,KAAK,mBAClB,gBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,SAAQ;wBAAS,OAAM;wBAAS,OAAO;4BAAE,QAAQ;wBAAG;kCACxD,cAAA,gBAAC,CAAA,GAAA,yCAAI,AAAD;4BAAE,OAAM;4BAAO,SAAQ;4BAAQ,OAAM;sCAAS;;;oBAKrD,QAAQ,GAAG,CAAC,CAAC,OAAS;wBACrB,OAAO,KAAK,IAAI,KAAK,0BACnB,gBAAC;4BAAY,SAAS;4BAAM,OAAO;2BAAgB,KAAK,GAAG,kBAE3D,gBAAC;4BAAW,OAAO;4BAAW,MAAM;2BAAW,KAAK,GAAG,CACxD;oBACH;;;;;AAIR;AAOA,SAAS,iCAAW,SAAE,MAAK,QAAE,KAAI,EAAoB,EAAE;IACrD,MAAM,YAAY,cAAa,IAAI;IACnC,MAAM,eACJ,YAAW,cACX,WAAU,kBACV,eAAc,aACd,UAAS,aACT,UAAS,cACT,WAAU,EACX,GAAG,CAAA,GAAA,gBAAQ,EAAE;QAAE,KAAK,KAAK,GAAG;IAAC,GAAG,OAAO;IAExC,qBACE,gBAAC;QACC,WAAU;QACV,iBAAe;QACf,sBAAoB;QACpB,gBAAc;QACd,gBAAc;QACd,iBAAe;QACd,GAAG,WAAW;QACd,GAAI,CAAA,GAAA,yCAAG,EAAE,KAAK,KAAK,EAAE;YAAC;SAAY,CAAC;QACpC,KAAK;kBAEJ,KAAK,QAAQ;;AAGpB;AAOA,SAAS,kCAAY,SAAE,MAAK,WAAE,QAAO,EAAyB,EAAE;IAC9D,MAAM,aAAE,UAAS,gBAAE,aAAY,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,wBAAgB,EAAE;QAChE,SAAS,SAAS;QAClB,cAAc,OAAO,CAAC,aAAa;IACrC;IAEA,SAAS,cAAc;QACrB,IAAI,MAAM,UAAU,CAAC,WAAW,EAC9B,OAAO;eAAI,MAAM,UAAU,CAAC,WAAW,CAAC,QAAQ,GAAG;SAAE;QAGvD,OAAO,EAAE;IACX;IAEA,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;QAAE,KAAI;QAAK,KAAK;QAAC,WAAU;kBAI7B,cAAA,iBAAC,CAAA,GAAA,yCAAI,AAAD;YAAE,KAAK;YAAM,KAAK;YAAC,IAAG;YAAM,GAAG,SAAS;;gBACzC,QAAQ,QAAQ,kBACf,gBAAC,CAAA,GAAA,yCAAI,AAAD;oBAAE,MAAK;oBAAK,IAAG;oBAAM,SAAQ;oBAAS,GAAG,YAAY;8BACtD,QAAQ,QAAQ;;8BAGrB,gBAAC;oBAAI,GAAG,UAAU;8BACf,cAAc,GAAG,CAAC,CAAC,OAAS;wBAC3B,qBAAO,gBAAC;4BAAW,MAAM;4BAAqB,OAAO;2BAAjB,KAAK,GAAG;oBAC9C;;;;;AAKV;AAEO,MAAM,4CAAS,CAAA,GAAA,WAAI,AAAD;AAClB,MAAM,4CAAU,CAAA,GAAA,cAAW,AAAD;;;;;;;;;;AEtKjC;;AEAO,MAAM,4CAAkB;IAC7B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAoEM,MAAM,4CAAuB;IAClC,OAAO;IACP,MAAM;IACN,SAAS;AACX;AAEA,SAAS,yBAAG,MAAW,EAAE;AACvB,gDAAgD;AAChD,kDAAkD;AACpD;;AD1GA;AAEO,SAAS,0CAAS,IAAY,EAAE;IACrC,MAAM,MAAM,OAAO;IACnB,IAAI,OAAO;IACX,IAAI;IACJ,IAAI,IAAI,IAAI,GAAG,MAAM,KAAK,GAAG,OAAO;IACpC,IAAK,IAAI,IAAI,GAAG,IAAI,IAAI,MAAM,EAAE,IAAK;QACnC,OAAO,IAAI,UAAU,CAAC;QACtB,OAAO,AAAC,CAAA,QAAQ,CAAA,IAAK,OAAO;QAC5B,2BAA2B;QAC3B,QAAQ;IACV;IAEA,OAAO,KAAK,GAAG,CAAC;AAClB;AAEO,SAAS,4CAAK;IACnB,OAAO,KAAK,MAAM,GAAG,QAAQ,CAAC;AAChC;AAEO,SAAS,0CAAe,MAAc,EAAE;IAC7C,MAAM,OAAO,0CAAS;IACtB,OAAO,CAAA,GAAA,yCAAe,AAAD,CAAC,CAAC,OAAO,CAAA,GAAA,yCAAc,EAAE,MAAM,CAAC;AACvD;;;;ADVO,MAAM,0DAAM,CAAA,GAAA,YAAI,EAAE,UAAU,CACjC,CACE,WACE,QAAO,UACP,OAAM,YACN,SAAQ,aACR,UAAS,SACT,MAAK,QACL,OAAO,cACP,QAAQ,qBACR,UAAU,UACV,GAAG,OACJ,EACD,MACG;IACH,MAAM,cAAc,CAAA,GAAA,YAAK,AAAD,EAAE,OAAO,CAAC,IAAM;QACtC,IAAI,WACF,OAAO,CAAA,GAAA,yCAAa,EAAE;QAGxB,OAAO;IACT,GAAG,EAAE;IAEL,qBACE,iBAAC;QACC,WAAU;QACV,eAAa,CAAA,GAAA,yCAAoB,AAAD,CAAC,CAAC,MAAM;QACxC,aAAW;QACX,cAAY,SAAS;QACrB,gBAAc;QACd,KAAK;QACJ,GAAG,KAAK;;YAER,WAAW;YACX;YACA,UAAU;;;AAGjB;AAGF,0CAAI,WAAW,GAAG;;;;;;AGvDlB;;;;AAUO,SAAS,0CAAQ,SAAE,MAAK,YAAE,SAAQ,EAAE,GAAG,OAAqB,EAAE;IACnE,MAAM,aAAa,cAAa,IAAI;IAEpC,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IAErB,MAAM,gBAAE,aAAY,iBAAE,cAAa,EAAE,GAAG,CAAA,GAAA,iBAAU,AAAD,EAC/C;QAAE,GAAG,KAAK;oBAAE;IAAW,GACvB;IAGF,qBACE,iBAAC,CAAA,GAAA,cAAO,AAAD;;0BACL,gBAAC;gBAAK,GAAG,aAAa;gBAAE,WAAU;;0BAClC,gBAAC;gBACC,cAAY,OAAO;gBACnB,eAAa,OAAO;gBACnB,GAAG,YAAY;gBAChB,KAAK;gBACL,WAAU;0BAET;;;;AAIT;;;;;ANNO,SAAS,0CAAU,SACxB,MAAK,iBACL,gBAAgB,uBAChB,aAAa,oBACb,OAAM,WACN,QAAO,eACP,YAAW,SACX,QAAQ,gBACR,MAAK,eACL,YAAW,QACX,OAAO,cACP,QAAQ,0BACR,aAAY,aACZ,UAAS,EACT,GAAG,OACY,EAAE;IACjB,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IACrB,MAAM,CAAC,WAAW,aAAa,GAAG,gBAAe,KAAK;IACtD,MAAM,eAAe,CAAA,GAAA,0BAAkB,EAAE,CAAC;IAC1C,MAAM,YAAY,CAAA,GAAA,mBAAW,EAAE;QAC7B,GAAG,KAAK;QACR,eAAe;QACf,UAAU,CAAA,GAAA,yCAAmB,EAAE;QAC/B,qBAAoB;YAClB,IAAI,kBAAkB,UACpB,aAAa,KAAK;QAEtB;IACF;IACA,MAAM,aAAa,cAA6B,IAAI;IAEpD,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IAErB,MAAM,oBAAE,iBAAgB,EAAE,GAAG,CAAA,GAAA,qBAAc,AAAD,EACxC;QAAE,MAAM;QAAW,SAAS;QAAS,YAAY,KAAK;IAAC,GACvD,cACA;IAGF,MAAM,EAAE,YAAY,aAAY,EAAE,GAAG,CAAA,GAAA,eAAQ,AAAD,EAAE;IAE9C,MAAM,aAAa,kBAAkB;IAErC,MAAM,gBAAgB;WAAI,UAAU,gBAAgB,CAAC,YAAY;KAAC,CAAC,GAAG,CACpE,CAAC,OAAS,UAAU,UAAU,CAAC,OAAO,CAAC;IAGzC,MAAM,YAAY,mBAAkB,IAAM;QACxC,IAAI,UAAU,aAAa,OAAO,WAAW,QAC3C,OAAO,OAAO,UAAU;QAE1B,OAAO;IACT,GAAG;QAAC;KAAM;IAEV,SAAS,UAAU;QACjB,IAAI,cAAc,MAAM,KAAK,GAC3B,qBACE,gBAAC,CAAA,GAAA,yCAAG;YAAE,OAAM;YAAU,SAAQ;sBAC3B,MAAM,WAAW;;QAKxB,IAAI,YACF,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;YAAE,KAAI;YAAM,MAAK;sBAClB,cAAc,GAAG,CAAC,CAAC,qBAClB,gBAAC,CAAA,GAAA,yCAAE;oBACD,sBAAQ,gBAAC,CAAA,GAAA,UAAG,AAAD;oBACX,OAAO,CAAA,GAAA,yCAAc,AAAD,EAAE,MAAM,aAAa;8BAGxC,MAAM;mBAFF,MAAM;;QASrB,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;YAAE,SAAQ;YAAU,OAAO;YAAO,WAAU;sBAC7C,cAAc,aAAa,CAAC,EAAE,EAAE,UAC/B,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,QAAQ,IAAI,QAAQ;;IAG1D;IAEA,qBACE,iBAAC,CAAA,GAAA,yCAAG,AAAD;QAAE,IAAG;QAAO,UAAS;QAAW,QAAQ;;YACxC,kBAAkB,0BACjB,gBAAC,CAAA,GAAA,mBAAY,AAAD;gBACV,YAAY;gBACZ,OAAO;gBACP,MAAM,MAAM,IAAI;gBAChB,OAAO;oBACL,cAAc,aAAa,CAAC,EAAE;oBAC9B,aAAa,aAAa,CAAC,EAAE,EAAE;oBAC/B,gBAAgB,CAAC,MACf,UAAU,gBAAgB,CAAC,eAAe,CAAC;4BAAC;yBAAI;oBAClD,WAAW;oBACX,YAAY;oBACZ,GAAG,SAAS;oBACZ,GAAG,YAAY;gBACjB;gBACA,YAAY,MAAM,UAAU;;0BAGhC,iBAAC,CAAA,GAAA,yCAAG;gBACF,eAAa;gBACb,KAAI;gBACJ,KAAK;gBACL,WAAW,CAAA,GAAA,yCAAC,EAAE;oBACZ,CAAC,CAAC,EAAE,MAAM,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI;oBAC3C,iBAAiB,IAAI;oBACrB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtB;gBACA,aAAW;gBACX,cAAY;;oBAEX,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;kCAAG;;kCACvB,iBAAC;wBACC,uBAAqB;wBACrB,UAAU;wBACV,MAAK;wBACL,KAAK;wBACL,OAAM;wBACN,WAAW,CAAA,GAAA,yCAAC,EAAE;4BACZ,WAAW,IAAI;4BACf,YAAY,IAAI;4BAChB,GAAG,MAAM,UAAU;wBACrB;wBACA,mBAAiB;wBAChB,GAAG,YAAY;;4BAEf;0CACD,gBAAC,CAAA,GAAA,iBAAS;gCAAE,WAAU;gCAAW,MAAM;;;;;;YAG1C,aAAa,MAAM,kBAClB,gBAAC,CAAA,GAAA,yCAAO,AAAD;gBACL,WAAU;gBACV,QAAQ;gBACR,oBAAoB;gBACpB,YAAY;gBACZ,OAAO;0BAEP,cAAA,gBAAC,CAAA,GAAA,yCAAO,AAAD;oBACL,OAAO,WAAW,OAAO,EAAE,wBAAwB,KAAK;oBACxD,OAAO,gBAAgB;oBACvB,kBAAkB;oBAClB,OAAO;oBACN,GAAG,KAAK;;;;;AAMrB;;;AOzLA;;;;;;;;;ACAA;AAGO,SAAS,0CAAM,QAAQ,CAAC,EAAE,GAAW,EAAE,OAAO,CAAC,EAAiB;IACnE,MAAM,SAAwB,EAAE;IAEhC,IAAK,IAAI,QAAQ,OAAO,SAAS,KAAK,SAAS,KAC7C,OAAO,IAAI,CAAC;IAGd,OAAO;AACT;AAEO,SAAS,0CACd,KAAe,EACf,GAAY,EACZ,KAAc,EACC;IACf,OAAO,MAAM,IAAI,CAAC,CAAC,OAAS;QAC1B,OAAO,IAAI,CAAC,IAAI,KAAK;IACvB;AACF;AAEO,SAAS,0CAA0B,KAAe,EAAE,IAAiB,EAAE;IAC5E,OAAO,MAAM,GAAG,CAAC,CAAC,OAAS,CAAA,GAAA,yCAAG,EAAE,MAAM;AACxC;AAEO,SAAS,0CAA0B,KAAe,EAAE,IAAiB,EAAE;IAC5E,OAAO,MAAM,GAAG,CAAC,CAAC,OAAS,CAAA,GAAA,yCAAG,EAAE,MAAM;AACxC;;;ADOK,MAAM,0DAAW,kBACtB,CAAC,kBAAE,iBAAiB,WAAG,MAAK,EAAE,GAAG,OAAO,EAAE,MAAQ;IAChD,MAAM,UAAE,OAAM,EAAE,GAAG,CAAA,GAAA,gBAAS,AAAD;IAC3B,MAAM,QAAQ,CAAA,GAAA,uBAAe,EAAE;QAC7B,GAAG,KAAK;gBACR;wBACA;QACA,iBAAiB;YAAE,QAAQ;QAAe;IAC5C;IAEA,MAAM,iBAAE,cAAa,mBAAE,gBAAe,mBAAE,gBAAe,SAAE,MAAK,EAAE,GAC9D,CAAA,GAAA,kBAAW,AAAD,EAAE,OAAO;IACrB,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,OAAO;QACP,MAAM;QACN,KAAK;QACL,WAAW;QACX,KAAK;QACJ,GAAG,aAAa;QACjB,WAAU;;0BAEV,iBAAC,CAAA,GAAA,yCAAG;gBAAE,OAAO;gBAAU,SAAS;gBAAiB,WAAU;;kCACzD,gBAAC,CAAA,GAAA,yCAAS;wBACR,SAAQ;wBACR,QAAQ;wBACR,MAAM;wBACN,OAAO;wBACN,GAAG,eAAe;kCAEnB,cAAA,gBAAC,CAAA,GAAA,oBAAa,AAAD;4BAAE,MAAM;;;kCAGvB,gBAAC,CAAA,GAAA,yCAAG;wBAAE,OAAM;wBAAO,MAAK;wBAAK,QAAQ;wBAAU,IAAG;kCAC/C;;kCAEH,gBAAC,CAAA,GAAA,yCAAS;wBACR,SAAQ;wBACR,QAAO;wBACP,MAAM;wBACN,OAAM;wBACL,GAAG,eAAe;kCAEnB,cAAA,gBAAC,CAAA,GAAA,qBAAc,AAAD;4BAAE,MAAM;;;;;0BAI1B,gBAAC,CAAA,GAAA,yCAAG;gBAAE,KAAK;0BACR,CAAA,GAAA,yCAAK,AAAD,EAAE,GAAG,gBAAgB,GAAG,CAAC,CAAC,IAAM;oBACnC,qBACE,gBAAC;wBACC,OAAO;wBAEP,OAAO;wBACP,QAAQ;4BAAE,QAAQ,IAAI;wBAAE;uBAFnB;gBAKX;;;;AAIR;AASF,SAAS,mCAAa,SACpB,MAAK,UACL,SAAS,CAAC,WACV,MAAK,EACL,GAAG,OACe,EAAE;IACpB,MAAM,UAAE,OAAM,EAAE,GAAG,CAAA,GAAA,gBAAS,AAAD;IAC3B,MAAM,YAAY,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;IAC/C,MAAM,UAAU,CAAA,GAAA,iBAAS,EAAE;IAC3B,MAAM,aAAE,UAAS,eAAE,YAAW,YAAE,SAAQ,EAAE,GAAG,CAAA,GAAA,sBAAc,EACzD;mBAAE;iBAAW;QAAS,GAAG,KAAK;IAAC,GAC/B;IAGF,MAAM,eAAe,CAAA,GAAA,sBAAc,EAAE,MAAM,YAAY,CAAC,KAAK,EAAE;IAE/D,qBACE,iBAAC;QAAO,GAAG,SAAS;;0BAClB,gBAAC;gBAAO,GAAG,WAAW;0BACpB,cAAA,gBAAC;8BACE,SAAS,GAAG,CAAC,CAAC,KAAK,sBAClB,gBAAC;sCACC,cAAA,gBAAC;gCAAI,WAAU;0CACb,cAAA,gBAAC,CAAA,GAAA,yCAAI,AAAD;oCAAE,MAAM;oCAAM,SAAQ;oCAAU,QAAQ;8CACzC;;;2BAHE;;;0BAUf,gBAAC;0BACE;uBAAI,IAAI,MAAM,cAAc,IAAI;iBAAG,CAAC,GAAG,CAAC,CAAC,0BACxC,gBAAC;kCACE,MACE,cAAc,CAAC,WAAW,WAC1B,GAAG,CAAC,CAAC,MAAM,QACV,qBACE,gBAAC;gCACC,OAAO;gCACP,OAAO;gCACP,MAAM;gCAEN,cAAc;+BADT,uBAIP,gBAAC,UAAQ,MACV;uBAdE;;;;AAqBnB;AAQA,SAAS,mCAAa,SACpB,MAAK,gBACL,aAAY,SACZ,MAAK,EACL,GAAG,OACe,EAAE;IACpB,MAAM,MAAM,cAAa,IAAI;IAC7B,MAAM,aACJ,UAAS,eACT,YAAW,cACX,WAAU,cACV,WAAU,iBACV,cAAa,iBACb,cAAa,EACd,GAAG,CAAA,GAAA,sBAAc,EAAE,OAAO,OAAO;IAElC,MAAM,cAAE,WAAU,kBAAE,eAAc,aAAE,UAAS,EAAE,GAAG,CAAA,GAAA,mBAAW;IAC7D,MAAM,iBAAiB,CAAC,CAAA,GAAA,kBAAW,AAAD,EAAE,cAAc,MAAM,IAAI;IAE5D,qBACE,gBAAC;QAAI,GAAG,SAAS;kBACf,cAAA,gBAAC;YACE,GAAG,CAAA,GAAA,iBAAU,AAAD,EAAE,aAAa,WAAW;YACvC,KAAK;YACL,eAAa;YACb,iBAAe;YACf,iBAAe;YACf,oBAAkB;YAClB,gBAAc;YACd,sBAAoB;YACpB,WAAU;YACV,cAAY;sBAEX;;;AAIT;AAEA,0CAAS,WAAW,GAAG;;AE/MvB;;;ACAA;;;;;;;;AAqBO,MAAM,0DAAY,kBACvB,CAAC,OAAO,MAAQ;IACd,MAAM,UAAE,OAAM,EAAE,GAAG,CAAA,GAAA,gBAAS,AAAD;IAE3B,MAAM,QAAQ,CAAA,GAAA,wBAAgB,EAAE;QAAE,GAAG,KAAK;gBAAE;wBAAQ;IAAe;IAEnE,MAAM,WAAW,cAAa,IAAI;IAClC,MAAM,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,mBAAY,AAAD,EAAE,OAAO,OAAO;IAElD,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,OAAO;YAAE,SAAS;YAAG,MAAM;QAAE;QAC7B,QAAQ;QACR,KAAK,CAAA,GAAA,yCAAS,AAAD,EAAE,UAAU;QACzB,MAAM;QACL,GAAG,UAAU;kBAEb,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,IAAM;YAClC,qBACE,gBAAC;gBAAoB,SAAS;gBAAS,OAAO;eAA5B;QAEtB;;AAGN;AAGF,SAAS,kCAAY,WACnB,QAAO,SACP,MAAK,EAIN,EAAE;IACD,MAAM,MAAM,cAAa,IAAI;IAC7B,MAAM,gBAAE,aAAY,EAAE,GAAG,CAAA,GAAA,qBAAc,AAAD,EAAE,SAAS,OAAO;IAExD,MAAM,kBAAkB,QAAQ,QAAQ,IAAI;IAE5C,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,WAAU;QACV,OAAO;QACP,SAAS;QACT,KAAK;QACL,oBAAkB,QAAQ,aAAa;QACtC,GAAG,YAAY;QAChB,OAAO;YACL,UAAU,gBAAgB,QAAQ,GAAG,MAAM,GAAG;YAC9C,OAAO,QAAQ,IAAI,IAAI,MAAM,mBAAmB,iBAAiB;QACnE;;0BAEA,gBAAC,CAAA,GAAA,yCAAG;gBACF,MAAM;gBACN,SAAS,QAAQ,aAAa,GAAG,SAAS,SAAS;gBACnD,IAAG;gBACH,eAAY;gBACZ,OAAO;oBACL,OAAO;oBACP,SAAS;oBACT,QAAQ,QAAQ,aAAa,GAAG,KAAK,CAAC;oBACtC,eAAe;oBACf,YAAY,QAAQ,aAAa,GAAG,YAAY,QAAQ;oBACxD,WAAW;oBACX,UAAU,QAAQ,aAAa,GAAG,YAAY,UAAU;gBAC1D;0BAEC,QAAQ,WAAW;;YAErB,QAAQ,aAAa,GAAG,KAAK,QAAQ,IAAI;;;AAGhD;AAEA,0CAAU,WAAW,GAAG;;;;;;;;;;;AC/FxB;AAEO,SAAS,0CAAuB,IAAS,EAAC;IAC7C,OAAO,IAAI,CAAA,GAAA,mBAAW,EAAE,KAAK,WAAW,IAAI,KAAK,QAAQ,KAAK,GAAG,KAAK,OAAO;AACjF;;;;;AF2BO,MAAM,0DAAa,kBACxB,CACE,cACE,aAAa,iBACb,OAAO,cACP,MAAK,SACL,MAAK,kBACL,eAAc,SACd,MAAK,YACL,SAAQ,gBACR,aAAY,gBACZ,6BAAe,gBAAC,CAAA,GAAA,wBAAgB;IAAE,MAAM;KACxC,GAAG,OACJ,EACD,MACG;IACH,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IACrB,SAAS,UAAU,IAAe,EAAE;QAClC,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG;IACxD;IAEA,4BAA4B;IAC5B,MAAM,kBAAkB,eAAc,IAAM;QAC1C,OAAO;YACL,OAAO,QAAQ,CAAA,GAAA,yCAAsB,AAAD,EAAE,SAAS,SAAS;YACxD,cAAc,eACV,CAAA,GAAA,yCAAsB,AAAD,EAAE,gBACvB,SAAS;QACf;IACF,GAAG;QAAC,OAAO;QAAY,cAAc;KAAW;IAEhD,MAAM,sBAAsB;QAC1B,GAAG,KAAK;QACR,UAAU,WAAW,YAAY,SAAS;QAC1C,OAAO,gBAAgB,KAAK;QAC5B,cAAc,gBAAgB,YAAY;IAC5C;IAEA,MAAM,QAAQ,CAAA,GAAA,yBAAiB,EAAE;IACjC,MAAM,YAAY,cAAa,IAAI;IACnC,MAAM,cACJ,WAAU,iBACV,cAAa,cACb,WAAU,eACV,YAAW,qBACX,kBAAiB,cACjB,WAAU,EACX,GAAG,CAAA,GAAA,oBAAY,EAAE,qBAAqB,OAAO;IAE9C,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,aAAW;QACX,WAAW,CAAA,GAAA,yCAAC,EAAE;YACZ,CAAC,MAAM,wBAAwB,CAAC,EAAE,IAAI;YACtC,iBAAiB,IAAI;QACvB;QACA,QAAQ;QACR,KAAK;QACL,KAAK;;YAEJ,MAAM,KAAK,kBAAI,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,UAAU;0BAAG,MAAM,KAAK;;0BACxD,iBAAC,CAAA,GAAA,yCAAG;gBAAE,KAAK;gBAAK,KAAK;gBAAM,QAAQ;gBAAC,MAAM;gBAAC,KAAK;;kCAC9C,iBAAC,CAAA,GAAA,yCAAG;wBACF,WAAW,CAAA,GAAA,yCAAC,EAAE;4BACZ,uBAAuB,IAAI;4BAC3B,WAAW,IAAI;4BACf,GAAG,MAAM,UAAU;wBACrB;wBACA,KAAK;wBACL,SAAS;wBACT,OAAO;wBACP,mBAAiB;wBACjB,cAAY;wBACX,GAAG,UAAU;;0CAEd,gBAAC,CAAA,GAAA,yCAAQ;gCACP,YAAY;gCACZ,MAAM;gCACL,GAAG,UAAU;;0CAEhB,gBAAC,CAAA,GAAA,yCAAS;gCACR,MAAK;gCACL,SAAQ;gCACR,OAAO;gCACN,GAAG,WAAW;0CAEd;;;;oBAIJ,MAAM,MAAM,kBACX,gBAAC,CAAA,GAAA,yCAAO,AAAD;wBACL,QAAQ;wBACR,OAAO;wBACP,YAAY;wBACZ,WAAU;kCAEV,cAAA,gBAAC,CAAA,GAAA,yCAAQ,AAAD;4BACN,OAAO;4BACN,GAAG,aAAa;4BACjB,gBAAgB;;;;;YAKvB,MAAM,KAAK,kBACV,gBAAC,CAAA,GAAA,wCAAU,AAAD;gBAAG,GAAG,iBAAiB;0BAAG,MAAM,KAAK;;;;AAIvD;AAGF,0CAAW,WAAW,GAAG;;;AGhJzB;;;;;;AA2BO,MAAM,0DAAS,kBAIpB,CACE,OACE,IAAG,OACH,IAAG,QACH,KAAI,SACJ,MAAK,WACL,UAAU,oBACV,SAAQ,YACR,SAAQ,QACR,OAAO,cACP,QAAQ,WACR,GAAG,OACJ,EACD,MACG;IACH,MAAM,CAAC,YAAY,cAAc,GAAG,gBAAe,KAAK;IACxD,MAAM,QAAQ,CAAA,GAAA,yCAAQ,AAAD;IAErB,SAAS,kBAAgC;QACvC,IAAI,OAAO,oBAAoB,UAAU,UACvC,OAAO,MAAM,gBAAgB;QAG/B,IAAI,UAAU,UACZ,OAAO;QAGT,OAAO;IACT;IAEA,MAAM,eAAe,eAAc,IAAM;QACvC,MAAM,OAAO,CAAA,GAAA,yCAAO,EAAE,QAAQ;QAC9B,OAAO,CAAA,GAAA,yCAAe,AAAD,CAAC,CAAC,OAAO,CAAA,GAAA,yCAAc,EAAE,MAAM,CAAC;IACvD,GAAG;QAAC;KAAK;IAET,MAAM,gBAAgB,IAAM;QAC1B,IAAI,OAAO,CAAC,YACV,qBACE,gBAAC;YACC,QAAQ,IAAM,cAAc,KAAK;YACjC,SAAS,IAAM,cAAc,IAAI;YACjC,KAAK;YACL,KAAK;;QAKX,IAAI,cAAc,CAAC,UACjB,OAAO;QAGT,IAAI,CAAC,OAAO,CAAC,YAAY,MACvB,qBAAO,gBAAC;sBAAM,KAAK,MAAM,CAAC;;QAG5B,OAAO;IACT;IAEA,qBACE,gBAAC;QACC,WAAW,CAAA,GAAA,yCAAC,EAAE;YAAC;YAAY,CAAC,YAAY,EAAE,KAAK,CAAC;SAAC;QACjD,eAAa;QACb,cAAY,SAAS;QACrB,gBAAc;QACd,oBAAkB,KAAK;QACvB,KAAK;QACJ,GAAG,KAAK;kBAER;;AAGP;AAGF,0CAAO,WAAW,GAAG;;;ACzGrB;;;;;;;;;;;;;AAoDO,MAAM,0DAAe,kBAC1B,CACE,gBACE,aAAY,gBACZ,aAAY,SACZ,MAAK,SACL,MAAK,iBACL,cAAa,EACb,SAAS,kBAAiB,gBAC1B,aAAY,SACZ,MAAK,EACN,EACD,MACG;IACH,MAAM,CAAC,UAAU,WAAW,GAAG,gBAA8B,EAAE;IAE/D,MAAM,UAAU,qBAAqB;IAErC,MAAM,WAAW,cAA+B,IAAI;IACpD,MAAM,aAAa,cAAa,IAAI;IAEpC,MAAM,aAAE,UAAS,gBAAE,aAAY,EAAE,GAAG,CAAA,GAAA,cAAO,AAAD,EAAE;QAC1C,KAAK;QACL,MAAM,QAAO,CAAC,EAAE;YACd,MAAM,QAAQ,MAAM,QAAQ,GAAG,CAC7B,AACE,EAAE,KAAK,CAAC,MAAM,CACZ,CAAC,OAAS,KAAK,IAAI,KAAK,QAE1B,GAAG,CAAC,OAAO,OAAS;gBACpB,MAAM,IAAI,MAAM,KAAK,OAAO;gBAC5B,OAAO;YACT;YAGF,MAAM,UAAU,MAAM,GAAG,CAAC;YAE1B,SAAS;QACX;IACF;IAEA,SAAS,SAAS,OAAsB,EAAE;QACxC,QAAQ,GAAG,CAAC;QACZ,IAAI,CAAA,GAAA,yCAAY,AAAD,EAAE,UACf;QAGF,WAAW;QACX,eAAe;IACjB;IAEA,SAAS,SAAS,CAAsC,EAAE;QACxD,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK;QAE/B,IAAI,UAAU,QAAQ;YACpB,MAAM,QAAQ,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC;YACvC,SAAS;YACT,SAAS,OAAO,IAAK,CAAA,SAAS,OAAO,CAAC,KAAK,GAAG,EAAC;QACjD,CAAC;IACH;IAEA,SAAS,oBAAoB,IAAU,EAAU;QAC/C,OAAO;YACL,MAAM,KAAK,IAAI;YACf,IAAI,CAAA,GAAA,yCAAC;YACL,KAAK,IAAI,eAAe,CAAC;YACzB,QAAQ;kBACR;QACF;IACF;IAEA,SAAS,mBAAmB;QAC1B,WAAW,EAAE;QACb;IACF;IAEA,SAAS,cAAc;QACrB,QAAQ,GAAG,CAAC;IACd;IAEA,MAAM,SACJ,iBACC,CAAC,iBAAiB,OAAO,CAAC,EAAE,EAAE,WAAW,UAC1C,CAAC,QAAQ,MAAM;IACjB,MAAM,cAAc,CAAC,iBAAiB,OAAO,CAAC,EAAE,EAAE,WAAW;IAC7D,MAAM,aAAa,CAAC,iBAAiB,OAAO,CAAC,EAAE,EAAE,WAAW;IAC5D,MAAM,WAAW,CAAC,iBAAiB,OAAO,CAAC,EAAE,EAAE,WAAW;IAE1D,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QAAE,KAAK;QAAK,KAAK;QAAC,KAAK;;YACxB,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;0BAAG;;0BACvB,iBAAC;gBACC,WAAU;gBACV,KAAK;gBACJ,GAAG,SAAS;gBACb,cAAY;gBACZ,iBAAe;gBACf,cACE,iBAAiB,CAAC,QAAQ,MAAM,GAAG,SAAS,OAAO,CAAC,EAAE,EAAE,MAAM;;kCAGhE,gBAAC,CAAA,GAAA,qBAAa;kCACZ,cAAA,gBAAC;4BACC,KAAK;4BACL,UAAU;4BACV,UAAU;4BACV,MAAM,SAAS,SAAS,QAAQ;;;oBAInC,wBACC,iBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,OAAM;wBAAS,KAAK;;0CACxB,gBAAC,CAAA,GAAA,2BAAmB;gCAAE,WAAU;gCAAa,MAAM;;0CACnD,gBAAC,CAAA,GAAA,yCAAG;gCAAE,OAAO;gCAAW,MAAK;0CAAK;;;;oBAMrC,6BACC,iBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,OAAO;wBAAU,KAAK;;0CAC1B,gBAAC,CAAA,GAAA,yCAAK;gCAAE,MAAK;;0CACb,gBAAC,CAAA,GAAA,yCAAG;gCAAE,OAAM;gCAAU,MAAK;0CAAK;;;;oBAMnC,4BACC,iBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,QAAQ;wBAAC,OAAO;wBAAU,SAAS;;0CACvC,iBAAC,CAAA,GAAA,yCAAG;gCAAE,OAAO;gCAAU,KAAK;;kDAC1B,gBAAC,CAAA,GAAA,2BAAmB;wCAAE,MAAM;;kDAC5B,gBAAC,CAAA,GAAA,yCAAG;wCAAE,OAAM;wCAAQ,MAAK;kDAAK;;;;0CAKhC,gBAAC,CAAA,GAAA,yCAAS;gCACR,SAAS;gCACT,SAAS;gCACT,OAAM;gCACN,MAAK;0CAEL,cAAA,gBAAC,CAAA,GAAA,qBAAc,AAAD;oCAAE,MAAM;;;;;oBAK3B,0BACC,iBAAC,CAAA,GAAA,yCAAI,AAAD;wBAAE,QAAQ;wBAAC,SAAS;;0CACtB,iBAAC,CAAA,GAAA,yCAAG;gCAAE,OAAO;gCAAU,KAAK;;kDAC1B,gBAAC,CAAA,GAAA,iCAAyB;wCAAE,WAAU;;kDACtC,gBAAC,CAAA,GAAA,yCAAG;wCAAE,OAAO;wCAAU,MAAK;kDAAK;;;;0CAKnC,gBAAC,CAAA,GAAA,yCAAS;gCACR,SAAS;gCACT,SAAS;gCACT,OAAO;gCACP,MAAM;0CAEN,cAAA,gBAAC,CAAA,GAAA,uBAAgB,AAAD;oCAAE,MAAM;;;;;kCAK9B,gBAAC,CAAA,GAAA,yCAAG;;;YAGL,QAAQ,MAAM,GAAG,KAAK,CAAC,8BACtB,gBAAC,CAAA,GAAA,yCAAG;gBACF,OAAO;oBAAE,WAAW;gBAAG;gBACvB,KAAK;gBACL,KAAK;gBACL,WAAU;0BAET,QAAQ,GAAG,CAAC,CAAC,uBACZ,iBAAC,CAAA,GAAA,yCAAG;wBAAE,OAAO;wBAAU,KAAK;;4BACzB,OAAO,MAAM,KAAK,2BAAa,gBAAC,CAAA,GAAA,yCAAM,AAAD;4BACrC,OAAO,MAAM,KAAK,2BAAa,gBAAC,CAAA,GAAA,yBAAkB,AAAD;0CAClD,gBAAC,CAAA,GAAA,yCAAG;gCAAE,MAAK;gCAAK,OAAO;0CACpB,OAAO,IAAI;;;uBAJuB,OAAO,EAAE;;YAWrD,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;0BAAG;;;;AAG7B;AAGF,0CAAa,WAAW,GAAG;;;ACxP3B;;;AAUO,MAAM,0DAAY,kBACvB,CAAC,eAAE,YAAW,aAAE,UAAS,SAAE,MAAK,WAAE,QAAO,EAAE,GAAG,OAAO,EAAE,MAAQ;IAC7D,qBACE,gBAAC;QACC,gBAAc;QACd,cAAY;QACZ,oBAAkB;QAClB,WAAW,CAAA,GAAA,yCAAC,EAAE;YAAC;YAAe;SAAU;QACxC,KAAK;QACJ,GAAG,KAAK;;AAGf;AAGF,0CAAU,WAAW,GAAG;;;ACzBxB;;;;;;;AAeO,MAAM,0DAAW,kBACtB,CAAC,UAAE,SAAS,eAAG,UAAS,SAAE,MAAK,SAAE,MAAK,EAAE,GAAG,OAAO,EAAE,MAAQ;IAC1D,MAAM,YAAE,WAAW,cAAG,WAAW,aAAK,QAAQ,WAAG,MAAK,EAAE,GAAG;IAC3D,MAAM,oBAAE,iBAAgB,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,qBAAc,AAAD,EAAE;IACxD,MAAM,UAAU,AAAE,CAAA,QAAQ,QAAO,IAAM,CAAA,WAAW,QAAO,IAAM;IAC/D,MAAM,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE9B,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,cAAY;QACZ,OAAO;QACP,WAAW,CAAA,GAAA,yCAAC,EAAE;YAAC;YAAW;SAAe;QACzC,KAAK;QACJ,GAAG,gBAAgB;;YAEnB,uBAAS,gBAAC,CAAA,GAAA,yCAAI,AAAD;gBAAG,GAAG,UAAU;0BAAG;;0BACjC,gBAAC;gBACC,WAAU;gBACV,OAAO;4BACL;oBACA,YAAY;oBACZ,UAAU;oBACV,cAAc;oBACd,UAAU;gBACZ;gBACA,KAAK;0BAEL,cAAA,gBAAC,CAAA,GAAA,yCAAG,AAAD;oBACD,UAAU;oBACV,WAAU;oBACV,OAAO;wBACL,MAAM;wBACN,KAAK;wBACL,QAAQ;wBACR,OAAO;wBACP,YAAY;wBACZ,YAAY;oBACd;;;;;AAKV;AAGF,0CAAS,WAAW,GAAG;;;;AE5DvB,qDAAqD,GACrD;;;;;AAgBA,MAAM,2CAAO,kBACX,CAAC,EAAE,GAAG,OAAO,EAAE,MAAQ;IACrB,MAAM,QAAQ,CAAA,GAAA,sBAAc,EAAE;IAC9B,MAAM,SAAS,cAA6B,IAAI;IAEhD,MAAM,CAAC,iBAAiB,mBAAmB,GAAG,gBAAe;QAC3D,OAAO;QACP,MAAM;IACR;IAEA,MAAM,eAAe,cAAa,IAAI;IAEtC,MAAM,gBAAE,aAAY,EAAE,GAAG,CAAA,GAAA,iBAAU,AAAD,EAAE,OAAO,OAAO;IAElD,iBAAgB,IAAM;QACpB,MAAM,WAAgB,QAAQ,SAAS,cACrC;QAEF,mBAAmB;YACjB,OAAO,UAAU;YACjB,MAAM,UAAU;QAClB;IACF,GAAG;QAAC,MAAM,WAAW;KAAC;IAEtB,qBACE,iBAAC,CAAA,GAAA,yCAAG,AAAD;QAAE,UAAU;QAAY,KAAK;QAAK,WAAU;;0BAC7C,iBAAC;gBAAK,GAAG,YAAY;gBAAE,KAAK;gBAAQ,WAAU;;kCAC5C,gBAAC,CAAA,GAAA,yCAAE;wBACD,WAAU;wBACV,OAAO;4BACL,MAAM,iBAAiB;4BACvB,QAAQ;4BACR,YAAY;4BACZ,QAAQ;4BACR,cAAc;4BACd,OAAO,iBAAiB;4BACxB,YAAY;wBACd;wBACA,KAAK;wBACL,UAAU;;oBAEX;2BAAI,MAAM,UAAU;qBAAC,CAAC,GAAG,CAAC,CAAC,qBAC1B,gBAAC;4BACC,aAAa,MAAM,WAAW;4BAE9B,MAAM;4BACN,OAAO;2BAFF,KAAK,GAAG;;;0BAMnB,gBAAC;gBAAwC,OAAO;eAAjC,OAAO,cAAc;;;AAG1C;AASF,SAAS,0BAAI,QAAE,KAAI,SAAE,MAAK,EAAY,EAAE;IACtC,MAAM,OAAE,IAAG,YAAE,SAAQ,EAAE,GAAG;IAC1B,MAAM,MAAM,cAAa,IAAI;IAE7B,MAAM,YAAE,SAAQ,cAAE,WAAU,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,aAAK,EAAE;aAAE;IAAI,GAAG,OAAO;IAEpE,qBACE,gBAAC;QACC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;QAChB,WAAU;QACV,KAAK;QACL,iBAAe;QACf,iBAAe;QACd,GAAG,QAAQ;kBAEX;;AAGP;AAMA,SAAS,+BAAS,SAAE,MAAK,EAAE,GAAG,OAAsB,EAAE;IACpD,MAAM,MAAM,cAAa,IAAI;IAC7B,MAAM,iBAAE,cAAa,EAAE,GAAG,CAAA,GAAA,kBAAW,AAAD,EAAE,OAAO,OAAO;IAEpD,qBACE,gBAAC;QAAK,GAAG,aAAa;QAAE,KAAK;kBAC1B,MAAM,YAAY,EAAE,MAAM,QAAQ;;AAGzC;AAEO,MAAM,4CAAO;AACb,MAAM,4CAAO,CAAA,GAAA,WAAQ,AAAD;AAE3B,2BAAK,WAAW,GAAG;;ADrHnB;;AAEO,MAAM,4CAAY;IACvB,MAAM,CAAA,GAAA,yCAAG;IACT,MAAM,CAAA,GAAA,yCAAG;AACX;;;;AELA;;;;;AAmBO,MAAM,0DAAS,kBACpB,CAAC,SAAE,QAAQ,iBAAU,OAAO,iBAAM,SAAQ,EAAE,GAAG,OAAO,EAAE,MAAQ;IAC9D,MAAM,aAAE,UAAS,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,eAAQ,AAAD,EAAE;IAC3C,MAAM,aAAE,UAAS,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,eAAQ,AAAD,EAAE;IAC3C,MAAM,QAAQ,CAAA,GAAA,qBAAa,EAAE;IAC7B,MAAM,YAAY,cAAa,IAAI;IACnC,MAAM,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,gBAAS,AAAD,EAAE,OAAO,OAAO;IAC/C,MAAM,kBAAE,eAAc,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,mBAAW;IAElD,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,KAAK;QACL,OAAO;YACL,SAAS,MAAM,UAAU,GAAG,MAAM,CAAC;QACrC;QACA,OAAO;QACP,KAAK;QACL,IAAG;;0BAEH,gBAAC,CAAA,GAAA,qBAAa;0BACZ,cAAA,gBAAC;oBAAM,KAAK;oBAAY,GAAG,UAAU;oBAAG,GAAG,UAAU;;;0BAGvD,gBAAC;gBACC,cAAY;gBACZ,gBAAc;gBACd,iBAAe,MAAM,UAAU;gBAC/B,iBAAe,MAAM,UAAU;gBAC/B,gBAAc;gBACd,WAAU;gBACV,aAAW;gBACV,GAAG,UAAU;0BAEd,cAAA,gBAAC,CAAA,GAAA,yCAAI,AAAD;oBACF,iBAAe,MAAM,UAAU;oBAC/B,gBAAc;oBACd,WAAU;oBACT,GAAG,UAAU;;;YAGjB;;;AAGP;AAGF,0CAAO,WAAW,GAAG;;;ACjErB;;;;;;;AAeA,MAAM,kDAAc,kBAClB,CAAC,QAAE,KAAI,EAAE,GAAG,OAAO,EAAE,MAAQ;IAC3B,MAAM,QAAQ,kBAAiB,CAAA,GAAA,yCAAY,AAAD;IAC1C,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,gDAAgD;IAC5E,MAAM,WAAW,cAAa,IAAI;IAClC,MAAM,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,OAAO;IAE9C,qBACE,iBAAC;QAAM,KAAK;;0BACV,gBAAC,CAAA,GAAA,qBAAa;0BACZ,cAAA,gBAAC;oBAAO,GAAG,UAAU;oBAAE,KAAK;;;0BAE9B,gBAAC;gBACC,WAAU;gBACV,aAAW;gBACX,iBAAe,WAAW,OAAO;gBACjC,OAAO;oBAAE,YAAY,MAAM,KAAK;gBAAC;0BAEhC,WAAW,OAAO,kBAAI,gBAAC,CAAA,GAAA,cAAO,AAAD;oBAAE,aAAa;;;;;AAIrD;AAGF,kCAAY,WAAW,GAAG;AAUnB,MAAM,0DAAY,kBACvB,CACE,cACE,aAAa;IACX;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,SACD,KAAI,EACJ,GAAG,OACJ,EACD,MACG;IACH,MAAM,gBAAgB,eAAc,IAAM;QACxC,OAAO,MAAM,IAAI,CAAC,IAAI,IAAI;IAC5B,GAAG;QAAC;KAAW;IAEf,qBACE,iBAAC,CAAA,GAAA,yCAAU,AAAD;QACP,GAAG,KAAK;QACT,mBAAgB;QAChB,KAAK,MAAM,GAAG,IAAI;QAClB,KAAK;QACL,KAAK;;0BAEL,gBAAC,CAAA,GAAA,yCAAG;gBAAE,SAAS,MAAM,OAAO;gBAAE,KAAK;gBAAO,KAAK;0BAC5C,cAAc,GAAG,CAAC,CAAC,QAAU;oBAC5B,qBACE,gBAAC;wBACC,MAAM;wBACN,mBAAiB;wBACjB,OAAO;wBACP,OAAO;uBACF;gBAGX;;0BAEF,gBAAC,CAAA,GAAA,yCAAG;gBAAE,SAAS,MAAM,OAAO;gBAAE,KAAK;gBAAO,KAAK;0BAC5C,cAAc,GAAG,CAAC,CAAC,QAAU;oBAC5B,qBACE,gBAAC;wBACC,MAAM;wBACN,mBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;wBACjC,OAAO;wBACP,OAAO;uBACF,CAAC,EAAE,MAAM,MAAM,CAAC;gBAG3B;;;;AAIR;AAGF,0CAAU,WAAW,GAAG;;;ACjHxB;;;;;;;AAuCA,MAAM,iDAAa,kBACjB,CAAC,SAAE,MAAK,QAAE,KAAI,QAAE,KAAI,EAAE,GAAG,OAAO,EAAE,MAAQ;IACxC,MAAM,QAAQ,kBAAiB,CAAA,GAAA,yCAAY,AAAD;IAC1C,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,gDAAgD;IAC5E,MAAM,WAAW,cAAa,IAAI;IAClC,MAAM,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,eAAQ,AAAD,EAAE,OAAO,OAAO;IAE9C,qBACE,iBAAC;QAAM,KAAK;;0BACV,gBAAC,CAAA,GAAA,qBAAa;0BACZ,cAAA,gBAAC;oBAAO,GAAG,UAAU;oBAAE,KAAK;;;0BAG9B,gBAAC;gBACC,WAAU;gBACV,aAAW;gBACX,gBAAc,WAAW,OAAO;gBAChC,OAAO;oBACL,YAAY,WAAW,OAAO,GAAG,QAAQ,MAAM;gBACjD;0BAEC,cAAA,oBAAmB,MAA4B;oBAC9C,WAAW;gBACb;;;;AAIR;AAGF,MAAM,qCAAsC;IAC1C;QAAE,MAAM;QAAS,oBAAM,gBAAC,CAAA,GAAA,qBAAc,AAAD;IAAK;IAC1C;QAAE,MAAM;QAAY,oBAAM,gBAAC,CAAA,GAAA,8BAAuB,AAAD;IAAK;IACtD;QAAE,MAAM;QAAY,oBAAM,gBAAC,CAAA,GAAA,wBAAiB,AAAD;IAAK;IAChD;QAAE,MAAM;QAAO,oBAAM,gBAAC,CAAA,GAAA,uBAAgB,AAAD;IAAK;IAC1C;QAAE,MAAM;QAAe,oBAAM,gBAAC,CAAA,GAAA,0BAAmB,AAAD;IAAK;IACrD;QAAE,MAAM;QAAQ,oBAAM,gBAAC,CAAA,GAAA,oBAAa,AAAD;IAAK;IACxC;QAAE,MAAM;QAAgB,oBAAM,gBAAC,CAAA,GAAA,0BAAmB,AAAD;IAAK;IACtD;QAAE,MAAM;QAAY,oBAAM,gBAAC,CAAA,GAAA,wBAAiB,AAAD;IAAK;IAChD;QAAE,MAAM;QAAa,oBAAM,gBAAC,CAAA,GAAA,4BAAqB,AAAD;IAAK;IACrD;QAAE,MAAM;QAAe,oBAAM,gBAAC,CAAA,GAAA,0BAAmB,AAAD;IAAK;IACrD;QAAE,MAAM;QAAS,oBAAM,gBAAC,CAAA,GAAA,qBAAc,AAAD;IAAK;IAC1C;QAAE,MAAM;QAAY,oBAAM,gBAAC,CAAA,GAAA,8BAAuB,AAAD;IAAK;IACtD;QAAE,MAAM;QAAS,oBAAM,gBAAC,CAAA,GAAA,2BAAoB,AAAD;IAAK;IAChD;QAAE,MAAM;QAAQ,oBAAM,gBAAC,CAAA,GAAA,6BAAsB,AAAD;IAAK;IACjD;QAAE,MAAM;QAAY,oBAAM,gBAAC,CAAA,GAAA,gCAAyB,AAAD;IAAK;IACxD;QAAE,MAAM;QAAO,oBAAM,gBAAC,CAAA,GAAA,mBAAY,AAAD;IAAK;IACtC;QAAE,MAAM;QAAM,oBAAM,gBAAC,CAAA,GAAA,wBAAiB,AAAD;IAAK;IAC1C;QAAE,MAAM;QAAQ,oBAAM,gBAAC,CAAA,GAAA,0BAAmB,AAAD;IAAK;IAC9C;QAAE,MAAM;QAAY,oBAAM,gBAAC,CAAA,GAAA,wBAAiB,AAAD;IAAK;IAChD;QAAE,MAAM;QAAQ,oBAAM,gBAAC,CAAA,GAAA,oBAAa,AAAD;IAAK;CACzC;AAED,iCAAW,WAAW,GAAG;AAQlB,MAAM,0DAAW,kBACtB,CAAC,SAAE,QAAQ,4CAAc,MAAK,QAAE,KAAI,EAAE,GAAG,OAAO,EAAE,MAAQ;IACxD,qBACE,iBAAC,CAAA,GAAA,yCAAU,AAAD;QAAE,cAAW;QAAY,KAAK;QAAM,GAAG,KAAK;;0BACpD,gBAAC,CAAA,GAAA,yCAAG;gBAAE,SAAS,MAAM,OAAO;0BACzB,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,qBACvB,gBAAC;wBACC,cAAY,KAAK,IAAI;wBACrB,MAAM;wBACN,OAAO;wBACP,OAAO,KAAK,IAAI;wBAEhB,MAAM,KAAK,IAAI;uBADV,KAAK,IAAI;;0BAKpB,gBAAC,CAAA,GAAA,yCAAG;gBAAE,SAAS,MAAM,OAAO;0BACzB,MAAM,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,qBACxB,gBAAC;wBACC,cAAY,KAAK,IAAI;wBACrB,MAAM;wBACN,OAAO;wBACP,OAAO,KAAK,IAAI;wBAEhB,MAAM,KAAK,IAAI;uBADV,KAAK,IAAI;;;;AAO1B;AAGF,0CAAS,WAAW,GAAG;;;ACrIvB;;;AAUO,MAAM,0DAAU,CAAA,GAAA,YAAI,EAAE,UAAU,CACrC,CACE,WACE,UAAU,mBACV,QAAQ,mBACR,SAAS,IAAI,QACb,MAAM,OACN,GAAG,OACJ,EACD,MACG;IACH,qBACE,gBAAC,CAAA,GAAA,yCAAI,AAAD;QACF,OAAO;YACL,cAAc;YACd,SAAS,SAAS,mBAAmB,SAAS;QAChD;QACA,gBAAc;QACd,cAAY;QACZ,KAAK;QACL,KAAK;QACJ,GAAG,KAAK;;AAGf;AAGF,0CAAQ,WAAW,GAAG;;;;ACrCtB;;AAEO,SAAS,4CAAQ;IACtB,qBAAO,gBAAC;AACV;;;ACJA;;;;AAgBO,SAAS,0CAAY,SAC1B,MAAK,UACL,OAAM,YACN,SAAQ,gBACR,aAAY,oBACZ,mBAAmB,IAAI,GACN,EAAE;IACnB,qBACE,gBAAC,CAAA,GAAA,yCAAG,AAAD;kBACA,MAAM,GAAG,CAAC,CAAC,MAAM,QAAU;YAC1B,MAAM,YAAY,eAAe,uBAC/B,gBAAC;gBAAI,OAAO;gBAAQ,gBAAc;;YAGpC,MAAM,UACJ,SAAS,SAAU,IAAI,CAAC,SAAoB;YAE9C,MAAM,SAAS,UAAU,MAAM,MAAM,GAAG;YAExC,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;gBAAE,WAAU;;kCACd,iBAAC,CAAA,GAAA,yCAAG;wBAAE,OAAO;wBAAU,KAAK;;0CAC1B,gBAAC,CAAA,GAAA,yCAAG;gCAAE,WAAU;0CACb;;4BAGF,UAAU,mBAAmB,IAAI,iBAChC,gBAAC;gCAAI,WAAU;8BAChB;;;kCAGH,gBAAC,CAAA,GAAA,yCAAG;wBAAE,QAAQ;wBAAC,WAAU;kCACtB;;;eAZkC;QAgB3C;;AAGN;;;ACvDA;;;;;;;AAgCO,SAAS,0CAAQ,SAAE,MAAK,YAAE,SAAQ,EAAE,GAAG,OAAmB,EAAE;IACjE,MAAM,WAAW,cAAa,IAAI;IAElC,MAAM,cAAE,WAAU,iBAAE,cAAa,EAAE,GAAG,CAAA,GAAA,sBAAc,EAAE,OAAO,OAAO;IAEpE,IAAI,CAAC,MAAM,MAAM,EACf,OAAO,IAAI;IAGb,qBACE,gBAAC;QAAI,WAAU;QAA+B,GAAG,aAAa;kBAC5D,cAAA,gBAAC;YAAI,WAAU;YAAmB,GAAG,UAAU;YAAE,KAAK;sBACnD;;;AAIT;AAEA,SAAS,6BAAO,SACd,QAAQ,aACR,MAAK,YACL,SAAQ,aACR,UAAS,gBACT,eAAe,yBACf,cAAc,wBACd,YAAW,YACX,SAAQ,SACR,MAAK,sBACL,mBAAkB,qBAClB,kBAAiB,WACjB,UAAU,UACC,EAAE;IACb,MAAM,YAAY,cAAa,IAAI;IAEnC,MAAM,eAAE,YAAW,cAAE,WAAU,EAAE,GAAG,CAAA,GAAA,gBAAS,AAAD,EAC1C;QAAE,MAAM;IAAc,GACtB;IAGF,qBACE,iBAAC;QACC,WAAU;QACV,gBAAc;QACd,OAAO;mBAAE;QAAM;QACf,KAAK;QACJ,GAAG,WAAW;;0BAEf,iBAAC,CAAA,GAAA,yCAAG;gBAAE,KAAK;;kCACT,iBAAC,CAAA,GAAA,yCAAG;wBAAE,KAAK;wBAAC,KAAK;wBAAO,WAAU;;4BAC/B,uBACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gCACF,QAAQ;gCACR,MAAM;gCACN,OAAO;gCACN,GAAG,UAAU;gCACd,IAAG;0CAEF;;4BAGJ,6BACC,gBAAC,CAAA,GAAA,yCAAI,AAAD;gCAAE,YAAY;gCAAQ,MAAM;gCAAM,SAAS;gCAAS,IAAG;0CACxD;;;;kCAIP,gBAAC,CAAA,GAAA,yCAAG;wBAAE,WAAU;kCAAc;;;;YAE9B,CAAA,aAAa,QAAO,mBACpB,iBAAC,CAAA,GAAA,yCAAI,AAAD;gBAAE,WAAU;gBAAe,KAAK;gBAAM,SAAS;gBAAO,QAAQ;;oBAC/D,0BACC,gBAAC,CAAA,GAAA,yCAAM,AAAD;wBACH,GAAG,iBAAiB;wBACrB,SAAS,MAAM,KAAK;wBACpB,SAAS;wBACT,OAAO;kCAEN;;oBAGJ,2BACC,gBAAC,CAAA,GAAA,yCAAM,AAAD;wBAAE,SAAS;wBAAY,GAAG,kBAAkB;kCAC/C;;;;;;AAOf;AAEO,SAAS,0CAAM,KAAiB,EAAE;IACvC,qBACE,gBAAC;QAAS,GAAG,KAAK;kBAChB,cAAA,gBAAC;YAAQ,GAAG,KAAK;;;AAGvB;AAEO,SAAS,0CAAS,QAA6B,CAAC,CAAC,EAAE;IACxD,MAAM,QAAQ,CAAA,GAAA,6BAAqB,EAAE;IACrC,OAAO;AACT;AAEA,0CAAM,QAAQ,GAAG;;;;ACxIjB;;;;;ACAO,MAAM,2CACX;;;;ACDF;;AAGO,SAAS,0CACd,KAAS,EACT,YAAgB,EAChB,QAA6B,EAC7B;IACA,MAAM,CAAC,OAAO,SAAS,GAAG,gBAAe,SAAS;IAClD,MAAM,eAAe,CAAC,CAAA,GAAA,yCAAgB,EAAE;IAExC,MAAM,kBAAkB,eAAe,QAAQ,KAAK;IAEpD,MAAM,WAAW,mBACf,CAAC,QAAa;QACZ,IAAI,CAAC,cACH,SAAS;QAGX,IAAI,CAAC,OAAO,EAAE,CAAC,iBAAiB,QAC9B,WAAW;IAEf,GACA;QAAC;QAAc;KAAgB;IAGjC,OAAO;QAAC;QAAiB;KAAS;AACpC;;;;;;;AFDO,SAAS,0CAAS,cACvB,aAAa,kBACb,OAAO,cACP,MAAK,SACL,MAAK,eACL,YAAW,QACX,KAAI,eACJ,YAAW,YACX,WAAW,qBACX,aAAa,oBACb,WAAW,qBACX,UAAU,cACV,MAAK,YACL,SAAQ,aACR,UAAS,SACT,QAAQ,YACC,EAAE;IACX,MAAM,CAAC,YAAY,cAAc,GAAG,gBAAe;IACnD,MAAM,CAAC,QAAQ,UAAU,GAAG,CAAA,GAAA,yCAAkB,AAAD,EAC3C,OAAO,OACP,OAAO,gBAAgB,EAAE,EACzB;IAEF,MAAM,CAAC,WAAW,aAAa,GAAG,gBAAe,KAAK;IAEtD,SAAS,OAAO,MAAiC,EAAE;QACjD,IAAI,CAAC,QAAQ,OAAO;QACpB,OAAO,MAAM,IAAI,CAAC,IAAI,IAAI;IAC5B;IAEA,MAAM,WAAW,cAA+B,IAAI;IAEpD,SAAS,cAAc,CAAsC,EAAE;QAC7D,MAAM,SAAE,MAAK,EAAE,GAAG,EAAE,MAAM;QAC1B,cAAc;IAChB;IAEA,6CAA6C;IAC7C,8BAA8B;IAC9B,IAAI;IAEJ,SAAS,iBAAiB,KAAa,EAAE;QACvC,OAAO,KAAK,IAAI,CAAC;IACnB;IAEA,SAAS,eAAe;QACtB,aAAa,IAAI;IACnB;IAEA,SAAS,cAAc;QACrB,aAAa,KAAK;IACpB;IAEA,SAAS,UAAU,CAAwC,EAAE;QAC3D,OAAQ,EAAE,GAAG;YACX,KAAK;YACL,KAAK;gBACH,IAAI,QAAQ,WAAW,IAAI,KACzB,OAAO;oBAAC;iBAAW;gBAErB,KAAM;YACR,KAAK;gBACH,IAAI,CAAC,YACH,SAAS,MAAM,CAAC,OAAO,MAAM,GAAG,EAAE;gBAEpC,KAAM;YAER;gBACE,KAAM;QACV;IACF;IAEA,SAAS,eAAe;QACtB,SAAS,OAAO,EAAE;IACpB;IAEA,SAAS,SAAS,KAAa,EAAE;QAC/B,UAAU,OAAO,MAAM,CAAC,CAAC,IAAM,MAAM;IACvC;IAEA,SAAS,QAAQ,KAAa,EAAE;QAC9B,OAAO,CAAA,GAAA,wCAAW,AAAD,EAAE,IAAI,CAAC;IAC1B;IAEA,SAAS,OAAO,SAAwB,EAAE;QACxC,MAAM,cAAc,UACjB,GAAG,CAAC,CAAC,IAAM,EAAE,IAAI,IACjB,MAAM,CAAC,CAAC,IAAM,QAAQ;QAEzB,IAAI,YAAY,MAAM,GAAG,GACvB,cAAc;QAGhB,MAAM,cAAc,MAAM,IAAI,CAAC,IAAI,IAAI;eAAI;eAAW;SAAY;QAClE,UAAU;IACZ;IAEA,MAAM,kBAAkB,CAAC,cAAc,OAAO,MAAM,KAAK;IAEzD,SAAS,yBAAyB;QAChC,IAAI,iBACF,OAAO,AAAC,CAAA,aAAa,UAAU,CAAA,IAAK;QAGtC,IAAI,CAAC,mBAAmB,WACtB,OAAO,YAAY,SAAS,MAAM;QAGpC,OAAO;IACT;IAEA,iBAAgB,IAAM;QACpB,IAAI,iBAAiB,WAAW,IAAI,KAAK;YACvC,MAAM,QAAQ,WAAW,KAAK,CAAC;YAC/B,OAAO;QACT,CAAC;IACH,GAAG;QAAC;KAAW;IAEf,qBACE,iBAAC,CAAA,GAAA,yCAAI,AAAD;QAAE,aAAW;QAAM,WAAU;QAAgB,KAAK;QAAC,KAAK;;YACzD,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;0BAAG;;0BACvB,iBAAC;gBACC,eAAa,CAAA,GAAA,yCAAoB,AAAD,CAAC,CAAC,MAAM;gBACxC,WAAU;gBACV,cAAY;gBACZ,gBAAc;gBACd,SAAS;gBACT,mBAAiB;;oBAEhB,OAAO,GAAG,CAAC,CAAC,QAAU;wBACrB,OAAO,YACL,YAAY,OAAO,0BAEnB,gBAAC,CAAA,GAAA,yCAAE;4BACD,SAAS;4BACT,OAAO;4BACP,OAAO;4BACP,MAAM;4BACN,sBACE,gBAAC,CAAA,GAAA,yCAAU,AAAD;gCACR,SAAS;gCACT,OAAO;gCACP,QAAQ;gCACR,OAAO;oCAAE,YAAY;gCAAE;gCACvB,SAAS,IAAM;oCACb,SAAS;gCACX;gCACA,MAAM;0CAEN,cAAA,gBAAC,CAAA,GAAA,UAAG,AAAD;oCAAE,MAAM;;;sCAKd;2BAFI,MAIR;oBACH;kCAEA,gBAAC,CAAA,GAAA,yCAAE;wBACD,OAAO;4BACL,OAAO;wBACT;wBACA,WAAU;kCAEV,cAAA,gBAAC;4BACC,KAAK;4BACL,aAAa,kBAAkB,cAAc,EAAE;4BAC/C,WAAW;4BACX,OAAO;4BACP,UAAU;4BACV,SAAS;4BACT,QAAQ;4BACR,WAAU;;;;;YAIf,uBAAS,gBAAC,CAAA,GAAA,wCAAU,AAAD;0BAAG;;;;AAG7B;;","sources":["packages/parrot-ui/src/index.ts","packages/parrot-ui/src/components/box/box.tsx","packages/parrot-ui/src/utils/dom.ts","packages/parrot-ui/src/utils/assertions.ts","packages/parrot-ui/src/components/grid/grid.tsx","packages/parrot-ui/src/components/flex/flex.tsx","packages/parrot-ui/src/components/input/input.tsx","packages/parrot-ui/src/components/input-label/input-label.tsx","packages/parrot-ui/src/components/text/text.tsx","packages/parrot-ui/src/components/input-error/input-error.tsx","packages/parrot-ui/src/components/space/space.tsx","packages/parrot-ui/src/components/input/number-input.tsx","packages/parrot-ui/src/components/button/button.tsx","packages/parrot-ui/src/components/loader/loader.tsx","packages/parrot-ui/src/components/button/button-group.tsx","packages/parrot-ui/src/utils/object.ts","packages/parrot-ui/src/components/theme/theme-provider.tsx","packages/parrot-ui/src/components/textarea/textarea.tsx","packages/parrot-ui/src/components/button/icon-button.tsx","packages/parrot-ui/src/components/checkbox/checkbox.tsx","packages/parrot-ui/src/components/checkbox/checkbox-group.tsx","packages/parrot-ui/src/components/radio/radio.tsx","packages/parrot-ui/src/components/radio/radio-card.tsx","packages/parrot-ui/src/components/select/select.tsx","packages/parrot-ui/src/components/list-box/list-box.tsx","packages/parrot-ui/src/components/list-box/list-box.utils.tsx","packages/parrot-ui/src/components/tag/tag.tsx","packages/parrot-ui/src/utils/helpers.ts","packages/parrot-ui/src/utils/theme.ts","packages/parrot-ui/src/components/popover/popover.tsx","packages/parrot-ui/src/components/date-picker/calendar.tsx","packages/parrot-ui/src/utils/array.ts","packages/parrot-ui/src/components/date-picker/date-picker.tsx","packages/parrot-ui/src/components/date-picker/date-field.tsx","packages/parrot-ui/src/components/date-picker/date-picker.utils.ts","packages/parrot-ui/src/components/avatar/avatar.tsx","packages/parrot-ui/src/components/file-uploader/file-uploader.tsx","packages/parrot-ui/src/components/separator/separator.tsx","packages/parrot-ui/src/components/progress/progress.tsx","packages/parrot-ui/src/components/tabs/index.ts","packages/parrot-ui/src/components/tabs/tabs.tsx","packages/parrot-ui/src/components/switch/switch.tsx","packages/parrot-ui/src/components/color-tray/color-tray.tsx","packages/parrot-ui/src/components/icon-tray/icon-tray.tsx","packages/parrot-ui/src/components/sticker/sticker.tsx","packages/parrot-ui/src/components/table/table.tsx","packages/parrot-ui/src/components/timeline/timeline.tsx","packages/parrot-ui/src/components/modal/modal.tsx","packages/parrot-ui/src/components/tag-input/tag-input.tsx","packages/parrot-ui/src/utils/regex.ts","packages/parrot-ui/src/hooks/use-controlled-state.tsx"],"sourcesContent":["export { Box } from \"./components/box\";\nexport { Grid, GridItem } from \"./components/grid\";\nexport { Flex } from \"./components/flex\";\nexport { Input, NumberInput } from \"./components/input\";\nexport { Text } from \"./components/text\";\nexport { Textarea } from \"./components/textarea\";\nexport { Button, IconButton, ButtonGroup } from \"./components/button\";\nexport { Checkbox, CheckboxGroup } from \"./components/checkbox\";\nexport { Radio, RadioGroup, RadioCard } from \"./components/radio\";\nexport { Select } from \"./components/select\";\nexport { DatePicker, Calendar } from \"./components/date-picker\";\nexport { Avatar } from \"./components/avatar\";\nexport { FileUploader } from \"./components/file-uploader\";\nexport { Separator } from \"./components/separator\";\nexport { Progress } from \"./components/progress\";\nexport { Loader } from \"./components/loader\";\nexport { Root, Item } from \"./components/tabs\";\nexport { Tag } from \"./components/tag\";\nexport { Switch } from \"./components/switch\";\nexport { ColorTray } from \"./components/color-tray\";\nexport { IconTray } from \"./components/icon-tray\";\nexport { Sticker } from \"./components/sticker\";\nexport { TabObject as Tabs } from \"./components/tabs\";\nexport { Table } from \"./components/table\";\nexport { Timeline } from \"./components/timeline\";\nexport { Modal, useModal } from \"./components/modal\";\nexport { Space } from \"./components/space\";\nexport { TagInput } from \"./components/tag-input\";\nexport { ThemeProvider, useTheme } from \"./components/theme\";\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\nimport { PositionType } from \"../../utils/theme\";\n\nexport interface BoxProps extends React.ComponentPropsWithoutRef<\"div\"> {\n stretchX?: boolean;\n stretchY?: boolean;\n stretchXY?: boolean;\n position?: PositionType;\n as?: React.ElementType;\n}\n\nexport const Box = React.forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<BoxProps>\n>(\n (\n {\n stretchX,\n stretchY,\n stretchXY,\n children,\n className,\n position,\n as = \"div\",\n ...props\n },\n ref\n ) => {\n const Comp = as;\n return (\n <Comp\n className={cx({\n [`position-${position}`]: !!position,\n \"stretch-x\": !!stretchX,\n \"stretch-y\": !!stretchY,\n \"stretch-xy\": !!stretchXY,\n [`${className}`]: !!className,\n })}\n ref={ref}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import { isArray, isObject } from \"./assertions\";\n\nexport type ConditionalClassNameObject = Record<string, boolean>;\nexport function cx(\n classNames: string | Array<string | undefined> | ConditionalClassNameObject\n): string {\n if (isArray(classNames)) {\n return (classNames as Array<string>)\n .filter((className) => {\n return !!className;\n })\n .join(\" \");\n }\n\n if (isObject(classNames as ConditionalClassNameObject)) {\n const className = Object.keys(classNames)\n .filter((key) => {\n return (classNames as ConditionalClassNameObject)[key];\n })\n .join(\" \");\n return className;\n }\n\n return `${classNames}` as string;\n}\n\nexport type RefType<T> =\n | React.MutableRefObject<T>\n | ((node: T) => void)\n | null\n | undefined;\n\nexport function mergeRefs<T>(...refs: Array<RefType<T>>) {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref && typeof ref === \"object\") {\n ref.current = node;\n }\n }\n };\n}\n","export function isNumber(value: unknown): boolean {\n return typeof value === \"number\";\n}\n\nexport function isArray(value: unknown): boolean {\n return value !== null && Array.isArray(value);\n}\n\nexport function isEmptyArray(value: Array<unknown>): boolean {\n return isArray(value) && value.length === 0;\n}\n\nexport function isObject(value: object): boolean {\n return (\n (typeof value === \"object\" || typeof value === \"function\") &&\n !Array.isArray(value) &&\n value !== null\n );\n}\n\nexport function isEmptyObject(value: object) {\n return isObject(value) && Object.keys(value).length === 0;\n}\n\nexport function objectHasEmptyValue(value: object) {\n return (\n Object.values(value).filter((value) => {\n return value === \"\" || value === undefined || value === null;\n }).length > 0\n );\n}\n\nexport function isUndefinedOrNull(value: unknown) {\n return value == null;\n}\n\nexport function isUndefined(value: unknown) {\n return value === undefined;\n}","import * as React from \"react\";\nimport {\n AlignItemsType,\n JustifyContentType,\n SizeOption,\n} from \"../../utils/theme\";\nimport { cx } from \"../../utils/dom\";\nimport { AsProps } from \"../../utils/types\";\nimport { Box } from \"../box\";\n\ntype Columns =\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12;\ninterface GridProps extends React.ComponentProps<typeof Box> {\n columns?: Columns;\n gap?: SizeOption;\n gapX?: SizeOption;\n gapY?: SizeOption;\n align?: AlignItemsType;\n justify?: JustifyContentType;\n}\n\nexport const Grid = React.forwardRef<\n HTMLDivElement,\n GridProps & AsProps<\"div\">\n>(\n (\n { columns = 12, gap, gapX, gapY, align, justify, as, className, ...props },\n ref\n ) => {\n return (\n <Box\n as={as}\n ref={ref}\n className={cx({\n \"p-grid\": true,\n \"display-grid\": true,\n [`columns-${columns}`]: !!columns,\n [`gap-${gap}`]: !!gap,\n [`column-gap-${gapX}`]: !!gapX,\n [`row-gap-${gapY}`]: !!gapY,\n [`flex-align-${align}`]: !!align,\n [`flex-justify-${justify}`]: !!justify,\n [`${className}`]: !!className,\n })}\n {...props}\n ></Box>\n );\n }\n);\n\nGrid.displayName = \"Grid\";\n\ninterface GridItemProps extends React.ComponentProps<typeof Box> {\n colSpan?: Columns;\n}\n\nexport const GridItem = React.forwardRef<\n HTMLDivElement,\n GridItemProps & AsProps<\"div\">\n>(({ colSpan = 1, as, className, ...props }, ref) => {\n return (\n <Box\n as={as}\n stretchX\n className={cx({\n \"p-grid-item\": true,\n [`col-span-${colSpan}`]: !!colSpan,\n [`${className}`]: !!className,\n })}\n ref={ref}\n {...props}\n ></Box>\n );\n});\n\nGridItem.displayName = \"GridItem\";\n","import * as React from \"react\";\nimport { Box } from \"../box\";\nimport { cx } from \"../../utils/dom\";\nimport {\n AlignItemsType,\n FlexDirectionType,\n JustifyContentType,\n SizeOption,\n} from \"../../utils/theme\";\n\nexport interface FlexProps extends React.ComponentProps<typeof Box> {\n justify?: JustifyContentType;\n align?: AlignItemsType;\n direction?: FlexDirectionType;\n gap?: SizeOption;\n columnGap?: SizeOption;\n rowGap?: SizeOption;\n stack?: boolean;\n inline?: boolean;\n wrap?: \"wrap\" | \"nowrap\" | \"wrap-reverse\";\n}\n\nexport const Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n (props, ref) => {\n const {\n justify,\n align,\n direction,\n gap = \"sm\",\n columnGap,\n rowGap,\n inline,\n wrap,\n stack,\n className,\n ...otherProps\n } = props;\n\n const getDirection = React.useCallback(() => {\n if (stack) {\n return \"column\";\n }\n\n return direction || \"row\";\n }, [stack, direction]);\n\n return (\n <Box\n className={cx({\n [`${className}`]: !!className,\n [inline ? \"display-inline-flex\" : \"display-flex\"]: true,\n [`flex-justify-${justify}`]: !!justify,\n [`flex-align-${align}`]: !!align,\n [`flex-direction-${getDirection()}`]: !!getDirection(),\n [`gap-${gap}`]: !!gap,\n [`column-gap-${columnGap}`]: !!columnGap,\n [`row-gap-${rowGap}`]: !!rowGap,\n [`flex-${wrap}`]: !!wrap,\n })}\n ref={ref}\n {...otherProps}\n >\n {props.children}\n </Box>\n );\n }\n);\n\nFlex.displayName = \"Flex\";\n","import React from \"react\";\nimport { Flex } from \"../flex\";\nimport { AriaTextFieldOptions, useTextField } from \"react-aria\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { Text } from \"../text\";\nimport { useSpace } from \"../space/space\";\nimport { cx, mergeRefs } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\nexport type InputProps = {\n description?: React.ReactNode;\n label?: React.ReactNode;\n error?: React.ReactNode;\n append?: React.ReactNode;\n prepend?: React.ReactNode;\n validationStatus?: \"error\" | \"success\" | \"warning\";\n className?: string;\n shape?: \"rounded\" | \"sharp\";\n inputRef?: React.RefObject<HTMLInputElement>;\n appearance?: \"outline\" | \"filled\" | \"filled-outline\";\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n color?: Color;\n};\n\nexport interface ExtendedInputProps\n extends Omit<AriaTextFieldOptions<\"input\">, \"size\">,\n InputProps {\n _someProp?: string;\n}\n\nexport type InputVariantProps = Pick<\n InputProps,\n \"appearance\" | \"size\" | \"color\" | \"shape\"\n>;\n\nexport const Input = React.forwardRef<HTMLDivElement, ExtendedInputProps>(\n (\n {\n label,\n error,\n color = \"gray\",\n appearance = \"outline\",\n size = \"sm\",\n shape = \"rounded\",\n append,\n prepend,\n description,\n isDisabled,\n validationStatus,\n className,\n inputRef,\n ...props\n },\n ref\n ) => {\n const space = useSpace();\n\n const internalInputRef = React.useRef<HTMLInputElement>(null);\n\n const { labelProps, inputProps, errorMessageProps, descriptionProps } =\n useTextField(\n {\n ...props,\n inputElementType: \"input\",\n label,\n description,\n isDisabled: isDisabled as boolean,\n },\n internalInputRef\n );\n\n const getRadius = React.useCallback(() => {\n if (shape === \"sharp\") return \"none\";\n if (shape === \"rounded\") return \"md\";\n return undefined;\n }, [shape]);\n\n return (\n <Flex\n data-color={color}\n data-radius={getRadius()}\n className={cx({\n [`${space.compactItemWrapperAdjust}`]: true,\n \"p-input-group\": true,\n [`${className}`]: !!className,\n })}\n stack\n ref={ref}\n gap={\"3xs\"}\n stretchX\n data-size={size}\n >\n {label && <InputLabel {...labelProps}>{label}</InputLabel>}\n\n <Flex className=\"p-input-container\" stretchX inline position=\"relative\">\n {prepend && (\n <Flex className=\"add-on add-on-left\" position=\"absolute\">\n {prepend}\n </Flex>\n )}\n <input\n ref={mergeRefs(internalInputRef, inputRef)}\n data-has-error={!!error}\n data-appearance={appearance}\n data-has-left-addon={!!prepend}\n data-has-right-addon={!!append}\n className={cx({\n \"p-input\": true,\n ...space.classNames,\n })}\n {...inputProps}\n />\n {append && (\n <Flex className=\"add-on add-on-right\" position=\"absolute\">\n {append}\n </Flex>\n )}\n </Flex>\n\n {description && (\n <Text\n as=\"div\"\n weight=\"light\"\n variant=\"light\"\n color=\"gray\"\n size=\"2xs\"\n lineHeight={\"base\"}\n {...descriptionProps}\n >\n {description}\n </Text>\n )}\n\n {error && (\n <InputError\n validationStatus={validationStatus}\n {...errorMessageProps}\n >\n {error}\n </InputError>\n )}\n </Flex>\n );\n }\n);\n\nInput.displayName = \"Input\";\n","import React from \"react\";\n\nimport { cx } from \"../../utils/dom\";\nimport { Text } from \"../text\";\n\ntype InputLabelProps = Omit<\n React.HTMLAttributes<HTMLLabelElement>,\n \"size\" | \"color\"\n>;\n\nconst InputLabel = React.forwardRef<HTMLLabelElement, InputLabelProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <Text\n size=\"sm\"\n color=\"gray\"\n variant=\"dark\"\n as=\"label\"\n textRef={ref}\n className={cx([className, \"p-input-label\"])}\n {...props}\n >\n {children}\n </Text>\n );\n }\n);\n\nInputLabel.displayName = \"InputLabel\";\n\nexport default InputLabel;\n","import * as React from \"react\";\nimport { Color, SizeOption } from \"../../utils/theme\";\n\nimport { cx } from \"../../utils/dom\";\nimport { AsProps } from \"../../utils/types\";\n\ntype TextWeight =\n | \"light\"\n | \"regular\"\n | \"medium\"\n | \"semi-bold\"\n | \"bold\"\n | \"heavy\"\n | \"inherit\";\ntype TextColorVariant = \"light\" | \"lighter\" | \"dark\" | \"default\";\n\ninterface TextProps {\n size?: SizeOption;\n weight?: TextWeight;\n highlight?: boolean;\n color?: Color | \"inherit\" | \"white\";\n variant?: TextColorVariant;\n align?: \"left\" | \"center\" | \"right\";\n numeric?: boolean;\n underline?: boolean;\n italic?: boolean;\n lineHeight?: \"normal\" | \"shorter\" | \"short\" | \"base\" | \"tall\";\n textRef?: any; //TODO Type this properly\n}\n\n// TODO figure out a way to just use forwardRef here\n\nexport const Text = <T extends React.ElementType = \"span\">(\n props: React.PropsWithChildren<TextProps> & AsProps<T>\n) => {\n const {\n size,\n weight,\n color = \"gray\",\n variant = \"default\",\n highlight,\n align,\n lineHeight,\n underline,\n italic,\n as: Tag = \"span\",\n textRef,\n className,\n ...rest\n } = props;\n\n return (\n <Tag\n className={cx({\n [`text-highlight`]: !!highlight,\n \"p-text\": true,\n [`text-size-${size}`]: !!size,\n [`text-weight-${weight}`]: !!weight,\n [`text-alight-${align}`]: !!align,\n [`text-line-height-${lineHeight}`]: !!lineHeight,\n [`${className}`]: !!className,\n })}\n data-underline={underline}\n data-italic={italic}\n data-color={color}\n data-text-variant={variant}\n ref={textRef}\n {...rest}\n />\n );\n};\n\nText.displayName = \"Text\";\n","import React from \"react\";\nimport { Text } from \"../text\";\n\ntype InputErrorProps = React.ComponentProps<typeof Text> & {\n validationStatus?: \"error\" | \"success\" | \"warning\";\n};\n\nconst InputError = React.forwardRef<HTMLDivElement, InputErrorProps>(\n ({ children, validationStatus = \"error\", ...props }, ref) => {\n return (\n <Text\n size=\"xs\"\n className=\"p-input-error\"\n lineHeight={\"base\"}\n as=\"div\"\n color=\"red\"\n variant=\"default\"\n data-validation-status={validationStatus}\n ref={ref}\n {...props}\n >\n {children}\n </Text>\n );\n }\n);\n\nInputError.displayName = \"InputError\";\n\nexport default InputError;\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { ConditionalClassNameObject, cx } from \"../../utils/dom\";\nimport { SizeOption } from \"../../utils/theme\";\n\nconst SpaceContext = React.createContext<{\n classNames: ConditionalClassNameObject;\n compactItemWrapperAdjust: string;\n}>({ classNames: {}, compactItemWrapperAdjust: \"\" });\n\nexport interface SpaceProps extends React.ComponentProps<typeof Flex> {\n compact?: boolean;\n gap?: SizeOption;\n className?: string;\n}\n\nfunction SpaceComponent(\n {\n children,\n compact,\n gap,\n className,\n ...props\n }: React.PropsWithChildren<SpaceProps>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const childrenCount = React.Children.count(children);\n\n const nodes = React.useMemo(() => {\n return React.Children.map(children, (child, index) => {\n const isFirstChild = index == 0;\n const isLastChild = index == childrenCount - 1;\n\n if (!React.isValidElement(child)) return null;\n\n return (\n <SpaceContext.Provider\n value={{\n classNames: {\n \"space-item-first\": isFirstChild,\n \"space-item-last\": isLastChild,\n \"space-item\": true,\n },\n compactItemWrapperAdjust: isLastChild\n ? \"\"\n : \"compact-item-wrapper-adjust\",\n }}\n >\n {child}\n </SpaceContext.Provider>\n );\n });\n }, [children]);\n\n const realGap = compact ? \"none\" : gap;\n\n return (\n <Flex\n data-compact={compact}\n className={cx([className, \"p-space\"])}\n ref={ref}\n gap={realGap}\n {...props}\n >\n {nodes}\n </Flex>\n );\n}\n\nexport const Space = React.forwardRef(SpaceComponent);\n\nexport function useSpace() {\n return React.useContext(SpaceContext);\n}\n","import * as React from \"react\";\nimport { Button } from \"../button\";\nimport { Flex } from \"../flex\";\nimport { cx, mergeRefs } from \"../../utils/dom\";\nimport { useSpace } from \"../space/space\";\nimport { HiMinus, HiPlus } from \"react-icons/hi\";\nimport { useNumberFieldState } from \"react-stately\";\nimport { AriaNumberFieldProps, useNumberField, useLocale } from \"react-aria\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { Text } from \"../text\";\nimport { InputProps } from \"./input\";\n\ninterface NumberInputProps extends InputProps, AriaNumberFieldProps {\n showSteppers?: boolean;\n}\n\n// TODO - add support for `append` and `prepend` props\n// TODO - format stepper buttons\n\nexport const NumberInput = React.forwardRef<HTMLDivElement, NumberInputProps>(\n (props, ref) => {\n const {\n appearance = \"outline\",\n size = \"md\",\n color = \"gray\",\n className,\n append,\n prepend,\n placeholder,\n showSteppers = false,\n ...rest\n } = props;\n\n const space = useSpace();\n const internalInputRef = React.useRef<HTMLInputElement>(null);\n\n const { locale } = useLocale();\n const state = useNumberFieldState({ ...rest, locale });\n const {\n errorMessageProps,\n descriptionProps,\n labelProps,\n groupProps,\n inputProps,\n incrementButtonProps,\n decrementButtonProps,\n } = useNumberField(rest, state, internalInputRef);\n\n return (\n <Flex\n stack\n gap=\"3xs\"\n ref={ref}\n data-radius=\"md\"\n data-color={color}\n data-size={size}\n stretchX\n className={cx({\n \"p-input-group\": true,\n [`${space.compactItemWrapperAdjust}`]: true,\n })}\n >\n {rest.label && <InputLabel {...labelProps}>{rest.label}</InputLabel>}\n <Flex gap=\"4xs\" {...groupProps} className=\"p-input-container\">\n {showSteppers && (\n <Button\n {...decrementButtonProps}\n radius=\"md\"\n color=\"gray\"\n variant=\"outline\"\n size={size}\n >\n <HiMinus />\n </Button>\n )}\n <input\n ref={mergeRefs(internalInputRef, ref)}\n placeholder={placeholder}\n className={cx({\n \"p-input\": true,\n \"space-item\": true,\n [`${className}`]: !!className,\n ...space.classNames,\n })}\n data-appearance={appearance}\n data-has-left-addon={!!prepend}\n data-has-right-addon={!!append}\n type=\"text\"\n {...inputProps}\n />\n {showSteppers && (\n <Button\n {...incrementButtonProps}\n radius=\"md\"\n color=\"gray\"\n variant=\"outline\"\n size={size}\n >\n <HiPlus />\n </Button>\n )}\n </Flex>\n\n {rest.description && (\n <Text\n weight=\"light\"\n size=\"2xs\"\n color=\"gray\"\n variant=\"light\"\n lineHeight=\"base\"\n {...descriptionProps}\n as={\"div\"}\n >\n {rest.description}\n </Text>\n )}\n\n {rest.error && (\n <InputError {...errorMessageProps}>{rest.error}</InputError>\n )}\n </Flex>\n );\n }\n);\n\nNumberInput.displayName = \"NumberInput\";\n","import React from \"react\";\nimport { AriaButtonProps, useToggleButton } from \"react-aria\";\nimport { cx, mergeRefs } from \"../../utils/dom\";\nimport { Loader } from \"../loader\";\nimport { useButtonGroup } from \"./button-group\";\nimport { useSpace } from \"../space/space\";\nimport { useToggleState } from \"react-stately\";\nimport {\n Color,\n ColorVariant,\n BorderRadius,\n ButtonAppearance,\n ButtonSize,\n} from \"../../utils/theme\";\nimport { useTheme } from \"../theme/theme-provider\";\n\nexport interface ButtonToggleProps {\n isToggle?: boolean;\n idleColor?: Color;\n idleVariant?: ColorVariant;\n activeColor?: Color;\n activeVariant?: ColorVariant;\n}\n\nexport type ButtonProps = AriaButtonProps<\"button\" | \"div\" | \"a\"> &\n ButtonToggleProps & {\n append?: React.ReactNode;\n prepend?: React.ReactNode;\n as?: React.ElementType;\n isLoading?: boolean;\n className?: string;\n isIconButton?: boolean;\n color?: Color;\n variant?: ColorVariant;\n size?: ButtonSize;\n radius?: BorderRadius;\n isSelected?: boolean;\n defaultSelected?: boolean;\n appearance?: ButtonAppearance;\n role?: string;\n style?: React.CSSProperties;\n };\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref) => {\n const space = useSpace();\n const buttonGroupProps = useButtonGroup();\n const theme = useTheme();\n\n const {\n color,\n variant = \"solid\",\n append,\n prepend,\n size = \"md\",\n children,\n as = \"button\",\n className,\n isLoading,\n radius = \"full\",\n isToggle,\n activeColor = \"violet\",\n activeVariant = \"solid\",\n idleColor = \"gray\",\n idleVariant = \"outline\",\n isIconButton,\n appearance,\n style,\n ...otherProps\n } = { ...buttonGroupProps, ...props };\n\n const state = useToggleState({\n ...otherProps,\n });\n\n const buttonRef = React.useRef(null);\n const { buttonProps, isPressed } = useToggleButton(\n { ...otherProps, elementType: as },\n state,\n buttonRef\n );\n\n const getAppearance = React.useCallback(() => {\n if (theme?.buttonAppearance && appearance) {\n return {\n color: theme.buttonAppearance[appearance]?.color,\n variant: theme.buttonAppearance[appearance]?.variant,\n };\n }\n\n return {\n color,\n variant,\n };\n }, [appearance]);\n\n function getColor() {\n if (!state.isSelected && isToggle) {\n return { color: idleColor, variant: idleVariant };\n }\n if (state.isSelected && isToggle) {\n return { color: activeColor, variant: activeVariant };\n }\n\n return { variant: getAppearance().variant, color: getAppearance().color };\n }\n\n const Comp = as;\n\n return (\n <Comp\n style={style}\n data-appearance={appearance}\n data-pressed={isPressed}\n data-radius={radius}\n data-icon-button={isIconButton}\n data-loading={isLoading}\n aria-busy={isLoading}\n data-color={getColor().color}\n data-variant={getColor().variant}\n data-size={size}\n className={cx([\n className,\n \"p-button\",\n `button-size-${size}`,\n ...Object.keys(space.classNames).filter((key) =>\n Boolean(space.classNames[key])\n ),\n ])}\n ref={mergeRefs(ref, buttonRef)}\n {...(buttonProps as Omit<typeof buttonProps, \"color\">)}\n >\n {prepend}\n <span style={{ padding: isIconButton ? undefined : \"0 6px\" }}>\n {children}\n </span>\n {isLoading ? (\n <Loader style={{ marginLeft: 8 }} color=\"inherit\" size={\"xs\"} />\n ) : (\n append\n )}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\n\ninterface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n}\n\nexport const Loader = React.forwardRef<HTMLDivElement, LoaderProps>(\n (\n { color = \"var(--color-10)\", className, style, size = \"sm\", ...props },\n ref\n ) => {\n return (\n <div\n style={{ fill: color, ...style }}\n className={cx([className, \"loader-wrapper\"])}\n ref={ref}\n {...props}\n >\n <svg\n className=\"loader-svg\"\n data-size={size}\n viewBox=\"0 0 1024 1024\"\n fill={\"inherit\"}\n >\n <path d=\"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" />\n </svg>\n </div>\n );\n }\n);\n\nLoader.displayName = \"Loader\";\n","import * as React from \"react\";\nimport { Space } from \"../space\";\nimport { ButtonProps } from \"./button\";\nimport { omitNullOrUndefined } from \"../../utils/object\";\n\nconst ButtonGroupContext = React.createContext<ButtonGroupProps>({});\n\ninterface ButtonGroupProps\n extends Pick<\n ButtonProps,\n | \"color\"\n | \"variant\"\n | \"size\"\n | \"radius\"\n | \"idleColor\"\n | \"idleVariant\"\n | \"activeColor\"\n | \"activeVariant\"\n | \"isToggle\"\n > {\n label?: string;\n}\n\nexport function ButtonGroup({\n color,\n variant,\n size,\n compact,\n radius,\n gap,\n children,\n idleColor,\n activeColor,\n idleVariant,\n activeVariant,\n isToggle,\n}: ButtonGroupProps & React.ComponentProps<typeof Space>) {\n const cleanProps = omitNullOrUndefined({\n color,\n variant,\n size,\n radius,\n idleColor,\n activeColor,\n idleVariant,\n activeVariant,\n isToggle,\n });\n\n return (\n <ButtonGroupContext.Provider value={cleanProps}>\n <Space gap={gap} compact={compact}>\n {children}\n </Space>\n </ButtonGroupContext.Provider>\n );\n}\n\nexport function useButtonGroup() {\n return React.useContext(ButtonGroupContext);\n}\n","import { Dict } from \"./types\";\n\nexport function omit<T extends Dict, K extends keyof T>(object: T, keys: K[]) {\n return Object.keys(object).reduce((obj, key) => {\n if (keys.includes(key as K)) {\n return { ...obj };\n }\n return {\n ...obj,\n [key]: object[key],\n } as T;\n }, {});\n}\nexport function pick<T extends Dict, K extends keyof T>(\n object: T | undefined,\n keys: K[]\n) {\n // TODO handle invalid objects properly\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((obj, key) => {\n if (keys.includes(key as K))\n return {\n ...obj,\n [key]: object[key],\n };\n return { ...obj };\n }, {});\n}\nexport function split<T extends Dict, K extends keyof T>(object: T, keys: K[]) {\n const picked = pick(object, keys);\n const omitted = omit(object, keys);\n\n return [picked, omitted] as [{ [P in K]: T[P] }, Omit<T, K>];\n}\n\nexport function omitNullOrUndefined<T extends Dict>(object: T): Partial<T> {\n return Object.keys(object).reduce((obj, key) => {\n if (object[key] == null) {\n return { ...obj };\n }\n return {\n ...obj,\n [key]: object[key],\n };\n }, {});\n}\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\nimport {\n BorderRadius,\n ButtonAppearanceSchemaType,\n Color,\n} from \"../../utils/theme\";\n\ninterface ThemeProviderValue {\n color?: Color;\n scaling?: SizeScale;\n grayVariant?: string;\n radius?: BorderRadius;\n buttonAppearance?: ButtonAppearanceSchemaType;\n avatarRadiusSize?: BorderRadius;\n}\ninterface ThemeProviderProps extends ThemeProviderValue {\n children?: React.ReactNode;\n className?: string;\n}\n\ntype SizeScale = \"90%\" | \"95%\" | \"100%\" | \"105%\" | \"110%\";\n\nconst ThemeContext = React.createContext<ThemeProviderValue | null>(null);\n\nexport function ThemeProvider(props: ThemeProviderProps) {\n const { children, className, ...themeProps } = props;\n return (\n <ThemeContext.Provider value={themeProps}>\n <div\n id=\"parrot-theme-provider\"\n data-radius={themeProps.radius}\n data-color={themeProps.color}\n className={cx([\"parrot-theme\", className])}\n >\n {children}\n </div>\n </ThemeContext.Provider>\n );\n}\n\nexport function useTheme(options?: { requireThemeProvider: boolean }) {\n const theme = React.useContext(ThemeContext);\n if (!theme && options?.requireThemeProvider)\n throw new Error(\"No theme found\");\n return theme;\n}\n","import React from \"react\";\nimport { AriaTextFieldOptions, useTextField } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { InputError } from \"../input-error\";\nimport { InputLabel } from \"../input-label\";\nimport { Text } from \"../text/text\";\nimport { InputProps } from \"../input/input\";\n\ninterface TextareaProps extends AriaTextFieldOptions<\"textarea\">, InputProps {\n resize?: \"none\" | \"both\" | \"horizontal\" | \"vertical\";\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Textarea = React.forwardRef<HTMLDivElement, TextareaProps>(\n (\n {\n appearance = \"outline\",\n resize,\n label,\n description,\n error,\n color,\n style,\n ...props\n },\n ref\n ) => {\n const textAreaRef = React.useRef(null);\n const { labelProps, inputProps, errorMessageProps, descriptionProps } =\n useTextField(\n {\n ...props,\n inputElementType: \"textarea\",\n label,\n description,\n errorMessage: error,\n },\n textAreaRef\n );\n\n return (\n <Flex style={style} className=\"p-input-group\" ref={ref} stack gap={\"2xs\"}>\n {label && <InputLabel {...labelProps}>{label}</InputLabel>}\n <textarea\n data-color={color}\n className=\"p-input p-text-area\"\n disabled={props.isDisabled}\n data-has-error={!!error}\n data-resize={resize}\n data-appearance={appearance}\n {...inputProps}\n ></textarea>\n {description && (\n <Text\n lineHeight={\"base\"}\n {...descriptionProps}\n variant={\"lighter\"}\n as=\"div\"\n size={\"xs\"}\n >\n {description}\n </Text>\n )}\n {error && <InputError {...errorMessageProps}>{error}</InputError>}\n </Flex>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n","import * as React from \"react\";\nimport { Button, ButtonProps } from \"./button\";\n\ninterface IconButtonProps extends ButtonProps {\n isIcon?: boolean;\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (props, ref) => {\n return (\n <Button isIconButton ref={ref} {...props}>\n {props.children}\n </Button>\n );\n }\n);\n\nIconButton.displayName = \"IconButton\";\n","import { useToggleState } from \"react-stately\";\nimport React from \"react\";\nimport {\n AriaCheckboxProps,\n useCheckbox,\n VisuallyHidden,\n useFocusRing,\n useCheckboxGroupItem,\n AriaCheckboxGroupItemProps,\n} from \"react-aria\";\nimport { GroupContext } from \"./checkbox-group\";\nimport { Box } from \"../box\";\nimport { Color } from \"../../utils/theme\";\n\nexport interface CheckboxVariantProps {\n appearance?: \"outline\" | \"filled\";\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n shape?: \"sharp\" | \"round\";\n color?: Color;\n}\nexport interface CheckboxProps\n extends AriaCheckboxProps,\n CheckboxVariantProps {}\n\nexport const Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(\n (props, ref) => {\n const { appearance, size, shape, color, ...otherProps } = props;\n\n // check if checkbox is rendered in a group context\n const groupContext = React.useContext(GroupContext);\n const groupState = groupContext?.state;\n const groupProps = groupContext?.props;\n const isWithinGroup = groupState != null;\n\n const singleState = useToggleState(props);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const single = useCheckbox(otherProps, singleState, inputRef);\n const group =\n groupState &&\n useCheckboxGroupItem(\n otherProps as AriaCheckboxGroupItemProps,\n groupState,\n inputRef\n );\n\n const { isFocusVisible, focusProps } = useFocusRing();\n\n const inputProps = isWithinGroup ? group?.inputProps : single.inputProps;\n const state = isWithinGroup ? groupState : singleState;\n const isSelected = isWithinGroup\n ? groupState.isSelected(props.value ?? \"\")\n : state.isSelected;\n\n function getRadius() {\n const resolvedShape = shape || groupProps?.shape || undefined;\n\n if (resolvedShape === \"sharp\") {\n return \"none\";\n }\n\n if (resolvedShape === \"round\") {\n return \"md\";\n }\n\n return undefined;\n }\n\n const resolvedColor = color || groupProps?.color || undefined;\n const resolvedAppearance =\n appearance || groupProps?.appearance || \"outline\";\n const resolvedSize = size || groupProps?.size || \"md\";\n\n return (\n <label\n className=\"custom-checkbox-label\"\n data-disabled={inputProps?.disabled}\n ref={ref}\n >\n <VisuallyHidden>\n <input\n type=\"checkbox\"\n ref={inputRef}\n {...inputProps}\n {...focusProps}\n />\n </VisuallyHidden>\n <div\n data-color={resolvedColor}\n data-radius={getRadius()}\n className=\"fake-checkbox\"\n data-focused={isFocusVisible}\n aria-hidden=\"true\"\n data-checked={isSelected}\n data-indeterminate={props.isIndeterminate}\n data-size={resolvedSize}\n data-appearance={resolvedAppearance}\n >\n {isSelected && (\n <svg\n stroke=\"white\"\n width={\"0.75rem\"}\n height={\"0.75rem\"}\n viewBox=\"0 0 18 18\"\n >\n <polyline\n points=\"1 9 7 14 15 4\"\n fill=\"none\"\n strokeWidth={3}\n strokeDasharray={22}\n strokeDashoffset={isSelected ? 44 : 66}\n style={{\n transition: \"all 400ms\",\n }}\n />\n </svg>\n )}\n\n {props.isIndeterminate && (\n <Box\n style={{\n background: \"$gray11\",\n width: \"70%\",\n height: 2,\n borderRadius: 4,\n }}\n ></Box>\n )}\n </div>\n {otherProps.children}\n </label>\n );\n }\n);\n\nCheckbox.displayName = \"checkbox\";\n","import React from \"react\";\nimport { CheckboxGroupState, useCheckboxGroupState } from \"react-stately\";\nimport { AriaCheckboxGroupProps, useCheckboxGroup } from \"react-aria\";\nimport { Flex, FlexProps } from \"../flex\";\nimport { Text } from \"../text\";\nimport { InputError } from \"../input-error\";\nimport { CheckboxVariantProps } from \"./checkbox\";\n\nexport const GroupContext =\n React.createContext<{\n state: CheckboxGroupState;\n props: CheckboxVariantProps;\n } | null>(null);\n\ninterface CheckboxGroupProps\n extends AriaCheckboxGroupProps,\n CheckboxVariantProps {}\n\nexport const CheckboxGroup = React.forwardRef<\n HTMLDivElement,\n CheckboxGroupProps & FlexProps\n>((props, ref) => {\n const {\n children,\n align,\n justify,\n label,\n description,\n errorMessage,\n size,\n appearance,\n color,\n shape,\n } = props;\n\n const state = useCheckboxGroupState(props);\n const { groupProps, labelProps, descriptionProps, errorMessageProps } =\n useCheckboxGroup(props, state);\n\n return (\n <Flex\n align={align}\n justify={justify}\n ref={ref}\n stack\n gap={\"2xs\"}\n {...groupProps}\n >\n <Text {...labelProps}>{label}</Text>\n <GroupContext.Provider\n value={{ state, props: { size, appearance, color, shape } }}\n >\n {children}\n </GroupContext.Provider>\n {description && (\n <Text\n lineHeight={\"base\"}\n variant=\"lighter\"\n size=\"xs\"\n {...descriptionProps}\n >\n {description}\n </Text>\n )}\n {errorMessage && (\n <InputError {...errorMessageProps}>{errorMessage}</InputError>\n )}\n </Flex>\n );\n});\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n","import React from \"react\";\nimport {\n AriaRadioGroupProps,\n AriaRadioProps,\n useRadio,\n useRadioGroup,\n VisuallyHidden,\n} from \"react-aria\";\nimport { RadioGroupState, useRadioGroupState } from \"react-stately\";\nimport { Flex, FlexProps } from \"../flex\";\nimport { InputError } from \"../input-error\";\nimport { Text } from \"../text\";\nimport { InputLabel } from \"../input-label\";\nimport { cx } from \"../../utils/dom\";\nimport { InputVariantProps } from \"../input/input\";\n\nexport interface RadioProps\n extends AriaRadioProps,\n Pick<InputVariantProps, \"appearance\" | \"color\"> {\n className?: string;\n style?: React.CSSProperties;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n}\n\nexport const RadioContext = React.createContext<RadioGroupState | null>(null);\n\nexport const Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n (props, ref) => {\n const state = React.useContext(RadioContext);\n\n const {\n size = \"sm\",\n className,\n style,\n appearance,\n color,\n ...otherProps\n } = props;\n if (!state) throw new Error(\"Radio must be used within a RadioGroup\");\n\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(otherProps, state, inputRef);\n\n return (\n <label style={style} className={cx([className, \"p-radio\"])} ref={ref}>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef}></input>\n </VisuallyHidden>\n <div\n data-color={color}\n className=\"p-fake-radio\"\n data-appearance={appearance}\n data-checked={inputProps.checked}\n data-size={size}\n />\n {props.children}\n </label>\n );\n }\n);\n\ninterface RadioGroupProps extends AriaRadioGroupProps {\n children?: React.ReactNode;\n}\n\nexport const RadioGroup = React.forwardRef<\n HTMLDivElement,\n RadioGroupProps & FlexProps\n>(\n (\n {\n stack = true,\n direction,\n gap = \"xs\",\n rowGap,\n align,\n justify,\n wrap,\n columnGap,\n ...props\n },\n ref\n ) => {\n const { children, label, description, errorMessage } = props;\n const state = useRadioGroupState(props);\n const { radioGroupProps, labelProps, descriptionProps, errorMessageProps } =\n useRadioGroup(props, state);\n\n return (\n <Flex\n ref={ref}\n stack={stack}\n gap={gap}\n direction={direction}\n rowGap={rowGap}\n columnGap={columnGap}\n align={align}\n justify={justify}\n wrap={wrap}\n {...radioGroupProps}\n >\n {label && <InputLabel {...labelProps}>{label}</InputLabel>}\n {description && (\n <Text variant=\"light\" {...descriptionProps}>\n {description}\n </Text>\n )}\n\n <RadioContext.Provider value={state}>{children}</RadioContext.Provider>\n\n {errorMessage && (\n <InputError {...errorMessageProps}>{errorMessage}</InputError>\n )}\n </Flex>\n );\n }\n);\n\nRadioGroup.displayName = \"RadioGroup\";\nRadio.displayName = \"Radio\";\n","import * as React from \"react\";\nimport { AriaRadioProps, VisuallyHidden, useRadio } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport { RadioContext } from \"./radio\";\nimport { InputVariantProps } from \"../input/input\";\n\nexport interface RadioCardProps\n extends AriaRadioProps,\n Pick<InputVariantProps, \"appearance\" | \"color\"> {\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n showIndicator?: boolean;\n}\n\nexport const RadioCard = React.forwardRef<HTMLLabelElement, RadioCardProps>(\n (\n {\n title,\n description,\n children,\n appearance,\n showIndicator = true,\n color,\n ...props\n },\n ref\n ) => {\n const state = React.useContext(RadioContext);\n if (!state) throw new Error(\"RadioCard must be used within a RadioGroup\");\n\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(props, state, inputRef);\n\n return (\n <label\n className=\"p-radio-card\"\n data-color={color}\n data-appearance={appearance}\n data-checked={inputProps.checked}\n ref={ref}\n >\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {showIndicator && (\n <div\n className=\"p-fake-radio\"\n data-size=\"sm\"\n data-checked={inputProps.checked}\n />\n )}\n <Flex stack gap={\"xs\"}>\n {(title || description) && (\n <Flex gap={\"4xs\"} stack>\n {title && (\n <Text color={color} size=\"sm\">\n {title}\n </Text>\n )}\n {description && (\n <Text\n color={color}\n lineHeight={\"tall\"}\n size=\"xs\"\n variant=\"lighter\"\n >\n {description}\n </Text>\n )}\n </Flex>\n )}\n {children}\n </Flex>\n </label>\n );\n }\n);\n\nRadioCard.displayName = \"RadioCard\";\n","import * as React from \"react\";\nimport { ListBox } from \"../list-box\";\nimport { InputLabel } from \"../input-label\";\nimport { Flex } from \"../flex\";\nimport { cx } from \"../../utils/dom\";\nimport { HiSelector, HiX } from \"react-icons/hi\";\nimport { useListState, useMenuTriggerState } from \"react-stately\";\nimport { HiddenSelect, useMenuTrigger, usePress } from \"react-aria\";\nimport { ListBoxProps } from \"../list-box/list-box\";\nimport { renderListBoxContent } from \"../list-box/list-box.utils\";\nimport { Tag } from \"../tag\";\nimport { getRandomColor } from \"../../utils/helpers\";\nimport { Text } from \"../text\";\nimport { Box } from \"../box\";\nimport { Popover } from \"../popover\";\nimport { useTheme } from \"../theme/theme-provider\";\nimport { InputProps } from \"../input/input\";\nimport { Color } from \"../../utils/theme\";\nimport { useSpace } from \"../space/space\";\n\nexport interface SelectProps<T> extends ListBoxProps<T>, InputProps {\n renderValue?: (value: T) => React.ReactNode;\n placeholder?: string;\n isDisabled?: boolean;\n name?: string;\n listBoxColor?: Color;\n}\n\nexport function Select<T>({\n label,\n selectionMode = \"single\",\n appearance = \"outline\",\n append,\n prepend,\n renderValue,\n color = \"gray\",\n error,\n description,\n size = \"sm\",\n shape = \"rounded\",\n listBoxColor,\n className,\n ...props\n}: SelectProps<T>) {\n const space = useSpace();\n const [isFocused, setIsFocused] = React.useState(false);\n const triggerState = useMenuTriggerState({});\n const listState = useListState({\n ...props,\n selectionMode: selectionMode,\n children: renderListBoxContent(props),\n onSelectionChange() {\n if (selectionMode === \"single\") {\n triggerState.close();\n }\n },\n } as ListBoxProps<any>);\n const triggerRef = React.useRef<HTMLDivElement>(null);\n\n const theme = useTheme();\n\n const { menuTriggerProps } = useMenuTrigger(\n { type: \"listbox\", trigger: \"press\", isDisabled: false },\n triggerState,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress(menuTriggerProps);\n\n const isMultiple = selectionMode === \"multiple\";\n\n const selectedItems = [...listState.selectionManager.selectedKeys].map(\n (item) => listState.collection.getItem(item)\n );\n\n const getRadius = React.useCallback(() => {\n if (shape === \"rounded\" && theme?.radius !== \"none\") {\n return theme?.radius || \"md\";\n }\n return \"none\";\n }, [shape]);\n\n function content() {\n if (selectedItems.length === 0) {\n return (\n <Text color=\"inherit\" variant=\"lighter\">\n {props.placeholder}\n </Text>\n );\n }\n\n if (isMultiple) {\n return (\n <Flex gap=\"3xs\" wrap=\"wrap\">\n {selectedItems.map((item) => (\n <Tag\n append={<HiX />}\n color={getRandomColor(item?.textValue ?? \"\")}\n key={item?.key}\n >\n {item?.textValue}\n </Tag>\n ))}\n </Flex>\n );\n }\n\n return (\n <Text variant=\"default\" color={color} className=\"single-value\">\n {renderValue?.(selectedItems[0]?.value) ??\n selectedItems[0]?.value[props.labelKey ?? \"label\"]}\n </Text>\n );\n }\n\n return (\n <Box as=\"span\" position=\"relative\" stretchX>\n {selectionMode === \"single\" && (\n <HiddenSelect\n triggerRef={triggerRef}\n label={label}\n name={props.name}\n state={{\n selectedItem: selectedItems[0] as any,\n selectedKey: selectedItems[0]?.key as any,\n setSelectedKey: (key) =>\n listState.selectionManager.setSelectedKeys([key]),\n isFocused: isFocused,\n setFocused: setIsFocused,\n ...listState,\n ...triggerState,\n }}\n isDisabled={props.isDisabled}\n ></HiddenSelect>\n )}\n <Flex\n data-radius={getRadius()}\n gap=\"2xs\"\n stack\n className={cx({\n [`${space.compactItemWrapperAdjust}`]: true,\n \"p-input-group\": true,\n [`${className}`]: !!className,\n })}\n data-size={size}\n data-color={color}\n >\n {label && <InputLabel>{label}</InputLabel>}\n <div\n data-selection-mode={selectionMode}\n tabIndex={0}\n role=\"button\"\n ref={triggerRef}\n color=\"gray\"\n className={cx({\n \"p-input\": true,\n \"p-select\": true,\n ...space.classNames,\n })}\n data-appearance={appearance}\n {...triggerProps}\n >\n {content()}\n <HiSelector className=\"selector\" size={18} />\n </div>\n </Flex>\n {triggerState.isOpen && (\n <Popover\n placement=\"bottom start\"\n offset={4}\n shouldUpdatePosition\n triggerRef={triggerRef}\n state={triggerState}\n >\n <ListBox\n width={triggerRef.current?.getBoundingClientRect().width}\n color={listBoxColor ?? color}\n shouldFocusOnHover\n state={listState}\n {...props}\n />\n </Popover>\n )}\n </Box>\n );\n}\n","import * as React from \"react\";\nimport {\n AriaListBoxOptions,\n AriaListBoxSectionProps,\n AriaOptionProps,\n useListBox,\n useListBoxSection,\n useOption,\n} from \"react-aria\";\nimport {\n Item,\n ListState,\n Node,\n useListState,\n Section as AriaSection,\n} from \"react-stately\";\nimport { ID } from \"../../utils/types\";\nimport { Text } from \"../text\";\nimport { Flex } from \"../flex\";\nimport { renderListBoxContent } from \"./list-box.utils\";\nimport { Color } from \"../../utils/theme\";\nimport { omit } from \"../../utils/object\";\n\nexport interface ListBoxProps<T> extends AriaListBoxOptions<T> {\n __parrotKey?: ID;\n children?: any; // TODO - type this properly\n labelKey?: keyof T | string; // TODO - type this properly\n valueKey?: keyof T | string; // TODO - type this properly\n sectionKey?: keyof T;\n renderOption?: (item: T) => React.ReactNode;\n getSectionLabel?: (item: T) => React.ReactNode;\n getSectionItems?: (item: T) => T[];\n state?: ListState<T>;\n color?: Color;\n width?: number | string;\n}\n\nexport function ListBox({\n state,\n color,\n width = 300,\n ...props\n}: ListBoxProps<any>) {\n const internalState = useListState({\n ...props,\n children: renderListBoxContent(props),\n });\n const listRef = React.useRef(null);\n const listState = state || internalState;\n const { listBoxProps, labelProps } = useListBox(props, listState, listRef);\n\n const options = [...listState.collection];\n\n return (\n <Flex\n data-color={color}\n style={{ width: width, minWidth: 300 }}\n stack\n gap=\"md\"\n >\n {props.label && (\n <Text size=\"sm\" variant=\"light\" as=\"div\" {...labelProps}>\n {props.label}\n </Text>\n )}\n <Flex\n as=\"ul\"\n stack\n gap=\"none\"\n className=\"list-box-wrapper\"\n ref={listRef}\n {...listBoxProps}\n >\n {options.length === 0 && (\n <Flex justify=\"center\" align=\"center\" style={{ height: 50 }}>\n <Text color=\"gray\" variant=\"light\" align=\"center\">\n No Options\n </Text>\n </Flex>\n )}\n {options.map((item) => {\n return item.type === \"section\" ? (\n <ListSection section={item} state={listState} key={item.key} />\n ) : (\n <ListOption state={listState} item={item} key={item.key} />\n );\n })}\n </Flex>\n </Flex>\n );\n}\n\ninterface OptionProps<T> extends AriaOptionProps {\n item: Node<T>;\n state: ListState<T>;\n}\n\nfunction ListOption({ state, item }: OptionProps<any>) {\n const optionRef = React.useRef(null);\n const {\n optionProps,\n isDisabled,\n isFocusVisible,\n isFocused,\n isPressed,\n isSelected,\n } = useOption({ key: item.key }, state, optionRef);\n\n return (\n <li\n className=\"list-option\"\n data-disabled={isDisabled}\n data-focus-visible={isFocusVisible}\n data-focused={isFocused}\n data-pressed={isPressed}\n data-selected={isSelected}\n {...optionProps}\n {...(omit(item.props, [\"textValue\"]) as any)} // TODO test this to make sure it can't be abused by consumers of this library.\n ref={optionRef}\n >\n {item.rendered}\n </li>\n );\n}\n\ninterface ListSectionProps<T> extends AriaListBoxSectionProps {\n __parrotKey?: ID;\n state: ListState<T>;\n section: Node<T>;\n}\nfunction ListSection({ state, section }: ListSectionProps<any>) {\n const { itemProps, headingProps, groupProps } = useListBoxSection({\n heading: section?.rendered,\n \"aria-label\": section[\"aria-label\"],\n });\n\n function getChildren() {\n if (state.collection.getChildren) {\n return [...state.collection.getChildren(section.key)];\n }\n\n return [];\n }\n\n return (\n <Flex gap=\"sm\" stack className=\"list-section\">\n {/* {section.key !== state.collection.getFirstKey() && (\n <li className=\"list-separator\"></li>\n )} */}\n <Flex gap={\"sm\"} stack as=\"li\" {...itemProps}>\n {section.rendered && (\n <Text size=\"sm\" as=\"div\" variant=\"light\" {...headingProps}>\n {section.rendered}\n </Text>\n )}\n <ul {...groupProps}>\n {getChildren().map((node) => {\n return <ListOption item={node} key={node.key} state={state} />;\n })}\n </ul>\n </Flex>\n </Flex>\n );\n}\n\nexport const Option = Item;\nexport const Section = AriaSection;\n","import * as React from \"react\";\nimport { Section, Option, ListBoxProps } from \"./list-box\";\n\nexport function renderListBoxContent<T>({\n children,\n renderOption,\n valueKey,\n sectionKey,\n getSectionLabel,\n labelKey,\n items,\n}: ListBoxProps<T>) {\n const hasChildren = React.Children.count(children) > 0;\n\n if (hasChildren) {\n return children;\n }\n\n if (items) {\n // eslint-disable-next-line react/display-name\n return (item: T) => {\n const label = (item as any)?.[labelKey ?? \"label\"];\n const value = (item as any)?.[valueKey ?? \"id\"];\n const sectionChildren = (item as any)?.[sectionKey ?? \"children\"] ?? [];\n\n if ((item as any)?.[sectionKey]) {\n return (\n <Section\n items={sectionChildren}\n key={value}\n title={getSectionLabel?.(item)}\n >\n {(item) => (\n <Option\n textValue={(item as any)?.[labelKey ?? \"label\"]}\n key={(item as any)?.[valueKey ?? \"id\"]}\n >\n {(item as any)?.[labelKey ?? \"label\"] ??\n renderOption?.(item as T)}\n </Option>\n )}\n </Section>\n );\n }\n\n return (\n <Option textValue={label} key={(item as any)?.[valueKey ?? \"id\"]}>\n {renderOption?.(item) ?? label}\n </Option>\n );\n };\n }\n}\n","import React from \"react\";\nimport { getRandomColor } from \"../../utils/helpers\";\nimport { Color, ColorVariant, borderRadiusShapeMap } from \"../../utils/theme\";\n\ntype TagProps = React.ComponentPropsWithoutRef<\"span\"> & {\n prepend?: React.ReactNode;\n append?: React.ReactNode;\n hashValue?: string;\n color?: Color;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n shape?: \"pill\" | \"rounded\" | \"sharp\";\n variant?: ColorVariant;\n};\n\nexport const Tag = React.forwardRef<HTMLDivElement, TagProps>(\n (\n {\n prepend,\n append,\n children,\n hashValue,\n color,\n size = \"sm\",\n shape = \"rounded\",\n variant = \"light\",\n ...props\n },\n ref\n ) => {\n const randomColor = React.useMemo(() => {\n if (hashValue) {\n return getRandomColor(hashValue);\n }\n\n return \"gray\";\n }, []);\n\n return (\n <span\n className=\"tag\"\n data-radius={borderRadiusShapeMap[shape]}\n data-size={size}\n data-color={color ?? randomColor}\n data-variant={variant}\n ref={ref}\n {...props}\n >\n {prepend && prepend}\n {children}\n {append && append}\n </span>\n );\n }\n);\n\nTag.displayName = \"Tag\";\n","import { supportedColors } from \"./theme\";\n\nexport function hashCode(text: string) {\n const str = String(text);\n let hash = 0;\n let char;\n if (str.trim().length === 0) return hash;\n for (let i = 0; i < str.length; i++) {\n char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n // Convert to 32bit integer\n hash &= hash;\n }\n\n return Math.abs(hash);\n}\n\nexport function id() {\n return Math.random().toString(36);\n}\n\nexport function getRandomColor(string: string) {\n const hash = hashCode(string);\n return supportedColors[hash % supportedColors.length];\n}\n","export const supportedColors = [\n \"tomato\",\n \"red\",\n \"crimson\",\n \"pink\",\n \"plum\",\n \"purple\",\n \"violet\",\n \"indigo\",\n \"blue\",\n \"cyan\",\n \"teal\",\n \"green\",\n \"grass\",\n \"orange\",\n \"brown\",\n \"sky\",\n \"mint\",\n \"lime\",\n \"yellow\",\n \"amber\",\n \"gold\",\n \"bronze\",\n \"gray\",\n \"mauve\",\n \"slate\",\n \"sage\",\n \"olive\",\n \"sand\",\n] as const;\n\nexport type Color = typeof supportedColors[number];\n\nexport type ColorVariant =\n | \"solid\"\n | \"outline\"\n | \"light\"\n | \"lightOutline\"\n | \"solidMono\"\n | \"ghost\"\n | \"pastel\";\n\nexport type BorderRadius = \"none\" | \"sm\" | \"md\" | \"lg\" | \"full\";\nexport type Appearance = \"light\" | \"dark\";\n\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type ButtonAppearance = \"primary\" | \"secondary\" | \"minimal\";\n\nexport type ButtonAppearanceSchemaType = Partial<\n Record<ButtonAppearance, { variant: ColorVariant; color: Color }>\n>;\nexport type DisplayType =\n | \"block\"\n | \"inline\"\n | \"inline-block\"\n | \"flex\"\n | \"none\"\n | \"grid\"\n | \"inline-flex\";\n\nexport type PositionType = \"absolute\" | \"relative\" | \"fixed\" | \"sticky\";\n\nexport type JustifyContentType =\n | \"start\"\n | \"center\"\n | \"end\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n\nexport type AlignItemsType =\n | \"start\"\n | \"center\"\n | \"end\"\n | \"stretch\"\n | \"baseline\";\n\nexport type FlexDirectionType =\n | \"row\"\n | \"column\"\n | \"row-reverse\"\n | \"column-reverse\";\n\nexport type SizeOption =\n | \"none\"\n | \"4xs\"\n | \"3xs\"\n | \"2xs\"\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\";\n\nexport const borderRadiusShapeMap = {\n sharp: \"none\",\n pill: \"full\",\n rounded: undefined,\n};\n\nfunction ps(styles: any) {\n // 1. iterate over the keys of the styles object\n // 2. for each key, check is is valid css property\n}\n\ntype CSS = any;\n\ntype ParrotStyleDef = { variants: Record<string, CSS> };\n","import * as React from \"react\";\nimport { AriaPopoverProps, Overlay, usePopover } from \"react-aria\";\nimport { OverlayTriggerState } from \"react-stately\";\nimport { useTheme } from \"../theme/theme-provider\";\n\ninterface PopoverProps extends Omit<AriaPopoverProps, \"popoverRef\"> {\n state: OverlayTriggerState;\n children: React.ReactNode;\n}\n\nexport function Popover({ state, children, ...props }: PopoverProps) {\n const popoverRef = React.useRef(null);\n\n const theme = useTheme();\n\n const { popoverProps, underlayProps } = usePopover(\n { ...props, popoverRef },\n state\n );\n\n return (\n <Overlay>\n <div {...underlayProps} className=\"underlay\"></div>\n <div\n data-color={theme?.color}\n data-radius={theme?.radius}\n {...popoverProps}\n ref={popoverRef}\n className=\"parrot-theme popover\"\n >\n {children}\n </div>\n </Overlay>\n );\n}\n","import { DateValue } from \"@react-types/calendar\";\nimport * as React from \"react\";\nimport {\n AriaCalendarCellProps,\n AriaCalendarGridProps,\n AriaCalendarProps,\n mergeProps,\n useCalendar,\n useCalendarCell,\n useCalendarGrid,\n useFocusRing,\n useLocale,\n} from \"react-aria\";\nimport { CalendarState, useCalendarState } from \"react-stately\";\nimport {\n CalendarDate,\n DateDuration,\n createCalendar,\n endOfMonth,\n getWeeksInMonth,\n isSameMonth,\n} from \"@internationalized/date\";\nimport { Flex } from \"../flex\";\nimport { IconButton } from \"../button\";\nimport { Text } from \"../text\";\nimport { HiChevronLeft, HiChevronRight } from \"react-icons/hi\";\nimport { range } from \"../../utils/array\";\nimport { InputVariantProps } from \"../input/input\";\nimport { Color } from \"../../utils/theme\";\n\ninterface CalendarProps\n extends AriaCalendarProps<DateValue>,\n InputVariantProps {\n numberOfMonths?: number;\n}\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n ({ numberOfMonths = 1, color, ...props }, ref) => {\n const { locale } = useLocale();\n const state = useCalendarState({\n ...props,\n locale,\n createCalendar,\n visibleDuration: { months: numberOfMonths },\n });\n\n const { calendarProps, prevButtonProps, nextButtonProps, title } =\n useCalendar(props, state);\n return (\n <Flex\n color={color}\n inline\n gap={\"xs\"}\n direction={\"column\"}\n ref={ref}\n {...calendarProps}\n className=\"calendar\"\n >\n <Flex align={\"center\"} justify={\"space-between\"} className=\"header\">\n <IconButton\n variant=\"ghost\"\n radius={\"md\"}\n size={\"xs\"}\n color={\"gray\"}\n {...prevButtonProps}\n >\n <HiChevronLeft size={20} />\n </IconButton>\n\n <Text color=\"gray\" size=\"sm\" weight={\"medium\"} as=\"h2\">\n {title}\n </Text>\n <IconButton\n variant=\"ghost\"\n radius=\"md\"\n size={\"xs\"}\n color=\"gray\"\n {...nextButtonProps}\n >\n <HiChevronRight size={20} />\n </IconButton>\n </Flex>\n\n <Flex gap={\"xl\"}>\n {range(1, numberOfMonths).map((n) => {\n return (\n <CalendarGrid\n color={color}\n key={n}\n state={state}\n offset={{ months: n - 1 }}\n />\n );\n })}\n </Flex>\n </Flex>\n );\n }\n);\n\ntype CalendarGridProps = AriaCalendarGridProps & {\n state: CalendarState;\n offset?: DateDuration;\n color?: Color;\n};\n\nfunction CalendarGrid({\n state,\n offset = {},\n color,\n ...props\n}: CalendarGridProps) {\n const { locale } = useLocale();\n const startDate = state.visibleRange.start.add(offset);\n const endDate = endOfMonth(startDate);\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n { startDate, endDate, ...props },\n state\n );\n\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale);\n\n return (\n <table {...gridProps}>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, index) => (\n <th key={index}>\n <div className=\"date-cell\">\n <Text size={\"sm\"} variant=\"lighter\" weight={\"medium\"}>\n {day}\n </Text>\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {[...new Array(weeksInMonth).keys()].map((weekIndex) => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date, index) =>\n date ? (\n <CalendarCell\n color={color}\n state={state}\n date={date}\n key={index}\n currentMonth={startDate}\n ></CalendarCell>\n ) : (\n <td key={index}></td>\n )\n )}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\ntype CalendarCellProps = AriaCalendarCellProps & {\n state: CalendarState;\n currentMonth: CalendarDate;\n color?: Color;\n};\n\nfunction CalendarCell({\n state,\n currentMonth,\n color,\n ...props\n}: CalendarCellProps) {\n const ref = React.useRef(null);\n const {\n cellProps,\n buttonProps,\n isSelected,\n isDisabled,\n isUnavailable,\n formattedDate,\n } = useCalendarCell(props, state, ref);\n\n const { focusProps, isFocusVisible, isFocused } = useFocusRing();\n const isOutsideMonth = !isSameMonth(currentMonth, props.date);\n\n return (\n <td {...cellProps}>\n <div\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n data-hidden={isOutsideMonth}\n data-selected={isSelected}\n data-disabled={isDisabled}\n data-unavailable={isUnavailable}\n data-focused={isFocused}\n data-focus-visible={isFocusVisible}\n className=\"date-cell\"\n data-color={color}\n >\n {formattedDate}\n </div>\n </td>\n );\n}\n\nCalendar.displayName = \"Calendar\";\n","import { omit, pick } from \"./object\";\nimport { Dict } from \"./types\";\n\nexport function range(start = 0, end: number, step = 1): Array<number> {\n const result: Array<number> = [];\n \n for (let index = start; index <= end; index += step) {\n result.push(index);\n }\n \n return result;\n }\n \n export function findObjectInArray<O extends Dict>(\n array: Array<O>,\n key: keyof O,\n value: unknown\n ): O | undefined {\n return array.find((item) => {\n return item[key] === value;\n });\n }\n \n export function omitArray<O extends Dict>(array: Array<O>, keys: (keyof O)[]) {\n return array.map((item) => omit(item, keys));\n }\n \n export function pickArray<O extends Dict>(array: Array<O>, keys: (keyof O)[]) {\n return array.map((item) => pick(item, keys));\n }","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { DateField } from \"./date-field\";\nimport { Calendar } from \"./calendar\";\nimport { AriaDatePickerProps, useDatePicker } from \"react-aria\";\nimport { DateValue } from \"@internationalized/date\";\nimport { Popover } from \"../popover\";\nimport { useDatePickerState } from \"react-stately\";\nimport { IconButton } from \"../button\";\nimport { HiOutlineCalendar } from \"react-icons/hi\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { convertDateToDateValue } from \"./date-picker.utils\";\nimport { cx } from \"../../utils/dom\";\nimport { useSpace } from \"../space/space\";\nimport { InputVariantProps } from \"../input/input\";\n\ninterface DatePickerProps\n extends Omit<\n AriaDatePickerProps<DateValue>,\n \"value\" | \"defaultValue\" | \"onChange\"\n >,\n InputVariantProps {\n numberOfMonths?: number;\n error?: string;\n value?: Date;\n defaultValue?: Date;\n onChange?: (date: Date, proxiedValue: DateValue) => void;\n dropdownIcon?: React.ReactNode;\n}\n\nexport const DatePicker = React.forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n appearance = \"filled\",\n size = \"md\",\n color,\n shape,\n numberOfMonths,\n value,\n onChange,\n defaultValue,\n dropdownIcon = <HiOutlineCalendar size={16} />,\n ...props\n },\n ref\n ) => {\n const space = useSpace();\n function _onChange(date: DateValue) {\n onChange?.(new Date(date.year, date.month, date.day), date);\n }\n\n // convert Date to DateValue\n const proxyDateValues = React.useMemo(() => {\n return {\n value: value ? convertDateToDateValue(value) : undefined,\n defaultValue: defaultValue\n ? convertDateToDateValue(defaultValue)\n : undefined,\n };\n }, [value?.toString(), defaultValue?.toString()]);\n\n const newPropsWithProxies = {\n ...props,\n onChange: onChange ? _onChange : undefined,\n value: proxyDateValues.value,\n defaultValue: proxyDateValues.defaultValue,\n };\n\n const state = useDatePickerState(newPropsWithProxies);\n const pickerRef = React.useRef(null);\n const {\n groupProps,\n calendarProps,\n fieldProps,\n buttonProps,\n errorMessageProps,\n labelProps,\n } = useDatePicker(newPropsWithProxies, state, pickerRef);\n\n return (\n <Flex\n data-size={size}\n className={cx({\n [space.compactItemWrapperAdjust]: true,\n \"p-input-group\": true,\n })}\n stretchX\n stack\n gap={\"xs\"}\n >\n {props.label && <InputLabel {...labelProps}>{props.label}</InputLabel>}\n <Flex ref={ref} gap={\"xl\"} stretchX inline stack>\n <Flex\n className={cx({\n \"date-picker-trigger\": true,\n \"p-input\": true,\n ...space.classNames,\n })}\n ref={pickerRef}\n justify={\"space-between\"}\n align={\"center\"}\n data-appearance={appearance}\n data-color={color}\n {...groupProps}\n >\n <DateField\n appearance={appearance}\n size={size}\n {...fieldProps}\n ></DateField>\n <IconButton\n size=\"sm\"\n variant=\"ghost\"\n color={color}\n {...buttonProps}\n >\n {dropdownIcon}\n </IconButton>\n </Flex>\n\n {state.isOpen && (\n <Popover\n offset={8}\n state={state}\n triggerRef={pickerRef}\n placement=\"bottom start\"\n >\n <Calendar\n color={color}\n {...calendarProps}\n numberOfMonths={numberOfMonths}\n ></Calendar>\n </Popover>\n )}\n </Flex>\n {props.error && (\n <InputError {...errorMessageProps}>{props.error}</InputError>\n )}\n </Flex>\n );\n }\n);\n\nDatePicker.displayName = \"DatePicker\";\n","import { DateValue, createCalendar } from \"@internationalized/date\";\nimport * as React from \"react\";\nimport {\n AriaDatePickerProps,\n useDateField,\n useDateSegment,\n useLocale,\n} from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { DateFieldState, useDateFieldState } from \"react-stately\";\nimport type { DateSegment } from \"react-stately\";\nimport { Text } from \"../text\";\nimport { mergeRefs } from \"../../utils/dom\";\nimport { InputVariantProps } from \"../input/input\";\n\ninterface DateFieldProps\n extends AriaDatePickerProps<DateValue>,\n InputVariantProps {\n error?: string;\n}\n\nexport const DateField = React.forwardRef<HTMLDivElement, DateFieldProps>(\n (props, ref) => {\n const { locale } = useLocale();\n\n const state = useDateFieldState({ ...props, locale, createCalendar });\n\n const fieldRef = React.useRef(null);\n const { fieldProps } = useDateField(props, state, fieldRef);\n\n return (\n <Flex\n style={{ padding: 4, flex: 1 }}\n stretchY\n ref={mergeRefs(fieldRef, ref)}\n inline\n {...fieldProps}\n >\n {state.segments.map((segment, i) => {\n return (\n <DateSegment key={i} segment={segment} state={state}></DateSegment>\n );\n })}\n </Flex>\n );\n }\n);\n\nfunction DateSegment({\n segment,\n state,\n}: {\n segment: DateSegment;\n state: DateFieldState;\n}) {\n const ref = React.useRef(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n const segmentMaxValue = segment.maxValue ?? 0;\n\n return (\n <Flex\n className=\"date-input-segment\"\n align={\"center\"}\n justify={\"center\"}\n ref={ref}\n data-placeholder={segment.isPlaceholder}\n {...segmentProps}\n style={{\n minWidth: segmentMaxValue.toString().length + \"ch\",\n color: segment.text == \"/\" ? \"var(--color-6)\" : \"var(--color-12)\",\n }}\n >\n <Text\n size={\"sm\"}\n variant={segment.isPlaceholder ? \"dark\" : \"lighter\"}\n as=\"span\"\n aria-hidden=\"true\"\n style={{\n color: \"inherit\",\n display: \"block\",\n height: segment.isPlaceholder ? \"\" : 0,\n pointerEvents: \"none\",\n visibility: segment.isPlaceholder ? undefined : \"hidden\",\n fontStyle: \"italic\",\n position: segment.isPlaceholder ? undefined : \"absolute\",\n }}\n >\n {segment.placeholder}\n </Text>\n {segment.isPlaceholder ? \"\" : segment.text}\n </Flex>\n );\n}\n\nDateField.displayName = \"DateField\";\n","import { CalendarDate } from \"@internationalized/date\";\n\nexport function convertDateToDateValue(date:Date){\n return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate())\n}","import * as React from \"react\";\nimport { hashCode } from \"../../utils/helpers\";\nimport { cx } from \"../../utils/dom\";\nimport {\n BorderRadius,\n Color,\n ColorVariant,\n supportedColors,\n} from \"../../utils/theme\";\nimport { useTheme } from \"../theme/theme-provider\";\n\ntype AvatarSize = \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n\ntype AvatarShape = \"circle\" | \"square\";\n\nexport interface AvatarProps {\n src?: string;\n alt?: string;\n name?: string;\n fallback?: React.ReactNode;\n radius?: BorderRadius;\n color?: Color;\n variant?: ColorVariant;\n size?: AvatarSize;\n shape?: AvatarShape;\n}\n\nexport const Avatar = React.forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<AvatarProps>\n>(\n (\n {\n src,\n alt,\n name,\n color,\n variant = \"light\",\n fallback,\n children,\n size = \"md\",\n shape = \"square\",\n ...props\n },\n ref\n ) => {\n const [imageError, setImageError] = React.useState(false);\n const theme = useTheme();\n\n function getAvatarRadius(): BorderRadius {\n if (theme?.avatarRadiusSize && shape !== \"circle\") {\n return theme.avatarRadiusSize;\n }\n\n if (shape === \"circle\") {\n return \"full\";\n }\n\n return \"md\";\n }\n\n const defaultColor = React.useMemo(() => {\n const hash = hashCode(name || \"\");\n return supportedColors[hash % supportedColors.length];\n }, [name]);\n\n const renderContent = () => {\n if (src && !imageError) {\n return (\n <img\n onLoad={() => setImageError(false)}\n onError={() => setImageError(true)}\n src={src}\n alt={alt}\n />\n );\n }\n\n if (imageError && !children) {\n return fallback;\n }\n\n if (!src && !children && name) {\n return <span>{name.charAt(0)}</span>;\n }\n\n return children;\n };\n\n return (\n <div\n className={cx([\"p-avatar\", `avatar-size-${size}`])}\n data-radius={getAvatarRadius()}\n data-color={color ?? defaultColor}\n data-variant={variant}\n data-interactive={false}\n ref={ref}\n {...props}\n >\n {renderContent()}\n </div>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n","import * as React from \"react\";\nimport { VisuallyHidden } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport type { ActionStatus } from \"../../utils/types\";\nimport {\n HiOutlineCheckCircle,\n HiOutlineDocumentAdd,\n HiOutlineExclamationCircle,\n HiOutlinePaperClip,\n HiOutlineRefresh,\n HiOutlineTrash,\n} from \"react-icons/hi\";\nimport { Text } from \"../text\";\nimport { Loader } from \"../loader\";\nimport { IconButton } from \"../button\";\nimport { InputError } from \"../input-error\";\nimport { InputLabel } from \"../input-label\";\nimport { useDrop, FileDropItem } from \"react-aria\";\nimport { isEmptyArray } from \"../../utils/assertions\";\nimport { id } from \"../../utils/helpers\";\nimport { Color } from \"../../utils/theme\";\n\nexport type Upload = {\n name: string;\n url: string;\n id: string;\n file?: File;\n status?: ActionStatus;\n progress?: number;\n};\n\n// onChange\n// 1. convert files into upload type with raw file\n// onFileUpload should now take an Array<Upload> argument\n// if you need to do a remote upload outside the component you have access to the raw files.\n// write utility function to extract files from Upload object\n// if you want to use the component as a controlled component, simply pass in an uploads prop.\n// if it's a single upload, display inside component\n// if it's multiple uploads show them in the list of uploads as file name and progress bar\n\ninterface FileUploaderProps {\n onFileUpload?: (files: Array<Upload>) => void;\n onRemoveFile?: () => void;\n onStatusChange?: (status: ActionStatus) => void;\n error?: React.ReactNode;\n label?: React.ReactNode;\n allowMultiple?: boolean;\n uploads?: Array<Upload>;\n hideFileList?: boolean;\n color?: Color;\n}\n\nexport const FileUploader = React.forwardRef<HTMLDivElement, FileUploaderProps>(\n (\n {\n onFileUpload,\n onRemoveFile,\n error,\n label,\n allowMultiple,\n uploads: controlledUploads,\n hideFileList,\n color,\n },\n ref\n ) => {\n const [_uploads, setUploads] = React.useState<Array<Upload>>([]);\n\n const uploads = controlledUploads ?? _uploads;\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n const wrapperRef = React.useRef(null);\n\n const { dropProps, isDropTarget } = useDrop({\n ref: wrapperRef,\n async onDrop(e) {\n const files = await Promise.all(\n (\n e.items.filter(\n (item) => item.kind === \"file\"\n ) as Array<FileDropItem>\n ).map(async (file) => {\n const f = await file.getFile();\n return f;\n })\n );\n\n const uploads = files.map(convertFileToUpload);\n\n onUpload(uploads);\n },\n });\n\n function onUpload(uploads: Array<Upload>) {\n console.log(uploads);\n if (isEmptyArray(uploads)) {\n return;\n }\n\n setUploads(uploads);\n onFileUpload?.(uploads);\n }\n\n function onChange(e: React.ChangeEvent<HTMLInputElement>) {\n const rawFiles = e.target.files;\n\n if (rawFiles?.length) {\n const files = Array.from(rawFiles).map(convertFileToUpload);\n onUpload(files);\n inputRef.current && (inputRef.current.value = \"\");\n }\n }\n\n function convertFileToUpload(file: File): Upload {\n return {\n name: file.name,\n id: id(),\n url: URL.createObjectURL(file),\n status: \"success\",\n file,\n };\n }\n\n function handleRemoveFile() {\n setUploads([]);\n onRemoveFile?.();\n }\n\n function handleRetry() {\n console.log(\"retry\");\n }\n\n const isIdle =\n allowMultiple ||\n (!allowMultiple && uploads[0]?.status === \"idle\") ||\n !uploads.length;\n const isUploading = !allowMultiple && uploads[0]?.status === \"loading\";\n const isUploaded = !allowMultiple && uploads[0]?.status === \"success\";\n const isFailed = !allowMultiple && uploads[0]?.status === \"error\";\n\n return (\n <Flex ref={ref} stack gap={\"xs\"}>\n {label && <InputLabel>{label}</InputLabel>}\n <label\n className=\"file-uploader-wrapper\"\n ref={wrapperRef}\n {...dropProps}\n data-color={color}\n data-dropping={isDropTarget}\n data-state={\n allowMultiple || !uploads.length ? \"idle\" : uploads[0]?.status\n }\n >\n <VisuallyHidden>\n <input\n ref={inputRef}\n multiple={allowMultiple}\n onChange={onChange}\n type={isIdle ? \"file\" : \"hidden\"}\n />\n </VisuallyHidden>\n\n {isIdle && (\n <Flex align=\"center\" gap={\"xs\"}>\n <HiOutlineDocumentAdd className=\"state-icon\" size={20} />\n <Text color={\"inherit\"} size=\"sm\">\n Click or drag files here to upload\n </Text>\n </Flex>\n )}\n\n {isUploading && (\n <Flex align={\"center\"} gap={\"xs\"}>\n <Loader size=\"xs\" />\n <Text color=\"inherit\" size=\"sm\">\n Name_of_file.ext / Uploading...\n </Text>\n </Flex>\n )}\n\n {isUploaded && (\n <Flex stretchX align={\"center\"} justify={\"space-between\"}>\n <Flex align={\"center\"} gap={\"xs\"}>\n <HiOutlineCheckCircle size={16} />\n <Text color=\"green\" size=\"sm\">\n File successfully uploaded\n </Text>\n </Flex>\n\n <IconButton\n onPress={handleRemoveFile}\n variant={\"outline\"}\n color=\"green\"\n size=\"xs\"\n >\n <HiOutlineTrash size={16} />\n </IconButton>\n </Flex>\n )}\n\n {isFailed && (\n <Flex stretchX justify={\"space-between\"}>\n <Flex align={\"center\"} gap={\"xs\"}>\n <HiOutlineExclamationCircle className=\"state-icon\" />\n <Text color={\"tomato\"} size=\"sm\">\n Failed to upload file\n </Text>\n </Flex>\n\n <IconButton\n onPress={handleRetry}\n variant={\"outline\"}\n color={\"tomato\"}\n size={\"xs\"}\n >\n <HiOutlineRefresh size={16} />\n </IconButton>\n </Flex>\n )}\n\n <Flex></Flex>\n </label>\n\n {uploads.length > 1 && !hideFileList && (\n <Flex\n style={{ marginTop: 10 }}\n stack\n gap={\"sm\"}\n className=\"upload-list\"\n >\n {uploads.map((upload) => (\n <Flex align={\"center\"} gap={\"xs\"} key={upload.id}>\n {upload.status === \"loading\" && <Loader></Loader>}\n {upload.status === \"success\" && <HiOutlinePaperClip />}\n <Text size=\"sm\" color={\"gray\"}>\n {upload.name}\n </Text>\n </Flex>\n ))}\n </Flex>\n )}\n\n {error && <InputError>{error}</InputError>}\n </Flex>\n );\n }\n);\n\nFileUploader.displayName = \"FileUploader\";\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\ninterface SeparatorProps extends React.ComponentPropsWithoutRef<\"div\"> {\n orientation?: \"horizontal\" | \"vertical\";\n color?: Color;\n opacity?: \"faint\" | \"medium\" | \"strong\";\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ orientation, className, color, opacity, ...props }, ref) => {\n return (\n <div\n data-opacity={opacity}\n data-color={color}\n data-orientation={orientation}\n className={cx([\"p-separator\", className])}\n ref={ref}\n {...props}\n ></div>\n );\n }\n);\n\nSeparator.displayName = \"Separator\";\n","import * as React from \"react\";\nimport { Box } from \"../box\";\nimport { AriaProgressBarProps, useProgressBar } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport { cx } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\ninterface ProgressProps\n extends AriaProgressBarProps,\n React.ComponentPropsWithoutRef<\"div\"> {\n height?: number;\n color?: Color;\n}\n\nexport const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ height = 2, className, style, color, ...props }, ref) => {\n const { minValue = 0, maxValue = 100, value = 0, label } = props;\n const { progressBarProps, labelProps } = useProgressBar(props);\n const percent = ((value - minValue) / (maxValue - minValue)) * 100;\n const barWidth = `${percent}%`;\n\n return (\n <Flex\n data-color={color}\n style={style}\n className={cx([className, \"progress-bar\"])}\n stack\n {...progressBarProps}\n >\n {label && <Text {...labelProps}>{label}</Text>}\n <div\n className=\"progress-wrapper\"\n style={{\n height,\n background: \"var(--color-3)\",\n position: \"relative\",\n borderRadius: 60,\n overflow: \"hidden\",\n }}\n ref={ref}\n >\n <Box\n position={\"absolute\"}\n className=\"progress\"\n style={{\n left: 0,\n top: 0,\n height: \"100%\",\n width: barWidth,\n background: \"var(--color-10)\",\n transition: \"all 0.3s ease\",\n }}\n ></Box>\n </div>\n </Flex>\n );\n }\n);\n\nProgress.displayName = \"Progress\";\n","import { Item, Root } from \"./tabs\";\n\nexport const TabObject = {\n Item: Item,\n Root: Root,\n};\n\nexport { Root, Item } from \"./tabs\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from \"react\";\nimport {\n AriaTabListProps,\n AriaTabPanelProps,\n useTab,\n useTabList,\n useTabPanel,\n} from \"react-aria\";\nimport { Item as AriaItem, TabListState, useTabListState } from \"react-stately\";\nimport { Node } from \"../../utils/types\";\nimport { Box } from \"../box\";\n\nexport interface TabsProps extends AriaTabListProps<any> {\n orientation?: \"horizontal\" | \"vertical\";\n}\n\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n ({ ...props }, ref) => {\n const state = useTabListState(props);\n const tabRef = React.useRef<HTMLDivElement>(null);\n\n const [indicatorStyles, setIndicatorStyles] = React.useState({\n width: 0,\n left: 0,\n });\n\n const indicatorRef = React.useRef(null);\n\n const { tabListProps } = useTabList(props, state, tabRef);\n\n React.useEffect(() => {\n const selected: any = tabRef?.current?.querySelector(\n '.tab[aria-selected=\"true\"]'\n );\n setIndicatorStyles({\n width: selected?.offsetWidth,\n left: selected?.offsetLeft,\n });\n }, [state.selectedKey]);\n\n return (\n <Box position={\"relative\"} ref={ref} className=\"p-tabs\">\n <div {...tabListProps} ref={tabRef} className=\"p-tab-list\">\n <Box\n className=\"indicator\"\n style={{\n left: indicatorStyles?.left,\n bottom: 0,\n background: \"$violet10\",\n height: 2,\n marginBottom: -1,\n width: indicatorStyles?.width,\n transition: \"all 0.2s ease\",\n }}\n ref={indicatorRef}\n position={\"absolute\"}\n ></Box>\n {[...state.collection].map((item) => (\n <Tab\n orientation={props.orientation}\n key={item.key}\n item={item as any}\n state={state}\n ></Tab>\n ))}\n </div>\n <TabPanel key={state?.selectedItem?.key} state={state} />\n </Box>\n );\n }\n);\n\ntype TabProps = {\n item: Node<unknown>;\n state: TabListState<unknown>;\n orientation?: \"horizontal\" | \"vertical\";\n};\n\nfunction Tab({ item, state }: TabProps) {\n const { key, rendered } = item;\n const ref = React.useRef(null);\n\n const { tabProps, isDisabled, isSelected } = useTab({ key }, state, ref);\n\n return (\n <div\n id={`tab-${key}`}\n className=\"p-tab\"\n ref={ref}\n data-disabled={isDisabled}\n data-selected={isSelected}\n {...tabProps}\n >\n {rendered}\n </div>\n );\n}\n\ntype TabPanelProps = AriaTabPanelProps & {\n state: TabListState<unknown>;\n};\n\nfunction TabPanel({ state, ...props }: TabPanelProps) {\n const ref = React.useRef(null);\n const { tabPanelProps } = useTabPanel(props, state, ref);\n\n return (\n <div {...tabPanelProps} ref={ref}>\n {state.selectedItem?.props.children}\n </div>\n );\n}\n\nexport const Root = Tabs;\nexport const Item = AriaItem;\n\nTabs.displayName = \"Tabs\";\n","import * as React from \"react\";\nimport {\n AriaSwitchProps,\n VisuallyHidden,\n useFocusRing,\n useHover,\n usePress,\n useSwitch,\n} from \"react-aria\";\nimport { useToggleState } from \"react-stately\";\nimport { Flex } from \"../flex\";\nimport { Color, ColorVariant } from \"../../utils/theme\";\n\ninterface Props extends AriaSwitchProps {\n color?: Color;\n variant?: ColorVariant;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport const Switch = React.forwardRef<HTMLLabelElement, Props>(\n ({ color = \"violet\", size = \"sm\", children, ...props }, ref) => {\n const { isHovered, hoverProps } = useHover(props);\n const { isPressed, pressProps } = usePress(props);\n const state = useToggleState(props);\n const switchRef = React.useRef(null);\n const { inputProps } = useSwitch(props, state, switchRef);\n const { isFocusVisible, focusProps } = useFocusRing();\n\n return (\n <Flex\n ref={ref as any}\n style={{\n opacity: props.isDisabled ? 0.4 : 1,\n }}\n align={\"center\"}\n gap={\"xs\"}\n as=\"label\"\n >\n <VisuallyHidden>\n <input ref={switchRef} {...inputProps} {...focusProps} />\n </VisuallyHidden>\n\n <span\n data-color={color}\n data-hovered={isHovered}\n data-disabled={props.isDisabled}\n data-selected={state.isSelected}\n data-focused={isFocusVisible}\n className=\"p-switch track\"\n data-size={size}\n {...hoverProps}\n >\n <Flex\n data-selected={state.isSelected}\n data-pressed={isPressed}\n className=\"thumb\"\n {...pressProps}\n />\n </span>\n {children}\n </Flex>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { RadioGroup } from \"../radio\";\nimport { AriaRadioProps, VisuallyHidden, useRadio } from \"react-aria\";\nimport { RadioContext } from \"../radio/radio\";\nimport { HiCheck } from \"react-icons/hi\";\nimport { Color, supportedColors } from \"../../utils/theme\";\n\n// TODO Rewrite this component\n\ninterface ColorOptionProps extends AriaRadioProps {\n color: Color;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst ColorOption = React.forwardRef<HTMLLabelElement, ColorOptionProps>(\n ({ size, ...props }, ref) => {\n const state = React.useContext(RadioContext);\n if (!state) throw new Error(\"Color Option must be used within a ColorTray\");\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(props, state, inputRef);\n\n return (\n <label ref={ref}>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n <div\n className=\"color-button\"\n data-size={size}\n data-selected={inputProps.checked}\n style={{ background: props.value }}\n >\n {inputProps.checked && <HiCheck strokeWidth={1} />}\n </div>\n </label>\n );\n }\n);\n\nColorOption.displayName = \"ColorOption\";\n\ninterface ColorTrayProps extends React.ComponentProps<typeof RadioGroup> {\n trayColors?: Array<Color>;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\n// TODO - rewrite this component -\n//colors should be passed in as an array of actual color values. lights & darks\n\nexport const ColorTray = React.forwardRef<HTMLDivElement, ColorTrayProps>(\n (\n {\n trayColors = [\n \"tomato\",\n \"orange\",\n \"amber\",\n \"green\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"pink\",\n \"violet\",\n \"gray\",\n ],\n size,\n ...props\n },\n ref\n ) => {\n const dedupedColors = React.useMemo(() => {\n return Array.from(new Set(trayColors));\n }, [trayColors]);\n\n return (\n <RadioGroup\n {...props}\n aria-labelledby=\"color-tray\"\n gap={props.gap || \"3xs\"}\n stack\n ref={ref}\n >\n <Flex justify={props.justify} gap={\"3xs\"} ref={ref}>\n {dedupedColors.map((color) => {\n return (\n <ColorOption\n size={size}\n aria-labelledby={color}\n value={\"\"}\n color={color}\n key={color}\n ></ColorOption>\n );\n })}\n </Flex>\n <Flex justify={props.justify} gap={\"3xs\"} ref={ref}>\n {dedupedColors.map((color) => {\n return (\n <ColorOption\n size={size}\n aria-labelledby={`${color}-light`}\n value={\"\"}\n color={color}\n key={`${color}-light`}\n ></ColorOption>\n );\n })}\n </Flex>\n </RadioGroup>\n );\n }\n);\n\nColorTray.displayName = \"ColorTray\";\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { RadioGroup } from \"../radio\";\nimport { AriaRadioProps, VisuallyHidden, useRadio } from \"react-aria\";\nimport { RadioContext } from \"../radio/radio\";\nimport {\n HiOutlineAnnotation,\n HiOutlineArchive,\n HiOutlineAtSymbol,\n HiOutlineBadgeCheck,\n HiOutlineCreditCard,\n HiOutlineCurrencyDollar,\n HiOutlineCursorClick,\n HiOutlineDocumentDownload,\n HiOutlineFire,\n HiOutlineGlobe,\n HiOutlineGlobeAlt,\n HiOutlineHeart,\n HiOutlineLightningBolt,\n HiOutlineLocationMarker,\n HiOutlineMoon,\n HiOutlineSparkles,\n HiOutlineSpeakerphone,\n HiOutlineTag,\n HiOutlineTerminal,\n HiOutlineUserCircle,\n} from \"react-icons/hi\";\n\ntype IconOptionType = {\n name: string;\n icon: React.ReactNode;\n};\n\ninterface IconOptionProps extends AriaRadioProps {\n color: string;\n icon: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst IconOption = React.forwardRef<HTMLLabelElement, IconOptionProps>(\n ({ color, icon, size, ...props }, ref) => {\n const state = React.useContext(RadioContext);\n if (!state) throw new Error(\"Color Option must be used within a ColorTray\");\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(props, state, inputRef);\n\n return (\n <label ref={ref}>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n\n <div\n className=\"p-icon-button\"\n data-size={size}\n data-checked={inputProps.checked}\n style={{\n background: inputProps.checked ? color : \"none\",\n }}\n >\n {React.cloneElement(icon as React.ReactElement, {\n className: \"tray-icon\",\n })}\n </div>\n </label>\n );\n }\n);\n\nconst defaultIcons: Array<IconOptionType> = [\n { name: \"globe\", icon: <HiOutlineGlobe /> },\n { name: \"currency\", icon: <HiOutlineCurrencyDollar /> },\n { name: \"internet\", icon: <HiOutlineGlobeAlt /> },\n { name: \"box\", icon: <HiOutlineArchive /> },\n { name: \"chat-bubble\", icon: <HiOutlineAnnotation /> },\n { name: \"fire\", icon: <HiOutlineFire /> },\n { name: \"check-ribbon\", icon: <HiOutlineBadgeCheck /> },\n { name: \"sparkles\", icon: <HiOutlineSparkles /> },\n { name: \"megaphone\", icon: <HiOutlineSpeakerphone /> },\n { name: \"credit-card\", icon: <HiOutlineCreditCard /> },\n { name: \"heart\", icon: <HiOutlineHeart /> },\n { name: \"location\", icon: <HiOutlineLocationMarker /> },\n { name: \"click\", icon: <HiOutlineCursorClick /> },\n { name: \"bolt\", icon: <HiOutlineLightningBolt /> },\n { name: \"download\", icon: <HiOutlineDocumentDownload /> },\n { name: \"tag\", icon: <HiOutlineTag /> },\n { name: \"at\", icon: <HiOutlineAtSymbol /> },\n { name: \"user\", icon: <HiOutlineUserCircle /> },\n { name: \"terminal\", icon: <HiOutlineTerminal /> },\n { name: \"moon\", icon: <HiOutlineMoon /> },\n];\n\nIconOption.displayName = \"IconOption\";\n\ninterface IconTrayProps extends React.ComponentProps<typeof RadioGroup> {\n icons?: Array<IconOptionType>;\n color: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport const IconTray = React.forwardRef<HTMLDivElement, IconTrayProps>(\n ({ icons = defaultIcons, color, size, ...props }, ref) => {\n return (\n <RadioGroup aria-label=\"icon-tray\" ref={ref} {...props}>\n <Flex justify={props.justify}>\n {icons.slice(0, 10).map((icon) => (\n <IconOption\n aria-label={icon.name}\n size={size}\n color={color}\n value={icon.name}\n key={icon.name}\n icon={icon.icon}\n />\n ))}\n </Flex>\n <Flex justify={props.justify}>\n {icons.slice(10, 20).map((icon) => (\n <IconOption\n aria-label={icon.name}\n size={size}\n color={color}\n value={icon.name}\n key={icon.name}\n icon={icon.icon}\n />\n ))}\n </Flex>\n </RadioGroup>\n );\n }\n);\n\nIconTray.displayName = \"IconTray\";\n","import React from \"react\";\nimport { Flex, FlexProps } from \"../flex\";\nimport { Color, ColorVariant } from \"../../utils/theme\";\n\ninterface StickerProps extends FlexProps {\n padded?: boolean;\n color?: Color;\n variant?: ColorVariant;\n}\n\nexport const Sticker = React.forwardRef<HTMLDivElement, StickerProps>(\n (\n {\n variant = \"outline\",\n color = \"violet\",\n padded = true,\n gap = \"sm\",\n ...props\n },\n ref\n ) => {\n return (\n <Flex\n style={{\n borderRadius: \"var(--radius-md)\",\n padding: padded ? \"var(--space-4)\" : undefined,\n }}\n data-variant={variant}\n data-color={color}\n ref={ref}\n gap={gap}\n {...props}\n ></Flex>\n );\n }\n);\n\nSticker.displayName = \"Sticker\";\n","import * as React from \"react\";\n\nexport function Table() {\n return <div></div>;\n}\n","import React from \"react\";\nimport { Box } from \"../box\";\nimport { Flex } from \"../flex\";\n\n// https://dribbble.com/shots/20456228-Audit-trail\n// https://dribbble.com/shots/18901487-Attio-Record-Activity-Feed\n// https://dribbble.com/shots/20146723-Sales-Status-Ditto-CRM\n\nexport interface TimelineProps<T> {\n items: Array<T>;\n render?(item: T): React.ReactNode;\n labelKey?: keyof T;\n getIndicator?(item: T): React.ReactNode;\n hideLastItemTail?: boolean;\n}\n\nexport function Timeline<T>({\n items,\n render,\n labelKey,\n getIndicator,\n hideLastItemTail = true,\n}: TimelineProps<T>) {\n return (\n <Box>\n {items.map((item, index) => {\n const indicator = getIndicator?.(item) ?? (\n <div color={\"blue\"} data-variant={\"outline\"} />\n );\n\n const content =\n render?.(item) ?? (item[labelKey as keyof T] as React.ReactNode);\n\n const isLast = index === items.length - 1;\n\n return (\n <Flex className=\"p-timeline-item\" key={index}>\n <Flex align={\"center\"} stack>\n <Flex className=\"p-timeline-indicator-container\">\n {indicator}\n </Flex>\n\n {isLast && hideLastItemTail ? null : (\n <div className=\"p-timeline-item-tail\" />\n )}\n </Flex>\n\n <Flex stretchX className=\"p-timeline-item-content\">\n {content}\n </Flex>\n </Flex>\n );\n })}\n </Box>\n );\n}\n","import * as React from \"react\";\nimport {\n AriaModalOverlayProps,\n Overlay as AriaOverlay,\n useDialog,\n useModalOverlay,\n} from \"react-aria\";\nimport {\n OverlayTriggerProps,\n OverlayTriggerState,\n useOverlayTriggerState,\n} from \"react-stately\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport { Button } from \"../button\";\n\nexport interface ModalProps extends AriaModalOverlayProps {\n hideTitle?: boolean;\n state: OverlayTriggerState;\n children?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n onConfirm?(): void;\n onCancel?(): void;\n confirmLabel?: string;\n cancelLabel?: string;\n confirmButtonProps?: React.ComponentProps<typeof Button>;\n cancelButtonProps?: React.ComponentProps<typeof Button>;\n width?: number | string;\n variant?: \"modal\" | \"drawer\";\n}\n\nexport function Overlay({ state, children, ...props }: ModalProps) {\n const modalRef = React.useRef(null);\n\n const { modalProps, underlayProps } = useModalOverlay(props, state, modalRef);\n\n if (!state.isOpen) {\n return null;\n }\n\n return (\n <div className=\"modal-underlay parrot-theme\" {...underlayProps}>\n <div className=\"modal-container\" {...modalProps} ref={modalRef}>\n {children}\n </div>\n </div>\n );\n}\n\nfunction Dialog({\n width = 400,\n title,\n onCancel,\n onConfirm,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n description,\n children,\n state,\n confirmButtonProps,\n cancelButtonProps,\n variant = \"modal\",\n}: ModalProps) {\n const dialogRef = React.useRef(null);\n\n const { dialogProps, titleProps } = useDialog(\n { role: \"alertdialog\" },\n dialogRef\n );\n\n return (\n <div\n className=\"modal-content\"\n data-variant={variant}\n style={{ width }}\n ref={dialogRef}\n {...dialogProps}\n >\n <Flex stack>\n <Flex stack gap={\"3xs\"} className=\"modal-head\">\n {title && (\n <Text\n weight={\"medium\"}\n size={\"md\"}\n color={\"gray\"}\n {...titleProps}\n as=\"div\"\n >\n {title}\n </Text>\n )}\n {description && (\n <Text lineHeight={\"base\"} size={\"xs\"} variant={\"light\"} as=\"div\">\n {description}\n </Text>\n )}\n </Flex>\n <Flex className=\"modal-body\">{children}</Flex>\n </Flex>\n {(onConfirm || onCancel) && (\n <Flex className=\"modal-footer\" gap={\"xs\"} justify={\"end\"} stretchX>\n {onCancel && (\n <Button\n {...cancelButtonProps}\n onPress={state.close}\n variant={\"outline\"}\n color={\"gray\"}\n >\n {cancelLabel}\n </Button>\n )}\n {onConfirm && (\n <Button onPress={onConfirm} {...confirmButtonProps}>\n {confirmLabel}\n </Button>\n )}\n </Flex>\n )}\n </div>\n );\n}\n\nexport function Modal(props: ModalProps) {\n return (\n <Overlay {...props}>\n <Dialog {...props} />\n </Overlay>\n );\n}\n\nexport function useModal(props: OverlayTriggerProps = {}) {\n const state = useOverlayTriggerState(props);\n return state;\n}\n\nModal.useModal = useModal;\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { Tag } from \"../tag/tag\";\nimport { HiX } from \"react-icons/hi\";\nimport { EMAIL_REGEX } from \"../../utils/regex\";\nimport { InputLabel } from \"../input-label\";\nimport { useControlledState } from \"../../hooks/use-controlled-state\";\nimport { InputError } from \"../input-error\";\nimport { IconButton } from \"../button\";\nimport { Box } from \"../box\";\nimport { InputProps } from \"../input/input\";\nimport { borderRadiusShapeMap } from \"../../utils/theme\";\n\ninterface TagField extends InputProps {\n tags?: Array<string>;\n defaultTags?: Array<string>;\n placeholder?: string;\n onInputValueChange?(value: string): void;\n onChange?(tags: Array<string>): void;\n tagVariant?: React.ComponentProps<typeof Tag>[\"variant\"];\n tagColor?: React.ComponentProps<typeof Tag>[\"color\"];\n tagShape?: React.ComponentProps<typeof Tag>[\"shape\"];\n tagSize?: React.ComponentProps<typeof Tag>[\"size\"];\n renderTag?(value: string, onRemove: (value: string) => void): React.ReactNode;\n}\n\nexport function TagInput({\n appearance = \"outline\",\n size = \"md\",\n label,\n error,\n placeholder,\n tags,\n defaultTags,\n tagColor = \"gray\",\n tagVariant = \"light\",\n tagShape = \"rounded\",\n tagSize = \"md\",\n color,\n onChange,\n renderTag,\n shape = \"rounded\",\n}: TagField) {\n const [inputValue, setInputValue] = React.useState(\"\");\n const [values, setValues] = useControlledState<Array<string>>(\n dedupe(tags),\n dedupe(defaultTags) || [],\n onChange\n );\n const [isFocused, setIsFocused] = React.useState(false);\n\n function dedupe(values: Array<string> | undefined) {\n if (!values) return undefined;\n return Array.from(new Set(values));\n }\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n function onInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n const { value } = e.target;\n setInputValue(value);\n }\n\n // function hasTrailingSpace(value: string) {\n // return /\\s$/.test(value);\n // }\n\n function hasTrailingComma(value: string) {\n return /,$/.test(value);\n }\n\n function onInputFocus() {\n setIsFocused(true);\n }\n\n function onInputBlur() {\n setIsFocused(false);\n }\n\n function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n switch (e.key) {\n case \"Enter\":\n case \" \":\n if (isValid(inputValue.trim())) {\n commit([inputValue]);\n }\n break;\n case \"Backspace\":\n if (!inputValue) {\n onRemove(values[values.length - 1]);\n }\n break;\n\n default:\n break;\n }\n }\n\n function captureFocus() {\n inputRef.current?.focus();\n }\n\n function onRemove(value: string) {\n setValues(values.filter((v) => v !== value));\n }\n\n function isValid(value: string) {\n return EMAIL_REGEX.test(value);\n }\n\n function commit(newValues: Array<string>) {\n const validValues = newValues\n .map((v) => v.trim())\n .filter((v) => isValid(v));\n\n if (validValues.length > 0) {\n setInputValue(\"\");\n }\n\n const finalValues = Array.from(new Set([...values, ...validValues]));\n setValues(finalValues);\n }\n\n const showPlaceholder = !inputValue && values.length === 0;\n\n function getInputContainerWidth() {\n if (showPlaceholder) {\n return (placeholder?.length ?? 0) * 10;\n }\n\n if (!showPlaceholder && isFocused) {\n return inputValue?.length * 10 || 10;\n }\n\n return 0;\n }\n\n React.useEffect(() => {\n if (hasTrailingComma(inputValue.trim())) {\n const split = inputValue.split(\",\");\n commit(split);\n }\n }, [inputValue]);\n\n return (\n <Flex data-size={size} className=\"p-input-group\" stack gap={\"xs\"}>\n {label && <InputLabel>{label}</InputLabel>}\n <div\n data-radius={borderRadiusShapeMap[shape]}\n className=\"p-input tag-field\"\n data-color={color}\n data-focused={isFocused}\n onClick={captureFocus}\n data-appearance={appearance}\n >\n {values.map((value) => {\n return renderTag ? (\n renderTag?.(value, onRemove)\n ) : (\n <Tag\n variant={tagVariant}\n color={tagColor}\n shape={tagShape}\n size={tagSize}\n append={\n <IconButton\n variant={\"ghost\"}\n color={tagColor}\n radius={\"md\"}\n style={{ marginLeft: 8 }}\n onPress={() => {\n onRemove(value);\n }}\n size={\"xs\"}\n >\n <HiX size={16} />\n </IconButton>\n }\n key={value}\n >\n {value}\n </Tag>\n );\n })}\n\n <Box\n style={{\n width: getInputContainerWidth(),\n }}\n className=\"input-container\"\n >\n <input\n ref={inputRef}\n placeholder={showPlaceholder ? placeholder : \"\"}\n onKeyDown={onKeyDown}\n value={inputValue}\n onChange={onInputChange}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n className=\"tag-field-input\"\n />\n </Box>\n </div>\n {error && <InputError>{error}</InputError>}\n </Flex>\n );\n}\n","export const EMAIL_REGEX =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n","import * as React from \"react\";\nimport { isUndefinedOrNull } from \"../utils/assertions\";\n\nexport function useControlledState<T>(\n value?: T,\n defaultValue?: T,\n onChange?: (value: T) => void\n) {\n const [state, setState] = React.useState(value || defaultValue);\n const isControlled = !isUndefinedOrNull(value);\n\n const controlledValue = isControlled ? value : state;\n\n const setValue = React.useCallback(\n (value: T) => {\n if (!isControlled) {\n setState(value);\n }\n\n if (!Object.is(controlledValue, value)) {\n onChange?.(value);\n }\n },\n [isControlled, controlledValue]\n );\n\n return [controlledValue, setValue] as [T, (value: T) => void];\n}\n"],"names":[],"version":3,"file":"module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/parrot-ui/src/index.ts","packages/parrot-ui/src/components/box/box.tsx","packages/parrot-ui/src/utils/dom.ts","packages/parrot-ui/src/utils/assertions.ts","packages/parrot-ui/src/components/grid/grid.tsx","packages/parrot-ui/src/components/flex/flex.tsx","packages/parrot-ui/src/components/input/input.tsx","packages/parrot-ui/src/components/input-label/input-label.tsx","packages/parrot-ui/src/components/text/text.tsx","packages/parrot-ui/src/components/input-error/input-error.tsx","packages/parrot-ui/src/components/space/space.tsx","packages/parrot-ui/src/components/input/number-input.tsx","packages/parrot-ui/src/components/button/button.tsx","packages/parrot-ui/src/components/loader/loader.tsx","packages/parrot-ui/src/components/button/button-group.tsx","packages/parrot-ui/src/utils/object.ts","packages/parrot-ui/src/components/theme/theme-provider.tsx","packages/parrot-ui/src/components/textarea/textarea.tsx","packages/parrot-ui/src/components/button/icon-button.tsx","packages/parrot-ui/src/components/checkbox/checkbox.tsx","packages/parrot-ui/src/components/checkbox/checkbox-group.tsx","packages/parrot-ui/src/components/radio/radio.tsx","packages/parrot-ui/src/components/radio/radio-card.tsx","packages/parrot-ui/src/components/select/select.tsx","packages/parrot-ui/src/components/list-box/list-box.tsx","packages/parrot-ui/src/components/list-box/list-box.utils.tsx","packages/parrot-ui/src/components/list-box/list-box-provider.tsx","packages/parrot-ui/src/components/tag/tag.tsx","packages/parrot-ui/src/utils/helpers.ts","packages/parrot-ui/src/utils/theme.ts","packages/parrot-ui/src/components/popover/popover.tsx","packages/parrot-ui/src/components/date-picker/calendar.tsx","packages/parrot-ui/src/utils/array.ts","packages/parrot-ui/src/components/date-picker/date-picker.tsx","packages/parrot-ui/src/components/date-picker/date-field.tsx","packages/parrot-ui/src/components/date-picker/date-picker.utils.ts","packages/parrot-ui/src/components/avatar/avatar.tsx","packages/parrot-ui/src/components/file-uploader/file-uploader.tsx","packages/parrot-ui/src/components/separator/separator.tsx","packages/parrot-ui/src/components/progress/progress.tsx","packages/parrot-ui/src/components/tabs/index.ts","packages/parrot-ui/src/components/tabs/tabs.tsx","packages/parrot-ui/src/components/switch/switch.tsx","packages/parrot-ui/src/components/color-tray/color-tray.tsx","packages/parrot-ui/src/components/icon-tray/icon-tray.tsx","packages/parrot-ui/src/components/sticker/sticker.tsx","packages/parrot-ui/src/components/table/table.tsx","packages/parrot-ui/src/components/timeline/timeline.tsx","packages/parrot-ui/src/components/modal/modal.tsx","packages/parrot-ui/src/components/tag-input/tag-input.tsx","packages/parrot-ui/src/utils/regex.ts","packages/parrot-ui/src/hooks/use-controlled-state.tsx"],"sourcesContent":["export { Box } from \"./components/box\";\nexport { Grid, GridItem } from \"./components/grid\";\nexport { Flex } from \"./components/flex\";\nexport { Input, NumberInput } from \"./components/input\";\nexport { Text } from \"./components/text\";\nexport { Textarea } from \"./components/textarea\";\nexport { Button, IconButton, ButtonGroup } from \"./components/button\";\nexport { Checkbox, CheckboxGroup } from \"./components/checkbox\";\nexport { Radio, RadioGroup, RadioCard } from \"./components/radio\";\nexport { Select } from \"./components/select\";\nexport { DatePicker, Calendar } from \"./components/date-picker\";\nexport { Avatar } from \"./components/avatar\";\nexport { FileUploader } from \"./components/file-uploader\";\nexport { Separator } from \"./components/separator\";\nexport { Progress } from \"./components/progress\";\nexport { Loader } from \"./components/loader\";\nexport { Root, Item } from \"./components/tabs\";\nexport { Tag } from \"./components/tag\";\nexport { Switch } from \"./components/switch\";\nexport { ColorTray } from \"./components/color-tray\";\nexport { IconTray } from \"./components/icon-tray\";\nexport { Sticker } from \"./components/sticker\";\nexport { TabObject as Tabs } from \"./components/tabs\";\nexport { Table } from \"./components/table\";\nexport { Timeline } from \"./components/timeline\";\nexport { Modal, useModal } from \"./components/modal\";\nexport { Space } from \"./components/space\";\nexport { TagInput } from \"./components/tag-input\";\nexport { ThemeProvider, useTheme } from \"./components/theme\";\n\nexport type { ModalProps } from \"./components/modal\";\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\nimport { PositionType } from \"../../utils/theme\";\n\nexport interface BoxProps extends React.ComponentPropsWithoutRef<\"div\"> {\n stretchX?: boolean;\n stretchY?: boolean;\n stretchXY?: boolean;\n position?: PositionType;\n as?: React.ElementType;\n}\n\nexport const Box = React.forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<BoxProps>\n>(\n (\n {\n stretchX,\n stretchY,\n stretchXY,\n children,\n className,\n position,\n as = \"div\",\n ...props\n },\n ref\n ) => {\n const Comp = as;\n return (\n <Comp\n className={cx({\n [`position-${position}`]: !!position,\n \"stretch-x\": !!stretchX,\n \"stretch-y\": !!stretchY,\n \"stretch-xy\": !!stretchXY,\n [`${className}`]: !!className,\n })}\n ref={ref}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import { isArray, isObject } from \"./assertions\";\n\nexport type ConditionalClassNameObject = Record<string, boolean>;\nexport function cx(\n classNames: string | Array<string | undefined> | ConditionalClassNameObject\n): string {\n if (isArray(classNames)) {\n return (classNames as Array<string>)\n .filter((className) => {\n return !!className;\n })\n .join(\" \");\n }\n\n if (isObject(classNames as ConditionalClassNameObject)) {\n const className = Object.keys(classNames)\n .filter((key) => {\n return (classNames as ConditionalClassNameObject)[key];\n })\n .join(\" \");\n return className;\n }\n\n return `${classNames}` as string;\n}\n\nexport type RefType<T> =\n | React.MutableRefObject<T>\n | ((node: T) => void)\n | null\n | undefined;\n\nexport function mergeRefs<T>(...refs: Array<RefType<T>>) {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref && typeof ref === \"object\") {\n ref.current = node;\n }\n }\n };\n}\n","export function isNumber(value: unknown): boolean {\n return typeof value === \"number\";\n}\n\nexport function isArray(value: unknown): boolean {\n return value !== null && Array.isArray(value);\n}\n\nexport function isEmptyArray(value: Array<unknown>): boolean {\n return isArray(value) && value.length === 0;\n}\n\nexport function isObject(value: object): boolean {\n return (\n (typeof value === \"object\" || typeof value === \"function\") &&\n !Array.isArray(value) &&\n value !== null\n );\n}\n\nexport function isEmptyObject(value: object) {\n return isObject(value) && Object.keys(value).length === 0;\n}\n\nexport function objectHasEmptyValue(value: object) {\n return (\n Object.values(value).filter((value) => {\n return value === \"\" || value === undefined || value === null;\n }).length > 0\n );\n}\n\nexport function isUndefinedOrNull(value: unknown) {\n return value == null;\n}\n\nexport function isUndefined(value: unknown) {\n return value === undefined;\n}","import * as React from \"react\";\nimport {\n AlignItemsType,\n JustifyContentType,\n SizeOption,\n} from \"../../utils/theme\";\nimport { cx } from \"../../utils/dom\";\nimport { AsProps } from \"../../utils/types\";\nimport { Box } from \"../box\";\n\ntype Columns =\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12;\ninterface GridProps extends React.ComponentProps<typeof Box> {\n columns?: Columns;\n gap?: SizeOption;\n gapX?: SizeOption;\n gapY?: SizeOption;\n align?: AlignItemsType;\n justify?: JustifyContentType;\n}\n\nexport const Grid = React.forwardRef<\n HTMLDivElement,\n GridProps & AsProps<\"div\">\n>(\n (\n { columns = 12, gap, gapX, gapY, align, justify, as, className, ...props },\n ref\n ) => {\n return (\n <Box\n as={as}\n ref={ref}\n className={cx({\n \"p-grid\": true,\n \"display-grid\": true,\n [`columns-${columns}`]: !!columns,\n [`gap-${gap}`]: !!gap,\n [`column-gap-${gapX}`]: !!gapX,\n [`row-gap-${gapY}`]: !!gapY,\n [`flex-align-${align}`]: !!align,\n [`flex-justify-${justify}`]: !!justify,\n [`${className}`]: !!className,\n })}\n {...props}\n ></Box>\n );\n }\n);\n\nGrid.displayName = \"Grid\";\n\ninterface GridItemProps extends React.ComponentProps<typeof Box> {\n colSpan?: Columns;\n}\n\nexport const GridItem = React.forwardRef<\n HTMLDivElement,\n GridItemProps & AsProps<\"div\">\n>(({ colSpan = 1, as, className, ...props }, ref) => {\n return (\n <Box\n as={as}\n stretchX\n className={cx({\n \"p-grid-item\": true,\n [`col-span-${colSpan}`]: !!colSpan,\n [`${className}`]: !!className,\n })}\n ref={ref}\n {...props}\n ></Box>\n );\n});\n\nGridItem.displayName = \"GridItem\";\n","import * as React from \"react\";\nimport { Box } from \"../box\";\nimport { cx } from \"../../utils/dom\";\nimport {\n AlignItemsType,\n FlexDirectionType,\n JustifyContentType,\n SizeOption,\n} from \"../../utils/theme\";\n\nexport interface FlexProps extends React.ComponentProps<typeof Box> {\n justify?: JustifyContentType;\n align?: AlignItemsType;\n direction?: FlexDirectionType;\n gap?: SizeOption;\n columnGap?: SizeOption;\n rowGap?: SizeOption;\n stack?: boolean;\n inline?: boolean;\n wrap?: \"wrap\" | \"nowrap\" | \"wrap-reverse\";\n}\n\nexport const Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n (props, ref) => {\n const {\n justify,\n align,\n direction,\n gap = \"sm\",\n columnGap,\n rowGap,\n inline,\n wrap,\n stack,\n className,\n ...otherProps\n } = props;\n\n const getDirection = React.useCallback(() => {\n if (stack) {\n return \"column\";\n }\n\n return direction || \"row\";\n }, [stack, direction]);\n\n return (\n <Box\n className={cx({\n [`${className}`]: !!className,\n [inline ? \"display-inline-flex\" : \"display-flex\"]: true,\n [`flex-justify-${justify}`]: !!justify,\n [`flex-align-${align}`]: !!align,\n [`flex-direction-${getDirection()}`]: !!getDirection(),\n [`gap-${gap}`]: !!gap,\n [`column-gap-${columnGap}`]: !!columnGap,\n [`row-gap-${rowGap}`]: !!rowGap,\n [`flex-${wrap}`]: !!wrap,\n })}\n ref={ref}\n {...otherProps}\n >\n {props.children}\n </Box>\n );\n }\n);\n\nFlex.displayName = \"Flex\";\n","import React from \"react\";\nimport { Flex } from \"../flex\";\nimport { AriaTextFieldOptions, useTextField } from \"react-aria\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { Text } from \"../text\";\nimport { useSpace } from \"../space/space\";\nimport { cx, mergeRefs } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\nexport type InputProps = {\n description?: React.ReactNode;\n label?: React.ReactNode;\n error?: React.ReactNode;\n append?: React.ReactNode;\n prepend?: React.ReactNode;\n validationStatus?: \"error\" | \"success\" | \"warning\";\n className?: string;\n shape?: \"rounded\" | \"sharp\";\n inputRef?: React.RefObject<HTMLInputElement>;\n appearance?: \"outline\" | \"filled\" | \"filled-outline\";\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n color?: Color;\n};\n\nexport interface ExtendedInputProps\n extends Omit<AriaTextFieldOptions<\"input\">, \"size\">,\n InputProps {\n _someProp?: string;\n}\n\nexport type InputVariantProps = Pick<\n InputProps,\n \"appearance\" | \"size\" | \"color\" | \"shape\"\n>;\n\nexport const Input = React.forwardRef<HTMLDivElement, ExtendedInputProps>(\n (\n {\n label,\n error,\n color = \"gray\",\n appearance = \"outline\",\n size = \"sm\",\n shape = \"rounded\",\n append,\n prepend,\n description,\n isDisabled,\n validationStatus,\n className,\n inputRef,\n ...props\n },\n ref\n ) => {\n const space = useSpace();\n\n const internalInputRef = React.useRef<HTMLInputElement>(null);\n\n const { labelProps, inputProps, errorMessageProps, descriptionProps } =\n useTextField(\n {\n ...props,\n inputElementType: \"input\",\n label,\n description,\n isDisabled: isDisabled as boolean,\n },\n internalInputRef\n );\n\n const getRadius = React.useCallback(() => {\n if (shape === \"sharp\") return \"none\";\n if (shape === \"rounded\") return \"md\";\n return undefined;\n }, [shape]);\n\n return (\n <Flex\n data-color={color}\n data-radius={getRadius()}\n className={cx({\n [`${space.compactItemWrapperAdjust}`]: true,\n \"p-input-group\": true,\n [`${className}`]: !!className,\n })}\n stack\n ref={ref}\n gap={\"3xs\"}\n stretchX\n data-size={size}\n >\n {label && <InputLabel {...labelProps}>{label}</InputLabel>}\n\n <Flex className=\"p-input-container\" stretchX inline position=\"relative\">\n {prepend && (\n <Flex className=\"add-on add-on-left\" position=\"absolute\">\n {prepend}\n </Flex>\n )}\n <input\n ref={mergeRefs(internalInputRef, inputRef)}\n data-has-error={!!error}\n data-appearance={appearance}\n data-has-left-addon={!!prepend}\n data-has-right-addon={!!append}\n className={cx({\n \"p-input\": true,\n ...space.classNames,\n })}\n {...inputProps}\n />\n {append && (\n <Flex className=\"add-on add-on-right\" position=\"absolute\">\n {append}\n </Flex>\n )}\n </Flex>\n\n {description && (\n <Text\n as=\"div\"\n weight=\"light\"\n variant=\"light\"\n color=\"gray\"\n size=\"2xs\"\n lineHeight={\"base\"}\n {...descriptionProps}\n >\n {description}\n </Text>\n )}\n\n {error && (\n <InputError\n validationStatus={validationStatus}\n {...errorMessageProps}\n >\n {error}\n </InputError>\n )}\n </Flex>\n );\n }\n);\n\nInput.displayName = \"Input\";\n","import React from \"react\";\n\nimport { cx } from \"../../utils/dom\";\nimport { Text } from \"../text\";\n\ntype InputLabelProps = Omit<\n React.HTMLAttributes<HTMLLabelElement>,\n \"size\" | \"color\"\n>;\n\nconst InputLabel = React.forwardRef<HTMLLabelElement, InputLabelProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <Text\n size=\"sm\"\n color=\"gray\"\n variant=\"dark\"\n as=\"label\"\n textRef={ref}\n className={cx([className, \"p-input-label\"])}\n {...props}\n >\n {children}\n </Text>\n );\n }\n);\n\nInputLabel.displayName = \"InputLabel\";\n\nexport default InputLabel;\n","import * as React from \"react\";\nimport { Color, SizeOption } from \"../../utils/theme\";\n\nimport { cx } from \"../../utils/dom\";\nimport { AsProps } from \"../../utils/types\";\n\ntype TextWeight =\n | \"light\"\n | \"regular\"\n | \"medium\"\n | \"semi-bold\"\n | \"bold\"\n | \"heavy\"\n | \"inherit\";\ntype TextColorVariant = \"light\" | \"lighter\" | \"dark\" | \"default\";\n\ninterface TextProps {\n size?: SizeOption;\n weight?: TextWeight;\n highlight?: boolean;\n color?: Color | \"inherit\" | \"white\";\n variant?: TextColorVariant;\n align?: \"left\" | \"center\" | \"right\";\n numeric?: boolean;\n underline?: boolean;\n italic?: boolean;\n lineHeight?: \"normal\" | \"shorter\" | \"short\" | \"base\" | \"tall\";\n textRef?: any; //TODO Type this properly\n textCase?: \"uppercase\" | \"lowercase\" | \"capitalize\";\n}\n\n// TODO figure out a way to just use forwardRef here\n\nexport const Text = <T extends React.ElementType = \"span\">(\n props: React.PropsWithChildren<TextProps> & AsProps<T>\n) => {\n const {\n textCase,\n size,\n weight,\n color = \"gray\",\n variant = \"default\",\n highlight,\n align,\n lineHeight,\n underline,\n italic,\n as: Comp = \"span\",\n textRef,\n className,\n ...rest\n } = props;\n\n return (\n <Comp\n className={cx({\n [`text-highlight`]: !!highlight,\n \"p-text\": true,\n [`text-size-${size}`]: !!size,\n [`text-weight-${weight}`]: !!weight,\n [`text-align-${align}`]: !!align,\n [`text-line-height-${lineHeight}`]: !!lineHeight,\n [`text-transform-${textCase}`]: !!textCase,\n [`${className}`]: !!className,\n })}\n data-underline={underline}\n data-italic={italic}\n data-color={color}\n data-text-variant={variant}\n ref={textRef}\n {...rest}\n />\n );\n};\n\nText.displayName = \"Text\";\n","import React from \"react\";\nimport { Text } from \"../text\";\n\ntype InputErrorProps = React.ComponentProps<typeof Text> & {\n validationStatus?: \"error\" | \"success\" | \"warning\";\n};\n\nconst InputError = React.forwardRef<HTMLDivElement, InputErrorProps>(\n ({ children, validationStatus = \"error\", ...props }, ref) => {\n return (\n <Text\n size=\"xs\"\n className=\"p-input-error\"\n lineHeight={\"base\"}\n as=\"div\"\n color=\"red\"\n variant=\"default\"\n data-validation-status={validationStatus}\n ref={ref}\n {...props}\n >\n {children}\n </Text>\n );\n }\n);\n\nInputError.displayName = \"InputError\";\n\nexport default InputError;\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { ConditionalClassNameObject, cx } from \"../../utils/dom\";\nimport { SizeOption } from \"../../utils/theme\";\n\nconst SpaceContext = React.createContext<{\n classNames: ConditionalClassNameObject;\n compactItemWrapperAdjust: string;\n}>({ classNames: {}, compactItemWrapperAdjust: \"\" });\n\nexport interface SpaceProps extends React.ComponentProps<typeof Flex> {\n compact?: boolean;\n gap?: SizeOption;\n className?: string;\n}\n\nfunction SpaceComponent(\n {\n children,\n compact,\n gap,\n className,\n ...props\n }: React.PropsWithChildren<SpaceProps>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const childrenCount = React.Children.count(children);\n\n const nodes = React.useMemo(() => {\n return React.Children.map(children, (child, index) => {\n const isFirstChild = index == 0;\n const isLastChild = index == childrenCount - 1;\n\n if (!React.isValidElement(child)) return null;\n\n return (\n <SpaceContext.Provider\n value={{\n classNames: {\n \"space-item-first\": isFirstChild,\n \"space-item-last\": isLastChild,\n \"space-item\": true,\n },\n compactItemWrapperAdjust: isLastChild\n ? \"\"\n : \"compact-item-wrapper-adjust\",\n }}\n >\n {child}\n </SpaceContext.Provider>\n );\n });\n }, [children]);\n\n const realGap = compact ? \"none\" : gap;\n\n return (\n <Flex\n data-compact={compact}\n className={cx([className, \"p-space\"])}\n ref={ref}\n gap={realGap}\n {...props}\n >\n {nodes}\n </Flex>\n );\n}\n\nexport const Space = React.forwardRef(SpaceComponent);\n\nexport function useSpace() {\n return React.useContext(SpaceContext);\n}\n","import * as React from \"react\";\nimport { Button } from \"../button\";\nimport { Flex } from \"../flex\";\nimport { cx, mergeRefs } from \"../../utils/dom\";\nimport { useSpace } from \"../space/space\";\nimport { HiMinus, HiPlus } from \"react-icons/hi\";\nimport { useNumberFieldState } from \"react-stately\";\nimport { AriaNumberFieldProps, useNumberField, useLocale } from \"react-aria\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { Text } from \"../text\";\nimport { InputProps } from \"./input\";\n\ninterface NumberInputProps extends InputProps, AriaNumberFieldProps {\n showSteppers?: boolean;\n}\n\n// TODO - add support for `append` and `prepend` props\n// TODO - format stepper buttons\n\nexport const NumberInput = React.forwardRef<HTMLDivElement, NumberInputProps>(\n (props, ref) => {\n const {\n appearance = \"outline\",\n size = \"md\",\n color = \"gray\",\n className,\n append,\n prepend,\n placeholder,\n showSteppers = false,\n ...rest\n } = props;\n\n const space = useSpace();\n const internalInputRef = React.useRef<HTMLInputElement>(null);\n\n const { locale } = useLocale();\n const state = useNumberFieldState({ ...rest, locale });\n const {\n errorMessageProps,\n descriptionProps,\n labelProps,\n groupProps,\n inputProps,\n incrementButtonProps,\n decrementButtonProps,\n } = useNumberField(rest, state, internalInputRef);\n\n return (\n <Flex\n stack\n gap=\"3xs\"\n ref={ref}\n data-radius=\"md\"\n data-color={color}\n data-size={size}\n stretchX\n className={cx({\n \"p-input-group\": true,\n [`${space.compactItemWrapperAdjust}`]: true,\n })}\n >\n {rest.label && <InputLabel {...labelProps}>{rest.label}</InputLabel>}\n <Flex gap=\"4xs\" {...groupProps} className=\"p-input-container\">\n {showSteppers && (\n <Button\n {...decrementButtonProps}\n radius=\"md\"\n color=\"gray\"\n variant=\"outline\"\n size={size}\n >\n <HiMinus />\n </Button>\n )}\n <input\n ref={mergeRefs(internalInputRef, ref)}\n placeholder={placeholder}\n className={cx({\n \"p-input\": true,\n \"space-item\": true,\n [`${className}`]: !!className,\n ...space.classNames,\n })}\n data-appearance={appearance}\n data-has-left-addon={!!prepend}\n data-has-right-addon={!!append}\n type=\"text\"\n {...inputProps}\n />\n {showSteppers && (\n <Button\n {...incrementButtonProps}\n radius=\"md\"\n color=\"gray\"\n variant=\"outline\"\n size={size}\n >\n <HiPlus />\n </Button>\n )}\n </Flex>\n\n {rest.description && (\n <Text\n weight=\"light\"\n size=\"2xs\"\n color=\"gray\"\n variant=\"light\"\n lineHeight=\"base\"\n {...descriptionProps}\n as={\"div\"}\n >\n {rest.description}\n </Text>\n )}\n\n {rest.error && (\n <InputError {...errorMessageProps}>{rest.error}</InputError>\n )}\n </Flex>\n );\n }\n);\n\nNumberInput.displayName = \"NumberInput\";\n","import React from \"react\";\nimport { AriaButtonProps, useToggleButton } from \"react-aria\";\nimport { cx, mergeRefs } from \"../../utils/dom\";\nimport { Loader } from \"../loader\";\nimport { useButtonGroup } from \"./button-group\";\nimport { useSpace } from \"../space/space\";\nimport { useToggleState } from \"react-stately\";\nimport {\n Color,\n ColorVariant,\n BorderRadius,\n ButtonAppearance,\n ButtonSize,\n} from \"../../utils/theme\";\nimport { useTheme } from \"../theme/theme-provider\";\n\nexport interface ButtonToggleProps {\n isToggle?: boolean;\n idleColor?: Color;\n idleVariant?: ColorVariant;\n activeColor?: Color;\n activeVariant?: ColorVariant;\n}\n\nexport type ButtonProps = AriaButtonProps<\"button\" | \"div\" | \"a\"> &\n ButtonToggleProps & {\n append?: React.ReactNode;\n prepend?: React.ReactNode;\n as?: React.ElementType;\n isLoading?: boolean;\n className?: string;\n isIconButton?: boolean;\n color?: Color;\n variant?: ColorVariant;\n size?: ButtonSize;\n radius?: BorderRadius;\n isSelected?: boolean;\n defaultSelected?: boolean;\n appearance?: ButtonAppearance;\n role?: string;\n style?: React.CSSProperties;\n };\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref) => {\n const space = useSpace();\n const buttonGroupProps = useButtonGroup();\n const theme = useTheme();\n\n const {\n color,\n variant = \"solid\",\n append,\n prepend,\n size = \"md\",\n children,\n as = \"button\",\n className,\n isLoading,\n radius = \"full\",\n isToggle,\n activeColor = \"violet\",\n activeVariant = \"solid\",\n idleColor = \"gray\",\n idleVariant = \"outline\",\n isIconButton,\n appearance,\n style,\n ...otherProps\n } = { ...buttonGroupProps, ...props };\n\n const state = useToggleState({\n ...otherProps,\n });\n\n const buttonRef = React.useRef(null);\n const { buttonProps, isPressed } = useToggleButton(\n { ...otherProps, elementType: as },\n state,\n buttonRef\n );\n\n const getAppearance = React.useCallback(() => {\n if (theme?.buttonAppearance && appearance) {\n return {\n color: theme.buttonAppearance[appearance]?.color,\n variant: theme.buttonAppearance[appearance]?.variant,\n };\n }\n\n return {\n color,\n variant,\n };\n }, [appearance]);\n\n function getColor() {\n if (!state.isSelected && isToggle) {\n return { color: idleColor, variant: idleVariant };\n }\n if (state.isSelected && isToggle) {\n return { color: activeColor, variant: activeVariant };\n }\n\n return { variant: getAppearance().variant, color: getAppearance().color };\n }\n\n const Comp = as;\n\n return (\n <Comp\n style={style}\n data-appearance={appearance}\n data-pressed={isPressed}\n data-radius={radius}\n data-icon-button={isIconButton}\n data-loading={isLoading}\n aria-busy={isLoading}\n data-color={getColor().color}\n data-variant={getColor().variant}\n data-size={size}\n className={cx([\n className,\n \"p-button\",\n `button-size-${size}`,\n ...Object.keys(space.classNames).filter((key) =>\n Boolean(space.classNames[key])\n ),\n ])}\n ref={mergeRefs(ref, buttonRef)}\n {...(buttonProps as Omit<typeof buttonProps, \"color\">)}\n >\n {prepend}\n <span\n style={{ padding: isIconButton ? undefined : \"0 6px\", lineHeight: 0 }}\n >\n {children}\n </span>\n {isLoading ? (\n <Loader style={{ marginLeft: 8 }} color=\"inherit\" size={\"xs\"} />\n ) : (\n append\n )}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\n\ninterface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n}\n\nexport const Loader = React.forwardRef<HTMLDivElement, LoaderProps>(\n (\n { color = \"var(--color-10)\", className, style, size = \"sm\", ...props },\n ref\n ) => {\n return (\n <div\n style={{ fill: color, ...style }}\n className={cx([className, \"loader-wrapper\"])}\n ref={ref}\n {...props}\n >\n <svg\n className=\"loader-svg\"\n data-size={size}\n viewBox=\"0 0 1024 1024\"\n fill={\"inherit\"}\n >\n <path d=\"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" />\n </svg>\n </div>\n );\n }\n);\n\nLoader.displayName = \"Loader\";\n","import * as React from \"react\";\nimport { Space } from \"../space\";\nimport { ButtonProps } from \"./button\";\nimport { omitNullOrUndefined } from \"../../utils/object\";\n\nconst ButtonGroupContext = React.createContext<ButtonGroupProps>({});\n\ninterface ButtonGroupProps\n extends Pick<\n ButtonProps,\n | \"color\"\n | \"variant\"\n | \"size\"\n | \"radius\"\n | \"idleColor\"\n | \"idleVariant\"\n | \"activeColor\"\n | \"activeVariant\"\n | \"isToggle\"\n > {\n label?: string;\n}\n\nexport function ButtonGroup({\n color,\n variant,\n size,\n compact,\n radius,\n gap,\n children,\n idleColor,\n activeColor,\n idleVariant,\n activeVariant,\n isToggle,\n}: ButtonGroupProps & React.ComponentProps<typeof Space>) {\n const cleanProps = omitNullOrUndefined({\n color,\n variant,\n size,\n radius,\n idleColor,\n activeColor,\n idleVariant,\n activeVariant,\n isToggle,\n });\n\n return (\n <ButtonGroupContext.Provider value={cleanProps}>\n <Space gap={gap} compact={compact}>\n {children}\n </Space>\n </ButtonGroupContext.Provider>\n );\n}\n\nexport function useButtonGroup() {\n return React.useContext(ButtonGroupContext);\n}\n","import { Dict } from \"./types\";\n\nexport function omit<T extends Dict, K extends keyof T>(object: T, keys: K[]) {\n return Object.keys(object).reduce((obj, key) => {\n if (keys.includes(key as K)) {\n return { ...obj };\n }\n return {\n ...obj,\n [key]: object[key],\n } as T;\n }, {});\n}\nexport function pick<T extends Dict, K extends keyof T>(\n object: T | undefined,\n keys: K[]\n) {\n // TODO handle invalid objects properly\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((obj, key) => {\n if (keys.includes(key as K))\n return {\n ...obj,\n [key]: object[key],\n };\n return { ...obj };\n }, {});\n}\nexport function split<T extends Dict, K extends keyof T>(object: T, keys: K[]) {\n const picked = pick(object, keys);\n const omitted = omit(object, keys);\n\n return [picked, omitted] as [{ [P in K]: T[P] }, Omit<T, K>];\n}\n\nexport function omitNullOrUndefined<T extends Dict>(object: T): Partial<T> {\n return Object.keys(object).reduce((obj, key) => {\n if (object[key] == null) {\n return { ...obj };\n }\n return {\n ...obj,\n [key]: object[key],\n };\n }, {});\n}\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\nimport {\n BorderRadius,\n ButtonAppearanceSchemaType,\n Color,\n} from \"../../utils/theme\";\n\ninterface ThemeProviderValue {\n color?: Color;\n scaling?: SizeScale;\n grayVariant?: string;\n radius?: BorderRadius;\n buttonAppearance?: ButtonAppearanceSchemaType;\n avatarRadiusSize?: BorderRadius;\n}\ninterface ThemeProviderProps extends ThemeProviderValue {\n children?: React.ReactNode;\n className?: string;\n}\n\ntype SizeScale = \"90%\" | \"95%\" | \"100%\" | \"105%\" | \"110%\";\n\nconst ThemeContext = React.createContext<ThemeProviderValue | null>(null);\n\nexport function ThemeProvider(props: ThemeProviderProps) {\n const { children, className, ...themeProps } = props;\n return (\n <ThemeContext.Provider value={themeProps}>\n <div\n id=\"parrot-theme-provider\"\n data-radius={themeProps.radius}\n data-color={themeProps.color}\n className={cx([\"parrot-theme\", className])}\n >\n {children}\n </div>\n </ThemeContext.Provider>\n );\n}\n\nexport function useTheme(options?: { requireThemeProvider: boolean }) {\n const theme = React.useContext(ThemeContext);\n if (!theme && options?.requireThemeProvider)\n throw new Error(\"No theme found\");\n return theme;\n}\n","import React from \"react\";\nimport { AriaTextFieldOptions, useTextField } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { InputError } from \"../input-error\";\nimport { InputLabel } from \"../input-label\";\nimport { Text } from \"../text/text\";\nimport { InputProps } from \"../input/input\";\n\ninterface TextareaProps extends AriaTextFieldOptions<\"textarea\">, InputProps {\n resize?: \"none\" | \"both\" | \"horizontal\" | \"vertical\";\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Textarea = React.forwardRef<HTMLDivElement, TextareaProps>(\n (\n {\n appearance = \"outline\",\n resize,\n label,\n description,\n error,\n color,\n style,\n ...props\n },\n ref\n ) => {\n const textAreaRef = React.useRef(null);\n const { labelProps, inputProps, errorMessageProps, descriptionProps } =\n useTextField(\n {\n ...props,\n inputElementType: \"textarea\",\n label,\n description,\n errorMessage: error,\n },\n textAreaRef\n );\n\n return (\n <Flex style={style} className=\"p-input-group\" ref={ref} stack gap={\"2xs\"}>\n {label && <InputLabel {...labelProps}>{label}</InputLabel>}\n <textarea\n data-color={color}\n className=\"p-input p-text-area\"\n disabled={props.isDisabled}\n data-has-error={!!error}\n data-resize={resize}\n data-appearance={appearance}\n {...inputProps}\n ></textarea>\n {description && (\n <Text\n lineHeight={\"base\"}\n {...descriptionProps}\n variant={\"lighter\"}\n as=\"div\"\n size={\"xs\"}\n >\n {description}\n </Text>\n )}\n {error && <InputError {...errorMessageProps}>{error}</InputError>}\n </Flex>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n","import * as React from \"react\";\nimport { Button, ButtonProps } from \"./button\";\n\ninterface IconButtonProps extends ButtonProps {\n isIcon?: boolean;\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (props, ref) => {\n return (\n <Button isIconButton ref={ref} {...props}>\n {props.children}\n </Button>\n );\n }\n);\n\nIconButton.displayName = \"IconButton\";\n","import { useToggleState } from \"react-stately\";\nimport React from \"react\";\nimport {\n AriaCheckboxProps,\n useCheckbox,\n VisuallyHidden,\n useFocusRing,\n useCheckboxGroupItem,\n AriaCheckboxGroupItemProps,\n} from \"react-aria\";\nimport { GroupContext } from \"./checkbox-group\";\nimport { Box } from \"../box\";\nimport { Color } from \"../../utils/theme\";\n\nexport interface CheckboxVariantProps {\n appearance?: \"outline\" | \"filled\";\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n shape?: \"sharp\" | \"round\";\n color?: Color;\n}\nexport interface CheckboxProps\n extends AriaCheckboxProps,\n CheckboxVariantProps {}\n\nexport const Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(\n (props, ref) => {\n const { appearance, size, shape, color, ...otherProps } = props;\n\n // check if checkbox is rendered in a group context\n const groupContext = React.useContext(GroupContext);\n const groupState = groupContext?.state;\n const groupProps = groupContext?.props;\n const isWithinGroup = groupState != null;\n\n const singleState = useToggleState(props);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const single = useCheckbox(otherProps, singleState, inputRef);\n const group =\n groupState &&\n useCheckboxGroupItem(\n otherProps as AriaCheckboxGroupItemProps,\n groupState,\n inputRef\n );\n\n const { isFocusVisible, focusProps } = useFocusRing();\n\n const inputProps = isWithinGroup ? group?.inputProps : single.inputProps;\n const state = isWithinGroup ? groupState : singleState;\n const isSelected = isWithinGroup\n ? groupState.isSelected(props.value ?? \"\")\n : state.isSelected;\n\n function getRadius() {\n const resolvedShape = shape || groupProps?.shape || undefined;\n\n if (resolvedShape === \"sharp\") {\n return \"none\";\n }\n\n if (resolvedShape === \"round\") {\n return \"md\";\n }\n\n return undefined;\n }\n\n const resolvedColor = color || groupProps?.color || undefined;\n const resolvedAppearance =\n appearance || groupProps?.appearance || \"outline\";\n const resolvedSize = size || groupProps?.size || \"md\";\n\n return (\n <label\n className=\"custom-checkbox-label\"\n data-disabled={inputProps?.disabled}\n ref={ref}\n >\n <VisuallyHidden>\n <input\n type=\"checkbox\"\n ref={inputRef}\n {...inputProps}\n {...focusProps}\n />\n </VisuallyHidden>\n <div\n data-color={resolvedColor}\n data-radius={getRadius()}\n className=\"fake-checkbox\"\n data-focused={isFocusVisible}\n aria-hidden=\"true\"\n data-checked={isSelected && !props.isIndeterminate}\n data-indeterminate={props.isIndeterminate}\n data-size={resolvedSize}\n data-appearance={resolvedAppearance}\n >\n {isSelected && !props.isIndeterminate && (\n <svg\n stroke=\"white\"\n width={\"0.75rem\"}\n height={\"0.75rem\"}\n viewBox=\"0 0 18 18\"\n >\n <polyline\n points=\"1 9 7 14 15 4\"\n fill=\"none\"\n strokeWidth={3}\n strokeDasharray={22}\n strokeDashoffset={isSelected ? 44 : 66}\n style={{\n transition: \"all 400ms\",\n }}\n />\n </svg>\n )}\n\n {props.isIndeterminate && (\n <Box\n style={{\n background: \"var(--color-12)\",\n width: \"70%\",\n height: 2,\n borderRadius: 4,\n }}\n ></Box>\n )}\n </div>\n {otherProps.children}\n </label>\n );\n }\n);\n\nCheckbox.displayName = \"checkbox\";\n","import React from \"react\";\nimport { CheckboxGroupState, useCheckboxGroupState } from \"react-stately\";\nimport { AriaCheckboxGroupProps, useCheckboxGroup } from \"react-aria\";\nimport { Flex, FlexProps } from \"../flex\";\nimport { Text } from \"../text\";\nimport { InputError } from \"../input-error\";\nimport { CheckboxVariantProps } from \"./checkbox\";\n\nexport const GroupContext =\n React.createContext<{\n state: CheckboxGroupState;\n props: CheckboxVariantProps;\n } | null>(null);\n\ninterface CheckboxGroupProps\n extends AriaCheckboxGroupProps,\n CheckboxVariantProps {}\n\nexport const CheckboxGroup = React.forwardRef<\n HTMLDivElement,\n CheckboxGroupProps & FlexProps\n>((props, ref) => {\n const {\n children,\n align,\n justify,\n label,\n description,\n errorMessage,\n size,\n appearance,\n color,\n shape,\n } = props;\n\n const state = useCheckboxGroupState(props);\n const { groupProps, labelProps, descriptionProps, errorMessageProps } =\n useCheckboxGroup(props, state);\n\n return (\n <Flex\n align={align}\n justify={justify}\n ref={ref}\n stack\n gap={\"2xs\"}\n {...groupProps}\n >\n <Text {...labelProps}>{label}</Text>\n <GroupContext.Provider\n value={{ state, props: { size, appearance, color, shape } }}\n >\n {children}\n </GroupContext.Provider>\n {description && (\n <Text\n lineHeight={\"base\"}\n variant=\"lighter\"\n size=\"xs\"\n {...descriptionProps}\n >\n {description}\n </Text>\n )}\n {errorMessage && (\n <InputError {...errorMessageProps}>{errorMessage}</InputError>\n )}\n </Flex>\n );\n});\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n","import React from \"react\";\nimport {\n AriaRadioGroupProps,\n AriaRadioProps,\n useRadio,\n useRadioGroup,\n VisuallyHidden,\n} from \"react-aria\";\nimport { RadioGroupState, useRadioGroupState } from \"react-stately\";\nimport { Flex, FlexProps } from \"../flex\";\nimport { InputError } from \"../input-error\";\nimport { Text } from \"../text\";\nimport { InputLabel } from \"../input-label\";\nimport { cx } from \"../../utils/dom\";\nimport { InputVariantProps } from \"../input/input\";\n\nexport interface RadioProps\n extends AriaRadioProps,\n Pick<InputVariantProps, \"appearance\" | \"color\"> {\n className?: string;\n style?: React.CSSProperties;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n}\n\nexport const RadioContext = React.createContext<RadioGroupState | null>(null);\n\nexport const Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n (props, ref) => {\n const state = React.useContext(RadioContext);\n\n const {\n size = \"sm\",\n className,\n style,\n appearance,\n color,\n ...otherProps\n } = props;\n if (!state) throw new Error(\"Radio must be used within a RadioGroup\");\n\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(otherProps, state, inputRef);\n\n return (\n <label style={style} className={cx([className, \"p-radio\"])} ref={ref}>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef}></input>\n </VisuallyHidden>\n <div\n data-color={color}\n className=\"p-fake-radio\"\n data-appearance={appearance}\n data-checked={inputProps.checked}\n data-size={size}\n />\n {props.children}\n </label>\n );\n }\n);\n\ninterface RadioGroupProps extends AriaRadioGroupProps {\n children?: React.ReactNode;\n}\n\nexport const RadioGroup = React.forwardRef<\n HTMLDivElement,\n RadioGroupProps & FlexProps\n>(\n (\n {\n stack = true,\n direction,\n gap = \"xs\",\n rowGap,\n align,\n justify,\n wrap,\n columnGap,\n ...props\n },\n ref\n ) => {\n const { children, label, description, errorMessage } = props;\n const state = useRadioGroupState(props);\n const { radioGroupProps, labelProps, descriptionProps, errorMessageProps } =\n useRadioGroup(props, state);\n\n return (\n <Flex\n ref={ref}\n stack={stack}\n gap={gap}\n direction={direction}\n rowGap={rowGap}\n columnGap={columnGap}\n align={align}\n justify={justify}\n wrap={wrap}\n {...radioGroupProps}\n >\n {label && <InputLabel {...labelProps}>{label}</InputLabel>}\n {description && (\n <Text variant=\"light\" {...descriptionProps}>\n {description}\n </Text>\n )}\n\n <RadioContext.Provider value={state}>{children}</RadioContext.Provider>\n\n {errorMessage && (\n <InputError {...errorMessageProps}>{errorMessage}</InputError>\n )}\n </Flex>\n );\n }\n);\n\nRadioGroup.displayName = \"RadioGroup\";\nRadio.displayName = \"Radio\";\n","import * as React from \"react\";\nimport { AriaRadioProps, VisuallyHidden, useRadio } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport { RadioContext } from \"./radio\";\nimport { InputVariantProps } from \"../input/input\";\n\nexport interface RadioCardProps\n extends AriaRadioProps,\n Pick<InputVariantProps, \"appearance\" | \"color\"> {\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n showIndicator?: boolean;\n}\n\nexport const RadioCard = React.forwardRef<HTMLLabelElement, RadioCardProps>(\n (\n {\n title,\n description,\n children,\n appearance,\n showIndicator = true,\n color,\n ...props\n },\n ref\n ) => {\n const state = React.useContext(RadioContext);\n if (!state) throw new Error(\"RadioCard must be used within a RadioGroup\");\n\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(props, state, inputRef);\n\n return (\n <label\n className=\"p-radio-card\"\n data-color={color}\n data-appearance={appearance}\n data-checked={inputProps.checked}\n ref={ref}\n >\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {showIndicator && (\n <div\n className=\"p-fake-radio\"\n data-size=\"sm\"\n data-checked={inputProps.checked}\n />\n )}\n <Flex stack gap={\"xs\"}>\n {(title || description) && (\n <Flex gap={\"4xs\"} stack>\n {title && (\n <Text color={color} size=\"sm\">\n {title}\n </Text>\n )}\n {description && (\n <Text\n color={color}\n lineHeight={\"tall\"}\n size=\"xs\"\n variant=\"lighter\"\n >\n {description}\n </Text>\n )}\n </Flex>\n )}\n {children}\n </Flex>\n </label>\n );\n }\n);\n\nRadioCard.displayName = \"RadioCard\";\n","import * as React from \"react\";\nimport { ListBox } from \"../list-box\";\nimport { InputLabel } from \"../input-label\";\nimport { Flex } from \"../flex\";\nimport { cx } from \"../../utils/dom\";\nimport { HiSelector, HiX } from \"react-icons/hi\";\nimport { useListState, useMenuTriggerState } from \"react-stately\";\nimport { HiddenSelect, useMenuTrigger, usePress } from \"react-aria\";\nimport { ListBoxProps } from \"../list-box/list-box\";\nimport { renderListBoxContent } from \"../list-box/list-box.utils\";\nimport { Tag } from \"../tag\";\nimport { getRandomColor } from \"../../utils/helpers\";\nimport { Text } from \"../text\";\nimport { Box } from \"../box\";\nimport { Popover } from \"../popover\";\nimport { useTheme } from \"../theme/theme-provider\";\nimport { InputProps } from \"../input/input\";\nimport { Color } from \"../../utils/theme\";\nimport { useSpace } from \"../space/space\";\nimport { ID } from \"../../utils/types\";\nimport { isArray } from \"../../utils/assertions\";\n\ntype SingleOrMultipleValue = ID | Array<ID>;\ninterface MockNativeOnChangeEvent {\n target: {\n value: SingleOrMultipleValue;\n name?: string;\n };\n}\nexport interface SelectProps<T> extends ListBoxProps<T>, InputProps {\n renderValue?: (value: T) => React.ReactNode;\n placeholder?: string;\n isDisabled?: boolean;\n name?: string;\n listBoxColor?: Color;\n value?: SingleOrMultipleValue;\n defaultValue?: SingleOrMultipleValue;\n onChange?(event: MockNativeOnChangeEvent): void;\n}\n\nexport function Select<T>({\n label,\n selectionMode = \"single\",\n appearance = \"outline\",\n append,\n prepend,\n renderValue,\n color = \"gray\",\n error,\n description,\n size = \"sm\",\n shape = \"rounded\",\n listBoxColor,\n className,\n value,\n defaultValue,\n onChange,\n ...props\n}: SelectProps<T>) {\n const isMultiple = selectionMode === \"multiple\";\n\n function getValue(value?: SingleOrMultipleValue) {\n if (!value) return null;\n\n if (selectionMode === \"single\") {\n return [value];\n }\n\n if (isMultiple && !isArray(value)) {\n throw new Error(\n \"Select: value must be an array when selectionMode is multiple\"\n );\n }\n\n return value as Array<ID>;\n }\n\n function onSelectionChange(selectedKeys: any) {\n onChange?.({\n target: {\n value: isMultiple ? selectedKeys : selectedKeys[0],\n name: props.name,\n },\n });\n }\n\n const space = useSpace();\n const [isFocused, setIsFocused] = React.useState(false);\n const triggerState = useMenuTriggerState({});\n const listState = useListState({\n ...props,\n selectedKeys: getValue(value),\n defaultSelectedKeys: getValue(defaultValue),\n selectionMode: selectionMode,\n children: renderListBoxContent(props),\n onSelectionChange(keys) {\n onSelectionChange([...keys]);\n\n if (!isMultiple) {\n triggerState.close();\n }\n },\n } as ListBoxProps<any>);\n const triggerRef = React.useRef<HTMLDivElement>(null);\n\n const theme = useTheme();\n\n const { menuTriggerProps } = useMenuTrigger(\n { type: \"listbox\", trigger: \"press\", isDisabled: false },\n triggerState,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress(menuTriggerProps);\n\n const selectedItems = [...listState.selectionManager.selectedKeys].map(\n (item) => listState.collection.getItem(item)\n );\n\n const getRadius = React.useCallback(() => {\n if (shape === \"rounded\" && theme?.radius !== \"none\") {\n return theme?.radius || \"md\";\n }\n return \"none\";\n }, [shape]);\n\n function content() {\n if (selectedItems.length === 0) {\n return (\n <Text color=\"inherit\" variant=\"lighter\">\n {props.placeholder}\n </Text>\n );\n }\n\n if (isMultiple) {\n return (\n <Flex gap=\"3xs\" wrap=\"wrap\">\n {selectedItems.map((item) => (\n <Tag\n append={<HiX />}\n color={getRandomColor(item?.textValue ?? \"\")}\n key={item?.key}\n >\n {item?.textValue}\n </Tag>\n ))}\n </Flex>\n );\n }\n\n return (\n <Text variant=\"default\" color={color} className=\"single-value\">\n {renderValue?.(selectedItems[0]?.value) ??\n selectedItems[0]?.value[props.labelKey ?? \"label\"]}\n </Text>\n );\n }\n\n return (\n <Box as=\"span\" position=\"relative\" stretchX>\n {selectionMode === \"single\" && (\n <HiddenSelect\n triggerRef={triggerRef}\n label={label}\n name={props.name}\n state={{\n selectedItem: selectedItems[0] as any,\n selectedKey: selectedItems[0]?.key as any,\n setSelectedKey: (key) =>\n listState.selectionManager.setSelectedKeys([key]),\n isFocused: isFocused,\n setFocused: setIsFocused,\n ...listState,\n ...triggerState,\n }}\n isDisabled={props.isDisabled}\n ></HiddenSelect>\n )}\n <Flex\n data-radius={getRadius()}\n gap=\"2xs\"\n stack\n className={cx({\n [`${space.compactItemWrapperAdjust}`]: true,\n \"p-input-group\": true,\n [`${className}`]: !!className,\n })}\n data-size={size}\n data-color={color}\n >\n {label && <InputLabel>{label}</InputLabel>}\n <div\n data-selection-mode={selectionMode}\n tabIndex={0}\n role=\"button\"\n ref={triggerRef}\n color=\"gray\"\n className={cx({\n \"p-input\": true,\n \"p-select\": true,\n ...space.classNames,\n })}\n data-appearance={appearance}\n {...triggerProps}\n >\n {content()}\n <HiSelector className=\"selector\" size={18} />\n </div>\n </Flex>\n {triggerState.isOpen && (\n <Popover\n placement=\"bottom start\"\n offset={4}\n shouldUpdatePosition\n triggerRef={triggerRef}\n state={triggerState}\n >\n <ListBox\n label={label}\n showSeparator={props.showSeparator}\n showSelectedMarker={props.showSelectedMarker}\n width={triggerRef.current?.getBoundingClientRect().width}\n color={listBoxColor ?? \"gray\"}\n shouldFocusOnHover\n state={listState}\n {...props}\n />\n </Popover>\n )}\n </Box>\n );\n}\n","import * as React from \"react\";\nimport {\n AriaListBoxOptions,\n AriaListBoxSectionProps,\n AriaOptionProps,\n useListBox,\n useListBoxSection,\n useOption,\n} from \"react-aria\";\nimport {\n Item,\n ListState,\n Node,\n useListState,\n Section as AriaSection,\n} from \"react-stately\";\nimport { ID } from \"../../utils/types\";\nimport { Text } from \"../text\";\nimport { Flex } from \"../flex\";\nimport { renderListBoxContent } from \"./list-box.utils\";\nimport { Color } from \"../../utils/theme\";\nimport { omit } from \"../../utils/object\";\nimport { HiCheck } from \"react-icons/hi\";\nimport { ListBoxProvider, useListBoxContext } from \"./list-box-provider\";\n\nexport interface ListBoxProps<T> extends AriaListBoxOptions<T> {\n __parrotKey?: ID;\n children?: any; // TODO - type this properly\n labelKey?: keyof T | string; // TODO - type this properly\n valueKey?: keyof T | string; // TODO - type this properly\n sectionKey?: keyof T;\n renderOption?: (item: T) => React.ReactNode;\n getSectionLabel?: (item: T) => React.ReactNode;\n getSectionItems?: (item: T) => T[];\n state?: ListState<T>;\n color?: Color;\n width?: number | string;\n showSeparator?: boolean;\n showSelectedMarker?: boolean;\n}\n\nexport function ListBox({\n state,\n color,\n width = 300,\n showSelectedMarker = true,\n ...props\n}: ListBoxProps<any>) {\n const internalState = useListState({\n ...props,\n children: renderListBoxContent(props),\n });\n const listRef = React.useRef(null);\n const listState = state || internalState;\n const { listBoxProps, labelProps } = useListBox(props, listState, listRef);\n\n const options = [...listState.collection];\n\n return (\n <ListBoxProvider {...props} showSelectedMarker={showSelectedMarker}>\n <Flex\n data-color={color}\n style={{ width: width, minWidth: 300 }}\n stack\n gap=\"md\"\n >\n <Flex\n as=\"ul\"\n stack\n gap=\"none\"\n className=\"list-box-wrapper\"\n ref={listRef}\n {...listBoxProps}\n >\n {/* {props.label && (\n <Text size=\"sm\" variant=\"light\" as=\"div\" {...labelProps}>\n {props.label}\n </Text>\n )} */}\n {options.length === 0 && (\n <Flex justify=\"center\" align=\"center\" style={{ height: 50 }}>\n <Text color=\"gray\" variant=\"light\" align=\"center\">\n No Options\n </Text>\n </Flex>\n )}\n {options.map((item) => {\n return item.type === \"section\" ? (\n <ListSection section={item} state={listState} key={item.key} />\n ) : (\n <ListOption state={listState} item={item} key={item.key} />\n );\n })}\n </Flex>\n </Flex>\n </ListBoxProvider>\n );\n}\n\ninterface OptionProps<T> extends AriaOptionProps {\n item: Node<T>;\n state: ListState<T>;\n}\n\nfunction ListOption({ state, item }: OptionProps<any>) {\n const optionRef = React.useRef(null);\n const {\n optionProps,\n isDisabled,\n isFocusVisible,\n isFocused,\n isPressed,\n isSelected,\n } = useOption({ key: item.key }, state, optionRef);\n\n const listBoxContext = useListBoxContext();\n\n return (\n <li\n className=\"list-option\"\n data-disabled={isDisabled}\n data-focus-visible={isFocusVisible}\n data-focused={isFocused}\n data-pressed={isPressed}\n data-selected={isSelected}\n {...optionProps}\n {...(omit(item.props, [\"textValue\"]) as any)} // TODO test this to make sure it can't be abused by consumers of this library.\n ref={optionRef}\n >\n {item.rendered}\n {isSelected && listBoxContext.props.showSelectedMarker && (\n <HiCheck className=\"selected-marker\" />\n )}\n </li>\n );\n}\n\ninterface ListSectionProps<T> extends AriaListBoxSectionProps {\n __parrotKey?: ID;\n state: ListState<T>;\n section: Node<T>;\n}\nfunction ListSection({ state, section }: ListSectionProps<any>) {\n const { itemProps, headingProps, groupProps } = useListBoxSection({\n heading: section?.rendered,\n \"aria-label\": section[\"aria-label\"],\n });\n\n const listBoxContext = useListBoxContext();\n\n function getChildren() {\n if (state.collection.getChildren) {\n return [...state.collection.getChildren(section.key)];\n }\n\n return [];\n }\n\n return (\n <Flex gap=\"sm\" stack className=\"list-section\">\n {section.key !== state.collection.getFirstKey() &&\n listBoxContext.props.showSeparator && (\n <li className=\"list-separator\"></li>\n )}\n <Flex gap={\"none\"} stack as=\"li\" {...itemProps}>\n {section.rendered && (\n <div className=\"list-section-header\">\n <Text\n weight=\"regular\"\n size=\"xs\"\n as=\"div\"\n variant=\"light\"\n {...headingProps}\n >\n {section.rendered}\n </Text>\n </div>\n )}\n <ul {...groupProps}>\n {getChildren().map((node) => {\n return <ListOption item={node} key={node.key} state={state} />;\n })}\n </ul>\n </Flex>\n </Flex>\n );\n}\n\nexport const Option = Item;\nexport const Section = AriaSection;\n","import * as React from \"react\";\nimport { Section, Option, ListBoxProps } from \"./list-box\";\n\nexport function renderListBoxContent<T>({\n children,\n renderOption,\n valueKey,\n sectionKey,\n getSectionLabel,\n labelKey,\n items,\n}: ListBoxProps<T>) {\n const hasChildren = React.Children.count(children) > 0;\n\n if (hasChildren) {\n return children;\n }\n\n if (items) {\n // eslint-disable-next-line react/display-name\n return (item: T) => {\n const label = (item as any)?.[labelKey ?? \"label\"];\n const value = (item as any)?.[valueKey ?? \"id\"];\n const sectionChildren = (item as any)?.[sectionKey ?? \"children\"] ?? [];\n\n if ((item as any)?.[sectionKey]) {\n return (\n <Section\n items={sectionChildren}\n key={value}\n title={getSectionLabel?.(item)}\n >\n {(item) => (\n <Option\n textValue={(item as any)?.[labelKey ?? \"label\"]}\n key={(item as any)?.[valueKey ?? \"id\"]}\n >\n {(item as any)?.[labelKey ?? \"label\"] ??\n renderOption?.(item as T)}\n </Option>\n )}\n </Section>\n );\n }\n\n return (\n <Option textValue={label} key={(item as any)?.[valueKey ?? \"id\"]}>\n {renderOption?.(item) ?? label}\n </Option>\n );\n };\n }\n}\n","import * as React from \"react\";\nimport { ListBoxProps } from \"./list-box\";\n\nconst ListBoxContext =\n React.createContext<{ props: ListBoxProps<any> } | null>(null);\n\nexport function ListBoxProvider(props: ListBoxProps<any>) {\n return (\n <ListBoxContext.Provider value={{ props }}>\n {props.children}\n </ListBoxContext.Provider>\n );\n}\n\nexport function useListBoxContext() {\n const context = React.useContext(ListBoxContext);\n if (!context) {\n throw new Error(\n \"ListBox components must be rendered within the ListBoxProvider\"\n );\n }\n\n return context;\n}\n","import React from \"react\";\nimport { getRandomColor } from \"../../utils/helpers\";\nimport { Color, ColorVariant, borderRadiusShapeMap } from \"../../utils/theme\";\n\ntype TagProps = React.ComponentPropsWithoutRef<\"span\"> & {\n prepend?: React.ReactNode;\n append?: React.ReactNode;\n hashValue?: string;\n color?: Color;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n shape?: \"pill\" | \"rounded\" | \"sharp\";\n variant?: ColorVariant;\n};\n\nexport const Tag = React.forwardRef<HTMLDivElement, TagProps>(\n (\n {\n prepend,\n append,\n children,\n hashValue,\n color,\n size = \"sm\",\n shape = \"rounded\",\n variant = \"light\",\n ...props\n },\n ref\n ) => {\n const randomColor = React.useMemo(() => {\n if (hashValue) {\n return getRandomColor(hashValue);\n }\n\n return \"gray\";\n }, []);\n\n return (\n <span\n className=\"tag\"\n data-radius={borderRadiusShapeMap[shape]}\n data-size={size}\n data-color={color ?? randomColor}\n data-variant={variant}\n ref={ref}\n {...props}\n >\n {prepend && prepend}\n {children}\n {append && append}\n </span>\n );\n }\n);\n\nTag.displayName = \"Tag\";\n","import { supportedColors } from \"./theme\";\n\nexport function hashCode(text: string) {\n const str = String(text);\n let hash = 0;\n let char;\n if (str.trim().length === 0) return hash;\n for (let i = 0; i < str.length; i++) {\n char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n // Convert to 32bit integer\n hash &= hash;\n }\n\n return Math.abs(hash);\n}\n\nexport function id() {\n return Math.random().toString(36);\n}\n\nexport function getRandomColor(string: string) {\n const hash = hashCode(string);\n return supportedColors[hash % supportedColors.length];\n}\n","export const supportedColors = [\n \"tomato\",\n \"red\",\n \"crimson\",\n \"pink\",\n \"plum\",\n \"purple\",\n \"violet\",\n \"indigo\",\n \"blue\",\n \"cyan\",\n \"teal\",\n \"green\",\n \"grass\",\n \"orange\",\n \"brown\",\n \"sky\",\n \"mint\",\n \"lime\",\n \"yellow\",\n \"amber\",\n \"gold\",\n \"bronze\",\n \"gray\",\n \"mauve\",\n \"slate\",\n \"sage\",\n \"olive\",\n \"sand\",\n] as const;\n\nexport type Color = typeof supportedColors[number];\n\nexport type ColorVariant =\n | \"solid\"\n | \"outline\"\n | \"light\"\n | \"lightOutline\"\n | \"solidMono\"\n | \"ghost\"\n | \"pastel\";\n\nexport type BorderRadius = \"none\" | \"sm\" | \"md\" | \"lg\" | \"full\";\nexport type Appearance = \"light\" | \"dark\";\n\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type ButtonAppearance = \"primary\" | \"secondary\" | \"minimal\";\n\nexport type ButtonAppearanceSchemaType = Partial<\n Record<ButtonAppearance, { variant: ColorVariant; color: Color }>\n>;\nexport type DisplayType =\n | \"block\"\n | \"inline\"\n | \"inline-block\"\n | \"flex\"\n | \"none\"\n | \"grid\"\n | \"inline-flex\";\n\nexport type PositionType = \"absolute\" | \"relative\" | \"fixed\" | \"sticky\";\n\nexport type JustifyContentType =\n | \"start\"\n | \"center\"\n | \"end\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n\nexport type AlignItemsType =\n | \"start\"\n | \"center\"\n | \"end\"\n | \"stretch\"\n | \"baseline\";\n\nexport type FlexDirectionType =\n | \"row\"\n | \"column\"\n | \"row-reverse\"\n | \"column-reverse\";\n\nexport type SizeOption =\n | \"none\"\n | \"4xs\"\n | \"3xs\"\n | \"2xs\"\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\";\n\nexport const borderRadiusShapeMap = {\n sharp: \"none\",\n pill: \"full\",\n rounded: undefined,\n};\n\nfunction ps(styles: any) {\n // 1. iterate over the keys of the styles object\n // 2. for each key, check is is valid css property\n}\n\ntype CSS = any;\n\ntype ParrotStyleDef = { variants: Record<string, CSS> };\n","import * as React from \"react\";\nimport { AriaPopoverProps, Overlay, usePopover } from \"react-aria\";\nimport { OverlayTriggerState } from \"react-stately\";\nimport { useTheme } from \"../theme/theme-provider\";\n\ninterface PopoverProps extends Omit<AriaPopoverProps, \"popoverRef\"> {\n state: OverlayTriggerState;\n children: React.ReactNode;\n}\n\nexport function Popover({ state, children, ...props }: PopoverProps) {\n const popoverRef = React.useRef(null);\n\n const theme = useTheme();\n\n const { popoverProps, underlayProps } = usePopover(\n { ...props, popoverRef },\n state\n );\n\n return (\n <Overlay>\n <div {...underlayProps} className=\"underlay\"></div>\n <div\n data-color={theme?.color}\n data-radius={theme?.radius}\n {...popoverProps}\n ref={popoverRef}\n className=\"parrot-theme popover\"\n >\n {children}\n </div>\n </Overlay>\n );\n}\n","import { DateValue } from \"@react-types/calendar\";\nimport * as React from \"react\";\nimport {\n AriaCalendarCellProps,\n AriaCalendarGridProps,\n AriaCalendarProps,\n mergeProps,\n useCalendar,\n useCalendarCell,\n useCalendarGrid,\n useFocusRing,\n useLocale,\n} from \"react-aria\";\nimport { CalendarState, useCalendarState } from \"react-stately\";\nimport {\n CalendarDate,\n DateDuration,\n createCalendar,\n endOfMonth,\n getWeeksInMonth,\n isSameMonth,\n} from \"@internationalized/date\";\nimport { Flex } from \"../flex\";\nimport { IconButton } from \"../button\";\nimport { Text } from \"../text\";\nimport { HiChevronLeft, HiChevronRight } from \"react-icons/hi\";\nimport { range } from \"../../utils/array\";\nimport { InputVariantProps } from \"../input/input\";\nimport { Color } from \"../../utils/theme\";\n\ninterface CalendarProps\n extends AriaCalendarProps<DateValue>,\n InputVariantProps {\n numberOfMonths?: number;\n}\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n ({ numberOfMonths = 1, color, ...props }, ref) => {\n const { locale } = useLocale();\n const state = useCalendarState({\n ...props,\n locale,\n createCalendar,\n visibleDuration: { months: numberOfMonths },\n });\n\n const { calendarProps, prevButtonProps, nextButtonProps, title } =\n useCalendar(props, state);\n return (\n <Flex\n color={color}\n inline\n gap={\"xs\"}\n direction={\"column\"}\n ref={ref}\n {...calendarProps}\n className=\"calendar\"\n >\n <Flex align={\"center\"} justify={\"space-between\"} className=\"header\">\n <IconButton\n variant=\"ghost\"\n radius={\"md\"}\n size={\"xs\"}\n color={\"gray\"}\n {...prevButtonProps}\n >\n <HiChevronLeft size={20} />\n </IconButton>\n\n <Text color=\"gray\" size=\"sm\" weight={\"medium\"} as=\"h2\">\n {title}\n </Text>\n <IconButton\n variant=\"ghost\"\n radius=\"md\"\n size={\"xs\"}\n color=\"gray\"\n {...nextButtonProps}\n >\n <HiChevronRight size={20} />\n </IconButton>\n </Flex>\n\n <Flex gap={\"xl\"}>\n {range(1, numberOfMonths).map((n) => {\n return (\n <CalendarGrid\n color={color}\n key={n}\n state={state}\n offset={{ months: n - 1 }}\n />\n );\n })}\n </Flex>\n </Flex>\n );\n }\n);\n\ntype CalendarGridProps = AriaCalendarGridProps & {\n state: CalendarState;\n offset?: DateDuration;\n color?: Color;\n};\n\nfunction CalendarGrid({\n state,\n offset = {},\n color,\n ...props\n}: CalendarGridProps) {\n const { locale } = useLocale();\n const startDate = state.visibleRange.start.add(offset);\n const endDate = endOfMonth(startDate);\n const { gridProps, headerProps, weekDays } = useCalendarGrid(\n { startDate, endDate, ...props },\n state\n );\n\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale);\n\n return (\n <table {...gridProps}>\n <thead {...headerProps}>\n <tr>\n {weekDays.map((day, index) => (\n <th key={index}>\n <div className=\"date-cell\">\n <Text size={\"sm\"} variant=\"lighter\" weight={\"medium\"}>\n {day}\n </Text>\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {[...new Array(weeksInMonth).keys()].map((weekIndex) => (\n <tr key={weekIndex}>\n {state\n .getDatesInWeek(weekIndex, startDate)\n .map((date, index) =>\n date ? (\n <CalendarCell\n color={color}\n state={state}\n date={date}\n key={index}\n currentMonth={startDate}\n ></CalendarCell>\n ) : (\n <td key={index}></td>\n )\n )}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n\ntype CalendarCellProps = AriaCalendarCellProps & {\n state: CalendarState;\n currentMonth: CalendarDate;\n color?: Color;\n};\n\nfunction CalendarCell({\n state,\n currentMonth,\n color,\n ...props\n}: CalendarCellProps) {\n const ref = React.useRef(null);\n const {\n cellProps,\n buttonProps,\n isSelected,\n isDisabled,\n isUnavailable,\n formattedDate,\n } = useCalendarCell(props, state, ref);\n\n const { focusProps, isFocusVisible, isFocused } = useFocusRing();\n const isOutsideMonth = !isSameMonth(currentMonth, props.date);\n\n return (\n <td {...cellProps}>\n <div\n {...mergeProps(buttonProps, focusProps)}\n ref={ref}\n data-hidden={isOutsideMonth}\n data-selected={isSelected}\n data-disabled={isDisabled}\n data-unavailable={isUnavailable}\n data-focused={isFocused}\n data-focus-visible={isFocusVisible}\n className=\"date-cell\"\n data-color={color}\n >\n {formattedDate}\n </div>\n </td>\n );\n}\n\nCalendar.displayName = \"Calendar\";\n","import { omit, pick } from \"./object\";\nimport { Dict } from \"./types\";\n\nexport function range(start = 0, end: number, step = 1): Array<number> {\n const result: Array<number> = [];\n \n for (let index = start; index <= end; index += step) {\n result.push(index);\n }\n \n return result;\n }\n \n export function findObjectInArray<O extends Dict>(\n array: Array<O>,\n key: keyof O,\n value: unknown\n ): O | undefined {\n return array.find((item) => {\n return item[key] === value;\n });\n }\n \n export function omitArray<O extends Dict>(array: Array<O>, keys: (keyof O)[]) {\n return array.map((item) => omit(item, keys));\n }\n \n export function pickArray<O extends Dict>(array: Array<O>, keys: (keyof O)[]) {\n return array.map((item) => pick(item, keys));\n }","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { DateField } from \"./date-field\";\nimport { Calendar } from \"./calendar\";\nimport { AriaDatePickerProps, useDatePicker } from \"react-aria\";\nimport { DateValue } from \"@internationalized/date\";\nimport { Popover } from \"../popover\";\nimport { useDatePickerState } from \"react-stately\";\nimport { IconButton } from \"../button\";\nimport { HiOutlineCalendar } from \"react-icons/hi\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { convertDateToDateValue } from \"./date-picker.utils\";\nimport { cx } from \"../../utils/dom\";\nimport { useSpace } from \"../space/space\";\nimport { InputVariantProps } from \"../input/input\";\n\ninterface DatePickerProps\n extends Omit<\n AriaDatePickerProps<DateValue>,\n \"value\" | \"defaultValue\" | \"onChange\"\n >,\n InputVariantProps {\n numberOfMonths?: number;\n error?: string;\n value?: Date;\n defaultValue?: Date;\n onChange?: (date: Date, proxiedValue: DateValue) => void;\n dropdownIcon?: React.ReactNode;\n}\n\nexport const DatePicker = React.forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n appearance = \"filled\",\n size = \"md\",\n color,\n shape,\n numberOfMonths,\n value,\n onChange,\n defaultValue,\n dropdownIcon = <HiOutlineCalendar size={16} />,\n ...props\n },\n ref\n ) => {\n const space = useSpace();\n function _onChange(date: DateValue) {\n onChange?.(new Date(date.year, date.month, date.day), date);\n }\n\n // convert Date to DateValue\n const proxyDateValues = React.useMemo(() => {\n return {\n value: value ? convertDateToDateValue(value) : undefined,\n defaultValue: defaultValue\n ? convertDateToDateValue(defaultValue)\n : undefined,\n };\n }, [value?.toString(), defaultValue?.toString()]);\n\n const newPropsWithProxies = {\n ...props,\n onChange: onChange ? _onChange : undefined,\n value: proxyDateValues.value,\n defaultValue: proxyDateValues.defaultValue,\n };\n\n const state = useDatePickerState(newPropsWithProxies);\n const pickerRef = React.useRef(null);\n const {\n groupProps,\n calendarProps,\n fieldProps,\n buttonProps,\n errorMessageProps,\n labelProps,\n } = useDatePicker(newPropsWithProxies, state, pickerRef);\n\n return (\n <Flex\n data-size={size}\n className={cx({\n [space.compactItemWrapperAdjust]: true,\n \"p-input-group\": true,\n })}\n stretchX\n stack\n gap={\"xs\"}\n >\n {props.label && <InputLabel {...labelProps}>{props.label}</InputLabel>}\n <Flex ref={ref} gap={\"xl\"} stretchX inline stack>\n <Flex\n className={cx({\n \"date-picker-trigger\": true,\n \"p-input\": true,\n ...space.classNames,\n })}\n ref={pickerRef}\n justify={\"space-between\"}\n align={\"center\"}\n data-appearance={appearance}\n data-color={color}\n {...groupProps}\n >\n <DateField\n appearance={appearance}\n size={size}\n {...fieldProps}\n ></DateField>\n <IconButton\n size=\"sm\"\n variant=\"ghost\"\n color={color}\n {...buttonProps}\n >\n {dropdownIcon}\n </IconButton>\n </Flex>\n\n {state.isOpen && (\n <Popover\n offset={8}\n state={state}\n triggerRef={pickerRef}\n placement=\"bottom start\"\n >\n <Calendar\n color={color}\n {...calendarProps}\n numberOfMonths={numberOfMonths}\n ></Calendar>\n </Popover>\n )}\n </Flex>\n {props.error && (\n <InputError {...errorMessageProps}>{props.error}</InputError>\n )}\n </Flex>\n );\n }\n);\n\nDatePicker.displayName = \"DatePicker\";\n","import { DateValue, createCalendar } from \"@internationalized/date\";\nimport * as React from \"react\";\nimport {\n AriaDatePickerProps,\n useDateField,\n useDateSegment,\n useLocale,\n} from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { DateFieldState, useDateFieldState } from \"react-stately\";\nimport type { DateSegment } from \"react-stately\";\nimport { Text } from \"../text\";\nimport { mergeRefs } from \"../../utils/dom\";\nimport { InputVariantProps } from \"../input/input\";\n\ninterface DateFieldProps\n extends AriaDatePickerProps<DateValue>,\n InputVariantProps {\n error?: string;\n}\n\nexport const DateField = React.forwardRef<HTMLDivElement, DateFieldProps>(\n (props, ref) => {\n const { locale } = useLocale();\n\n const state = useDateFieldState({ ...props, locale, createCalendar });\n\n const fieldRef = React.useRef(null);\n const { fieldProps } = useDateField(props, state, fieldRef);\n\n return (\n <Flex\n style={{ padding: 4, flex: 1 }}\n stretchY\n ref={mergeRefs(fieldRef, ref)}\n inline\n {...fieldProps}\n >\n {state.segments.map((segment, i) => {\n return (\n <DateSegment key={i} segment={segment} state={state}></DateSegment>\n );\n })}\n </Flex>\n );\n }\n);\n\nfunction DateSegment({\n segment,\n state,\n}: {\n segment: DateSegment;\n state: DateFieldState;\n}) {\n const ref = React.useRef(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n const segmentMaxValue = segment.maxValue ?? 0;\n\n return (\n <Flex\n className=\"date-input-segment\"\n align={\"center\"}\n justify={\"center\"}\n ref={ref}\n data-placeholder={segment.isPlaceholder}\n {...segmentProps}\n style={{\n minWidth: segmentMaxValue.toString().length + \"ch\",\n color: segment.text == \"/\" ? \"var(--color-6)\" : \"var(--color-12)\",\n }}\n >\n <Text\n size={\"sm\"}\n variant={segment.isPlaceholder ? \"dark\" : \"lighter\"}\n as=\"span\"\n aria-hidden=\"true\"\n style={{\n color: \"inherit\",\n display: \"block\",\n height: segment.isPlaceholder ? \"\" : 0,\n pointerEvents: \"none\",\n visibility: segment.isPlaceholder ? undefined : \"hidden\",\n fontStyle: \"italic\",\n position: segment.isPlaceholder ? undefined : \"absolute\",\n }}\n >\n {segment.placeholder}\n </Text>\n {segment.isPlaceholder ? \"\" : segment.text}\n </Flex>\n );\n}\n\nDateField.displayName = \"DateField\";\n","import { CalendarDate } from \"@internationalized/date\";\n\nexport function convertDateToDateValue(date:Date){\n return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate())\n}","import * as React from \"react\";\nimport { hashCode } from \"../../utils/helpers\";\nimport { cx } from \"../../utils/dom\";\nimport {\n BorderRadius,\n Color,\n ColorVariant,\n supportedColors,\n} from \"../../utils/theme\";\nimport { useTheme } from \"../theme/theme-provider\";\n\ntype AvatarSize = \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n\ntype AvatarShape = \"circle\" | \"square\";\n\nexport interface AvatarProps {\n src?: string;\n alt?: string;\n name?: string;\n fallback?: React.ReactNode;\n radius?: BorderRadius;\n color?: Color;\n variant?: ColorVariant;\n size?: AvatarSize;\n shape?: AvatarShape;\n}\n\nexport const Avatar = React.forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<AvatarProps>\n>(\n (\n {\n src,\n alt,\n name,\n color,\n variant = \"light\",\n fallback,\n children,\n size = \"md\",\n shape = \"square\",\n ...props\n },\n ref\n ) => {\n const [imageError, setImageError] = React.useState(false);\n const theme = useTheme();\n\n function getAvatarRadius(): BorderRadius {\n if (theme?.avatarRadiusSize && shape !== \"circle\") {\n return theme.avatarRadiusSize;\n }\n\n if (shape === \"circle\") {\n return \"full\";\n }\n\n return \"md\";\n }\n\n const defaultColor = React.useMemo(() => {\n const hash = hashCode(name || \"\");\n return supportedColors[hash % supportedColors.length];\n }, [name]);\n\n const renderContent = () => {\n if (src && !imageError) {\n return (\n <img\n onLoad={() => setImageError(false)}\n onError={() => setImageError(true)}\n src={src}\n alt={alt}\n />\n );\n }\n\n if (imageError && !children) {\n return fallback;\n }\n\n if (!src && !children && name) {\n return <span>{name.charAt(0)}</span>;\n }\n\n return children;\n };\n\n return (\n <div\n className={cx([\"p-avatar\", `avatar-size-${size}`])}\n data-radius={getAvatarRadius()}\n data-color={color ?? defaultColor}\n data-variant={variant}\n data-interactive={false}\n ref={ref}\n {...props}\n >\n {renderContent()}\n </div>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n","import * as React from \"react\";\nimport { VisuallyHidden } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport type { ActionStatus } from \"../../utils/types\";\nimport {\n HiOutlineCheckCircle,\n HiOutlineDocumentAdd,\n HiOutlineExclamationCircle,\n HiOutlinePaperClip,\n HiOutlineRefresh,\n HiOutlineTrash,\n} from \"react-icons/hi\";\nimport { Text } from \"../text\";\nimport { Loader } from \"../loader\";\nimport { IconButton } from \"../button\";\nimport { InputError } from \"../input-error\";\nimport { InputLabel } from \"../input-label\";\nimport { useDrop, FileDropItem } from \"react-aria\";\nimport { isEmptyArray } from \"../../utils/assertions\";\nimport { id } from \"../../utils/helpers\";\nimport { Color } from \"../../utils/theme\";\n\nexport type Upload = {\n name: string;\n url: string;\n id: string;\n file?: File;\n status?: ActionStatus;\n progress?: number;\n};\n\n// onChange\n// 1. convert files into upload type with raw file\n// onFileUpload should now take an Array<Upload> argument\n// if you need to do a remote upload outside the component you have access to the raw files.\n// write utility function to extract files from Upload object\n// if you want to use the component as a controlled component, simply pass in an uploads prop.\n// if it's a single upload, display inside component\n// if it's multiple uploads show them in the list of uploads as file name and progress bar\n\ninterface FileUploaderProps {\n onFileUpload?: (files: Array<Upload>) => void;\n onRemoveFile?: () => void;\n onStatusChange?: (status: ActionStatus) => void;\n error?: React.ReactNode;\n label?: React.ReactNode;\n allowMultiple?: boolean;\n uploads?: Array<Upload>;\n hideFileList?: boolean;\n color?: Color;\n}\n\nexport const FileUploader = React.forwardRef<HTMLDivElement, FileUploaderProps>(\n (\n {\n onFileUpload,\n onRemoveFile,\n error,\n label,\n allowMultiple,\n uploads: controlledUploads,\n hideFileList,\n color,\n },\n ref\n ) => {\n const [_uploads, setUploads] = React.useState<Array<Upload>>([]);\n\n const uploads = controlledUploads ?? _uploads;\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n const wrapperRef = React.useRef(null);\n\n const { dropProps, isDropTarget } = useDrop({\n ref: wrapperRef,\n async onDrop(e) {\n const files = await Promise.all(\n (\n e.items.filter(\n (item) => item.kind === \"file\"\n ) as Array<FileDropItem>\n ).map(async (file) => {\n const f = await file.getFile();\n return f;\n })\n );\n\n const uploads = files.map(convertFileToUpload);\n\n onUpload(uploads);\n },\n });\n\n function onUpload(uploads: Array<Upload>) {\n console.log(uploads);\n if (isEmptyArray(uploads)) {\n return;\n }\n\n setUploads(uploads);\n onFileUpload?.(uploads);\n }\n\n function onChange(e: React.ChangeEvent<HTMLInputElement>) {\n const rawFiles = e.target.files;\n\n if (rawFiles?.length) {\n const files = Array.from(rawFiles).map(convertFileToUpload);\n onUpload(files);\n inputRef.current && (inputRef.current.value = \"\");\n }\n }\n\n function convertFileToUpload(file: File): Upload {\n return {\n name: file.name,\n id: id(),\n url: URL.createObjectURL(file),\n status: \"success\",\n file,\n };\n }\n\n function handleRemoveFile() {\n setUploads([]);\n onRemoveFile?.();\n }\n\n function handleRetry() {\n console.log(\"retry\");\n }\n\n const isIdle =\n allowMultiple ||\n (!allowMultiple && uploads[0]?.status === \"idle\") ||\n !uploads.length;\n const isUploading = !allowMultiple && uploads[0]?.status === \"loading\";\n const isUploaded = !allowMultiple && uploads[0]?.status === \"success\";\n const isFailed = !allowMultiple && uploads[0]?.status === \"error\";\n\n return (\n <Flex ref={ref} stack gap={\"xs\"}>\n {label && <InputLabel>{label}</InputLabel>}\n <label\n className=\"file-uploader-wrapper\"\n ref={wrapperRef}\n {...dropProps}\n data-color={color}\n data-dropping={isDropTarget}\n data-state={\n allowMultiple || !uploads.length ? \"idle\" : uploads[0]?.status\n }\n >\n <VisuallyHidden>\n <input\n ref={inputRef}\n multiple={allowMultiple}\n onChange={onChange}\n type={isIdle ? \"file\" : \"hidden\"}\n />\n </VisuallyHidden>\n\n {isIdle && (\n <Flex align=\"center\" gap={\"xs\"}>\n <HiOutlineDocumentAdd className=\"state-icon\" size={20} />\n <Text color={\"inherit\"} size=\"sm\">\n Click or drag files here to upload\n </Text>\n </Flex>\n )}\n\n {isUploading && (\n <Flex align={\"center\"} gap={\"xs\"}>\n <Loader size=\"xs\" />\n <Text color=\"inherit\" size=\"sm\">\n Name_of_file.ext / Uploading...\n </Text>\n </Flex>\n )}\n\n {isUploaded && (\n <Flex stretchX align={\"center\"} justify={\"space-between\"}>\n <Flex align={\"center\"} gap={\"xs\"}>\n <HiOutlineCheckCircle size={16} />\n <Text color=\"green\" size=\"sm\">\n File successfully uploaded\n </Text>\n </Flex>\n\n <IconButton\n onPress={handleRemoveFile}\n variant={\"outline\"}\n color=\"green\"\n size=\"xs\"\n >\n <HiOutlineTrash size={16} />\n </IconButton>\n </Flex>\n )}\n\n {isFailed && (\n <Flex stretchX justify={\"space-between\"}>\n <Flex align={\"center\"} gap={\"xs\"}>\n <HiOutlineExclamationCircle className=\"state-icon\" />\n <Text color={\"tomato\"} size=\"sm\">\n Failed to upload file\n </Text>\n </Flex>\n\n <IconButton\n onPress={handleRetry}\n variant={\"outline\"}\n color={\"tomato\"}\n size={\"xs\"}\n >\n <HiOutlineRefresh size={16} />\n </IconButton>\n </Flex>\n )}\n\n <Flex></Flex>\n </label>\n\n {uploads.length > 1 && !hideFileList && (\n <Flex\n style={{ marginTop: 10 }}\n stack\n gap={\"sm\"}\n className=\"upload-list\"\n >\n {uploads.map((upload) => (\n <Flex align={\"center\"} gap={\"xs\"} key={upload.id}>\n {upload.status === \"loading\" && <Loader></Loader>}\n {upload.status === \"success\" && <HiOutlinePaperClip />}\n <Text size=\"sm\" color={\"gray\"}>\n {upload.name}\n </Text>\n </Flex>\n ))}\n </Flex>\n )}\n\n {error && <InputError>{error}</InputError>}\n </Flex>\n );\n }\n);\n\nFileUploader.displayName = \"FileUploader\";\n","import * as React from \"react\";\nimport { cx } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\ninterface SeparatorProps extends React.ComponentPropsWithoutRef<\"div\"> {\n orientation?: \"horizontal\" | \"vertical\";\n color?: Color;\n opacity?: \"faint\" | \"medium\" | \"strong\";\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ orientation, className, color, opacity, ...props }, ref) => {\n return (\n <div\n data-opacity={opacity}\n data-color={color}\n data-orientation={orientation}\n className={cx([\"p-separator\", className])}\n ref={ref}\n {...props}\n ></div>\n );\n }\n);\n\nSeparator.displayName = \"Separator\";\n","import * as React from \"react\";\nimport { Box } from \"../box\";\nimport { AriaProgressBarProps, useProgressBar } from \"react-aria\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport { cx } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\ninterface ProgressProps\n extends AriaProgressBarProps,\n React.ComponentPropsWithoutRef<\"div\"> {\n height?: number;\n color?: Color;\n}\n\nexport const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ height = 2, className, style, color, ...props }, ref) => {\n const { minValue = 0, maxValue = 100, value = 0, label } = props;\n const { progressBarProps, labelProps } = useProgressBar(props);\n const percent = ((value - minValue) / (maxValue - minValue)) * 100;\n const barWidth = `${percent}%`;\n\n return (\n <Flex\n data-color={color}\n style={style}\n className={cx([className, \"progress-bar\"])}\n stack\n {...progressBarProps}\n >\n {label && <Text {...labelProps}>{label}</Text>}\n <div\n className=\"progress-wrapper\"\n style={{\n height,\n background: \"var(--color-3)\",\n position: \"relative\",\n borderRadius: 60,\n overflow: \"hidden\",\n }}\n ref={ref}\n >\n <Box\n position={\"absolute\"}\n className=\"progress\"\n style={{\n left: 0,\n top: 0,\n height: \"100%\",\n width: barWidth,\n background: \"var(--color-10)\",\n transition: \"all 0.3s ease\",\n }}\n ></Box>\n </div>\n </Flex>\n );\n }\n);\n\nProgress.displayName = \"Progress\";\n","import { Item, Root } from \"./tabs\";\n\nexport const TabObject = {\n Item: Item,\n Root: Root,\n};\n\nexport { Root, Item } from \"./tabs\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from \"react\";\nimport {\n AriaTabListProps,\n AriaTabPanelProps,\n useTab,\n useTabList,\n useTabPanel,\n} from \"react-aria\";\nimport { Item as AriaItem, TabListState, useTabListState } from \"react-stately\";\nimport { Node } from \"../../utils/types\";\nimport { Box } from \"../box\";\n\nexport interface TabsProps extends AriaTabListProps<any> {\n orientation?: \"horizontal\" | \"vertical\";\n}\n\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n ({ ...props }, ref) => {\n const state = useTabListState(props);\n const tabRef = React.useRef<HTMLDivElement>(null);\n\n const [indicatorStyles, setIndicatorStyles] = React.useState({\n width: 0,\n left: 0,\n });\n\n const indicatorRef = React.useRef(null);\n\n const { tabListProps } = useTabList(props, state, tabRef);\n\n React.useEffect(() => {\n const selected: any = tabRef?.current?.querySelector(\n '.tab[aria-selected=\"true\"]'\n );\n setIndicatorStyles({\n width: selected?.offsetWidth,\n left: selected?.offsetLeft,\n });\n }, [state.selectedKey]);\n\n return (\n <Box position={\"relative\"} ref={ref} className=\"p-tabs\">\n <div {...tabListProps} ref={tabRef} className=\"p-tab-list\">\n <Box\n className=\"indicator\"\n style={{\n left: indicatorStyles?.left,\n bottom: 0,\n background: \"$violet10\",\n height: 2,\n marginBottom: -1,\n width: indicatorStyles?.width,\n transition: \"all 0.2s ease\",\n }}\n ref={indicatorRef}\n position={\"absolute\"}\n ></Box>\n {[...state.collection].map((item) => (\n <Tab\n orientation={props.orientation}\n key={item.key}\n item={item as any}\n state={state}\n ></Tab>\n ))}\n </div>\n <TabPanel key={state?.selectedItem?.key} state={state} />\n </Box>\n );\n }\n);\n\ntype TabProps = {\n item: Node<unknown>;\n state: TabListState<unknown>;\n orientation?: \"horizontal\" | \"vertical\";\n};\n\nfunction Tab({ item, state }: TabProps) {\n const { key, rendered } = item;\n const ref = React.useRef(null);\n\n const { tabProps, isDisabled, isSelected } = useTab({ key }, state, ref);\n\n return (\n <div\n id={`tab-${key}`}\n className=\"p-tab\"\n ref={ref}\n data-disabled={isDisabled}\n data-selected={isSelected}\n {...tabProps}\n >\n {rendered}\n </div>\n );\n}\n\ntype TabPanelProps = AriaTabPanelProps & {\n state: TabListState<unknown>;\n};\n\nfunction TabPanel({ state, ...props }: TabPanelProps) {\n const ref = React.useRef(null);\n const { tabPanelProps } = useTabPanel(props, state, ref);\n\n return (\n <div {...tabPanelProps} ref={ref}>\n {state.selectedItem?.props.children}\n </div>\n );\n}\n\nexport const Root = Tabs;\nexport const Item = AriaItem;\n\nTabs.displayName = \"Tabs\";\n","import * as React from \"react\";\nimport {\n AriaSwitchProps,\n VisuallyHidden,\n useFocusRing,\n useHover,\n usePress,\n useSwitch,\n} from \"react-aria\";\nimport { useToggleState } from \"react-stately\";\nimport { Flex } from \"../flex\";\nimport { Color, ColorVariant } from \"../../utils/theme\";\n\ninterface Props extends AriaSwitchProps {\n color?: Color;\n variant?: ColorVariant;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport const Switch = React.forwardRef<HTMLLabelElement, Props>(\n ({ color = \"violet\", size = \"sm\", children, ...props }, ref) => {\n const { isHovered, hoverProps } = useHover(props);\n const { isPressed, pressProps } = usePress(props);\n const state = useToggleState(props);\n const switchRef = React.useRef(null);\n const { inputProps } = useSwitch(props, state, switchRef);\n const { isFocusVisible, focusProps } = useFocusRing();\n\n return (\n <Flex\n ref={ref as any}\n style={{\n opacity: props.isDisabled ? 0.4 : 1,\n }}\n align={\"center\"}\n gap={\"xs\"}\n as=\"label\"\n >\n <VisuallyHidden>\n <input ref={switchRef} {...inputProps} {...focusProps} />\n </VisuallyHidden>\n\n <span\n data-color={color}\n data-hovered={isHovered}\n data-disabled={props.isDisabled}\n data-selected={state.isSelected}\n data-focused={isFocusVisible}\n className=\"p-switch track\"\n data-size={size}\n {...hoverProps}\n >\n <Flex\n data-selected={state.isSelected}\n data-pressed={isPressed}\n className=\"thumb\"\n {...pressProps}\n />\n </span>\n {children}\n </Flex>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { RadioGroup } from \"../radio\";\nimport { AriaRadioProps, VisuallyHidden, useRadio } from \"react-aria\";\nimport { RadioContext } from \"../radio/radio\";\nimport { HiCheck } from \"react-icons/hi\";\nimport { Color, supportedColors } from \"../../utils/theme\";\n\n// TODO Rewrite this component\n\ninterface ColorOptionProps extends AriaRadioProps {\n color: Color;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst ColorOption = React.forwardRef<HTMLLabelElement, ColorOptionProps>(\n ({ size, ...props }, ref) => {\n const state = React.useContext(RadioContext);\n if (!state) throw new Error(\"Color Option must be used within a ColorTray\");\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(props, state, inputRef);\n\n return (\n <label ref={ref}>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n <div\n className=\"color-button\"\n data-size={size}\n data-selected={inputProps.checked}\n style={{ background: props.value }}\n >\n {inputProps.checked && <HiCheck strokeWidth={1} />}\n </div>\n </label>\n );\n }\n);\n\nColorOption.displayName = \"ColorOption\";\n\ninterface ColorTrayProps extends React.ComponentProps<typeof RadioGroup> {\n trayColors?: Array<Color>;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\n// TODO - rewrite this component -\n//colors should be passed in as an array of actual color values. lights & darks\n\nexport const ColorTray = React.forwardRef<HTMLDivElement, ColorTrayProps>(\n (\n {\n trayColors = [\n \"tomato\",\n \"orange\",\n \"amber\",\n \"green\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"pink\",\n \"violet\",\n \"gray\",\n ],\n size,\n ...props\n },\n ref\n ) => {\n const dedupedColors = React.useMemo(() => {\n return Array.from(new Set(trayColors));\n }, [trayColors]);\n\n return (\n <RadioGroup\n {...props}\n aria-labelledby=\"color-tray\"\n gap={props.gap || \"3xs\"}\n stack\n ref={ref}\n >\n <Flex justify={props.justify} gap={\"3xs\"} ref={ref}>\n {dedupedColors.map((color) => {\n return (\n <ColorOption\n size={size}\n aria-labelledby={color}\n value={\"\"}\n color={color}\n key={color}\n ></ColorOption>\n );\n })}\n </Flex>\n <Flex justify={props.justify} gap={\"3xs\"} ref={ref}>\n {dedupedColors.map((color) => {\n return (\n <ColorOption\n size={size}\n aria-labelledby={`${color}-light`}\n value={\"\"}\n color={color}\n key={`${color}-light`}\n ></ColorOption>\n );\n })}\n </Flex>\n </RadioGroup>\n );\n }\n);\n\nColorTray.displayName = \"ColorTray\";\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { RadioGroup } from \"../radio\";\nimport { AriaRadioProps, VisuallyHidden, useRadio } from \"react-aria\";\nimport { RadioContext } from \"../radio/radio\";\nimport {\n HiOutlineAnnotation,\n HiOutlineArchive,\n HiOutlineAtSymbol,\n HiOutlineBadgeCheck,\n HiOutlineCreditCard,\n HiOutlineCurrencyDollar,\n HiOutlineCursorClick,\n HiOutlineDocumentDownload,\n HiOutlineFire,\n HiOutlineGlobe,\n HiOutlineGlobeAlt,\n HiOutlineHeart,\n HiOutlineLightningBolt,\n HiOutlineLocationMarker,\n HiOutlineMoon,\n HiOutlineSparkles,\n HiOutlineSpeakerphone,\n HiOutlineTag,\n HiOutlineTerminal,\n HiOutlineUserCircle,\n} from \"react-icons/hi\";\n\ntype IconOptionType = {\n name: string;\n icon: React.ReactNode;\n};\n\ninterface IconOptionProps extends AriaRadioProps {\n color: string;\n icon: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst IconOption = React.forwardRef<HTMLLabelElement, IconOptionProps>(\n ({ color, icon, size, ...props }, ref) => {\n const state = React.useContext(RadioContext);\n if (!state) throw new Error(\"Color Option must be used within a ColorTray\");\n const inputRef = React.useRef(null);\n const { inputProps } = useRadio(props, state, inputRef);\n\n return (\n <label ref={ref}>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n\n <div\n className=\"p-icon-button\"\n data-size={size}\n data-checked={inputProps.checked}\n style={{\n background: inputProps.checked ? color : \"none\",\n }}\n >\n {React.cloneElement(icon as React.ReactElement, {\n className: \"tray-icon\",\n })}\n </div>\n </label>\n );\n }\n);\n\nconst defaultIcons: Array<IconOptionType> = [\n { name: \"globe\", icon: <HiOutlineGlobe /> },\n { name: \"currency\", icon: <HiOutlineCurrencyDollar /> },\n { name: \"internet\", icon: <HiOutlineGlobeAlt /> },\n { name: \"box\", icon: <HiOutlineArchive /> },\n { name: \"chat-bubble\", icon: <HiOutlineAnnotation /> },\n { name: \"fire\", icon: <HiOutlineFire /> },\n { name: \"check-ribbon\", icon: <HiOutlineBadgeCheck /> },\n { name: \"sparkles\", icon: <HiOutlineSparkles /> },\n { name: \"megaphone\", icon: <HiOutlineSpeakerphone /> },\n { name: \"credit-card\", icon: <HiOutlineCreditCard /> },\n { name: \"heart\", icon: <HiOutlineHeart /> },\n { name: \"location\", icon: <HiOutlineLocationMarker /> },\n { name: \"click\", icon: <HiOutlineCursorClick /> },\n { name: \"bolt\", icon: <HiOutlineLightningBolt /> },\n { name: \"download\", icon: <HiOutlineDocumentDownload /> },\n { name: \"tag\", icon: <HiOutlineTag /> },\n { name: \"at\", icon: <HiOutlineAtSymbol /> },\n { name: \"user\", icon: <HiOutlineUserCircle /> },\n { name: \"terminal\", icon: <HiOutlineTerminal /> },\n { name: \"moon\", icon: <HiOutlineMoon /> },\n];\n\nIconOption.displayName = \"IconOption\";\n\ninterface IconTrayProps extends React.ComponentProps<typeof RadioGroup> {\n icons?: Array<IconOptionType>;\n color: string;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport const IconTray = React.forwardRef<HTMLDivElement, IconTrayProps>(\n ({ icons = defaultIcons, color, size, ...props }, ref) => {\n return (\n <RadioGroup aria-label=\"icon-tray\" ref={ref} {...props}>\n <Flex justify={props.justify}>\n {icons.slice(0, 10).map((icon) => (\n <IconOption\n aria-label={icon.name}\n size={size}\n color={color}\n value={icon.name}\n key={icon.name}\n icon={icon.icon}\n />\n ))}\n </Flex>\n <Flex justify={props.justify}>\n {icons.slice(10, 20).map((icon) => (\n <IconOption\n aria-label={icon.name}\n size={size}\n color={color}\n value={icon.name}\n key={icon.name}\n icon={icon.icon}\n />\n ))}\n </Flex>\n </RadioGroup>\n );\n }\n);\n\nIconTray.displayName = \"IconTray\";\n","import React from \"react\";\nimport { Flex, FlexProps } from \"../flex\";\nimport { Color, ColorVariant } from \"../../utils/theme\";\n\ninterface StickerProps extends FlexProps {\n padded?: boolean;\n color?: Color;\n variant?: ColorVariant;\n}\n\nexport const Sticker = React.forwardRef<HTMLDivElement, StickerProps>(\n (\n {\n variant = \"outline\",\n color = \"violet\",\n padded = true,\n gap = \"sm\",\n ...props\n },\n ref\n ) => {\n return (\n <Flex\n style={{\n borderRadius: \"var(--radius-md)\",\n padding: padded ? \"var(--space-4)\" : undefined,\n }}\n data-variant={variant}\n data-color={color}\n ref={ref}\n gap={gap}\n {...props}\n ></Flex>\n );\n }\n);\n\nSticker.displayName = \"Sticker\";\n","import * as React from \"react\";\n\nexport function Table() {\n return <div></div>;\n}\n","import React from \"react\";\nimport { Box } from \"../box\";\nimport { Flex } from \"../flex\";\n\n// https://dribbble.com/shots/20456228-Audit-trail\n// https://dribbble.com/shots/18901487-Attio-Record-Activity-Feed\n// https://dribbble.com/shots/20146723-Sales-Status-Ditto-CRM\n\nexport interface TimelineProps<T> {\n items: Array<T>;\n render?(item: T): React.ReactNode;\n labelKey?: keyof T;\n getIndicator?(item: T): React.ReactNode;\n hideLastItemTail?: boolean;\n}\n\nexport function Timeline<T>({\n items,\n render,\n labelKey,\n getIndicator,\n hideLastItemTail = true,\n}: TimelineProps<T>) {\n return (\n <Box>\n {items.map((item, index) => {\n const indicator = getIndicator?.(item) ?? (\n <div color={\"blue\"} data-variant={\"outline\"} />\n );\n\n const content =\n render?.(item) ?? (item[labelKey as keyof T] as React.ReactNode);\n\n const isLast = index === items.length - 1;\n\n return (\n <Flex className=\"p-timeline-item\" key={index}>\n <Flex align={\"center\"} stack>\n <Flex className=\"p-timeline-indicator-container\">\n {indicator}\n </Flex>\n\n {isLast && hideLastItemTail ? null : (\n <div className=\"p-timeline-item-tail\" />\n )}\n </Flex>\n\n <Flex stretchX className=\"p-timeline-item-content\">\n {content}\n </Flex>\n </Flex>\n );\n })}\n </Box>\n );\n}\n","import * as React from \"react\";\nimport {\n AriaModalOverlayProps,\n Overlay as AriaOverlay,\n useDialog,\n useModalOverlay,\n} from \"react-aria\";\nimport {\n OverlayTriggerProps,\n OverlayTriggerState,\n useOverlayTriggerState,\n} from \"react-stately\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport { Button, IconButton } from \"../button\";\nimport { HiX } from \"react-icons/hi\";\n\nexport interface ModalProps extends AriaModalOverlayProps {\n hideTitle?: boolean;\n state: OverlayTriggerState;\n children?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n onConfirm?(): void;\n onCancel?(): void;\n confirmLabel?: string;\n cancelLabel?: string;\n confirmButtonProps?: React.ComponentProps<typeof Button>;\n cancelButtonProps?: React.ComponentProps<typeof Button>;\n width?: number | string;\n variant?: \"modal\" | \"drawer\";\n showCloseButton?: boolean;\n}\n\nexport function Overlay({ state, children, ...props }: ModalProps) {\n const modalRef = React.useRef(null);\n\n const { modalProps, underlayProps } = useModalOverlay(props, state, modalRef);\n\n if (!state.isOpen) {\n return null;\n }\n\n // bring back aria-overlay when you find a way for theme provider to affect\n // portalled elements\n // aria-overlay handles the focus trap\n return (\n <div className=\"modal-underlay parrot-theme\" {...underlayProps}>\n <div className=\"modal-container\" {...modalProps} ref={modalRef}>\n {children}\n </div>\n </div>\n );\n}\n\nfunction Dialog({\n width = 400,\n title,\n onCancel,\n onConfirm,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n description,\n children,\n state,\n confirmButtonProps,\n cancelButtonProps,\n variant = \"modal\",\n showCloseButton = true,\n ...props\n}: ModalProps) {\n const dialogRef = React.useRef(null);\n\n const { dialogProps, titleProps } = useDialog(\n { role: \"dialog\", ...props },\n dialogRef\n );\n\n return (\n <div\n className=\"modal-content\"\n data-variant={variant}\n style={{ width }}\n ref={dialogRef}\n {...dialogProps}\n >\n <Flex stack>\n <Flex justify=\"space-between\" gap=\"2xl\" className=\"modal-head\">\n <Flex stack gap={\"3xs\"}>\n {title && (\n <Text\n weight={\"medium\"}\n size={\"md\"}\n color={\"gray\"}\n {...titleProps}\n as=\"div\"\n >\n {title}\n </Text>\n )}\n {description && (\n <Text lineHeight={\"base\"} size={\"xs\"} variant={\"light\"} as=\"div\">\n {description}\n </Text>\n )}\n </Flex>\n\n {props.isDismissable && showCloseButton && (\n <IconButton onPress={state.close} variant=\"ghost\" size=\"sm\">\n <HiX size={18} />\n </IconButton>\n )}\n </Flex>\n <Flex className=\"modal-body\">{children}</Flex>\n </Flex>\n {(onConfirm || onCancel) && (\n <Flex className=\"modal-footer\" gap={\"xs\"} justify={\"end\"} stretchX>\n {onCancel && (\n <Button\n onPress={state.close}\n variant={\"outline\"}\n color={\"gray\"}\n {...cancelButtonProps}\n >\n {cancelLabel}\n </Button>\n )}\n {onConfirm && (\n <Button onPress={onConfirm} {...confirmButtonProps}>\n {confirmLabel}\n </Button>\n )}\n </Flex>\n )}\n </div>\n );\n}\n\nexport function Modal(props: ModalProps) {\n return (\n <Overlay {...props}>\n <Dialog {...props} />\n </Overlay>\n );\n}\n\nexport function useModal(props: OverlayTriggerProps = {}) {\n const state = useOverlayTriggerState(props);\n return state;\n}\n\nModal.useModal = useModal;\n","import * as React from \"react\";\nimport { Flex } from \"../flex\";\nimport { Tag } from \"../tag/tag\";\nimport { HiX } from \"react-icons/hi\";\nimport { EMAIL_REGEX } from \"../../utils/regex\";\nimport { InputLabel } from \"../input-label\";\nimport { useControlledState } from \"../../hooks/use-controlled-state\";\nimport { InputError } from \"../input-error\";\nimport { IconButton } from \"../button\";\nimport { Box } from \"../box\";\nimport { InputProps } from \"../input/input\";\nimport { borderRadiusShapeMap } from \"../../utils/theme\";\n\ninterface TagField extends InputProps {\n tags?: Array<string>;\n defaultTags?: Array<string>;\n placeholder?: string;\n onInputValueChange?(value: string): void;\n onChange?(tags: Array<string>): void;\n tagVariant?: React.ComponentProps<typeof Tag>[\"variant\"];\n tagColor?: React.ComponentProps<typeof Tag>[\"color\"];\n tagShape?: React.ComponentProps<typeof Tag>[\"shape\"];\n tagSize?: React.ComponentProps<typeof Tag>[\"size\"];\n renderTag?(value: string, onRemove: (value: string) => void): React.ReactNode;\n}\n\nexport function TagInput({\n appearance = \"outline\",\n size = \"md\",\n label,\n error,\n placeholder,\n tags,\n defaultTags,\n tagColor = \"gray\",\n tagVariant = \"light\",\n tagShape = \"rounded\",\n tagSize = \"md\",\n color,\n onChange,\n renderTag,\n shape = \"rounded\",\n}: TagField) {\n const [inputValue, setInputValue] = React.useState(\"\");\n const [values, setValues] = useControlledState<Array<string>>(\n dedupe(tags),\n dedupe(defaultTags) || [],\n onChange\n );\n const [isFocused, setIsFocused] = React.useState(false);\n\n function dedupe(values: Array<string> | undefined) {\n if (!values) return undefined;\n return Array.from(new Set(values));\n }\n\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n function onInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n const { value } = e.target;\n setInputValue(value);\n }\n\n // function hasTrailingSpace(value: string) {\n // return /\\s$/.test(value);\n // }\n\n function hasTrailingComma(value: string) {\n return /,$/.test(value);\n }\n\n function onInputFocus() {\n setIsFocused(true);\n }\n\n function onInputBlur() {\n setIsFocused(false);\n }\n\n function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n switch (e.key) {\n case \"Enter\":\n case \" \":\n if (isValid(inputValue.trim())) {\n commit([inputValue]);\n }\n break;\n case \"Backspace\":\n if (!inputValue) {\n onRemove(values[values.length - 1]);\n }\n break;\n\n default:\n break;\n }\n }\n\n function captureFocus() {\n inputRef.current?.focus();\n }\n\n function onRemove(value: string) {\n setValues(values.filter((v) => v !== value));\n }\n\n function isValid(value: string) {\n return EMAIL_REGEX.test(value);\n }\n\n function commit(newValues: Array<string>) {\n const validValues = newValues\n .map((v) => v.trim())\n .filter((v) => isValid(v));\n\n if (validValues.length > 0) {\n setInputValue(\"\");\n }\n\n const finalValues = Array.from(new Set([...values, ...validValues]));\n setValues(finalValues);\n }\n\n const showPlaceholder = !inputValue && values.length === 0;\n\n function getInputContainerWidth() {\n if (showPlaceholder) {\n return (placeholder?.length ?? 0) * 10;\n }\n\n if (!showPlaceholder && isFocused) {\n return inputValue?.length * 10 || 10;\n }\n\n return 0;\n }\n\n React.useEffect(() => {\n if (hasTrailingComma(inputValue.trim())) {\n const split = inputValue.split(\",\");\n commit(split);\n }\n }, [inputValue]);\n\n return (\n <Flex data-size={size} className=\"p-input-group\" stack gap={\"xs\"}>\n {label && <InputLabel>{label}</InputLabel>}\n <div\n data-radius={borderRadiusShapeMap[shape]}\n className=\"p-input tag-field\"\n data-color={color}\n data-focused={isFocused}\n onClick={captureFocus}\n data-appearance={appearance}\n >\n {values.map((value) => {\n return renderTag ? (\n renderTag?.(value, onRemove)\n ) : (\n <Tag\n variant={tagVariant}\n color={tagColor}\n shape={tagShape}\n size={tagSize}\n append={\n <IconButton\n variant={\"ghost\"}\n color={tagColor}\n radius={\"md\"}\n style={{ marginLeft: 8 }}\n onPress={() => {\n onRemove(value);\n }}\n size={\"xs\"}\n >\n <HiX size={16} />\n </IconButton>\n }\n key={value}\n >\n {value}\n </Tag>\n );\n })}\n\n <Box\n style={{\n width: getInputContainerWidth(),\n }}\n className=\"input-container\"\n >\n <input\n ref={inputRef}\n placeholder={showPlaceholder ? placeholder : \"\"}\n onKeyDown={onKeyDown}\n value={inputValue}\n onChange={onInputChange}\n onFocus={onInputFocus}\n onBlur={onInputBlur}\n className=\"tag-field-input\"\n />\n </Box>\n </div>\n {error && <InputError>{error}</InputError>}\n </Flex>\n );\n}\n","export const EMAIL_REGEX =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n","import * as React from \"react\";\nimport { isUndefinedOrNull } from \"../utils/assertions\";\n\nexport function useControlledState<T>(\n value?: T,\n defaultValue?: T,\n onChange?: (value: T) => void\n) {\n const [state, setState] = React.useState(value || defaultValue);\n const isControlled = !isUndefinedOrNull(value);\n\n const controlledValue = isControlled ? value : state;\n\n const setValue = React.useCallback(\n (value: T) => {\n if (!isControlled) {\n setState(value);\n }\n\n if (!Object.is(controlledValue, value)) {\n onChange?.(value);\n }\n },\n [isControlled, controlledValue]\n );\n\n return [controlledValue, setValue] as [T, (value: T) => void];\n}\n"],"names":[],"version":3,"file":"module.js.map"}
|