{"version":3,"file":"static/chunks/677-c88b148c6016d8f0.js","mappings":"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ZH,MAAO,GAET,CACErN,KAAM,8BACN2E,MAAO,eACP4I,KAAO,oBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gCACN2E,MAAO,eACP4I,KAAO,8BACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,yBACN2E,MAAO,eACP4I,KAAO,wBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0BACN2E,MAAO,cACP4I,KAAO,iCACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0BACN2E,MAAO,eACP4I,KAAO,2CACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,wBACN2E,MAAO,cACP4I,KAAO,mBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,qBACN2E,MAAO,WACP4I,KAAO,oBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0BACN2E,MAAO,gBACP4I,KAAO,yBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0BACN2E,MAAO,oBACP4I,KAAO,4BACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0BACN2E,MAAO,gBACP4I,KAAO,qBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,yBACN2E,MAAO,eACP4I,KAAO,oBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gCACN2E,MAAO,sBACP4I,KAAO,oBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,4BACN2E,MAAO,mBACP4I,KAAO,oBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oCACN2E,MAAO,uBACP4I,KAAO,oBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gCACN2E,MAAO,uBACP4I,KAAO,8BACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iCACN2E,MAAO,wBACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,4BACN2E,MAAO,mBACP4I,KAAO,YACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,uBACN2E,MAAO,iBACP4I,KAAO,cACPC,UAAW,CAAC,SACZH,MAAO,KAETI,KAAKL,IAEMO,GAA0C,CACrD,CACE3N,KAAM,uBACN2E,MAAO,sBACP4I,KAAO,YACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,oBACN2E,MAAO,mBACP4I,KAAO,YACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,mBACN2E,MAAO,kBACP4I,KAAO,YACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,sBACP4I,KAAO,YACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,yBACN2E,MAAO,eACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,+BACN2E,MAAO,cACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,8BACN2E,MAAO,aACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,aACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,0BACN2E,MAAO,gBACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,sBACN2E,MAAO,YACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iCACN2E,MAAO,uBACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sBACN2E,MAAO,YACP4I,KAAO,iBACPC,UAAW,CAAC,SACZH,MAAO,KAETI,KAAKL,IAEMQ,GAAoC,CAC/C,CACE5N,KAAM,aACN2E,MAAO,eACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,eACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,YACN2E,MAAO,cACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,gBACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,eACN2E,MAAO,iBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,sBACN2E,MAAO,wBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,kBACN2E,MAAO,oBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,aACN2E,MAAO,eACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,YACN2E,MAAO,cACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,aACN2E,MAAO,gBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,cACN2E,MAAO,iBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oBACN2E,MAAO,uBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oBACN2E,MAAO,uBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,6BACN2E,MAAO,uBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,6CACN2E,MAAO,oBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,+BACN2E,MAAO,qBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,+BACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sBACN2E,MAAO,mBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sBACN2E,MAAO,iBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,+BACN2E,MAAO,iBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,6BACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,2BACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sCACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,kBACN2E,MAAO,sBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,uBACN2E,MAAO,0BACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0BACN2E,MAAO,sBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iBACN2E,MAAO,eACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,8BACN2E,MAAO,oBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oBACN2E,MAAO,gBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sBACN2E,MAAO,yBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,qBACN2E,MAAO,wBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,qBACN2E,MAAO,iBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,yBACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,uBACN2E,MAAO,qBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,2BACN2E,MAAO,0BACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,uBACN2E,MAAO,qBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,uBACN2E,MAAO,qBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oBACN2E,MAAO,gBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,qBACN2E,MAAO,gBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,iBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gBACN2E,MAAO,kBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,uBACN2E,MAAO,mBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,KAETI,KAAKL,IAEMS,GAAoC,CAC/C,CACE7N,KAAM,yBACN2E,MAAO,2BACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,6BACN2E,MAAO,yBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,0BACN2E,MAAO,qBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,2BACN2E,MAAO,yBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,wBACN2E,MAAO,sBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,8BACN2E,MAAO,wBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,yBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,yBACN2E,MAAO,2BACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,sBACN2E,MAAO,wBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,mBACN2E,MAAO,sBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,sBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oBACN2E,MAAO,mBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iBACN2E,MAAO,oBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gBACN2E,MAAO,mBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sBACN2E,MAAO,oBACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,4BACN2E,MAAO,kBACP4I,KAAO,gBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iBACN2E,MAAO,oBACP4I,KAAO,YACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,yBACN2E,MAAO,kBACP4I,KAAO,oBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,eACN2E,MAAO,kBACP4I,KAAO,UACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,aACP4I,KAAO,wBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,cACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,cACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,cACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,cACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,cACP4I,KAAO,MACPC,UAAW,CAAC,SACZH,MAAO,KAETI,KAAKL,IAEMU,GAAwC,CACnD,CACE9N,KAAM,sBACN2E,MAAO,mBACP4I,KAAO,UACPC,UAAW,CAAC,UAEd,CACExN,KAAM,uBACN2E,MAAO,cACP4I,KAAO,UACPC,UAAW,CAAC,UAEd,CACExN,KAAM,2BACN2E,MAAO,kBACP4I,KAAO,UACPC,UAAW,CAAC,UAEd,CACExN,KAAM,mBACN2E,MAAO,WACP4I,KAAO,UACPC,UAAW,CAAC,UAEd,CACExN,KAAM,qBACN2E,MAAO,eACP4I,KAAO,UACPC,UAAW,CAAC,WAEdC,KAAKP,IAEMa,GAA2C,CACtD,CACE/N,KAAM,oCACN2E,MAAO,oBACP4I,KAAO,oDACPC,UAAW,CAAC,UAEd,CACExN,KAAM,iCACN2E,MAAO,qBACP4I,KAAO,iCACPC,UAAW,CAAC,UAEd,CACExN,KAAM,2BACN2E,MAAO,qBACP4I,KAAO,qCACPC,UAAW,CAAC,UAEd,CACExN,KAAM,gCACN2E,MAAO,0BACP4I,KAAO,8BACPC,UAAW,CAAC,UAEd,CACExN,KAAM,+BACN2E,MAAO,mBACP4I,KAAO,+CACPC,UAAW,CAAC,UAEd,CACExN,KAAM,kCACN2E,MAAO,kBACP4I,KAAO,wDACPC,UAAW,CAAC,UAEd,CACExN,KAAM,qCACN2E,MAAO,kBACP4I,KAAO,iCACPC,UAAW,CAAC,UAEd,CACExN,KAAM,iCACN2E,MAAO,mBACP4I,KAAM,+CACNC,UAAW,CAAC,UAEd,CACExN,KAAM,0BACN2E,MAAO,cACP4I,KAAM,iDACNC,UAAW,CAAC,UAEd,CACExN,KAAM,4CACN2E,MAAO,gBACP4I,KAAM,qCACNC,UAAW,CAAC,UAEd,CACExN,KAAM,4BACN2E,MAAO,gBACP4I,KAAM,mDACNC,UAAW,CAAC,UAEd,CACExN,KAAM,8BACN2E,MAAO,mBACP4I,KAAM,mBACNC,UAAW,CAAC,UAEd,CACExN,KAAM,6BACN2E,MAAO,iBACP4I,KAAM,gCACNC,UAAW,CAAC,UAEd,CACExN,KAAM,+BACN2E,MAAO,iBACP4I,KAAM,uBACNC,UAAW,CAAC,UAEd,CACExN,KAAM,iCACN2E,MAAO,uBACP4I,KAAM,4BACNC,UAAW,CAAC,UAEd,CACExN,KAAM,4BACN2E,MAAO,gBACP4I,KAAM,gBACNC,UAAW,CAAC,WAEdC,KAAKP,IAEMc,GAAqC,CAChD,CACEhO,KAAM,+BACN2E,MAAO,mBACP4I,KAAM,yBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,6BACN2E,MAAO,sBACP4I,KAAM,8BACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,mCACN2E,MAAO,4BACP4I,KAAM,8BACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,yCACN2E,MAAO,uBACP4I,KAAM,2BACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,0BACN2E,MAAO,uBACP4I,KAAM,qCACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,oCACN2E,MAAO,6BACP4I,KAAM,6BACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,+BACN2E,MAAO,0BACP4I,KAAM,gCACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,wCACN2E,MAAO,uBACP4I,KAAM,8CACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,mCACN2E,MAAO,4BACP4I,KAAM,qBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,wBACN2E,MAAO,sBACP4I,KAAM,2BACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,+BACN2E,MAAO,yBACP4I,KAAM,sCACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,kCACN2E,MAAO,qBACP4I,KAAM,oCACNC,UAAW,CAAC,SACZH,MAAO,KAETI,KAAKL,IAEMa,GAAmC,CAC9C,CACEjO,KAAM,mBACN2E,MAAO,mBACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,sBACN2E,MAAO,kBACP4I,KAAM,6BACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,eACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,qBACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,2BACN2E,MAAO,uBACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,sBACN2E,MAAO,qBACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,iCACN2E,MAAO,wBACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,oBACN2E,MAAO,uBACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,oBACP4I,KAAM,gBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,gBACN2E,MAAO,eACP4I,KAAM,sBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,gBACN2E,MAAO,eACP4I,KAAM,sBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,iBACN2E,MAAO,gBACP4I,KAAM,0BACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iBACN2E,MAAO,gBACP4I,KAAM,uBACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gCACN2E,MAAO,wBACP4I,KAAM,2CACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oCACN2E,MAAO,qBACP4I,KAAM,gCACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,qBACN2E,MAAO,uBACP4I,KAAM,aACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sBACN2E,MAAO,uBACP4I,KAAM,aACNC,UAAW,CAAC,SACZH,MAAO,KAETI,KAAKL,IAEMc,GAAmC,CAC9C,CACElO,KAAM,uBACN2E,MAAO,0BACP4I,KAAM,mBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,uBACP4I,KAAM,qBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,iBACN2E,MAAO,2BACP4I,KAAM,qBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,uBACN2E,MAAO,uBACP4I,KAAM,0BACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,eACN2E,MAAO,yBACP4I,KAAM,kBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,oBACN2E,MAAO,uBACP4I,KAAM,mBACNC,UAAW,CAAC,SACZH,MAAO,GAET,CACErN,KAAM,oBACN2E,MAAO,uBACP4I,KAAM,wCACNC,UAAW,CAAC,SACZH,MAAO,GAET,CAC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M,wBACN2E,MAAO,4BACP4I,KAAM,mBACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,kBACN2E,MAAO,6BACP4I,KAAO,uCACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,4BACP4I,KAAO,mBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oBACN2E,MAAO,uBACP4I,KAAO,sCACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,wBACN2E,MAAO,yBACP4I,KAAM,0BACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,qBACN2E,MAAO,2BACP4I,KAAM,qBACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,2BACP4I,KAAM,uCACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,qBACN2E,MAAO,uBACP4I,KAAO,eACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gCACN2E,MAAO,8BACP4I,KAAM,iCACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gCACN2E,MAAO,4BACP4I,KAAM,iCACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0CACN2E,MAAO,8BACP4I,KAAM,+CACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,8BACN2E,MAAO,0BACP4I,KAAM,uCACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,2BACN2E,MAAO,+BACP4I,KAAO,qCACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,yBACN2E,MAAO,yBACP4I,KAAO,2CACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,sBACN2E,MAAO,sBACP4I,KAAO,wCACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,8BACN2E,MAAO,iCACP4I,KAAO,2BACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,mBACN2E,MAAO,6BACP4I,KAAM,yCACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,gBACN2E,MAAO,yBACP4I,KAAM,mBACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,kBACN2E,MAAO,qBACP4I,KAAO,mBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,0BACN2E,MAAO,6BACP4I,KAAO,2BACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,8BACN2E,MAAO,iCACP4I,KAAO,wBACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,wBACN2E,MAAO,2BACP4I,KAAO,2BACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,YACN2E,MAAO,iCACP4I,KAAO,yCACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,wBACN2E,MAAO,6BACP4I,KAAO,0BACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,oBACN2E,MAAO,8BACP4I,KAAO,sDACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iBACN2E,MAAO,oBACP4I,KAAO,gCACPC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,2BACN2E,MAAO,4BACP4I,KAAM,+BACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,iCACN2E,MAAO,gCACP4I,KAAM,uBACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,uCACN2E,MAAO,wBACP4I,KAAM,0CACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,yBACN2E,MAAO,qBACP4I,KAAM,mBACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,4BACN2E,MAAO,qBACP4I,KAAM,sBACNC,UAAW,CAAC,SACZH,MAAO,IAET,CACErN,KAAM,kBACN2E,MAAO,qBACP4I,KAAM,YACNC,UAAW,CAAC,SACZH,MAAO,KAETI,KAAKL,IAEMiB,GAAqC,CAChD,CACErO,KAAM,mBACN2E,MAAO,OACP4I,KAAO,sKACPC,UAAW,CAAC,SACZ/I,KAAM6J,GAAAA,KAER,CACEtO,KAAM,mBACN2E,MAAO,OACP4I,KAAO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","sources":["webpack://_N_E/./src/components/icons/github.tsx","webpack://_N_E/./src/components/search.styles.tsx","webpack://_N_E/./src/components/algolia-search.tsx","webpack://_N_E/./src/components/omni-search.tsx","webpack://_N_E/./src/components/sponsor-button.tsx","webpack://_N_E/./src/components/entest-logo.tsx","webpack://_N_E/./src/components/sidebar/sidebar-link.tsx","webpack://_N_E/./src/components/sidebar/sidebar.tsx","webpack://_N_E/./src/hooks/use-route-changed.ts","webpack://_N_E/./src/components/mobile-nav.tsx","webpack://_N_E/./src/components/header.tsx","webpack://_N_E/./src/components/table-of-content.tsx","webpack://_N_E/./src/hooks/use-scrollspy.ts","webpack://_N_E/./src/components/page-container.tsx","webpack://_N_E/./src/data/links.ts","webpack://_N_E/./layouts/index.tsx","webpack://_N_E/./src/components/mdx-components/codeblock/code-container.tsx","webpack://_N_E/./src/components/mdx-components/codeblock/copy-button.tsx","webpack://_N_E/./src/components/mdx-components/codeblock/styles.tsx","webpack://_N_E/./src/components/mdx-components/anchor.tsx","webpack://_N_E/./src/components/mdx-components/inline-code.tsx","webpack://_N_E/./src/components/props-table.tsx","webpack://_N_E/./src/components/mdx-components/carbon-ad.tsx","webpack://_N_E/./src/components/mdx-components/codeblock/highlight.tsx","webpack://_N_E/./src/components/mdx-components/codeblock/codeblock.tsx","webpack://_N_E/./src/components/storybook-icon.tsx","webpack://_N_E/./src/components/mdx-components/component-links.tsx","webpack://_N_E/./src/components/mdx-components/course-banner.tsx","webpack://_N_E/./src/components/mdx-components/icons-list.tsx","webpack://_N_E/./src/components/color-palette.tsx","webpack://_N_E/./src/components/features-overview.tsx","webpack://_N_E/./src/components/framework-svg.tsx","webpack://_N_E/./src/components/framework-link.tsx","webpack://_N_E/./src/components/mdx-components/linked-heading.tsx","webpack://_N_E/./src/components/mdx-components/pre.tsx","webpack://_N_E/./src/components/sandpack-embed/index.tsx","webpack://_N_E/./src/components/tutorial/utils.ts","webpack://_N_E/./src/components/tutorial/tutorial-code-block.tsx","webpack://_N_E/./src/components/docs/discord-logo.tsx","webpack://_N_E/./src/components/community-card.tsx","webpack://_N_E/./src/components/mdx-components/mdx-components.tsx","webpack://_N_E/./src/components/mdx-components/table.tsx","webpack://_N_E/./src/components/mdx-components/video-player.tsx","webpack://_N_E/./src/components/tutorial/tutorial-file-action.tsx","webpack://_N_E/./src/utils/i18n.ts"],"sourcesContent":["export const GithubIcon = (props: React.ComponentProps<'svg'>) => (\n \n \n \n)\n","import { Theme } from '@chakra-ui/react'\nimport { Global, css } from '@emotion/react'\n\nconst SearchStyle = () => (\n css`\n .DocSearch--active {\n overflow: hidden !important;\n }\n\n .DocSearch-Container {\n height: 100vh;\n left: 0;\n position: fixed;\n top: 0;\n width: 100vw;\n z-index: 200;\n display: flex;\n flex-direction: column;\n background: rgba(0, 0, 0, 0.25);\n padding: 1rem;\n\n @media (min-width: 640px) {\n padding: 1.5rem;\n }\n\n @media (min-width: 768px) {\n padding: 10vh;\n }\n\n @media (min-width: 1024px) {\n padding: 12vh;\n }\n }\n\n .DocSearch-LoadingIndicator svg {\n display: none;\n }\n\n .DocSearch-LoadingIndicator {\n display: none;\n width: 1.5rem;\n height: 1.5rem;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='2' stroke='%23#319795' /%3E%3Cpath d='M3,12a9,9 0 1,0 18,0a9,9 0 1,0 -18,0' stroke-width='2' stroke='%2306b6d4' stroke-dasharray='56.5486677646' stroke-dashoffset='37.6991118431' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n background-size: 100% 100%;\n }\n\n .DocSearch-Container--Stalled .DocSearch-LoadingIndicator {\n display: block;\n }\n\n .DocSearch-Modal {\n margin: 0 auto;\n width: 100%;\n max-width: 47.375rem;\n display: flex;\n flex-direction: column;\n min-height: 0;\n border-radius: 0.75rem;\n box-shadow: ${theme.shadows.lg};\n background: white;\n\n .chakra-ui-dark & {\n background: ${theme.colors.gray['700']};\n }\n }\n\n .DocSearch-SearchBar {\n flex: none;\n border-bottom: 1px solid ${theme.colors.gray['200']};\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n margin: 0 1.5rem;\n\n .chakra-ui-dark & {\n border-bottom-color: ${theme.colors.gray['600']};\n }\n }\n\n .DocSearch-Form {\n flex: auto;\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n .DocSearch-Dropdown {\n flex: auto;\n border-bottom-left-radius: 1rem;\n border-bottom-right-radius: 1rem;\n padding: 0 1.5rem 1.5rem;\n overflow: auto;\n }\n\n .DocSearch-MagnifierLabel {\n flex: none;\n width: 1.5rem;\n height: 1.5rem;\n background-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z' stroke='%23319795' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");\n }\n\n .DocSearch-MagnifierLabel svg {\n display: none;\n }\n\n .DocSearch-Container--Stalled .DocSearch-MagnifierLabel {\n display: none;\n }\n\n .DocSearch-Input {\n appearance: none;\n background: transparent;\n height: 4.5rem;\n font-size: 1rem;\n font-weight: 500;\n color: black;\n margin-left: 1rem;\n margin-right: 1rem;\n flex: auto;\n min-width: 0;\n\n .chakra-ui-dark & {\n color: white;\n }\n }\n\n .DocSearch-Input:focus {\n outline: 2px dotted transparent;\n }\n\n .DocSearch-Input::-webkit-search-cancel-button,\n .DocSearch-Input::-webkit-search-decoration,\n .DocSearch-Input::-webkit-search-results-button,\n .DocSearch-Input::-webkit-search-results-decoration {\n display: none;\n }\n\n .DocSearch-Reset {\n display: none;\n }\n\n .DocSearch-Reset::before {\n content: 'esc';\n }\n\n .DocSearch-Cancel {\n flex: none;\n font-size: 0;\n border-radius: 0.375rem;\n background-color: ${theme.colors.gray['50']};\n border: 1px solid ${theme.colors.gray['300']};\n padding: 0.125rem 0.375rem;\n\n .chakra-ui-dark & {\n background-color: ${theme.colors.gray['700']};\n border-color: ${theme.colors.gray['600']};\n }\n }\n\n .DocSearch-Cancel::before {\n content: 'esc';\n color: ${theme.colors.gray['400']};\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n .DocSearch-Reset svg {\n display: none;\n }\n\n .DocSearch-Hit-source {\n line-height: 1.5rem;\n font-weight: 600;\n color: ${theme.colors.gray['600']};\n margin-top: 1.5rem;\n margin-bottom: 1rem;\n .chakra-ui-dark & {\n color: ${theme.colors.gray['400']};\n }\n }\n\n .DocSearch-Hit-Container {\n display: flex;\n align-items: center;\n height: 4rem;\n }\n\n .DocSearch-Hit-Tree {\n display: none;\n }\n\n .DocSearch-Hit-icon {\n flex: none;\n margin-right: 0.875rem;\n }\n\n .DocSearch-Hit-icon path {\n stroke-width: 2px;\n stroke: #71717a;\n }\n\n .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-icon path {\n stroke: white;\n }\n\n .DocSearch-Hit-content-wrapper {\n flex: auto;\n display: flex;\n flex-direction: column-reverse;\n min-width: 0;\n }\n\n .DocSearch-Hit-path {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: ${theme.colors.gray['500']};\n }\n\n .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-path {\n color: ${theme.colors.teal['200']};\n }\n\n .DocSearch-Dropdown ul {\n list-style-type: none;\n }\n\n .DocSearch-Hit-title {\n color: black;\n line-height: 1.5rem;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-title {\n color: white;\n }\n\n .DocSearch-Hit-title + .DocSearch-Hit-path {\n margin-bottom: 0.125rem;\n }\n\n .DocSearch-Hit-action {\n flex: none;\n margin-left: 0.875rem;\n }\n\n .DocSearch-Hit-action-button {\n display: flex;\n }\n\n .DocSearch-Hit-action + .DocSearch-Hit-action {\n margin-left: 0.5rem;\n }\n\n .DocSearch-Hit-action path {\n stroke-width: 2px;\n stroke: #71717a;\n }\n\n .DocSearch-Hit[aria-selected='true'] .DocSearch-Hit-action path {\n stroke: white;\n }\n\n .DocSearch-Hit > a {\n display: block;\n background: ${theme.colors.gray['50']};\n border-radius: 0.5rem;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n padding: 0 1.25rem 0 1rem;\n\n .chakra-ui-dark & {\n background: ${theme.colors.gray['600']};\n * {\n color: white !important;\n }\n }\n }\n\n .DocSearch-Hit[aria-selected='true'] > a {\n background: ${theme.colors.teal['500']};\n }\n\n .DocSearch-Hit + .DocSearch-Hit {\n margin-top: 0.5rem;\n }\n\n .DocSearch-Hit {\n position: relative;\n }\n\n .DocSearch-Hit--Child {\n padding-left: 1.75rem;\n }\n\n .DocSearch-Hit--Child::before,\n .DocSearch-Hit--Child\n + .DocSearch-Hit:not(.DocSearch-Hit--Child)::before {\n content: '';\n position: absolute;\n top: -0.25rem;\n bottom: -0.25rem;\n left: 0.5rem;\n width: 1.25rem;\n background-image: url(\"data:image/svg+xml,%3Csvg width='12' height='200' viewBox='0 0 12 200' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 1 0 V 200 M 1 100 H 12' stroke='%23a1a1aa' stroke-width='2'/%3E%3C/svg%3E%0A\");\n background-repeat: no-repeat;\n background-position: center left;\n }\n\n .DocSearch-Hit--Child:last-child::before,\n .DocSearch-Hit--Child\n + .DocSearch-Hit:not(.DocSearch-Hit--Child)::before {\n background-image: url(\"data:image/svg+xml,%3Csvg width='12' height='200' viewBox='0 0 12 200' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 1 0 V 89 Q 1 100 12 100' stroke='%23a1a1aa' stroke-width='2'/%3E%3C/svg%3E%0A\");\n }\n\n .DocSearch-Hit:not(.DocSearch-Hit--Child) + .DocSearch-Hit--Child::after {\n content: '';\n position: absolute;\n top: -0.25rem;\n left: 0;\n width: 1.25rem;\n height: 0.25rem;\n background: inherit;\n }\n\n .DocSearch-Hit--Child\n + .DocSearch-Hit:not(.DocSearch-Hit--Child)::before {\n top: auto;\n bottom: calc(100% + 0.25rem);\n height: calc(100% + 0.25rem);\n background-color: #fff;\n .chakra-ui-dark & {\n background-color: ${theme.colors.gray['700']};\n }\n }\n\n .DocSearch-Hits mark {\n background: none;\n color: ${theme.colors.teal['500']};\n }\n\n .DocSearch-Hit[aria-selected='true'] mark {\n color: inherit;\n text-decoration: underline;\n }\n\n .DocSearch-Footer {\n flex: none;\n display: flex;\n justify-content: flex-end;\n margin: 0 1.5rem;\n border-top: 1px solid ${theme.colors.gray['200']};\n padding: 1.25rem 0;\n\n .chakra-ui-dark & {\n border-top-color: ${theme.colors.gray['600']};\n }\n }\n\n .DocSearch-Commands {\n display: none;\n }\n\n .DocSearch-Logo a {\n display: flex;\n align-items: center;\n color: #5d6494;\n font-size: 0.75rem;\n font-weight: 500;\n }\n\n .DocSearch-Logo svg {\n color: ${theme.colors.teal['500']};\n margin-left: 0.5rem;\n }\n\n .DocSearch-Label {\n .chakra-ui-dark & {\n opacity: 0.5;\n color: white;\n }\n }\n\n .DocSearch-Hit--deleting,\n .DocSearch-Hit--favoriting {\n opacity: 0;\n transition-property: background-color, border-color, color, fill, stroke,\n opacity, box-shadow, transform;\n transition-duration: 200ms;\n }\n\n .DocSearch-NoResults .DocSearch-Screen-Icon {\n display: none;\n }\n\n .DocSearch-Title {\n font-size: ${theme.fontSizes.lg};\n line-height: 1.2rem;\n margin-bottom: 2.5rem;\n }\n\n .DocSearch-Title strong {\n color: inherit;\n font-weight: 500;\n }\n\n .DocSearch-StartScreen,\n .DocSearch-NoResults {\n padding-top: 2.5rem;\n padding-bottom: 1rem;\n }\n\n .DocSearch-StartScreen .DocSearch-Help {\n font-size: ${theme.fontSizes.md};\n line-height: 1.5rem;\n }\n\n .DocSearch-NoResults-Prefill-List .DocSearch-Help {\n font-size: ${theme.fontSizes.xs};\n line-height: 1rem;\n letter-spacing: ${theme.letterSpacings.wide};\n text-transform: uppercase;\n font-weight: 600;\n padding-bottom: 0.5rem;\n border-bottom: 1px solid ${theme.colors.gray['200']};\n\n .chakra-ui-dark & {\n border-bottom: 1px solid ${theme.colors.gray['600']};\n }\n }\n\n .DocSearch-NoResults-Prefill-List li {\n padding: 0.5rem 0;\n border-bottom: 1px solid ${theme.colors.gray['200']};\n .chakra-ui-dark & {\n border-bottom: 1px solid ${theme.colors.gray['600']};\n }\n }\n\n .DocSearch-NoResults-Prefill-List button {\n font-weight: 500;\n color: ${theme.colors.teal['600']};\n .chakra-ui-dark & {\n color: ${theme.colors.teal['400']};\n }\n }\n\n .DocSearch-NoResults-Prefill-List + .DocSearch-Help {\n font-size: ${theme.fontSizes.sm};\n line-height: 1.25rem;\n margin-top: 1rem;\n }\n\n .DocSearch-NoResults-Prefill-List + .DocSearch-Help a {\n color: ${theme.colors.teal['600']};\n font-weight: 500;\n\n .chakra-ui-dark & {\n color: ${theme.colors.teal['300']};\n }\n }\n `}\n />\n)\n\nexport default SearchStyle\n","import { SearchIcon } from '@chakra-ui/icons'\nimport {\n HStack,\n HTMLChakraProps,\n Kbd,\n Portal,\n Text,\n VisuallyHidden,\n chakra\n} from '@chakra-ui/react'\nimport { DocSearchModal, useDocSearchKeyboardEvents } from '@docsearch/react'\nimport type {\n InternalDocSearchHit,\n StoredDocSearchHit\n} from '@docsearch/react/dist/esm/types'\nimport Head from 'next/head'\nimport Link from 'next/link'\nimport { useRouter } from 'next/router'\nimport * as React from 'react'\nimport SearchStyle from './search.styles'\nimport { t } from 'utils/i18n'\n\nconst ACTION_KEY_DEFAULT = ['Ctrl', 'Control']\nconst ACTION_KEY_APPLE = ['⌘', 'Command']\n\ninterface HitProps {\n hit: InternalDocSearchHit | StoredDocSearchHit\n children: React.ReactNode\n}\n\nfunction Hit({ hit, children }: HitProps) {\n return (\n \n {children}\n \n )\n}\n\nexport const SearchButton = React.forwardRef(function SearchButton(\n props: HTMLChakraProps<'button'>,\n ref: React.Ref\n) {\n const [actionKey, setActionKey] = React.useState(ACTION_KEY_APPLE)\n React.useEffect(() => {\n if (typeof navigator === 'undefined') return\n const isMac = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)\n if (!isMac) {\n setActionKey(ACTION_KEY_DEFAULT)\n }\n }, [])\n\n return (\n \n \n \n \n {t('component.algolia-search.search-the-docs')}\n \n \n \n {t('component.algolia-search.press')}{' '}\n \n \n \n {actionKey[0]}\n \n \n {t('component.algolia-search.and')} \n K\n \n {' '}\n {t('component.algolia-search.to-search')}\n \n \n \n \n )\n})\n\nfunction AlgoliaSearch() {\n const router = useRouter()\n const [isOpen, setIsOpen] = React.useState(false)\n const searchButtonRef = React.useRef()\n const [initialQuery, setInitialQuery] = React.useState(null)\n\n const onOpen = React.useCallback(() => {\n setIsOpen(true)\n }, [setIsOpen])\n\n const onClose = React.useCallback(() => {\n setIsOpen(false)\n }, [setIsOpen])\n\n const onInput = React.useCallback(\n e => {\n setIsOpen(true)\n setInitialQuery(e.key)\n },\n [setIsOpen, setInitialQuery]\n )\n\n useDocSearchKeyboardEvents({\n isOpen,\n onOpen,\n onClose,\n onInput,\n searchButtonRef\n })\n\n return (\n <>\n \n \n \n \n \n {isOpen && (\n \n {\n return items.map(item => {\n const a = document.createElement('a')\n a.href = item.url\n const hash = a.hash === '#content-wrapper' ? '' : a.hash\n item.url = `${a.pathname}${hash}`\n return item\n })\n }}\n />\n \n )}\n \n )\n}\n\nexport default AlgoliaSearch\n","import { SearchIcon } from '@chakra-ui/icons'\nimport {\n Box,\n Center,\n Flex,\n Modal,\n ModalBody,\n ModalContent,\n ModalOverlay,\n chakra,\n useDisclosure,\n useEventListener,\n useUpdateEffect\n} from '@chakra-ui/react'\nimport { findAll } from 'highlight-words-core'\nimport { matchSorter } from 'match-sorter'\nimport Link from 'next/link'\nimport { useRouter } from 'next/router'\nimport * as React from 'react'\nimport MultiRef from 'react-multi-ref'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport { SearchButton } from './algolia-search'\nimport searchData from 'configs/search-meta.json'\n\ninterface OptionTextProps {\n searchWords: string[]\n textToHighlight: string\n}\n\nfunction OptionText({ searchWords, textToHighlight }: OptionTextProps) {\n const chunks = findAll({\n searchWords,\n textToHighlight,\n autoEscape: true\n })\n\n const highlightedText = chunks.map(chunk => {\n const { end, highlight, start } = chunk\n const text = textToHighlight.substr(start, end - start)\n if (highlight) {\n return (\n \n {text}\n \n )\n } else {\n return text\n }\n })\n\n return highlightedText\n}\n\nfunction DocIcon(props) {\n return (\n \n \n \n )\n}\n\nfunction EnterIcon(props) {\n return (\n \n \n \n \n \n \n )\n}\n\nfunction HashIcon(props) {\n return (\n \n \n \n )\n}\n\nfunction OmniSearch() {\n const router = useRouter()\n const [query, setQuery] = React.useState('')\n const [active, setActive] = React.useState(0)\n const [shouldCloseModal, setShouldCloseModal] = React.useState(true)\n const menu = useDisclosure()\n const modal = useDisclosure()\n const [menuNodes] = React.useState(() => new MultiRef())\n const menuRef = React.useRef(null)\n const eventRef = React.useRef<'mouse' | 'keyboard'>(null)\n\n React.useEffect(() => {\n router.events.on('routeChangeComplete', modal.onClose)\n return () => {\n router.events.off('routeChangeComplete', modal.onClose)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEventListener('keydown', event => {\n const isMac = /(Mac|iPhone|iPod|iPad)/i.test(navigator?.platform)\n const hotkey = isMac ? 'metaKey' : 'ctrlKey'\n if (event?.key?.toLowerCase() === 'k' && event[hotkey]) {\n event.preventDefault()\n modal.isOpen ? modal.onClose() : modal.onOpen()\n }\n })\n\n React.useEffect(() => {\n if (modal.isOpen && query.length > 0) {\n setQuery('')\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [modal.isOpen])\n\n const results = React.useMemo(\n function getResults() {\n if (query.length < 2) return []\n return matchSorter(searchData, query, {\n keys: ['hierarchy.lvl1', 'hierarchy.lvl2', 'hierarchy.lvl3', 'content']\n }).slice(0, 20)\n },\n [query]\n )\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n eventRef.current = 'keyboard'\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n if (active + 1 < results.length) {\n setActive(active + 1)\n }\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n if (active - 1 >= 0) {\n setActive(active - 1)\n }\n break\n }\n case 'Control':\n case 'Alt':\n case 'Shift': {\n e.preventDefault()\n setShouldCloseModal(true)\n break\n }\n case 'Enter': {\n if (results?.length <= 0) {\n break\n }\n\n modal.onClose()\n router.push(results[active].url)\n break\n }\n }\n },\n [active, modal, results, router]\n )\n\n const onKeyUp = React.useCallback((e: React.KeyboardEvent) => {\n eventRef.current = 'keyboard'\n switch (e.key) {\n case 'Control':\n case 'Alt':\n case 'Shift': {\n e.preventDefault()\n setShouldCloseModal(false)\n }\n }\n }, [])\n\n useUpdateEffect(() => {\n setActive(0)\n }, [query])\n\n useUpdateEffect(() => {\n if (!menuRef.current || eventRef.current === 'mouse') return\n const node = menuNodes.map.get(active)\n if (!node) return\n scrollIntoView(node, {\n scrollMode: 'if-needed',\n block: 'nearest',\n inline: 'nearest',\n boundary: menuRef.current\n })\n }, [active])\n\n const open = menu.isOpen && results.length > 0\n\n return (\n <>\n \n \n \n \n \n {\n setQuery(e.target.value)\n menu.onOpen()\n }}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n />\n
\n \n
\n
\n \n {open && (\n \n \n {results.map((item, index) => {\n const selected = index === active\n const isLvl1 = item.type === 'lvl1'\n\n return (\n \n \n {\n setActive(index)\n eventRef.current = 'mouse'\n }}\n onClick={() => {\n if (shouldCloseModal) {\n modal.onClose()\n }\n }}\n ref={menuNodes.ref(index)}\n role=\"option\"\n key={item.id}\n sx={{\n display: 'flex',\n alignItems: 'center',\n minH: 16,\n mt: 2,\n px: 4,\n py: 2,\n rounded: 'lg',\n bg: 'gray.100',\n '.chakra-ui-dark &': { bg: 'gray.600' },\n _selected: {\n bg: 'teal.500',\n color: 'white',\n mark: {\n color: 'white',\n textDecoration: 'underline'\n }\n }\n }}\n >\n {isLvl1 ? (\n \n ) : (\n \n )}\n\n \n {!isLvl1 && (\n \n {item.hierarchy.lvl1}\n \n )}\n \n \n \n \n\n \n \n \n \n )\n })}\n \n \n )}\n \n \n \n \n )\n}\n\nexport default OmniSearch\n","// update\nimport { Box, BoxProps, Icon } from '@chakra-ui/react'\nimport React from 'react'\nimport { FaHeart } from 'react-icons/fa'\nimport siteConfig from 'configs/site-config.json'\nimport { t } from 'utils/i18n'\n\nconst SponsorButton = (props: BoxProps) => (\n \n \n \n {t('component.sponsor-button.sponsor')}\n \n \n)\n\nexport default SponsorButton\n","import Link from 'next/link'\nimport { Text, useColorModeValue, chakra, Image, Box } from '@chakra-ui/react'\nimport styled from '@emotion/styled'\n\nconst LogoBox = styled.span`\n font-weight: bold;\n font-size: 24px;\n display: inline-flex;\n align-items: center;\n height: 40px;\n line-height: 20px;\n padding: 10px;\n\n img {\n transition: 200ms ease;\n }\n\n &:hover img {\n transform: rotate(20deg);\n }\n`\n\nexport const EntestLogo = () => {\n const footPrintImg = `/images/footprint${useColorModeValue('', '-dark')}.png`\n\n return (\n \n \n \n \"entest-logo\"\n {/* \n \n Entest\n \n */}\n \n \n \n )\n}\n","// haimtran 25 jul 2022\n\nimport {\n forwardRef,\n chakra,\n useColorModeValue,\n Flex,\n PropsOf\n} from '@chakra-ui/react'\nimport React, { ReactElement, Ref, useEffect, useRef } from 'react'\nimport NextLink from 'next/link'\nimport { useRouter } from 'next/router'\n\nconst StyledLink = forwardRef(function StyledLink(\n props: PropsOf & { isActive?: boolean },\n ref: Ref\n) {\n const { isActive, ...rest } = props\n\n return (\n \n )\n})\n\ntype SidebarLinkProps = PropsOf & {\n href?: string\n icon?: ReactElement\n}\n\nfunction checkHref(href: string, slug: string | string[]) {\n const _slug = Array.isArray(slug) ? slug : [slug]\n const path = href.split('/')\n const pathSlug = path[path.length - 1]\n return _slug.includes(pathSlug)\n}\n\nexport const SidebarLink = ({ href, children, ...rest }: SidebarLinkProps) => {\n const router = useRouter()\n const isActive = checkHref(href, router.query.slug) || href === router.asPath\n\n const link = useRef()\n\n useEffect(() => {\n if (isActive && router.query.scroll === 'true') {\n link.current.scrollIntoView({ block: 'center' })\n }\n }, [isActive, router.query])\n\n return (\n \n \n \n {children}\n \n \n \n )\n}\n","// haimtran 25 jul 2022\n\nimport {\n Box,\n Center,\n HStack,\n List,\n ListProps,\n ListItem,\n chakra\n} from '@chakra-ui/react'\nimport { Routes } from 'utils/get-route-context'\nimport React, { Fragment, ReactElement, ReactNode } from 'react'\nimport { FaSwift, FaCat, FaAws, FaDog, FaLaptopCode } from 'react-icons/fa'\nimport NextLink from 'next/link'\nimport { useRouter } from 'next/router'\nimport { SidebarLink } from './sidebar-link'\nimport {\n SiAwsamplify,\n SiServerless,\n SiTerraform,\n SiKubernetes,\n SiWebpack\n} from 'react-icons/si'\nimport { FaDatabase } from 'react-icons/fa'\n\nexport type SidebarContentProps = Routes & {\n pathname?: string\n contentRef?: any\n}\n\nexport const SidebarContent = ({\n routes,\n pathname,\n contentRef\n}: SidebarContentProps) => {\n return (\n <>\n {routes.map((lvl1, idx) => {\n return (\n \n {lvl1.heading && (\n \n {lvl1.title}\n \n )}\n {lvl1.routes.map((lvl2, index) => {\n if (!lvl2.routes) {\n return (\n \n {lvl2.title}\n \n )\n }\n })}\n \n )\n })}\n \n )\n}\n\nexport const mainNavLinks = [\n {\n icon: ,\n href: '/arch/getting-started',\n label: 'Architect',\n match: (asPath: string, href: string) =>\n href.startsWith('/arch') && asPath.startsWith('/arch')\n },\n {\n icon: ,\n href: '/serverless/next-polly-image',\n label: 'Serverless',\n match: (asPath: string, href: string) =>\n href.startsWith('/serverless') && asPath.startsWith('/serverless')\n },\n {\n icon: ,\n href: '/application/react-cognito-polly',\n label: 'Application',\n match: (asPath: string, href: string) =>\n href.startsWith('/application') && asPath.startsWith('/application')\n },\n {\n icon: ,\n href: '/swiftui/graphql',\n label: 'SwiftUI',\n match: (asPath: string, href: string) =>\n href.startsWith('/swiftui') && asPath.startsWith('/swiftui')\n },\n {\n icon: ,\n href: '/ml/ml-pipeline-part-1',\n label: 'Machine Learning',\n match: (asPath: string, href: string) =>\n href.startsWith('/ml') && asPath.startsWith('/ml')\n },\n {\n icon: ,\n href: '/dl/lambda-web-adapter-bedrock',\n label: 'Deep Learning',\n match: (asPath: string, href: string) =>\n href.startsWith('/dl') && asPath.startsWith('/dl')\n },\n {\n icon: ,\n href: '/dataengineer/lake-formation',\n label: 'Data Engineering',\n match: (asPath: string, href: string) =>\n href.startsWith('/dataengineer') && asPath.startsWith('/dataengineer')\n },\n {\n icon: ,\n href: '/terraform/hello',\n label: 'Terraform',\n match: (asPath: string, href: string) =>\n href.startsWith('/terraform') && asPath.startsWith('/terraform')\n },\n {\n icon: ,\n href: '/eks/launch-eks-cluster',\n label: 'Amazon EKS',\n match: (asPath: string, href: string) =>\n href.startsWith('/eks') && asPath.startsWith('/eks')\n },\n {\n icon: ,\n href: '/web/review-books',\n label: 'Web',\n match: (asPath: string, href: string) =>\n href.startsWith('/web') && asPath.startsWith('/web')\n },\n {\n icon: ,\n href: '/programming/basic-ts',\n label: 'Programming',\n match: (asPath: string, href: string) =>\n href.startsWith('/programming') && asPath.startsWith('/programming')\n },\n {\n icon: ,\n href: '/database/mysql',\n label: 'Database',\n match: (asPath: string, href: string) =>\n href.startsWith('/database') && asPath.startsWith('/database')\n }\n]\n\ntype MainNavLinkProps = {\n href: string\n icon: ReactElement\n children: ReactNode\n label?: string\n isActive: boolean\n}\n\nconst MainNavLink = ({ href, icon, children, isActive }: MainNavLinkProps) => {\n const router = useRouter()\n const active = router.asPath.startsWith(href) || !!isActive\n\n return (\n \n \n \n {icon}\n \n {children}\n \n \n )\n}\n\nconst MainNavLinkGroup = (props: ListProps) => {\n const router = useRouter()\n\n return (\n \n {mainNavLinks.map(item => (\n \n \n {item.label}\n \n \n ))}\n \n )\n}\n\nexport const Sidebar = ({ routes }) => {\n return (\n \n \n {}\n \n )\n}\n","import { useRouter } from 'next/router'\nimport { useEffect } from 'react'\n\nconst useRouteChanged = (fn: () => void) => {\n const router = useRouter()\n useEffect(() => {\n const handleRouteChange = (url: string) => {\n fn()\n console.log('App is changing to: ', url)\n }\n\n router.events.on('routeChangeComplete', handleRouteChange)\n\n return () => {\n router.events.off('routeChangeComplete', handleRouteChange)\n }\n }, [router.events, fn])\n}\n\nexport default useRouteChanged\n","import {\n Box,\n BoxProps,\n Center,\n CloseButton,\n Flex,\n Grid,\n GridItem,\n HStack,\n IconButton,\n IconButtonProps,\n useBreakpointValue,\n useColorModeValue,\n useUpdateEffect\n} from '@chakra-ui/react'\nimport { AnimatePresence, motion, useElementScroll } from 'framer-motion'\nimport NextLink from 'next/link'\nimport { useRouter } from 'next/router'\nimport { forwardRef, ReactNode, Ref, useEffect, useRef, useState } from 'react'\nimport { AiOutlineMenu } from 'react-icons/ai'\nimport { RemoveScroll } from 'react-remove-scroll'\nimport Logo from './logo'\nimport { EntestLogo } from './entest-logo'\nimport { mainNavLinks, SidebarContent } from './sidebar/sidebar'\nimport SponsorButton from './sponsor-button'\nimport useRouteChanged from 'hooks/use-route-changed'\n// import { getRoutes } from 'layouts/mdx'\nimport { getRoutes } from 'layouts/index'\n\ntype NavLinkProps = {\n href: string\n children: ReactNode\n}\n\nfunction NavLink({ href, children }: NavLinkProps) {\n const router = useRouter()\n const bgActiveHoverColor = useColorModeValue('gray.100', 'whiteAlpha.100')\n\n const isActive = router.asPath.startsWith(href)\n\n return (\n \n \n {children}\n \n \n )\n}\n\ninterface MobileNavContentProps {\n isOpen?: boolean\n onClose?: () => void\n}\n\nexport function MobileNavContent(props: MobileNavContentProps) {\n const { isOpen, onClose } = props\n const closeBtnRef = useRef()\n const { pathname, asPath } = useRouter()\n const bgColor = useColorModeValue('white', 'gray.800')\n\n useRouteChanged(onClose)\n\n /**\n * Scenario: Menu is open on mobile, and user resizes to desktop/tablet viewport.\n * Result: We'll close the menu\n */\n const showOnBreakpoint = useBreakpointValue({ base: true, lg: false })\n\n useEffect(() => {\n if (showOnBreakpoint == false) {\n onClose()\n }\n }, [showOnBreakpoint, onClose])\n\n useUpdateEffect(() => {\n if (isOpen) {\n requestAnimationFrame(() => {\n closeBtnRef.current?.focus()\n })\n }\n }, [isOpen])\n\n const [shadow, setShadow] = useState()\n\n return (\n \n {isOpen && (\n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n {mainNavLinks.map(item => (\n \n {item.label}\n \n ))}\n \n \n\n {\n setShadow(scrolled ? 'md' : undefined)\n }}\n >\n \n \n \n \n \n )}\n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst ScrollView = (props: BoxProps & { onScroll?: any }) => {\n const { onScroll, ...rest } = props\n const [y, setY] = useState(0)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elRef = useRef()\n const { scrollY } = useElementScroll(elRef)\n useEffect(() => {\n return scrollY.onChange(() => setY(scrollY.get()))\n }, [scrollY])\n\n useUpdateEffect(() => {\n onScroll?.(y > 5 ? true : false)\n }, [y])\n\n return (\n \n )\n}\n\nexport const MobileNavButton = forwardRef(\n (props: IconButtonProps, ref: Ref) => {\n return (\n }\n {...props}\n />\n )\n }\n)\n","import {\n Flex,\n HStack,\n Text,\n Link,\n Icon,\n IconButton,\n useColorModeValue,\n chakra,\n useDisclosure,\n HTMLChakraProps,\n useColorMode,\n useUpdateEffect\n} from '@chakra-ui/react'\nimport React, { useRef, useState } from 'react'\nimport { GithubIcon } from './icons'\nimport { FaYoutube, FaMoon, FaSun, FaLinkedinIn } from 'react-icons/fa'\nimport { TbCertificate } from 'react-icons/tb'\nimport Search from './omni-search'\nimport SponsorButton from './sponsor-button'\nimport { MobileNavButton, MobileNavContent } from './mobile-nav'\nimport { useViewportScroll } from 'framer-motion'\nimport { useEffect } from 'react'\nimport { EntestLogo } from 'components/entest-logo'\nimport siteConfig from 'configs/site-config.json'\n\nconst NavbarContent = () => {\n const mobileNav = useDisclosure()\n const { toggleColorMode: toggleMode } = useColorMode()\n const text = useColorModeValue('dark', 'light')\n const SwitchIcon = useColorModeValue(FaMoon, FaSun)\n const mobileNavBtnRef = useRef()\n\n useUpdateEffect(() => {\n mobileNavBtnRef.current?.focus()\n }, [mobileNav.isOpen])\n\n return (\n <>\n \n \n {/* */}\n {/* \n \n \n \n \n */}\n \n {/* */}\n \n \n \n \n Version\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n onClick={toggleMode}\n >\n \n \n \n \n \n \n \n )\n}\n\nexport const Navbar = (props: HTMLChakraProps<'header'>) => {\n const { maxW = '6xl', maxWidth = '6xl' } = props\n const ref = useRef()\n const [y, setY] = useState(0)\n const { height = 0 } = ref.current?.getBoundingClientRect() ?? {}\n\n const { scrollY } = useViewportScroll()\n useEffect(() => {\n return scrollY.onChange(() => setY(scrollY.get()))\n }, [scrollY])\n\n return (\n height ? 'sm' : undefined}\n transition=\"box-shadow 0.2s, background-color 0.2s\"\n pos=\"sticky\"\n top=\"0\"\n zIndex=\"3\"\n bg=\"white\"\n _dark={{ bg: 'gray.800' }}\n left=\"0\"\n right=\"0\"\n width=\"full\"\n {...props}\n >\n \n \n \n \n )\n}\n\nexport default Navbar\n","import {\n Box,\n BoxProps,\n ListItem,\n OrderedList,\n Text,\n chakra,\n useColorModeValue\n} from '@chakra-ui/react'\nimport * as React from 'react'\nimport { Heading } from 'components/page-container'\nimport { useScrollSpy } from 'hooks/use-scrollspy'\nimport { t } from 'utils/i18n'\n\ninterface TableOfContentProps extends BoxProps {\n headings: Heading[]\n}\n\nfunction TableOfContent(props: TableOfContentProps) {\n const { headings, ...rest } = props\n const activeId = useScrollSpy(\n headings.map(({ id }) => `[id=\"${id}\"]`),\n {\n rootMargin: '0% 0% -24% 0%'\n }\n )\n const linkColor = useColorModeValue('gray.600', 'gray.400')\n const linkHoverColor = useColorModeValue('gray.900', 'gray.600')\n return (\n \n \n {t('component.table-of-content.on-this-page')}\n \n \n {headings.map(({ id, text, level }) => (\n \n \n {text}\n \n \n ))}\n \n \n )\n}\n\nexport default TableOfContent\n","import * as React from 'react'\n\nexport function useScrollSpy(\n selectors: string[],\n options?: IntersectionObserverInit\n) {\n const [activeId, setActiveId] = React.useState()\n const observer = React.useRef(null)\n React.useEffect(() => {\n const elements = selectors.map(selector => document.querySelector(selector))\n observer.current?.disconnect()\n observer.current = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (entry?.isIntersecting) {\n setActiveId(entry.target.getAttribute('id'))\n }\n })\n }, options)\n elements.forEach(el => {\n if (el) observer.current?.observe(el)\n })\n return () => observer.current?.disconnect()\n }, [selectors, options])\n\n return activeId\n}\n","// haimtran 25 jul 2022\n\nimport { Box, Container, Flex, Text } from '@chakra-ui/react'\nimport Navbar from 'components/header'\nimport { useRouter } from 'next/router'\nimport React from 'react'\nimport TableOfContent from './table-of-content'\n\nfunction useHeadingFocusOnRouteChange() {\n const router = useRouter()\n\n React.useEffect(() => {\n const onRouteChange = () => {\n const [heading] = Array.from(document.getElementsByTagName('h1'))\n heading?.focus()\n }\n router.events.on('routeChangeComplete', onRouteChange)\n return () => {\n router.events.off('routeChangeComplete', onRouteChange)\n }\n }, [router.events])\n}\n\nexport interface Heading {\n level: 'h2' | 'h3'\n text: string\n id: string\n}\n\ninterface PageContainerProps {\n frontmatter: {\n slug?: string\n title: string\n description?: string\n editUrl?: string\n version?: string\n headings?: Heading[]\n }\n children: React.ReactNode\n sidebar?: React.ReactNode\n hideToc?: boolean\n pagination?: React.ReactNode\n maxWidth?: string\n}\n\nexport const PageContainer = (props: PageContainerProps) => {\n const {\n frontmatter,\n children,\n sidebar,\n hideToc,\n pagination,\n // maxWidth = '48rem'\n maxWidth = '60rem'\n } = props\n\n const { title, description, editUrl, version, headings = [] } = frontmatter\n\n return (\n <>\n \n \n \n {sidebar || null}\n \n \n \n \n {children}\n \n \n \n \n \n \n \n \n )\n}\n","import {\n MdFormatSize,\n MdTextFormat,\n MdOutlineImage,\n MdInsertEmoticon,\n MdHorizontalRule,\n MdSwapVert,\n MdStarBorder,\n MdOutlineCheckBoxOutlineBlank,\n MdEditAttributes,\n MdWarning,\n MdNotes,\n MdInput,\n MdAddBox,\n MdSearch,\n MdPassword,\n MdSmartphone,\n MdToggleOff,\n MdCheckBox,\n MdRadioButtonChecked,\n MdGridView,\n MdTableRows,\n MdSplitscreen,\n MdWebAsset,\n MdExpand,\n MdTableChart,\n MdMoreHoriz,\n MdLink,\n MdMenu,\n MdTab,\n MdTouchApp,\n MdUnfoldMore,\n MdDisabledVisible,\n MdRefresh,\n MdTune,\n MdSystemUpdateAlt,\n MdCheckCircle\n} from 'react-icons/md'\n\nexport interface ComponentNavItem {\n href: string\n label: string\n body: string\n tertiary?: boolean\n order?: number\n}\n\nconst sortByLabel = (a: ComponentNavItem, b: ComponentNavItem) =>\n a.label < b.label ? -1 : a.label > b.label ? 1 : 0\n\nconst sortByOrder = (a: ComponentNavItem, b: ComponentNavItem) =>\n a.order < b.order ? -1 : a.order > b.order ? 1 : 0\n\nexport const databaseComponents: ComponentNavItem[] = [\n {\n href: '/database/mysql',\n label: 'mysql 1',\n body: `database mysql`,\n platforms: ['react'],\n order: 1\n },\n {\n href: '/database/postgresql-1',\n label: 'postgresql 1',\n body: `database postgresql`,\n platforms: ['react'],\n order: 2\n },\n {\n href: '/database/postgresql-2',\n label: 'postgresql 2',\n body: `database postgresql rds`,\n platforms: ['react'],\n order: 3\n }\n].sort(sortByOrder)\n\nexport const programmingComponents: ComponentNavItem[] = [\n {\n href: '/programming/golang-basic',\n label: 'go 1: basics',\n body: `Golang Basics`,\n platforms: ['react'],\n order: 1\n },\n {\n href: '/programming/golang-http',\n label: 'go 3: http',\n body: `Golang HTTP Web Server`,\n platforms: ['react'],\n order: 3\n },\n {\n href: '/programming/golang-postgresql',\n label: 'go 2: postgresql',\n body: `Golang PostgreSQL`,\n platforms: ['react'],\n order: 2\n },\n {\n href: '/programming/golang-lambda',\n label: 'go 4: lambda',\n body: `prisma and nextjs`,\n platforms: ['react'],\n order: 4\n },\n {\n href: '/programming/golang-stable-diffusion',\n label: 'go 5: diffusion',\n body: `stable diffusion`,\n platforms: ['react'],\n order: 5\n },\n {\n href: '/programming/golang-bedrock-wo-client',\n label: 'go 6: bedrock wo sdk',\n body: `bedrock wo sdk`,\n platforms: ['react'],\n order: 6\n },\n {\n href: '/programming/golang-aoss',\n label: 'go 7: opensearch',\n body: `opensearch client`,\n platforms: ['react'],\n order: 7\n },\n {\n href: '/programming/go-web-demo',\n label: 'go 8: web app',\n body: `go and postgresql`,\n platforms: ['react'],\n order: 8\n },\n {\n href: '/programming/golang-channel',\n label: 'go 9: channel',\n body: `concurrency and channel`,\n platforms: ['react'],\n order: 9\n },\n {\n href: '/programming/golang-package',\n label: 'go 10: package',\n body: `package basic`,\n platforms: ['react'],\n order: 9\n },\n {\n href: '/programming/go-basic-io',\n label: 'go 10: io',\n body: `package basic`,\n platforms: ['react'],\n order: 9\n },\n {\n href: '/programming/postgresql-aws',\n label: 'postgresql 2',\n body: `PostgreSQL on AWS`,\n platforms: ['react'],\n order: 10\n },\n {\n href: '/programming/postgresql-local',\n label: 'postgresql 1',\n body: `PostgreSQL on Local Machine`,\n platforms: ['react'],\n order: 11\n },\n {\n href: '/programming/php-hello',\n label: 'php 1: Hello',\n body: `Hello PHP and MariaDB`,\n platforms: ['react'],\n order: 12\n },\n {\n href: '/programming/php-swin-1',\n label: 'php 2: LAMP',\n body: `Setup LAMP Stack on Amazon EC2`,\n platforms: ['react'],\n order: 13\n },\n {\n href: '/programming/php-swin-2',\n label: 'php 3: Photo',\n body: `Build a photo album with php and mariadb`,\n platforms: ['react'],\n order: 14\n },\n {\n href: '/programming/basic-ts',\n label: 'ts 1: basic',\n body: `Basic TypeScript`,\n platforms: ['react'],\n order: 15\n },\n {\n href: '/programming/ts-s3',\n label: 'ts 2: s3',\n body: `TypeScript S3 SDK`,\n platforms: ['react'],\n order: 16\n },\n {\n href: '/programming/ts-cognito',\n label: 'ts 3: cognito',\n body: `TypeScript Cognito SDK`,\n platforms: ['react'],\n order: 17\n },\n {\n href: '/programming/node-hello',\n label: 'ts 4: http server',\n body: `Hello Node and PostgreSQL`,\n platforms: ['react'],\n order: 18\n },\n {\n href: '/programming/ts-bedrock',\n label: 'ts 5: bedrock',\n body: `bedrock and nextjs`,\n platforms: ['react'],\n order: 19\n },\n {\n href: '/programming/ts-prisma',\n label: 'ts 6: prisma',\n body: `prisma and nextjs`,\n platforms: ['react'],\n order: 20\n },\n {\n href: '/programming/ts-deploy-lambda',\n label: 'ts 7: deploy lambda',\n body: `prisma and nextjs`,\n platforms: ['react'],\n order: 21\n },\n {\n href: '/programming/ts-async-sdx',\n label: 'ts 8: invoke sdx',\n body: `prisma and nextjs`,\n platforms: ['react'],\n order: 22\n },\n {\n href: '/programming/ts-vercel-ai-bedrock',\n label: 'ts 9: vercel bedrock',\n body: `prisma and nextjs`,\n platforms: ['react'],\n order: 23\n },\n {\n href: '/programming/ts-cognito-basic',\n label: 'ts 10: basic cognito',\n body: `basic cognito in typescript`,\n platforms: ['react'],\n order: 24\n },\n {\n href: '/programming/ts-bedrock-wo-sdk',\n label: 'ts 11: bedrock wo sdk',\n body: `bedorck wo sdk`,\n platforms: ['react'],\n order: 25\n },\n {\n href: '/programming/ts-s3-wo-sdk',\n label: 'ts 12: s3 wo sdk',\n body: `s3 wo sdk`,\n platforms: ['react'],\n order: 26\n },\n {\n href: '/programming/nginx-1',\n label: 'nginx 1: httpd',\n body: `nginx httpd`,\n platforms: ['react'],\n order: 27\n }\n].sort(sortByOrder)\n\nexport const terraformComponents: ComponentNavItem[] = [\n {\n href: '/terraform/workspace',\n label: 'Terraform Workspace',\n body: `Terraform`,\n platforms: ['react'],\n order: 1\n },\n {\n href: '/terraform/module',\n label: 'Terraform Module',\n body: `Terraform`,\n platforms: ['react'],\n order: 2\n },\n {\n href: '/terraform/hello',\n label: 'Terraform Hello',\n body: `Terraform`,\n platforms: ['react'],\n order: 3\n },\n {\n href: '/terraform/variables',\n label: 'Terraform Variables',\n body: `Terraform`,\n platforms: ['react'],\n order: 4\n },\n {\n href: '/terraform/cf-1-lambda',\n label: 'cf 1: lambda',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 5\n },\n {\n href: '/terraform/cf-2-lambda-apigw',\n label: 'cf 2: apigw',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 6\n },\n {\n href: '/terraform/cf-3-lambda-adot',\n label: 'cf 3: adot',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 7\n },\n {\n href: '/terraform/cf-4-xray',\n label: 'cf 4: xray',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 8\n },\n {\n href: '/terraform/cf-5-cognito',\n label: 'cf 5: cognito',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 9\n },\n {\n href: '/terraform/cf-6-ecs',\n label: 'cf 6: ecs',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 10\n },\n {\n href: '/terraform/cf-7-ecs-blue-green',\n label: 'cf 7: ecs blue green',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 11\n },\n {\n href: '/terraform/cf-9-eks',\n label: 'cf 9: eks',\n body: `CloudFormation`,\n platforms: ['react'],\n order: 12\n }\n].sort(sortByOrder)\n\nexport const webComponents: ComponentNavItem[] = [\n {\n href: '/web/float',\n label: 'css 1: float',\n body: `web`,\n platforms: ['react'],\n order: 1\n },\n {\n href: '/web/flexbox',\n label: 'css 2: flex box',\n body: `web`,\n platforms: ['react'],\n order: 2\n },\n {\n href: '/web/home',\n label: 'css 3: home',\n body: `web`,\n platforms: ['react'],\n order: 3\n },\n {\n href: '/web/position',\n label: 'css 4: position',\n body: `web`,\n platforms: ['react'],\n order: 4\n },\n {\n href: '/web/sidebar',\n label: 'css 5: sidebar',\n body: `web`,\n platforms: ['react'],\n order: 5\n },\n {\n href: '/web/hello-tailwind',\n label: 'css 6: hello tailwind',\n body: `web`,\n platforms: ['react'],\n order: 6\n },\n {\n href: '/web/responsive',\n label: 'css 7: responsive',\n body: `web`,\n platforms: ['react'],\n order: 7\n },\n {\n href: '/web/modal',\n label: 'css 8: modal',\n body: `web`,\n platforms: ['react'],\n order: 8\n },\n {\n href: '/web/form',\n label: 'css 9: form',\n body: `web`,\n platforms: ['react'],\n order: 9\n },\n {\n href: '/web/color',\n label: 'css 10: color',\n body: `web`,\n platforms: ['react'],\n order: 10\n },\n {\n href: '/web/common',\n label: 'css 11: common',\n body: `web`,\n platforms: ['react'],\n order: 11\n },\n {\n href: '/web/review-books',\n label: 'css 12: review books',\n body: `web`,\n platforms: ['react'],\n order: 12\n },\n {\n href: '/web/hero-section',\n label: 'css 13: hero section',\n body: `web`,\n platforms: ['react'],\n order: 13\n },\n {\n href: '/web/tailwind-toggle-theme',\n label: 'css 14: toggle theme',\n body: `web`,\n platforms: ['react'],\n order: 14\n },\n {\n href: '/web/nextjs-auth-amplify-cognito-hosted-ui',\n label: 'auth 1: cognitoui',\n body: `web`,\n platforms: ['react'],\n order: 15\n },\n {\n href: '/web/nextjs-auth-server-side',\n label: 'auth 2: serverside',\n body: `web`,\n platforms: ['react'],\n order: 16\n },\n {\n href: '/web/react-amplify-auth-flow',\n label: 'auth 3: amplify',\n body: `web`,\n platforms: ['react'],\n order: 17\n },\n {\n href: '/web/next-auth-bare',\n label: 'auth 4: nextauth',\n body: `web`,\n platforms: ['react'],\n order: 18\n },\n {\n href: '/web/next-auth-full',\n label: 'auth 5: detail',\n body: `web`,\n platforms: ['react'],\n order: 19\n },\n {\n href: '/web/nextauth-amplify-domain',\n label: 'auth 6: domain',\n body: `web`,\n platforms: ['react'],\n order: 20\n },\n {\n href: '/web/nextjs-mdx-app-router',\n label: 'mdx 1: next mdx',\n body: `web`,\n platforms: ['react'],\n order: 21\n },\n {\n href: '/web/nextjs-contentlayer',\n label: 'mdx 2: next mdx',\n body: `web`,\n platforms: ['react'],\n order: 22\n },\n {\n href: '/web/nextjs-mdx-contentlayer-syntax',\n label: 'mdx 3: next mdx',\n body: `web`,\n platforms: ['react'],\n order: 23\n },\n {\n href: '/web/aws-sdk-ts',\n label: 'aws sdk: typescript',\n body: `web`,\n platforms: ['react'],\n order: 24\n },\n {\n href: '/web/nextjs-tailwind',\n label: 'next 1: nextjs tailwind',\n body: `web`,\n platforms: ['react'],\n order: 27\n },\n {\n href: '/web/nextjs-form-upload',\n label: 'next 2: form upload',\n body: `web`,\n platforms: ['react'],\n order: 28\n },\n {\n href: '/web/next-font',\n label: 'next 3: font',\n body: `web`,\n platforms: ['react'],\n order: 29\n },\n {\n href: '/web/next-cloudfront-cookie',\n label: 'next 4: cookie CF',\n body: `web`,\n platforms: ['react'],\n order: 30\n },\n {\n href: '/web/nextjs-polly',\n label: 'next 5: polly',\n body: `web`,\n platforms: ['react'],\n order: 31\n },\n {\n href: '/web/pirf-challenge',\n label: 'next 6: pirf challenge',\n body: `web`,\n platforms: ['react'],\n order: 32\n },\n {\n href: '/web/nextjs-docker',\n label: 'next 7: deploy docker',\n body: `web`,\n platforms: ['react'],\n order: 33\n },\n {\n href: '/web/nextjs-prisma',\n label: 'next 8: prisma',\n body: `web`,\n platforms: ['react'],\n order: 34\n },\n {\n href: '/web/next-appsync-demo',\n label: 'appsync 1: next',\n body: `web`,\n platforms: ['react'],\n order: 35\n },\n {\n href: '/web/appsync-bedrock',\n label: 'appsync 2: bedrock',\n body: `web`,\n platforms: ['react'],\n order: 36\n },\n {\n href: '/web/nextjs-amplify-bare',\n label: 'amplify 1: auth storage',\n body: `web`,\n platforms: ['react'],\n order: 37\n },\n {\n href: '/web/next-amplify-s3',\n label: 'amplify 2: storage',\n body: `web`,\n platforms: ['react'],\n order: 38\n },\n {\n href: '/web/amplify-hosting',\n label: 'amplify 3: hosting',\n body: `web`,\n platforms: ['react'],\n order: 39\n },\n {\n href: '/web/ecs-chat-app',\n label: 'deploy 1: ecs',\n body: `web`,\n platforms: ['react'],\n order: 40\n },\n {\n href: '/web/ecs-next-apps',\n label: 'deploy 2: ecs',\n body: `web`,\n platforms: ['react'],\n order: 41\n },\n {\n href: '/web/flask-polly',\n label: 'flask 1: polly',\n body: `web`,\n platforms: ['react'],\n order: 42\n },\n {\n href: '/web/radix-ui',\n label: 'react: radix ui',\n body: `web`,\n platforms: ['react'],\n order: 43\n },\n {\n href: '/web/react-component',\n label: 'react: component',\n body: `web`,\n platforms: ['react'],\n order: 44\n }\n].sort(sortByOrder)\n\nexport const eksComponents: ComponentNavItem[] = [\n {\n href: '/eks/container-anatomy',\n label: 'eks 1: container anatomy',\n body: `eks`,\n platforms: ['react'],\n order: 1\n },\n {\n href: '/eks/kubernetes-components',\n label: 'eks 2: kube components',\n body: `eks`,\n platforms: ['react'],\n order: 2\n },\n {\n href: '/eks/launch-eks-cluster',\n label: 'eks 3: eks cluster',\n body: `eks`,\n platforms: ['react'],\n order: 3\n },\n {\n href: '/eks/eks-fargate-profile',\n label: 'eks 4: fargate profile',\n body: `eks`,\n platforms: ['react'],\n order: 4\n },\n {\n href: '/eks/eks-auto-scaling',\n label: 'eks 5: auto scaling',\n body: `eks`,\n platforms: ['react'],\n order: 5\n },\n {\n href: '/eks/cluster-authentication',\n label: 'eks 6: authentication',\n body: `eks`,\n platforms: ['react'],\n order: 6\n },\n {\n href: '/eks/service-account',\n label: 'eks 7: service account',\n body: `eks`,\n platforms: ['react'],\n order: 7\n },\n {\n href: '/eks/eks-observability',\n label: 'eks 8: eks observability',\n body: `eks`,\n platforms: ['react'],\n order: 8\n },\n {\n href: '/eks/eks-prometheus',\n label: 'eks 9: eks prometheus',\n body: `eks`,\n platforms: ['react'],\n order: 9\n },\n {\n href: '/eks/eks-cluster',\n label: 'eks 10: eks cluster',\n body: `eks`,\n platforms: ['react'],\n order: 10\n },\n {\n href: '/eks/eks-fargate',\n label: 'eks 11: eks fargate',\n body: `eks`,\n platforms: ['react'],\n order: 11\n },\n {\n href: '/eks/eks-next-app',\n label: 'eks 12: next app',\n body: `eks`,\n platforms: ['react'],\n order: 12\n },\n {\n href: '/eks/eks-https',\n label: 'eks 13: eks https',\n body: `eks`,\n platforms: ['react'],\n order: 13\n },\n {\n href: '/eks/eks-flux',\n label: 'eks 14: eks flux',\n body: `eks`,\n platforms: ['react'],\n order: 14\n },\n {\n href: '/eks/ecs-blue-green',\n label: 'ecs 1: blue green',\n body: `ecs`,\n platforms: ['react'],\n order: 15\n },\n {\n href: '/eks/adot-opentelemetry-1',\n label: 'observe 1: adot',\n body: `observability`,\n platforms: ['react'],\n order: 16\n },\n {\n href: '/eks/container',\n label: 'eks 15: container',\n body: `container`,\n platforms: ['react'],\n order: 22\n },\n {\n href: '/eks/persistent-volume',\n label: 'eks 16: storage',\n body: `persistent volume`,\n platforms: ['react'],\n order: 23\n },\n {\n href: '/eks/ingress',\n label: 'eks 17: ingress',\n body: `ingress`,\n platforms: ['react'],\n order: 24\n },\n {\n href: '/eks/eks-cf-demo',\n label: 'eks 18: cf',\n body: `eks in cloudformation`,\n platforms: ['react'],\n order: 25\n },\n {\n href: '/eks/ckad-part-1',\n label: 'ckad part 1',\n body: `eks`,\n platforms: ['react'],\n order: 37\n },\n {\n href: '/eks/ckad-part-2',\n label: 'ckad part 2',\n body: `eks`,\n platforms: ['react'],\n order: 38\n },\n {\n href: '/eks/ckad-part-3',\n label: 'ckad part 3',\n body: `eks`,\n platforms: ['react'],\n order: 39\n },\n {\n href: '/eks/ckad-part-4',\n label: 'ckad part 4',\n body: `eks`,\n platforms: ['react'],\n order: 40\n },\n {\n href: '/eks/ckad-part-5',\n label: 'ckad part 5',\n body: `eks`,\n platforms: ['react'],\n order: 41\n }\n].sort(sortByOrder)\n\nexport const swiftuiComponents: ComponentNavItem[] = [\n {\n href: '/swiftui/food-day-1',\n label: 'Food Truck Day 1',\n body: `SwiftUI`,\n platforms: ['react']\n },\n {\n href: '/swiftui/bubble-chat',\n label: 'Bubble Chat',\n body: `SwiftUI`,\n platforms: ['react']\n },\n {\n href: '/swiftui/network-request',\n label: 'Network Request',\n body: `SwiftUI`,\n platforms: ['react']\n },\n {\n href: '/swiftui/graphql',\n label: 'GraqphQL',\n body: `SwiftUI`,\n platforms: ['react']\n },\n {\n href: '/swiftui/auth-flow',\n label: 'Amplify Auth',\n body: `SwiftUI`,\n platforms: ['react']\n }\n].sort(sortByLabel)\n\nexport const serverlessComponents: ComponentNavItem[] = [\n {\n href: '/serverless/nextjs-aws-serverless',\n label: 'Nextjs Serverless',\n body: `build a simple nextjs app with backend serverless`,\n platforms: ['react']\n },\n {\n href: '/serverless/eventbridge-github',\n label: 'EventBridge GitHub',\n body: `EventBridge and GitHub WebHook`,\n platforms: ['react']\n },\n {\n href: '/serverless/apigw-socket',\n label: 'API Gateway Socket',\n body: `Introduction to API Gateway Socket`,\n platforms: ['react']\n },\n {\n href: '/serverless/apigw-integration',\n label: 'API Gateway Integration',\n body: `Introduction to API Gateway`,\n platforms: ['react']\n },\n {\n href: '/serverless/apigw-sqs-lambda',\n label: 'ApiGw SQS Lambda',\n body: `Async Invoke Lambda with Api Gateway and SQS`,\n platforms: ['react']\n },\n {\n href: '/serverless/lambda-graviton-x86',\n label: 'Lambda Graviton',\n body: `Benchmark performance between Lambda Graviton and x86`,\n platforms: ['react']\n },\n {\n href: '/serverless/dynamodb-stream-lambda',\n label: 'DyanmoDB Stream',\n body: `DynamoDB stream trigger lambda`,\n platforms: ['react']\n },\n {\n href: '/serverless/apigw-auth-cognito',\n label: 'API Gateway Auth',\n body: 'Api Gateway Auth with Cogntio JWT and Lambda',\n platforms: ['react']\n },\n {\n href: '/serverless/eventbridge',\n label: 'EventBridge',\n body: 'EventBridge with Lambda Producer and Consumer ',\n platforms: ['react']\n },\n {\n href: '/serverless/stepfunctions-getting-started',\n label: 'Stepfunctions',\n body: 'Getting Started with Stepfunctions',\n platforms: ['react']\n },\n {\n href: '/serverless/deploy-lambda',\n label: 'Deploy Lambda',\n body: 'Explore different ways to deploy a lambda in CDK',\n platforms: ['react']\n },\n {\n href: '/serverless/serverless-demo',\n label: 'Serverless Demos',\n body: 'Serverless Demos',\n platforms: ['react']\n },\n {\n href: '/serverless/s3-replication',\n label: 'S3 Replication',\n body: 'S3 Replicate Existing Objects',\n platforms: ['react']\n },\n {\n href: '/serverless/next-polly-image',\n label: 'Next Polly App',\n body: 'next polly image app',\n platforms: ['react']\n },\n {\n href: '/serverless/next-diffusion-app',\n label: 'Stable Diffusion App',\n body: 'next stable diffusion app',\n platforms: ['react']\n },\n {\n href: '/serverless/s3-signed-url',\n label: 's3 signed url',\n body: 's3 signed url',\n platforms: ['react']\n }\n].sort(sortByLabel)\n\nexport const dataComponents: ComponentNavItem[] = [\n {\n href: '/dataengineer/lake-formation',\n label: 'dat 1: data lake',\n body: 'build a data lake demo',\n platforms: ['react'],\n order: 1\n },\n {\n href: '/dataengineer/athena-hello',\n label: 'dat 2: athena intro',\n body: 'Getting Started with Athena',\n platforms: ['react'],\n order: 2\n },\n {\n href: '/dataengineer/athena-glue-access',\n label: 'dat 3: athena glue access',\n body: 'athena and glue data access',\n platforms: ['react'],\n order: 3\n },\n {\n href: '/dataengineer/glue-interactive-session',\n label: 'dat 4: glue notebook',\n body: 'glue interactive session',\n platforms: ['react'],\n order: 4\n },\n {\n href: '/dataengineer/glue-demo',\n label: 'dat 5: glue workflow',\n body: 'Getting Started with Glue Workflow',\n platforms: ['react'],\n order: 5\n },\n {\n href: '/dataengineer/lakeformation-intro',\n label: 'dat 6: lakeformation intro',\n body: 'lakeformation introduction',\n platforms: ['react'],\n order: 6\n },\n {\n href: '/dataengineer/redshift-hello',\n label: 'dat 7: redsfhit cluster',\n body: 'Getting Started with Redsfhit',\n platforms: ['react'],\n order: 7\n },\n {\n href: '/dataengineer/kinesis-studio-notebook',\n label: 'dat 8: kinesis flink',\n body: 'getting started with kinesis data analytics',\n platforms: ['react'],\n order: 8\n },\n {\n href: '/dataengineer/kinesis-serverless',\n label: 'dat 9: kinesis serverless',\n body: 'kinesis serverless',\n platforms: ['react'],\n order: 9\n },\n {\n href: '/dataengineer/msk-kda',\n label: 'dat 10: msk kinesis',\n body: 'getting started with msk',\n platforms: ['react'],\n order: 10\n },\n {\n href: '/dataengineer/msk-serverless',\n label: 'dat 11: msk serverless',\n body: 'getting started with msk serverless',\n platforms: ['react'],\n order: 11\n },\n {\n href: '/dataengineer/delta-lake-upsert',\n label: 'dat 12: delta lake',\n body: 'getting started with delta on aws',\n platforms: ['react'],\n order: 12\n }\n].sort(sortByOrder)\n\nexport const dlComponents: ComponentNavItem[] = [\n {\n href: '/dl/nano-chatgpt',\n label: 'model 1: nanoGPT',\n body: 'deep learning',\n platforms: ['react'],\n order: 1\n },\n {\n href: '/dl/sm-deploy-model',\n label: 'model 2: deploy',\n body: 'deploy models on sagemaker',\n platforms: ['react'],\n order: 2\n },\n {\n href: '/dl/stable-diffusion',\n label: 'model 3: sdx',\n body: 'deep learning',\n platforms: ['react'],\n order: 2\n },\n {\n href: '/dl/deploy-sdx-async',\n label: 'model 4: async sdx',\n body: 'deep learning',\n platforms: ['react'],\n order: 2\n },\n {\n href: '/dl/distributed-training',\n label: 'train 1: distributed',\n body: 'deep learning',\n platforms: ['react'],\n order: 3\n },\n {\n href: '/dl/appsync-bedrock',\n label: 'app 1: asy bedrock',\n body: 'deep learning',\n platforms: ['react'],\n order: 4\n },\n {\n href: '/dl/lambda-web-adapter-bedrock',\n label: 'app 2: lambda bedrock',\n body: 'deep learning',\n platforms: ['react'],\n order: 5\n },\n {\n href: '/dl/flask-bedrock',\n label: 'app 3: flask bedrock',\n body: 'deep learning',\n platforms: ['react'],\n order: 6\n },\n {\n href: '/dl/langchain-prompt',\n label: 'app 4: lch prompt',\n body: 'deep learning',\n platforms: ['react'],\n order: 7\n },\n {\n href: '/dl/oss-day-1',\n label: 'app 5: oss 1',\n body: 'opensearch server 1',\n platforms: ['react'],\n order: 8\n },\n {\n href: '/dl/oss-day-2',\n label: 'app 6: oss 2',\n body: 'opensearch server 2',\n platforms: ['react'],\n order: 9\n },\n {\n href: '/dl/aoss-day-1',\n label: 'app 7: aoss 1',\n body: 'opensearch serverless 1',\n platforms: ['react'],\n order: 10\n },\n {\n href: '/dl/aoss-day-2',\n label: 'app 8: aoss 2',\n body: 'opensearch langchain',\n platforms: ['react'],\n order: 12\n },\n {\n href: '/dl/vercel-bedrock-chat-image',\n label: 'app 9: vercel bedrock',\n body: 'vercel bedrock chat and image generation',\n platforms: ['react'],\n order: 12\n },\n {\n href: '/dl/lambda-url-streaming-response',\n label: 'app 10: lambda url',\n body: 'lambda url streaming response',\n platforms: ['react'],\n order: 13\n },\n {\n href: '/dl/go-bedrock-app',\n label: 'app 11: go bedrock 1',\n body: 'go bedrock',\n platforms: ['react'],\n order: 14\n },\n {\n href: '/dl/go-bedrock-demo',\n label: 'app 12: go bedrock 2',\n body: 'go bedrock',\n platforms: ['react'],\n order: 15\n }\n].sort(sortByOrder)\n\nexport const mlComponents: ComponentNavItem[] = [\n {\n href: '/ml/sagemaker-studio',\n label: 'day 1: sagemaker studio',\n body: 'sagemaker studio',\n platforms: ['react'],\n order: 1\n },\n {\n href: '/ml/sm-data-wrangler',\n label: 'day 2: data wrangler',\n body: 'sagemaker wrangler',\n platforms: ['react'],\n order: 2\n },\n {\n href: '/ml/sm-clarify',\n label: 'day 3: sagemaker clarify',\n body: 'sagemaker wrangler',\n platforms: ['react'],\n order: 3\n },\n {\n href: '/ml/sg-feature-store',\n label: 'day 4: feature store',\n body: 'sagemaker feature store',\n platforms: ['react'],\n order: 4\n },\n {\n href: '/ml/sg-spark',\n label: 'day 5: sagemaker spark',\n body: 'sagemaker spark',\n platforms: ['react'],\n order: 5\n },\n {\n href: '/ml/sg-experiment',\n label: 'day 6: sg experiment',\n body: 'sagemaker studio',\n platforms: ['react'],\n order: 6\n },\n {\n href: '/ml/pca-sagemaker',\n label: 'day 7: pca sagemaker',\n body: 'Build a Pipeline for PCA in Sagemaker',\n platforms: ['react'],\n order: 7\n },\n {\n href: '/ml/sg-processing-api',\n label: 'day 8: processing api',\n body: 'SageMaker Processing API',\n platforms: ['react'],\n order: 8\n },\n {\n href: '/ml/sg-model',\n label: 'day 9: model registry',\n body: 'SageMaker Model',\n platforms: ['react'],\n order: 9\n },\n {\n href: '/ml/sm-estimator',\n label: 'day 10: estimator',\n body: 'SageMaker Estimator',\n platforms: ['react'],\n order: 10\n },\n {\n href: '/ml/sm-endpoint',\n label: 'day 11: endpoint',\n body: 'SageMaker Endpoint',\n platforms: ['react'],\n order: 11\n },\n {\n href: '/ml/mxnet-lambda',\n label: 'day 12: mxnet lambda',\n body: `Host a ML Model in AWS Lambda`,\n platforms: ['react'],\n order: 12\n },\n {\n href: '/ml/ml-pipeline-part-1',\n label: 'day 13: ml pipeline 1',\n body: `Build a ci/cd pipeline for a mxnet model with sagemaker`,\n platforms: ['react'],\n order: 13\n },\n {\n href: '/ml/ml-pipeline-part-2',\n label: 'day 14: ml pipeline 2',\n body: 'Build a simple ML pipeline with sagemaker pipeline and codepipeline',\n platforms: ['react'],\n order: 14\n },\n {\n href: '/ml/sm-model-monitor',\n label: 'day 15: model monitor',\n body: 'sagemaker model monitor',\n platforms: ['react'],\n order: 15\n },\n {\n href: '/ml/sm-pgvector',\n label: 'day 16: pgvector streamlit',\n body: 'sagemaker pgvector streamlit',\n platforms: ['react'],\n order: 16\n },\n {\n href: '/ml/sm-huggingface-model',\n label: 'day 17: huggingface',\n body: 'deploy huggingface model on sagemaker',\n platforms: ['react'],\n order: 17\n }\n].sort(sortByOrder)\n\nexport const applicationComponents: ComponentNavItem[] = [\n {\n href: '/application/nextjs-server-side-auth',\n label: 'NextJS Auth',\n body: 'nextjs server side auth',\n platforms: ['react']\n },\n {\n href: '/application/nextjs-cognito-hosted-ui',\n label: 'Cognito Hosted Ui',\n body: 'nextjs auth using amplify cognito hosted ui',\n platforms: ['react']\n },\n {\n href: '/application/opensearch-note',\n label: 'Opensearch Serverless',\n body: 'build a note bookmark with opensearch serverless',\n platforms: ['react']\n },\n {\n href: '/application/react-cognito-polly',\n label: 'React Cognito Polly',\n body: 'build a react app with cognito auth and polly',\n platforms: ['react']\n },\n {\n href: '/application/amplify-nextjs-auth',\n label: 'Amplify Nextjs Auth',\n body: 'build an auth flow with amplify and nextjs',\n platforms: ['react']\n },\n {\n href: '/application/cognito-sdk-js',\n label: 'Cognito SDK JS',\n body: 'Cognito SDK JS for authentication and authorization',\n platforms: ['react']\n },\n {\n href: '/application/basic-vim',\n label: 'Basic Vim',\n body: 'Basic Vim',\n platforms: ['react']\n },\n {\n href: '/application/nvim-lua',\n label: 'Nvim Lua',\n body: 'nvim lua',\n platforms: ['react']\n },\n {\n href: '/application/kendra',\n label: 'Kendra Search',\n body: 'Kendra Search',\n platforms: ['react']\n },\n {\n href: '/application/amplify-hosting-static',\n label: 'Amplify Hosting',\n body: 'Use Amplify to Host a Static Web',\n platforms: ['react']\n },\n {\n href: '/application/aws-sdk-js-browser',\n label: 'AWS-SDK-JS S3',\n body: 'Upload to S3 from Browser using AWS-SDK-JS',\n platforms: ['react']\n },\n {\n href: '/application/amplify-storage',\n label: 'Storage',\n body: 'Upload to S3 using AWS Amplify in NextJS',\n platforms: ['react']\n },\n {\n href: '/application/text-to-speech',\n label: 'Text To Speech',\n body: 'Amplify text to speech api',\n platforms: ['react', 'vue', 'angular']\n },\n {\n href: '/application/text-identification',\n label: 'Text Identification',\n body: 'Amplify text identification api',\n platforms: ['react', 'vue', 'angular']\n },\n {\n href: '/application/contentlayer',\n label: 'Contentlayer',\n body: 'Use contentlayer and chakraui to build personal site with mdx',\n platforms: ['react', 'vue', 'angular']\n }\n].sort(sortByLabel)\n\nexport const archComponents: ComponentNavItem[] = [\n {\n href: '/arch/sigv4',\n label: 'arch 1: signature v4',\n body: 'sign a request with aws signature v4',\n platforms: ['react'],\n order: 1\n },\n {\n href: '/arch/assume-role',\n label: 'arch 2: assume role',\n body: `hello assume role`,\n platforms: ['react'],\n order: 2\n },\n {\n href: '/arch/basic-rds',\n label: 'arch 3: basic rds',\n body: `rds failover`,\n platforms: ['react'],\n order: 3\n },\n {\n href: '/arch/alb-asg-demo',\n label: 'arch 4: load balancer',\n body: 'application load balancer and auto scaling',\n platforms: ['react'],\n order: 4\n },\n {\n href: '/arch/aurora',\n label: 'arch 5: aurora',\n body: `aurora and load balancer and auto scaling`,\n platforms: ['react'],\n order: 5\n },\n {\n href: '/arch/rds-iops',\n label: 'arch 6: rds iops',\n body: `experiment iops in rds`,\n platforms: ['react'],\n order: 6\n },\n {\n href: '/arch/dax-dynamodb',\n label: 'arch 7: dax dynamodb',\n body: 'dax cache for dynamodb',\n platforms: ['react'],\n order: 7\n },\n {\n href: '/arch/redis-rds',\n label: 'arch 8: redis for rds',\n body: 'elasticache for redis for rds',\n platforms: ['react'],\n order: 8\n },\n {\n href: '/arch/redis-ddb',\n label: 'arch 9: redis for dynamoDB',\n body: 'elasticCache for redis for dynamodb',\n platforms: ['react'],\n order: 9\n },\n {\n href: '/arch/index-dynamodb',\n label: 'arch 10: dynamodb index',\n body: `dynamodb global secondary index`,\n platforms: ['react'],\n order: 10\n },\n {\n href: '/arch/serverless-demo',\n label: 'arch 11: serverless demos',\n body: 'serverless demos',\n platforms: ['react'],\n order: 11\n },\n {\n href: '/arch/s3-lambda',\n label: 'arch 12: lambda trigger s3',\n body: `lambda trigger s3 and ci/cd pipeline`,\n platforms: ['react'],\n order: 12\n },\n {\n href: '/arch/lambda-api',\n label: 'arch 13: lambda based api',\n body: `lambda based api`,\n platforms: ['react'],\n order: 13\n },\n {\n href: '/arch/ecs-fargate',\n label: 'arch 14: ecs fargate',\n body: `develop ecs fargate with typescript`,\n platforms: ['react'],\n order: 14\n },\n {\n href: '/arch/hello-ecs-flask',\n label: 'arch 15: ecs flask app',\n body: 'deploy flask app on ecs',\n platforms: ['react'],\n order: 15\n },\n {\n href: '/arch/vpc-endpoint',\n label: 'arch 16: vpc endpoints 1',\n body: 'vpc endpoints demo',\n platforms: ['react'],\n order: 16\n },\n {\n href: '/arch/vpc-sg-ec2',\n label: 'arch 17: vpc endpoints 2',\n body: 'vpc endpoint, security group and ec2',\n platforms: ['react'],\n order: 17\n },\n {\n href: '/arch/vpc-flowlogs',\n label: 'arch 18: vpc flowlog',\n body: `vpc flow log`,\n platforms: ['react'],\n order: 18\n },\n {\n href: '/arch/transit-gateway-peering',\n label: 'arch 19: tgw region peering',\n body: 'transit gateway region peering',\n platforms: ['react'],\n order: 19\n },\n {\n href: '/arch/transit-gateway-crouter',\n label: 'arch 20: tgw multiple vpc',\n body: 'transit gateway central router',\n platforms: ['react'],\n order: 20\n },\n {\n href: '/arch/transit-gateway-simualted-on-prem',\n label: 'arch 21: tgw and on-premise',\n body: 'transit gateway connect simulated on-premise',\n platforms: ['react'],\n order: 21\n },\n {\n href: '/arch/cicd-integration-test',\n label: 'arch 22: ci/cd pipeline',\n body: 'ci/cd pipeline with integration test',\n platforms: ['react'],\n order: 22\n },\n {\n href: '/arch/cicd-cross-account',\n label: 'arch 23: ci/cd cross account',\n body: `ci/cd pipeline cross acount deploy`,\n platforms: ['react'],\n order: 23\n },\n {\n href: '/arch/cicd-ecr-ssm-tag',\n label: 'arch 24: ci/cd ecr tag',\n body: `ci/cd pipeline to build ecr with ssm tag`,\n platforms: ['react'],\n order: 24\n },\n {\n href: '/arch/cloudfront-s3',\n label: 'arch 25: cloudfront',\n body: `deploy a web with cloudfront, and waf`,\n platforms: ['react'],\n order: 25\n },\n {\n href: '/arch/cloudtrail-cloudwatch',\n label: 'arch 26: cloudTrail-cloudWatch',\n body: `Create a custom resource`,\n platforms: ['react'],\n order: 26\n },\n {\n href: '/arch/cloudwatch',\n label: 'arch 27: cloudwatch lambda',\n body: 'cloudwatch dashboard to monitor lambda',\n platforms: ['react'],\n order: 27\n },\n {\n href: '/arch/cognito',\n label: 'arch 28: basic cognito',\n body: 'basic of cognito',\n platforms: ['react'],\n order: 28\n },\n {\n href: '/arch/basic-efs',\n label: 'arch 29: basic efs',\n body: `setup efs in vpc`,\n platforms: ['react'],\n order: 29\n },\n {\n href: '/arch/organizations-scp',\n label: 'arch 30: organizations scp',\n body: `aws organization and scp`,\n platforms: ['react'],\n order: 30\n },\n {\n href: '/arch/priviledge-escalation',\n label: 'arch 31: priviledge escalation',\n body: `priviledge escalation`,\n platforms: ['react'],\n order: 31\n },\n {\n href: '/arch/custom-resource',\n label: 'arch 32: custom resource',\n body: `create a custom resource`,\n platforms: ['react'],\n order: 32\n },\n {\n href: '/arch/ssm',\n label: 'arch 33: system manager tunnel',\n body: `vscode remote connect to a private ec2`,\n platforms: ['react'],\n order: 33\n },\n {\n href: '/arch/cicd-devicefarm',\n label: 'arch 34: ci/cd device farm',\n body: `setup ci/cd device farm`,\n platforms: ['react'],\n order: 34\n },\n {\n href: '/arch/amplify-iot',\n label: 'arch 35: little amplify iot',\n body: `build an iot application using amplify and iot core`,\n platforms: ['react'],\n order: 35\n },\n {\n href: '/arch/route-53',\n label: 'arch 36: route 53',\n body: `getting started with route 53`,\n platforms: ['react'],\n order: 36\n },\n {\n href: '/arch/api-gateway-lambda',\n label: 'arch 37: apigw and lambda',\n body: 'apigw and lambda integration',\n platforms: ['react'],\n order: 37\n },\n {\n href: '/arch/microsoft-sql-to-rds-sql',\n label: 'arch 38: microsoft sql to rds',\n body: 'microsoft sql to rds',\n platforms: ['react'],\n order: 38\n },\n {\n href: '/arch/microsoft-sql-aurora-migration',\n label: 'arch 40: db migration',\n body: 'microsoft sql to aurora mysql migration',\n platforms: ['react'],\n order: 39\n },\n {\n href: '/arch/lambda-rds-proxy',\n label: 'arch 40: rds proxy',\n body: 'lambda rds proxy',\n platforms: ['react'],\n order: 40\n },\n {\n href: '/arch/s3-multipart-upload',\n label: 'arch 40: s3 upload',\n body: 's3 multipart upload',\n platforms: ['react'],\n order: 40\n },\n {\n href: '/arch/nacl-demo',\n label: 'arch 41: nacl demo',\n body: 'nacl demo',\n platforms: ['react'],\n order: 41\n }\n].sort(sortByOrder)\n\nexport const baseComponents: ComponentNavItem[] = [\n {\n href: '/components/view',\n label: 'View',\n body: `View is the foundational component for Amplify UI primitives. While View renders a
by default, it can render any HTML element and supports styling via props.`,\n platforms: ['react'],\n icon: MdOutlineCheckBoxOutlineBlank\n },\n {\n href: '/components/text',\n label: 'Text',\n body: `The Text primitive is used to display simple strings of text in an interface.`,\n platforms: ['react'],\n icon: MdTextFormat\n },\n {\n href: '/components/heading',\n label: 'Heading',\n body: `This is a separate primitive from Text for semantic purposes. The Heading primitive maps to an tag, and Text maps to a

tag.`,\n platforms: ['react'],\n icon: MdFormatSize\n },\n {\n href: '/components/icon',\n label: 'Icon',\n body: `The icon component displays simple vector graphics for use in other components like Buttons.`,\n platforms: ['react'],\n icon: MdInsertEmoticon\n },\n {\n href: '/components/image',\n label: 'Image',\n body: `The Image primitive can be used to display responsive images.`,\n platforms: ['react'],\n icon: MdOutlineImage\n },\n {\n href: '/components/divider',\n label: 'Divider',\n body: `A Divider creates separations in content. Dividers can help organize content and establish visual rhythm.`,\n platforms: ['react'],\n icon: MdHorizontalRule\n },\n {\n href: '/components/scrollview',\n label: 'ScrollView',\n body: `ScrollView is essentially a View that allows scrolling of its inner contents.`,\n platforms: ['react'],\n icon: MdSwapVert\n }\n].sort(sortByLabel)\n\nexport const connectedComponents = [\n {\n href: '/connected-components/authenticator',\n label: 'Authenticator',\n body: 'The Authenticator component adds complete authentication flows to your application with minimal boilerplate.',\n platforms: ['react', 'vue', 'angular', 'flutter']\n },\n {\n href: '/connected-components/authenticator/configuration',\n label: 'Configuration',\n platforms: ['react', 'vue', 'angular', 'flutter'],\n tertiary: true\n },\n {\n href: '/connected-components/authenticator/customization',\n label: 'Customization',\n platforms: ['react', 'vue', 'angular', 'flutter'],\n tertiary: true\n },\n {\n href: '/connected-components/authenticator/headless',\n label: 'Headless Usage',\n platforms: ['react', 'vue', 'angular', 'flutter'],\n tertiary: true\n },\n {\n href: '/connected-components/geo',\n label: 'Geo',\n body: 'Amplify UI Geo provides UI components for maps and location search built on top of Amazon Location Service.',\n platforms: ['react']\n }\n]\n\nexport const dataDisplayComponents = [\n {\n href: '/components/badge',\n label: 'Badge',\n body: `A Badge is a small visual element to denote a status or message about an item. A small, color-coded visual element that contains letters or numbers, that you can use to label, categorize, or organize items.`,\n platforms: ['react'],\n icon: MdCheckCircle\n },\n {\n href: '/components/rating',\n label: 'Rating',\n body: 'The Rating component displays a read-only star rating of a product or service.',\n platforms: ['react'],\n icon: MdStarBorder\n }\n].sort(sortByLabel)\n\nexport const feedbackComponents: ComponentNavItem[] = [\n {\n href: '/components/alert',\n label: 'Alert',\n body: `An Alert displays a brief, important message in a way that attracts the user's attention without interrupting the user's task. Alerts are typically intended to be read out dynamically by a screen reader.`,\n platforms: ['react'],\n icon: MdWarning\n },\n {\n href: '/components/placeholder',\n label: 'Placeholder',\n body: `The Placeholder component is used to fill out the interface while content is loaded asynchronously.`,\n platforms: ['react'],\n icon: MdNotes\n },\n {\n href: '/components/loader',\n label: 'Loader',\n body: `Loaders provide a visual cue that an action is either processing or awaiting a result. They are used to help the customer understand the system is working to fulfill a request.`,\n platforms: ['react'],\n icon: MdRefresh\n }\n].sort(sortByLabel)\n\nexport const inputComponents = [\n {\n href: '/components/textareafield',\n label: 'TextArea Field',\n body: `The TextAreaField form primitive can be used allow users to input multiline text content.`,\n platforms: ['react'],\n icon: MdSystemUpdateAlt\n },\n {\n href: '/components/textfield',\n label: 'Text Field',\n body: `The TextField form primitive can be used allow users to input text content.`,\n platforms: ['react'],\n icon: MdInput\n },\n {\n href: '/components/selectfield',\n label: 'Select Field',\n body: 'The SelectField primitive allows you to create a drop-down list.',\n platforms: ['react'],\n icon: MdUnfoldMore\n },\n {\n href: '/components/sliderfield',\n label: 'Slider Field',\n body: `Sliders allow users to quickly select a value within a range. They should be used when the upper and lower bounds to the range are invariable.`,\n platforms: ['react'],\n icon: MdTune\n },\n {\n href: '/components/stepperfield',\n label: 'Stepper Field',\n body: `A StepperField is a number input with buttons to increase or decrease the value.`,\n platforms: ['react'],\n icon: MdAddBox\n },\n {\n href: '/components/searchfield',\n label: 'Search Field',\n body: `SearchField accepts query text for search.`,\n platforms: ['react'],\n icon: MdSearch\n },\n {\n href: '/components/passwordfield',\n label: 'Password Field',\n body: `PasswordField allows users to input passwords, featuring full password manager support and an optional show/hide password button for user convenience - Amplify UI`,\n platforms: ['react'],\n icon: MdPassword\n },\n {\n href: '/components/phonenumberfield',\n label: 'Phone Number Field',\n body: `The PhoneNumberField form primitive allows users to input a phone number`,\n platforms: ['react'],\n icon: MdSmartphone\n },\n {\n href: '/components/switchfield',\n label: 'Switch Field',\n body: `The SwitchField form primitive is a toggleable input type with a checked (on) and unchecked (off) state.`,\n platforms: ['react'],\n icon: MdToggleOff\n },\n {\n href: '/components/radiogroupfield',\n label: 'Radio Group Field',\n body: `A RadioGroupField allows users to select a single option from a list of mutually exclusive options.`,\n platforms: ['react'],\n icon: MdRadioButtonChecked\n },\n {\n href: '/components/checkboxfield',\n label: 'Checkbox Field',\n body: `CheckboxField is used to mark an individual item as selected, or to select multiple items from a list of individual items.`,\n platforms: ['react'],\n icon: MdCheckBox\n },\n {\n href: '/components/togglebutton',\n label: 'Toggle Button',\n body: 'A toggle button represents an on/off state for some configuration, for example switching on/off bold text in a text editor.',\n platforms: ['react'],\n icon: MdEditAttributes\n },\n {\n href: '/components/button',\n label: 'Button',\n body: `The Button primitive is used to trigger an action or event, such as submitting a form, opening a dialog, canceling an action, or performing a delete operation.`,\n platforms: ['react'],\n icon: MdTouchApp\n }\n].sort(sortByLabel)\n\nexport const layoutComponents = [\n {\n href: '/components/card',\n label: 'Card',\n body: `The Card component can be used to group related pieces of content.`,\n platforms: ['react'],\n icon: MdWebAsset\n },\n {\n href: '/components/collection',\n label: 'Collection',\n body: `A Collection wraps Flex and Grid components, and provides a way to display items in a collection from a data source.`,\n platforms: ['react'],\n icon: MdSplitscreen\n },\n {\n href: '/components/flex',\n label: 'Flex',\n body: `A layout container using Flexbox.`,\n platforms: ['react'],\n icon: MdTableRows\n },\n {\n href: '/components/grid',\n label: 'Grid',\n body: 'A layout container using CSS Grid',\n platforms: ['react'],\n icon: MdGridView\n },\n {\n href: '/components/table',\n label: 'Table',\n body: `The Table primitive provides users with a styled and customizable table element.`,\n platforms: ['react'],\n icon: MdTableChart\n },\n {\n href: '/components/expander',\n label: 'Expander',\n body: `The Expander primitive enables users to expand or collapse a set of sections.`,\n platforms: ['react'],\n icon: MdExpand\n },\n {\n href: '/components/pagination',\n label: 'Pagination',\n body: `Pagination provides navigation to allow customers to move between large sets of content that are distributed across multiple pages.`,\n platforms: ['react'],\n icon: MdMoreHoriz\n }\n].sort(sortByLabel)\n\nexport const utilityComponents = [\n {\n href: '/components/visuallyhidden',\n label: 'Visually Hidden',\n body: `The Visually Hidden component is used to visually hide content while leaving it available to screen readers.`,\n platforms: ['react'],\n icon: MdDisabledVisible\n }\n].sort(sortByLabel)\n\nexport const navigationComponents: ComponentNavItem[] = [\n {\n href: '/components/link',\n label: 'Link',\n body: `Links are customizable and themable elements used for Navigation. By default Links render an anchor tag but can be configured to be used with routing libraries.`,\n platforms: ['react'],\n icon: MdLink\n },\n {\n href: '/components/menu',\n label: 'Menu',\n body: `Menu provides an accessible, interactive menu for selecting actions within an application. Dropdown menu is collision-aware and will automatically change location based on available space.`,\n platforms: ['react'],\n icon: MdMenu\n },\n {\n href: '/components/tabs',\n label: 'Tabs',\n body: `Tabs organize content into multiple sections and allow users to navigate between them.`,\n platforms: ['react'],\n icon: MdTab\n }\n].sort(sortByLabel)\n\nexport const primitiveComponents = [\n {\n components: [\n {\n href: '/components',\n label: 'Overview',\n platforms: ['react']\n }\n ]\n },\n {\n heading: 'Base',\n components: baseComponents\n },\n {\n heading: 'Feedback',\n components: feedbackComponents\n },\n {\n heading: 'Navigation',\n components: navigationComponents\n },\n {\n heading: 'Inputs',\n components: inputComponents\n },\n {\n heading: 'Layout',\n components: layoutComponents\n },\n {\n heading: 'Data display',\n components: dataDisplayComponents\n },\n {\n heading: 'Utilities',\n components: utilityComponents\n }\n]\n\nexport const legacyComponents = [\n {\n href: '/legacy-components/chatbot',\n label: 'Chatbot',\n body: 'Chatbot automatically renders a complete chat messaging interface that can be used out-of-the-box, or it can be customized using theming support.',\n platforms: ['react', 'vue', 'angular']\n },\n {\n href: '/legacy-components/storage',\n label: 'Storage',\n body: 'A set of components to help interact with S3 storage.',\n platforms: ['react', 'vue', 'angular']\n }\n]\n\nexport const guides = [\n {\n href: '/guides',\n label: 'Overview'\n },\n {\n href: '/guides/css-in-js',\n label: 'CSS in JS',\n platforms: ['react', 'vue', 'angular']\n },\n {\n href: '/guides/auth-protected',\n label: 'Protected Routes',\n platforms: ['react']\n }\n]\n\nexport const gettingStarted = [\n {\n href: '/getting-started/introduction',\n label: 'Introduction'\n }\n]\n\nexport const theming = [\n {\n href: '/theming',\n label: 'Overview'\n },\n {\n href: '/theming/responsive',\n label: 'Responsive',\n platforms: ['react']\n },\n {\n href: '/theming/default-theme',\n label: 'Default Theme',\n platforms: ['react', 'vue', 'angular']\n },\n {\n href: '/theming/default-theme/colors',\n label: 'Colors',\n platforms: ['react', 'vue', 'angular'],\n tertiary: true\n },\n {\n href: '/theming/default-theme/typography',\n label: 'Typography',\n platforms: ['react', 'vue', 'angular'],\n tertiary: true\n },\n {\n href: '/theming/default-theme/sizes',\n label: 'Sizes',\n platforms: ['react', 'vue', 'angular'],\n tertiary: true\n },\n {\n href: '/theming/dark-mode',\n label: 'Dark mode'\n },\n {\n href: '/theming/css-variables',\n label: 'CSS variables',\n platforms: ['react', 'vue', 'angular']\n },\n {\n href: '/theming/style-props',\n label: 'Style Props',\n platforms: ['react']\n }\n]\n\nexport const DISCORD = 'https://discord.gg/amplify'\nexport const COMMUNITY = 'https://amplify.aws/community'\nexport const COMMUNITY_EVENTS = 'https://amplify.aws/community/events'\nexport const COMMUNITY_POSTS = 'https://amplify.aws/community/posts'\nexport const COMMUNITY_CONTRIBUTORS =\n 'https://amplify.aws/community/contributors'\nexport const COMMUNITY_NEWSLETTERS = 'https://amplify.aws/community/newsletters'\nexport const TWITTER = 'https://twitter.com/AWSAmplify'\nexport const GITHUB = 'https://github.com/aws-amplify'\nexport const TERMS = 'https://aws.amazon.com/terms/'\nexport const PRIVACY = 'https://aws.amazon.com/privacy/'\nexport const MARKETING = 'https://aws.amazon.com/amplify/framework/'\nexport const AWS_USER_GUIDE =\n 'https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html'\nexport const IOS_REFERENCE = 'https://aws-amplify.github.io/amplify-ios/docs/'\nexport const ANDROID_REFERENCE =\n 'https://aws-amplify.github.io/aws-sdk-android/docs/reference/'\nexport const JS_REFERENCE = 'https://aws-amplify.github.io/amplify-js/api/'\n\nexport const GITHUB_REPO = `${GITHUB}/amplify-ui/`\nexport const GITHUB_REPO_FILE = `${GITHUB_REPO}/blob/main/`\n","// haimtran 25 jul 2022\n// BlogLayout, ComponentLayout and so on\n\nimport { PageContainer } from 'components/page-container'\nimport { Sidebar } from 'components/sidebar/sidebar'\nimport { Heading } from 'components/page-container'\nimport React from 'react'\nimport { RouteItem } from 'utils/get-route-context'\nimport {\n serverlessComponents,\n applicationComponents,\n archComponents,\n mlComponents,\n swiftuiComponents,\n terraformComponents,\n eksComponents,\n webComponents,\n dataComponents,\n dlComponents,\n programmingComponents,\n databaseComponents\n} from 'data/links'\n\nexport function getRoutes(slug: string): RouteItem[] {\n const routes = [\n {\n title: 'Architect',\n path: '/arch',\n open: true,\n heading: true,\n sort: true,\n routes: archComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Serverless',\n path: '/serverless',\n open: true,\n heading: true,\n sort: true,\n routes: serverlessComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Application',\n path: '/application',\n open: true,\n heading: true,\n sort: true,\n routes: applicationComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Machine Learning',\n path: '/ml',\n open: true,\n heading: true,\n sort: true,\n routes: mlComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'SwiftUI',\n path: '/swiftui',\n open: true,\n heading: true,\n sort: true,\n routes: swiftuiComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Terraform',\n path: '/terraform',\n open: true,\n heading: true,\n sort: true,\n routes: terraformComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Amazon EKS',\n path: '/eks',\n open: true,\n heading: true,\n sort: true,\n routes: eksComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Web',\n path: '/web',\n open: true,\n heading: true,\n sort: true,\n routes: webComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Data',\n path: '/Dataengineer',\n open: true,\n heading: true,\n sort: true,\n routes: dataComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Deep Learning',\n path: '/dl',\n open: true,\n heading: true,\n sort: true,\n routes: dlComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Programming',\n path: '/programming',\n open: true,\n heading: true,\n sort: true,\n routes: programmingComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n },\n {\n title: 'Database',\n path: '/database',\n open: true,\n heading: true,\n sort: true,\n routes: databaseComponents.map(item => {\n return {\n title: item.label,\n path: item.href\n }\n }),\n summarize: false\n }\n ]\n\n // check slug and return\n if (slug === '/') {\n return [routes[0]]\n }\n\n // architect\n if (slug.startsWith('/arch')) {\n return [routes[0]]\n }\n\n // serverless\n if (slug.startsWith('/serverless')) {\n return [routes[1]]\n }\n\n // application\n if (slug.startsWith('/application')) {\n return [routes[2]]\n }\n\n // ml\n if (slug.startsWith('/ml')) {\n return [routes[3]]\n }\n\n // swiftui\n if (slug.startsWith('/swiftui')) {\n return [routes[4]]\n }\n\n // terraform\n if (slug.startsWith('/terraform')) {\n return [routes[5]]\n }\n\n // eks\n if (slug.startsWith('/eks')) {\n return [routes[6]]\n }\n\n // web\n if (slug.startsWith('/web')) {\n return [routes[7]]\n }\n\n // dataengineer\n if (slug.startsWith('/dataengineer')) {\n return [routes[8]]\n }\n\n // dl\n if (slug.startsWith('/dl')) {\n return [routes[9]]\n }\n\n // programming\n if (slug.startsWith('/programming')) {\n return [routes[10]]\n }\n\n // database\n if (slug.startsWith('/database')) {\n return [routes[11]]\n }\n\n return routes\n}\n\nexport default function DefaultLayout(props: {\n children: React.ReactNode\n frontMatter: any\n hidToc?: boolean\n maxWidth?: string\n}) {\n const frontMatterSample = {\n slug: '/',\n title: 'Frontmatter Tittle',\n headings: [\n {\n level: 'h2',\n text: 'Setup',\n id: '123'\n } as Heading,\n {\n level: 'h2',\n text: 'Synthesize',\n id: '124'\n } as Heading,\n {\n level: 'h3',\n text: 'Deploy',\n id: '125'\n } as Heading\n ]\n }\n\n const { children, frontMatter, ...rest } = props\n\n const routes = getRoutes(frontMatter.slug)\n\n return (\n }\n >\n {children}\n \n )\n}\n","import { Box, BoxProps } from '@chakra-ui/react'\nimport React from 'react'\n\nfunction CodeContainer(props: BoxProps) {\n return (\n \n )\n}\n\nexport default CodeContainer\n","import { Button, ButtonProps, useClipboard } from '@chakra-ui/react'\nimport React from 'react'\nimport { t } from 'utils/i18n'\n\ninterface CopyButtonProps extends ButtonProps {\n code: string\n}\n\nfunction CopyButton({ code, ...props }: CopyButtonProps) {\n const { hasCopied, onCopy } = useClipboard(code)\n\n return (\n \n {hasCopied\n ? t('component.mdx-components.copy-button.copied')\n : t('component.mdx-components.copy-button.copy')}\n \n )\n}\n\nexport default CopyButton\n","import React from 'react'\n\nexport const liveEditorStyle: React.CSSProperties = {\n fontSize: 'xs',\n // fontSize: 14,\n overflowX: 'auto',\n fontFamily: 'SF Mono, Menlo, monospace'\n}\n\nexport const liveErrorStyle: React.CSSProperties = {\n fontFamily: 'SF Mono, Menlo, monospace',\n // fontSize: 14,\n fontSize: 'xs',\n padding: '1em',\n overflowX: 'auto',\n color: 'white',\n backgroundColor: 'red'\n}\n","import { chakra } from '@chakra-ui/react'\nimport * as React from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const Anchor = React.forwardRef((props: any, ref: any) => (\n \n))\n","import { chakra, HTMLChakraProps, useDimensions } from '@chakra-ui/react'\nimport React, { useRef } from 'react'\n\nexport const InlineCode = (props: HTMLChakraProps<'code'>) => {\n const codeRef = useRef(null)\n const dimensions = useDimensions(codeRef)\n\n /**\n * Value (in pixels) comes from the minimum width of\n * the `li` parent element in the changelog page\n * before the layout shifts to mobile.\n */\n const MIN_CONTENT_WIDTH = 363\n const shouldWrap = dimensions?.borderBox.width > MIN_CONTENT_WIDTH\n\n return (\n \n )\n}\n","import * as ComponentProps from '@chakra-ui/props-docs'\nimport { Code, Flex, HStack, Stack, chakra, theme } from '@chakra-ui/react'\nimport { isObject, isString } from '@chakra-ui/utils'\nimport Link from 'next/link'\nimport * as React from 'react'\nimport { Anchor } from 'components/mdx-components/anchor'\nimport { InlineCode } from 'components/mdx-components/inline-code'\n// import { convertBackticksToInlineCode } from 'utils/convert-backticks-to-inline-code'\nimport { t } from 'utils/i18n'\n\n/**\n * A map of components that use foreign theme key.\n * The key is name of the component and value is the theme key it uses.\n */\nconst themeComponentKeyAliases = {\n AlertDialog: 'Modal',\n IconButton: 'Button'\n}\n\nexport type PropsTableProps = {\n /**\n * displayName of the target component\n */\n of: keyof typeof ComponentProps\n /**\n * prop names to omit\n */\n omit?: string[] | null\n /**\n * Render only given prop names\n * Has precedence over `omit`\n */\n only?: string[] | null\n}\n\nconst PropsTable = ({\n of,\n omit = [\n 'isTruncated',\n 'layerStyle',\n 'noOfLines',\n 'textStyle',\n 'orientation',\n 'styleConfig'\n ],\n only\n}: PropsTableProps) => {\n const propList = React.useMemo(\n () => makePropsTable({ of, omit, only }),\n [of, omit, only]\n )\n\n if (!propList.length) {\n // this error breaks the build to notify you when there would be an empty table\n throw new Error(\n `No props left to render for component ${of}.\nRemove the use of for this component in the docs.`\n )\n }\n\n return (\n \n {propList.map(prop => (\n \n \n \n \n {prop.name}\n {prop.required && (\n \n {t('component.props-table.required')}\n \n )}\n \n \n \n

\n {prop.description && (\n \n
\n {t('component.props-table.description')}\n
\n
\n

{convertBackticksToInlineCode(prop.description)}

\n
\n
\n )}\n \n
{t('component.props-table.type')}
\n
\n \n {prop.type}\n \n
\n
\n {prop.defaultValue && (\n \n
{t('component.props-table.default')}
\n
\n \n {prop.defaultValue}\n \n
\n
\n )}\n
\n \n ))}\n \n )\n}\n\nexport default PropsTable\n\nconst TYPE_GENERIC_THEMEABLE = [\n 'string',\n 'string | (string & {})',\n '(string & {})'\n]\n\nconst isGenericThemeable = (type: string) =>\n TYPE_GENERIC_THEMEABLE.includes(type)\n\nconst omitGenericThemeableType = (type: string) =>\n type\n .split(' | ')\n .filter(type => isGenericThemeable(type))\n .join(' | ') || type\n\nfunction toLiteralStringType(strings: string[]) {\n return (\n strings\n .map(s => `\"${s}\"`)\n .join(' | ')\n .trim() || 'string'\n )\n}\n\nfunction isColorScheme(value: unknown): value is Record {\n return (\n isObject(value) &&\n ['50', '100', '200', '300', '400', '600', '700', '800', '900'].every(k =>\n isString(value[k])\n )\n )\n}\n\ntype MakePropsTableOptions = PropsTableProps\n\nfunction makePropsTable({ of, omit, only }: MakePropsTableOptions) {\n const props = ComponentProps[of]?.props\n\n const themeKey = themeComponentKeyAliases[of] ?? of\n const componentTheme = theme.components[themeKey]\n\n const featNotImplemented = (feat: string) => (\n <>\n {feat} {t('component.props-table.for')} {of}{' '}\n {t('component.props-table.are-not-implemented-in-the-default-theme')}{' '}\n {t('component.props-table.you-can')}{' '}\n \n {t('component.props-table.extend-the-theme')}\n {' '}\n {t('component.props-table.to-implement-them')}\n \n )\n\n if (!props) return []\n\n return Object.entries(props)\n .filter(([name]) => {\n if (Array.isArray(only) && !only.includes(name)) {\n return false\n }\n\n if (Array.isArray(omit) && omit.includes(name)) {\n return false\n }\n\n return true\n })\n .map(([name, { defaultValue, description, required, type }]) => {\n const prop = {\n name,\n defaultValue: defaultValue?.value,\n description,\n required,\n type: type.name\n }\n\n if (name === 'size') {\n const defaultSize = componentTheme?.defaultProps?.size\n const sizes = componentTheme?.sizes\n\n if (sizes) {\n prop.type = toLiteralStringType(Object.keys(sizes))\n } else {\n prop.description = featNotImplemented('Sizes')\n }\n\n if (defaultSize != null) {\n prop.defaultValue = `\"${defaultSize}\"`\n } else {\n prop.type = 'string'\n }\n\n if (isGenericThemeable(prop.type)) {\n prop.type = 'string'\n } else {\n prop.type = omitGenericThemeableType(prop.type)\n }\n }\n\n if (name === 'variant') {\n const defaultVariant = componentTheme?.defaultProps?.variant\n const variants = componentTheme?.variants\n\n if (variants) {\n prop.type = toLiteralStringType(Object.keys(variants))\n } else {\n prop.description = featNotImplemented('Variants')\n }\n\n if (defaultVariant != null) {\n prop.defaultValue = `\"${defaultVariant}\"`\n }\n\n if (!defaultVariant) {\n prop.type = 'string'\n } else {\n prop.type = omitGenericThemeableType(prop.type)\n }\n }\n\n if (name === 'colorScheme') {\n prop.type = omitGenericThemeableType(prop.type)\n\n const defaultColorScheme = componentTheme?.defaultProps?.colorScheme\n const colorSchemes = Object.entries(theme.colors)\n .filter(([, value]) => isColorScheme(value))\n .map(([k]) => k)\n\n if (defaultColorScheme != null) {\n prop.defaultValue = `\"${defaultColorScheme}\"`\n prop.type = toLiteralStringType(colorSchemes)\n } else {\n prop.description = featNotImplemented('Color Schemes')\n }\n }\n\n return prop\n })\n .sort((propA, propB) => {\n const aRequired = propA.required ? 1000 : 0\n const bRequired = propB.required ? 1000 : 0\n const requiredOffset = aRequired - bRequired\n return String(propA.name).localeCompare(propB.name) - requiredOffset\n })\n}\n","import {\n Box,\n Flex,\n SystemStyleObject,\n chakra,\n useColorModeValue,\n useTheme,\n} from '@chakra-ui/react'\nimport NextImage from 'next/image'\nimport * as React from 'react'\nimport { t } from 'utils/i18n'\nimport loadScript from 'utils/load-script'\n\nexport function CarbonAd() {\n const ref = React.useRef(null)\n\n const theme = useTheme()\n const bg = useColorModeValue('gray.50', 'rgba(36, 70, 93, 0.32)')\n\n const carbonAd: SystemStyleObject = {\n display: 'block',\n position: 'relative',\n margin: '32px 0',\n maxWidth: '480px',\n minHeight: '132px',\n borderRadius: '4px',\n bg,\n color: 'inherit',\n '@media (max-width: 480px)': {\n fontSize: '0.875em',\n },\n a: {\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n '.carbon-wrap': {\n display: 'flex',\n padding: '16px',\n },\n '.carbon-img': {\n marginRight: '16px',\n img: {\n display: 'block',\n },\n },\n '.carbon-text': {\n fontSize: '0.8rem',\n lineHeight: 1.4,\n },\n '.carbon-poweredby': {\n position: 'absolute',\n bottom: '16px',\n left: '162px',\n color: `${theme.colors.gray[500]} !important`,\n display: 'block',\n fontSize: '10px',\n fontWeight: 'semibold',\n textTransform: 'uppercase',\n lineHeight: 1,\n letterSpacing: '0.2px',\n },\n }\n\n React.useEffect(() => {\n const scriptEl = document.getElementById('_carbonads_js')\n\n if (!ref.current || !!scriptEl) return\n\n const script = loadScript(\n 'https://cdn.carbonads.com/carbon.js?serve=CE7DKK7L&placement=chakra-uicom',\n ref.current,\n )\n script.id = '_carbonads_js'\n }, [])\n\n return \n}\n\nconst DocsPageChakraProAd = () => (\n \n \n \n \n \n \n {t('component.mdx-components.carbon-ad.message-bold')}{' '}\n {t('component.mdx-components.carbon-ad.message')}\n \n \n {t('component.mdx-components.carbon-ad.ads-via-chakra-ui')}\n \n \n \n)\n\nexport default DocsPageChakraProAd\n","import { chakra } from '@chakra-ui/react'\nimport BaseHighlight, {\n Language,\n PrismTheme,\n defaultProps\n} from 'prism-react-renderer'\nimport React from 'react'\nimport { liveEditorStyle } from './styles'\n\nconst RE = /{([\\d,-]+)}/\n\nconst calculateLinesToHighlight = (meta: string) => {\n if (!RE.test(meta)) {\n return () => false\n }\n const lineNumbers = RE.exec(meta)[1]\n .split(`,`)\n .map(v => v.split(`-`).map(x => parseInt(x, 10)))\n\n return (index: number) => {\n const lineNumber = index + 1\n const inRange = lineNumbers.some(([start, end]) =>\n end ? lineNumber >= start && lineNumber <= end : lineNumber === start\n )\n return inRange\n }\n}\n\ninterface HighlightProps {\n codeString: string\n language: Language\n theme: PrismTheme\n metastring?: string\n showLines?: boolean\n}\n\nfunction Highlight({\n codeString,\n language,\n metastring,\n showLines,\n ...props\n}: HighlightProps) {\n const shouldHighlightLine = calculateLinesToHighlight(metastring)\n\n return (\n \n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n
\n
\n            {tokens.map((line, i) => {\n              const lineProps = getLineProps({ line, key: i })\n              return (\n                \n                  {showLines && (\n                    \n                      {i + 1}\n                    \n                  )}\n                  {line.map((token, key) => (\n                    \n                  ))}\n                \n              )\n            })}\n          
\n
\n )}\n \n )\n}\n\nexport default Highlight\n","import { Box, useBoolean } from '@chakra-ui/react'\nimport dynamic from 'next/dynamic'\nimport theme from 'prism-react-renderer/themes/nightOwl'\nimport React, { useEffect } from 'react'\nimport CodeContainer from './code-container'\nimport CopyButton from './copy-button'\nimport Highlight from './highlight'\n\nconst ReactLiveBlock = dynamic(() => import('./react-live-block'))\n\nfunction CodeBlock(props) {\n const [isMounted, { on }] = useBoolean()\n useEffect(\n /**\n * Lazily-load to save bundle size.\n */\n on,\n [on]\n )\n const {\n className,\n live = true,\n manual,\n render,\n children,\n viewlines,\n ln,\n mountStylesheet = false,\n tutorialButton\n } = props.children.props\n\n const _live = live === 'true' || live === true\n\n const language = className?.replace(/language-/, '')\n const rawCode = children.trim()\n\n const reactLiveBlockProps = {\n rawCode,\n language,\n theme,\n noInline: manual,\n mountStylesheet\n }\n\n if (isMounted && language === 'jsx' && _live === true) {\n return \n }\n\n if (isMounted && render) {\n /**\n * @TODO Not sure if this is even used?\n */\n return (\n
\n \n
\n )\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default CodeBlock\n","import React from 'react'\n\nconst StorybookIcon = props => (\n \n \n \n \n \n \n)\n\nexport default StorybookIcon\n","import {\n HStack,\n Icon,\n Link,\n LinkProps,\n Text,\n Wrap,\n WrapItem,\n useColorModeValue\n} from '@chakra-ui/react'\nimport React from 'react'\nimport { FaGithub, FaNpm, FaYoutube } from 'react-icons/fa'\nimport StorybookIcon from '../storybook-icon'\nimport { t } from 'utils/i18n'\n\ntype ComponentLinkProps = LinkProps & {\n icon: React.ElementType\n url: string\n iconSize?: string\n iconColor?: string\n}\n\nfunction ComponentLink(props: ComponentLinkProps) {\n const { icon, url, children, iconSize, iconColor, ...rest } = props\n return (\n \n \n \n \n {children}\n \n \n \n )\n}\n\nexport type ComponentLinksProps = {\n theme?: { componentName: string }\n github?: { url?: string; package?: string }\n npm?: { package: string }\n storybook?: { url: string }\n video?: { url: string }\n}\nfunction ComponentLinks(props: ComponentLinksProps) {\n const { theme, github, npm, storybook, video, ...rest } = props\n const iconColor = useColorModeValue('gray.600', 'inherit')\n\n const githubRepoUrl = 'https://github.com/chakra-ui/chakra-ui'\n\n const githubLink = (github?.url || github?.package) && (\n \n \n {t('component.mdx-components.component-links.view-source')}\n \n \n )\n\n const npmLink = npm?.package && (\n \n \n {npm.package}\n \n \n )\n\n const storybookLink = storybook?.url && (\n \n \n {t('component.mdx-components.component-links.view-storybook')}\n \n \n )\n\n const videoLink = video?.url && (\n \n \n {t('component.mdx-components.component-links.view-video')}\n \n \n )\n\n const themeComponentLink = theme && (\n \n \n {t('component.mdx-components.component-links.view-theme-source')}\n \n \n )\n\n return (\n \n {githubLink}\n {themeComponentLink}\n {npmLink}\n {storybookLink}\n {videoLink}\n \n )\n}\n\nexport default ComponentLinks\n","import { Box, SimpleGrid, Text } from '@chakra-ui/react'\nimport NextImage from 'next/image'\n\nconst CourseBanner = ({\n href,\n image,\n title\n}: {\n image: string\n title: string\n description: string\n href: string\n}) => {\n return (\n \n \n \n \n {title}\n \n \n \n )\n}\n\nexport const FeaturesCourses = () => {\n return (\n \n \n \n \n )\n}\n\nexport default CourseBanner\n","import * as icons from '@chakra-ui/icons'\nimport { Button, Grid, Text, useClipboard, useToast } from '@chakra-ui/react'\nimport React from 'react'\n\nconst iconList = {\n AddIcon: icons.AddIcon,\n ArrowBackIcon: icons.ArrowBackIcon,\n ArrowDownIcon: icons.ArrowDownIcon,\n ArrowForwardIcon: icons.ArrowForwardIcon,\n ArrowLeftIcon: icons.ArrowLeftIcon,\n ArrowRightIcon: icons.ArrowRightIcon,\n ArrowUpIcon: icons.ArrowUpIcon,\n ArrowUpDownIcon: icons.ArrowUpDownIcon,\n AtSignIcon: icons.AtSignIcon,\n AttachmentIcon: icons.AttachmentIcon,\n BellIcon: icons.BellIcon,\n CalendarIcon: icons.CalendarIcon,\n ChatIcon: icons.ChatIcon,\n CheckIcon: icons.CheckIcon,\n CheckCircleIcon: icons.CheckCircleIcon,\n ChevronDownIcon: icons.ChevronDownIcon,\n ChevronLeftIcon: icons.ChevronLeftIcon,\n ChevronRightIcon: icons.ChevronRightIcon,\n ChevronUpIcon: icons.ChevronUpIcon,\n CloseIcon: icons.CloseIcon,\n CopyIcon: icons.CopyIcon,\n DeleteIcon: icons.DeleteIcon,\n DownloadIcon: icons.DownloadIcon,\n DragHandleIcon: icons.DragHandleIcon,\n EditIcon: icons.EditIcon,\n EmailIcon: icons.EmailIcon,\n ExternalLinkIcon: icons.ExternalLinkIcon,\n HamburgerIcon: icons.HamburgerIcon,\n InfoIcon: icons.InfoIcon,\n InfoOutlineIcon: icons.InfoOutlineIcon,\n LinkIcon: icons.LinkIcon,\n LockIcon: icons.LockIcon,\n MinusIcon: icons.MinusIcon,\n MoonIcon: icons.MoonIcon,\n NotAllowedIcon: icons.NotAllowedIcon,\n PhoneIcon: icons.PhoneIcon,\n PlusSquareIcon: icons.PlusSquareIcon,\n QuestionIcon: icons.QuestionIcon,\n QuestionOutlineIcon: icons.QuestionOutlineIcon,\n RepeatIcon: icons.RepeatIcon,\n RepeatClockIcon: icons.RepeatClockIcon,\n SearchIcon: icons.SearchIcon,\n Search2Icon: icons.Search2Icon,\n SettingsIcon: icons.SettingsIcon,\n SmallAddIcon: icons.SmallAddIcon,\n SmallCloseIcon: icons.SmallCloseIcon,\n SpinnerIcon: icons.SpinnerIcon,\n StarIcon: icons.StarIcon,\n SunIcon: icons.SunIcon,\n TimeIcon: icons.TimeIcon,\n TriangleDownIcon: icons.TriangleDownIcon,\n TriangleUpIcon: icons.TriangleUpIcon,\n UnlockIcon: icons.UnlockIcon,\n UpDownIcon: icons.UpDownIcon,\n ViewIcon: icons.ViewIcon,\n ViewOffIcon: icons.ViewOffIcon,\n WarningIcon: icons.WarningIcon,\n WarningTwoIcon: icons.WarningTwoIcon,\n}\n\nconst IconsList = () => {\n const toast = useToast()\n\n return (\n \n {Object.keys(iconList).map((key, i) => {\n const Icon = iconList[key]\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { onCopy } = useClipboard(key)\n\n const onCopyIcon = () => {\n onCopy()\n\n toast({\n title: `'${key}' copied to clipboard`,\n status: 'success',\n duration: 2000,\n isClosable: false,\n })\n }\n\n return (\n onCopyIcon()}\n key={i}\n textAlign='center'\n variant='outline'\n flexDir='column'\n justifyContent='center'\n >\n \n \n {key}\n \n \n )\n })}\n \n )\n}\n\nexport default IconsList\n","import {\n Box,\n Flex,\n FlexProps,\n Grid,\n GridProps,\n useTheme,\n} from '@chakra-ui/react'\nimport React from 'react'\n\ntype ColorPaletteProps = FlexProps & { color?: string; name?: string }\n\nexport const ColorPalette = (props: ColorPaletteProps) => {\n const { color, name, ...rest } = props\n\n const theme = useTheme()\n let colorCode = color\n const [shade, hue] = color.split('.')\n\n if (shade && hue) {\n colorCode = theme.colors[shade][hue]\n }\n\n if (color in theme.colors && typeof theme.colors[color] === 'string') {\n colorCode = theme.colors[color]\n }\n\n return (\n \n \n \n \n {name}\n \n {colorCode}\n \n \n )\n}\n\nexport const ColorPalettes = (props: { color: string }) => {\n const { color } = props\n const theme = useTheme()\n const keys = Object.keys(theme.colors[color])\n\n return keys.map((item) => (\n \n ))\n}\n\nexport const ColorWrapper: React.FC = (props) => (\n \n)\n","import {\n Flex,\n Heading,\n Icon,\n SimpleGrid,\n Stack,\n Text,\n useColorModeValue\n} from '@chakra-ui/react'\nimport Link from 'next/link'\nimport { useRouter } from 'next/router'\nimport {\n RiArchiveFill,\n RiCheckboxMultipleFill,\n RiDashboardFill,\n RiEyeCloseLine,\n RiFeedbackFill,\n RiFileList3Fill,\n RiImage2Fill,\n RiInputMethodLine,\n RiLayout5Line,\n RiListOrdered,\n RiNavigationFill,\n RiPaletteLine,\n RiPictureInPictureExitFill,\n RiRepeat2Fill\n} from 'react-icons/ri'\nimport componentsSidebar from './../../configs/components.sidebar.json'\nimport styledSystemSidebar from './../../configs/styled-system.sidebar.json'\n\nconst featureSidebar = {\n '/docs/styled-system/overview': styledSystemSidebar,\n '/docs/components/overview': componentsSidebar\n}\n\nconst Feature = ({ title, icon, children, ...props }) => {\n return (\n \n \n \n \n \n \n {title}\n \n \n {children}\n \n \n \n )\n}\n\nexport const FeaturesOverview = () => {\n const { asPath } = useRouter()\n\n const features = featureSidebar[asPath].routes[0].routes.filter(\n feature => feature.path !== asPath\n )\n\n const changeFeatureText = (path: string) => {\n switch (true) {\n case path.includes('recipes'):\n return 'recipes'\n case path.includes('hooks'):\n return 'hooks'\n default:\n return 'components'\n }\n }\n\n const icons = {\n Features: RiListOrdered,\n Theming: RiPaletteLine,\n 'Utility Hooks': RiRepeat2Fill,\n 'Component Hooks': RiRepeat2Fill,\n Recipes: RiFileList3Fill,\n Layout: RiLayout5Line,\n Forms: RiCheckboxMultipleFill,\n 'Data Display': RiDashboardFill,\n Overlay: RiPictureInPictureExitFill,\n Feedback: RiFeedbackFill,\n Typography: RiInputMethodLine,\n Disclosure: RiEyeCloseLine,\n Navigation: RiNavigationFill,\n 'Media and icons': RiImage2Fill,\n Other: RiArchiveFill\n }\n\n return (\n \n {features.map(feature => (\n \n \n {feature.summarize\n ? `${feature.routes.length} ${changeFeatureText(feature.path)}`\n : null}\n \n \n ))}\n \n )\n}\n","import React from 'react'\n\nexport const CreateReactAppSvg = ({ ...rest }) => {\n return (\n \n \n \n )\n}\n\nexport const NextjsSvg = ({ ...rest }) => {\n return (\n \n \n \n )\n}\n\nexport const RedwoodSvg = ({ ...rest }) => {\n return (\n \n \n \n \n )\n}\n\nexport const BlitzSvg = ({ ...rest }) => {\n return (\n \n \n \n )\n}\n\nexport const GatsbySvg = ({ ...rest }) => {\n return (\n \n \n \n \n )\n}\n\nexport const RemixSvg = ({ ...props }) => {\n return (\n \n Remix Logo\n \n \n \n \n \n \n )\n}\n\nexport const ViteSvg = ({ ...props }) => {\n return (\n \n Vite Logo\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import {\n Box,\n Center,\n Link as ChakraLink,\n SimpleGrid,\n Text,\n} from '@chakra-ui/react'\nimport Link from 'next/link'\nimport React from 'react'\nimport {\n BlitzSvg,\n CreateReactAppSvg,\n GatsbySvg,\n NextjsSvg,\n RedwoodSvg,\n RemixSvg,\n ViteSvg,\n} from './framework-svg'\n\nconst FrameworkLink = (props) => {\n const { accentColor, href, children, name } = props\n return (\n \n \n \n {children}\n\n \n \n {name}\n \n \n \n \n \n )\n}\n\nexport const FrameworkLinks = () => {\n return (\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n )\n}\n","import { HTMLChakraProps, chakra } from '@chakra-ui/react'\nimport React from 'react'\n\nexport const LinkedHeading = (props: HTMLChakraProps<'h2'>) => (\n \n {props.children}\n {props.id && (\n \n #\n \n )}\n \n)\n","import { chakra } from '@chakra-ui/react'\nimport * as React from 'react'\n\nexport const Pre = (props) => (\n \n)\n","import { Box, BoxProps } from '@chakra-ui/react'\nimport {\n CodeEditorProps,\n PreviewProps,\n SandpackCodeEditor,\n SandpackLayout,\n SandpackLayoutProps,\n SandpackPreview,\n SandpackProvider\n} from '@codesandbox/sandpack-react'\nimport { nightOwl } from '@codesandbox/sandpack-themes'\n\ntype Props = BoxProps & {\n dependencies?: Record\n devDependencies?: Record\n layoutOptions?: SandpackLayoutProps\n editorOptions?: CodeEditorProps\n previewOptions?: PreviewProps\n files: {\n [x: string]: string\n }\n isHorizontal?: boolean\n}\n\nconst SandpackEmbed = ({\n dependencies,\n devDependencies,\n layoutOptions,\n editorOptions,\n previewOptions,\n files,\n isHorizontal = false\n}: Props) => {\n return (\n \n \n \n \n \n \n )\n}\n\nexport default SandpackEmbed\n","export type SandpackLanguageSupport =\n | 'jsx'\n | 'tsx'\n | 'javascript'\n | 'typescript'\n | 'html'\n | 'css'\n\nexport const formatFilePath = (path: string) => {\n if (path.startsWith('/')) {\n return path.substring(1)\n }\n return path\n}\n","import {\n Button,\n Stack,\n Icon,\n HStack,\n Text,\n ButtonGroup,\n} from '@chakra-ui/react'\nimport {\n SandpackCodeViewer,\n SandpackThemeProvider,\n useSandpack,\n useSandpackTheme,\n} from '@codesandbox/sandpack-react'\nimport { nightOwl } from '@codesandbox/sandpack-themes'\nimport * as React from 'react'\nimport { RiFileEditLine, RiFileTransferLine } from 'react-icons/ri'\nimport { formatFilePath, SandpackLanguageSupport } from './utils'\n\ninterface CodeBlockProps {\n path: string\n code: string\n language: SandpackLanguageSupport\n showLineNumbers?: boolean\n}\n\nconst CodeBlock = ({ path, code, showLineNumbers = false }: CodeBlockProps) => {\n const { theme } = useSandpackTheme()\n const { sandpack } = useSandpack()\n\n return (\n \n {path && (\n \n {formatFilePath(path)}\n \n }\n onClick={() => {\n sandpack.openFile(path)\n sandpack.updateFile(path, code)\n }}\n >\n Copy to Sandbox\n \n }\n onClick={() => {\n sandpack.openFile(path)\n }}\n >\n Open File\n \n \n \n )}\n \n \n )\n}\n\nexport const TutorialCodeBlock = (props: CodeBlockProps) => {\n return (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - sandpack has not yet fully provided React 18 support\n \n \n \n )\n}\n","import { Icon, IconProps } from '@chakra-ui/react'\n\nconst DiscordIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default DiscordIcon\n","import { Box, Text, HStack, SimpleGrid } from '@chakra-ui/react'\nimport * as React from 'react'\nimport DiscordIcon from './docs/discord-logo'\nimport { FaTwitter } from 'react-icons/fa'\n\nfunction CommunityCardItem({ children, accentColor, icon, href }) {\n return (\n \n \n {icon}\n \n {children}\n \n )\n}\n\nexport function JoinCommunityCards() {\n return (\n \n }\n href=\"https://chakra-ui.com/discord\"\n >\n Join the Discord\n \n }\n href=\"https://twitter.com/chakra_ui\"\n >\n Follow us on Twitter\n \n \n )\n}\n","import * as Chakra from '@chakra-ui/react'\nimport * as React from 'react'\nimport PropsTable from '../props-table'\nimport CarbonAd from './carbon-ad'\nimport CodeBlock from './codeblock/codeblock'\nimport ComponentLinks from './component-links'\nimport { FeaturesCourses } from './course-banner'\nimport IconsList from './icons-list'\nimport {\n ColorPalette,\n ColorPalettes,\n ColorWrapper\n} from 'components/color-palette'\nimport { FeaturesOverview } from 'components/features-overview'\nimport { FrameworkLinks } from 'components/framework-link'\nimport { Anchor } from 'components/mdx-components/anchor'\nimport { InlineCode } from 'components/mdx-components/inline-code'\nimport { LinkedHeading } from 'components/mdx-components/linked-heading'\nimport { Pre } from 'components/mdx-components/pre'\nimport { TData, THead, Table } from 'components/mdx-components/table'\nimport { VideoPlayer } from 'components/mdx-components/video-player'\nimport SandpackEmbed from 'components/sandpack-embed'\nimport { TutorialCodeBlock } from 'components/tutorial/tutorial-code-block'\nimport { TutorialFileAction } from 'components/tutorial/tutorial-file-action'\nimport { JoinCommunityCards } from 'components/community-card'\nimport NextImage from 'next/image'\n\nconst { Alert, AspectRatio, Box, chakra, Kbd, Link } = Chakra\n\nexport const MDXComponents = {\n ...Chakra,\n Image: props => (\n \n \n \n ),\n LinkedImage: ({ href, ...props }) => (\n \n \n \n ),\n h1: props => ,\n h2: props => ,\n h3: props => ,\n h4: props => ,\n hr: props => ,\n strong: props => ,\n code: InlineCode,\n pre: props => {\n if (typeof props.children === 'string') return
\n    if (props.children.props.type === 'tutorial') {\n      const className = props.children.props.className || ''\n      const code = props.children.props.children.trim() || ''\n      const language = className.replace(/language-/, '')\n      return (\n        \n      )\n    }\n    return \n  },\n  kbd: Kbd,\n  br: ({ reset, ...props }) => (\n    \n  ),\n  table: Table,\n  th: THead,\n  td: TData,\n  a: Anchor,\n  p: props => ,\n  ul: props => ,\n  ol: props => ,\n  li: props => ,\n  blockquote: props => (\n    \n  ),\n  'carbon-ad': CarbonAd,\n  ComponentLinks,\n  IconsList,\n  PropsTable,\n  FrameworkLinks,\n  VideoPlayer,\n  AspectRatio,\n  ColorPalette,\n  ColorPalettes,\n  ColorWrapper,\n  FeaturesCourses,\n  JoinCommunityCards,\n  SandpackEmbed: props => (\n    \n      \n    \n  ),\n  FeaturesOverview,\n  TutorialFileAction\n}\n","import { chakra, useColorModeValue } from '@chakra-ui/react'\nimport * as React from 'react'\n\nexport const Table = (props) => (\n  \n    \n  \n)\n\nexport const THead = (props) => (\n  \n)\n\nexport const TData = (props) => (\n  \n)\n","import React from 'react'\nimport ReactPlayer, { ReactPlayerProps } from 'react-player'\n\nexport const VideoPlayer = (props: ReactPlayerProps) => (\n  \n)\n","import { Button, Icon } from '@chakra-ui/react'\nimport { useSandpack } from '@codesandbox/sandpack-react'\nimport {\n  RiFileAddLine,\n  RiFileEditLine,\n  RiFileReduceLine,\n  RiFileTransferLine\n} from 'react-icons/ri'\nimport { formatFilePath } from './utils'\nimport { InlineCode } from './../mdx-components/inline-code'\n\ninterface TutorialFileActionProps {\n  type: 'open' | 'add' | 'delete' | 'update'\n  path: string\n  label?: string\n  code?: string\n}\n\nexport const TutorialFileAction = ({\n  type,\n  path,\n  label,\n  code = ''\n}: TutorialFileActionProps) => {\n  const { sandpack } = useSandpack()\n\n  const icons = {\n    open: RiFileTransferLine,\n    add: RiFileAddLine,\n    delete: RiFileReduceLine,\n    update: RiFileEditLine\n  }\n\n  return (\n    }\n      size=\"xs\"\n      fontSize=\"sm\"\n      cursor=\"pointer\"\n      onClick={() => {\n        switch (type) {\n          case 'open':\n            sandpack.openFile(path)\n            break\n          case 'add':\n          case 'update':\n            sandpack.updateFile(path, code)\n            sandpack.openFile(path)\n            break\n          case 'delete':\n            sandpack.closeFile(path)\n            sandpack.deleteFile(path)\n            break\n          default:\n            // eslint-disable-next-line no-console\n            console.error('Please select a valid type.')\n            break\n        }\n      }}\n    >\n      {label || formatFilePath(path)}\n    \n  )\n}\n","import get from 'lodash.get'\nimport uiJson from '../../i18n/ui.json'\n\n// TODO: load the locale appropriate ui.json file\nexport function t(str: string) {\n  return get(uiJson, str)\n}\n"],"names":["GithubIcon","props","svg","viewBox","path","fill","d","ACTION_KEY_DEFAULT","ACTION_KEY_APPLE","SearchButton","React","ref","actionKey","setActionKey","navigator","test","platform","chakra","flex","type","mx","lineHeight","w","bg","whiteSpace","display","base","sm","alignItems","color","_dark","py","px","outline","_focus","shadow","rounded","SearchIcon","HStack","ml","spacing","Text","textAlign","t","VisuallyHidden","Kbd","as","title","textDecoration","OptionText","searchWords","textToHighlight","findAll","autoEscape","map","chunk","end","highlight","start","text","substr","Box","DocIcon","strokeWidth","width","height","stroke","fillRule","strokeLinejoin","EnterIcon","g","strokeLinecap","HashIcon","router","useRouter","query","setQuery","active","setActive","shouldCloseModal","setShouldCloseModal","menu","useDisclosure","modal","menuNodes","MultiRef","menuRef","eventRef","events","on","onClose","off","useEventListener","event","hotkey","key","toLowerCase","preventDefault","isOpen","onOpen","length","results","matchSorter","searchData","keys","slice","onKeyDown","e","current","push","url","onKeyUp","useUpdateEffect","node","get","scrollIntoView","scrollMode","block","inline","boundary","open","onClick","Modal","scrollBehavior","ModalOverlay","ModalContent","role","aria-expanded","aria-haspopup","overflow","top","maxW","Flex","pos","align","aria-autocomplete","autoComplete","autoCorrect","spellCheck","maxLength","sx","h","pl","fontWeight","placeholder","value","onChange","target","Center","left","boxSize","ModalBody","maxH","p","borderTopWidth","pt","pb","item","index","selected","isLvl1","Link","href","passHref","a","id","aria-selected","undefined","onMouseEnter","minH","mt","_selected","mark","opacity","fontSize","hierarchy","lvl1","content","lg","aria-label","siteConfig","rel","borderWidth","borderColor","borderRadius","transition","_hover","_active","boxShadow","Icon","FaHeart","mr","LogoBox","styled","EntestLogo","footPrintImg","useColorModeValue","Image","src","alt","StyledLink","forwardRef","isActive","rest","aria-current","_activeLink","SidebarLink","children","slug","_slug","Array","isArray","split","pathSlug","includes","checkHref","asPath","link","useRef","useEffect","scroll","userSelect","NextLink","SidebarContent","routes","pathname","contentRef","idx","Fragment","heading","my","textTransform","letterSpacing","lvl2","mainNavLinks","icon","FaAws","label","match","startsWith","SiServerless","SiAwsamplify","FaSwift","FaCat","FaDog","FaDatabase","SiTerraform","SiKubernetes","SiWebpack","FaLaptopCode","MainNavLink","span","MainNavLinkGroup","List","styleType","ListItem","Sidebar","overscrollBehavior","pr","className","flexShrink","md","mb","fn","handleRouteChange","console","log","NavLink","bgActiveHoverColor","GridItem","MobileNavContent","closeBtnRef","bgColor","useRouteChanged","showOnBreakpoint","useBreakpointValue","requestAnimationFrame","focus","useState","setShadow","AnimatePresence","RemoveScroll","forwardProps","motion","duration","initial","animate","exit","direction","zIndex","justify","SponsorButton","CloseButton","Grid","templateColumns","gap","ScrollView","onScroll","scrolled","getRoutes","y","setY","elRef","useElementScroll","scrollY","MobileNavButton","IconButton","variant","AiOutlineMenu","NavbarContent","mobileNav","toggleColorMode","useColorMode","SwitchIcon","FaMoon","FaSun","mobileNavBtnRef","justifyContent","minW","Search","isExternal","FaYoutube","FaLinkedinIn","TbCertificate","size","toggleMode","maxWidth","getBoundingClientRect","useViewportScroll","right","headings","activeId","selectors","options","setActiveId","observer","elements","selector","document","querySelector","disconnect","IntersectionObserver","entries","forEach","entry","isIntersecting","getAttribute","el","observe","useScrollSpy","rootMargin","linkColor","linkHoverColor","aria-labelledby","xl","position","alignSelf","maxHeight","overflowY","OrderedList","level","PageContainer","frontmatter","sidebar","hideToc","pagination","description","editUrl","version","Navbar","TableOfContent","visibility","sortByLabel","b","sortByOrder","order","databaseComponents","body","platforms","sort","programmingComponents","terraformComponents","webComponents","eksComponents","swiftuiComponents","serverlessComponents","dataComponents","dlComponents","mlComponents","applicationComponents","archComponents","baseComponents","MdOutlineCheckBoxOutlineBlank","MdTextFormat","MdFormatSize","MdInsertEmoticon","MdOutlineImage","MdHorizontalRule","MdSwapVert","dataDisplayComponents","MdCheckCircle","MdStarBorder","feedbackComponents","MdWarning","MdNotes","MdRefresh","inputComponents","MdSystemUpdateAlt","MdInput","MdUnfoldMore","MdTune","MdAddBox","MdSearch","MdPassword","MdSmartphone","MdToggleOff","MdRadioButtonChecked","MdCheckBox","MdEditAttributes","MdTouchApp","layoutComponents","MdWebAsset","MdSplitscreen","MdTableRows","MdGridView","MdTableChart","MdExpand","MdMoreHoriz","utilityComponents","MdDisabledVisible","GITHUB_REPO","MdLink","MdMenu","MdTab","summarize","DefaultLayout","frontMatter","padding","code","useClipboard","hasCopied","onCopy","Button","colorScheme","liveEditorStyle","overflowX","fontFamily","liveErrorStyle","backgroundColor","Anchor","apply","InlineCode","codeRef","dimensions","useDimensions","shouldWrap","borderBox","themeComponentKeyAliases","AlertDialog","of","omit","only","propList","ComponentProps","themeKey","componentTheme","theme","featNotImplemented","feat","Object","filter","name","defaultValue","required","prop","defaultSize","defaultProps","sizes","toLiteralStringType","isGenericThemeable","omitGenericThemeableType","defaultVariant","variants","defaultColorScheme","colorSchemes","isObject","every","k","isString","isColorScheme","propA","propB","requiredOffset","String","localeCompare","makePropsTable","Error","Stack","css","borderCollapse","minWidth","verticalAlign","paddingBottom","marginBottom","borderBottomWidth","Code","div","convertBackticksToInlineCode","TYPE_GENERIC_THEMEABLE","join","strings","s","trim","NextImage","layout","RE","codeString","language","metastring","showLines","shouldHighlightLine","meta","lineNumbers","exec","v","x","parseInt","lineNumber","some","calculateLinesToHighlight","BaseHighlight","style","tokens","getLineProps","getTokenProps","data-language","pre","line","i","lineProps","token","ReactLiveBlock","dynamic","useBoolean","isMounted","live","manual","render","viewlines","ln","mountStylesheet","_live","tutorialButton","replace","rawCode","reactLiveBlockProps","noInline","editable","marginTop","CodeContainer","Highlight","CopyButton","aria-hidden","focusable","clipRule","ComponentLink","iconSize","iconColor","transform","github","npm","storybook","video","githubRepoUrl","githubLink","package","WrapItem","FaGithub","npmLink","FaNpm","storybookLink","StorybookIcon","videoLink","themeComponentLink","componentName","Wrap","CourseBanner","image","iconList","AddIcon","icons","ArrowBackIcon","ArrowDownIcon","ArrowForwardIcon","ArrowLeftIcon","ArrowRightIcon","ArrowUpIcon","ArrowUpDownIcon","AtSignIcon","AttachmentIcon","BellIcon","CalendarIcon","ChatIcon","CheckIcon","CheckCircleIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","ChevronUpIcon","CloseIcon","CopyIcon","DeleteIcon","DownloadIcon","DragHandleIcon","EditIcon","EmailIcon","ExternalLinkIcon","HamburgerIcon","InfoIcon","InfoOutlineIcon","LinkIcon","LockIcon","MinusIcon","MoonIcon","NotAllowedIcon","PhoneIcon","PlusSquareIcon","QuestionIcon","QuestionOutlineIcon","RepeatIcon","RepeatClockIcon","Search2Icon","SettingsIcon","SmallAddIcon","SmallCloseIcon","SpinnerIcon","StarIcon","SunIcon","TimeIcon","TriangleDownIcon","TriangleUpIcon","UnlockIcon","UpDownIcon","ViewIcon","ViewOffIcon","WarningIcon","WarningTwoIcon","toast","useToast","status","isClosable","flexDir","ColorPalette","useTheme","colorCode","shade","hue","colors","featureSidebar","componentsSidebar","Feature","cursor","Heading","CreateReactAppSvg","xmlns","NextjsSvg","RedwoodSvg","BlitzSvg","GatsbySvg","RemixSvg","xmlnsXlink","ViteSvg","defs","linearGradient","x1","y1","x2","y2","gradientUnits","stop","stopColor","offset","FrameworkLink","accentColor","ChakraLink","borderBottomStartRadius","borderBottomEndRadius","LinkedHeading","data-group","scrollMarginBlock","_groupHover","Pre","dependencies","devDependencies","layoutOptions","editorOptions","previewOptions","files","isHorizontal","SandpackProvider","nightOwl","template","customSetup","react","typescript","SandpackLayout","flexDirection","SandpackCodeEditor","showLineNumbers","SandpackPreview","minHeight","flexGrow","formatFilePath","substring","CodeBlock","useSandpackTheme","useSandpack","sandpack","surface1","ButtonGroup","leftIcon","RiFileEditLine","openFile","updateFile","RiFileTransferLine","SandpackCodeViewer","showTabs","TutorialCodeBlock","SandpackThemeProvider","CommunityCardItem","Alert","Chakra","AspectRatio","MDXComponents","objectFit","LinkedImage","h1","h2","h3","h4","hr","strong","kbd","br","reset","table","th","td","ul","ol","li","blockquote","CarbonAd","ComponentLinks","IconsList","PropsTable","FrameworkLinks","SimpleGrid","minChildWidth","margin","VideoPlayer","ReactPlayer","ColorPalettes","ColorWrapper","FeaturesCourses","columns","JoinCommunityCards","DiscordIcon","FaTwitter","SandpackEmbed","FeaturesOverview","features","feature","changeFeatureText","Features","RiListOrdered","Theming","RiPaletteLine","RiRepeat2Fill","Recipes","RiFileList3Fill","Layout","RiLayout5Line","Forms","RiCheckboxMultipleFill","RiDashboardFill","Overlay","RiPictureInPictureExitFill","Feedback","RiFeedbackFill","Typography","RiInputMethodLine","Disclosure","RiEyeCloseLine","Navigation","RiNavigationFill","RiImage2Fill","Other","RiArchiveFill","TutorialFileAction","add","RiFileAddLine","delete","RiFileReduceLine","update","closeFile","deleteFile","error","str","uiJson"],"sourceRoot":""}