klun-ui 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/README.md +2 -2
- package/dist/styles.css +19 -19
- package/dist/templates/index.cjs +2498 -9
- package/dist/templates/index.cjs.map +1 -1
- package/dist/templates/index.d.cts +142 -1
- package/dist/templates/index.d.ts +142 -1
- package/dist/templates/index.js +2480 -13
- package/dist/templates/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/templates/dashboard/Sidebar.tsx","../../src/templates/dashboard/TopBar.tsx","../../src/templates/dashboard/OverviewScreen.tsx","../../src/templates/dashboard/SettingsScreen.tsx","../../src/templates/dashboard/index.tsx","../../src/templates/ai-assistant/AISidebar.tsx","../../src/templates/ai-assistant/ChatView.tsx","../../src/templates/ai-assistant/Composer.tsx","../../src/templates/ai-assistant/index.tsx","../../src/templates/agent-chat/AgentSidebar.tsx","../../src/templates/agent-chat/AgentThread.tsx","../../src/templates/agent-chat/AgentComposer.tsx","../../src/templates/agent-chat/index.tsx","../../src/templates/crypto/CryptoSidebar.tsx","../../src/templates/crypto/MarketsScreen.tsx","../../src/templates/crypto/index.tsx","../../src/templates/marketing/MarketingNav.tsx","../../src/templates/marketing/MarketingSections.tsx","../../src/templates/marketing/index.tsx","../../src/templates/calendar/index.tsx","../../src/templates/pricing/index.tsx","../../src/templates/settings/index.tsx"],"names":["jsxs","jsx","Badge","Button","useState","SegmentedControl","Card","Tabs","ProgressBar","Label","Input","Select","Switch","Divider","useRef","useEffect","Avatar","StatusDot","Spinner","iconBtn","Table","Stat","Accordion","AvatarGroup","HorizontalFilter","ContentLabel","Chip","Alert","ImageUpload","SelectMenu","Textarea","CharacterCounter"],"mappings":";;;;;;;AAqBO,SAAS,OAAA,CAAQ,EAAE,MAAA,EAAQ,UAAA,EAAY,MAAK,EAAiB;AAClE,EAAA,MAAM,IAAA,GAAkB;AAAA,IACtB,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,MAAM,mBAAA,EAAoB;AAAA,IAC/D,EAAE,IAAI,cAAA,EAAgB,KAAA,EAAO,gBAAgB,IAAA,EAAM,0BAAA,EAA4B,OAAO,IAAA,EAAK;AAAA,IAC3F,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,MAAM,mBAAA,EAAoB;AAAA,IACzD,EAAE,EAAA,EAAI,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,MAAM,qBAAA,EAAsB;AAAA,IACnE,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,MAAM,cAAA;AAAe,GAC5D;AACA,EAAA,MAAM,KAAA,GAAmB;AAAA,IACvB,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,MAAM,oBAAA,EAAqB;AAAA,IAChE,EAAE,EAAA,EAAI,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,MAAM,mBAAA;AAAoB,GAC/D;AACA,EAAA,MAAM,IAAA,GAAO,CAAC,EAAE,EAAA,EAAG,KAAuB;AACxC,IAAA,MAAM,EAAA,GAAK,WAAW,EAAA,CAAG,EAAA;AACzB,IAAA,uBACEA,eAAA,CAAC,YAAO,OAAA,EAAS,MAAM,WAAW,EAAA,CAAG,EAAE,GAAG,KAAA,EAAO;AAAA,MAC/C,OAAA,EAAS,MAAA;AAAA,MAAQ,UAAA,EAAY,QAAA;AAAA,MAAU,GAAA,EAAK,EAAA;AAAA,MAAI,KAAA,EAAO,MAAA;AAAA,MAAQ,MAAA,EAAQ,EAAA;AAAA,MAAI,OAAA,EAAS,QAAA;AAAA,MACpF,MAAA,EAAQ,MAAA;AAAA,MAAQ,YAAA,EAAc,uBAAA;AAAA,MAAyB,MAAA,EAAQ,SAAA;AAAA,MAAW,SAAA,EAAW,MAAA;AAAA,MACrF,UAAA,EAAY,KAAK,wBAAA,GAA2B,aAAA;AAAA,MAC5C,SAAA,EAAW,KAAK,oEAAA,GAAuE,MAAA;AAAA,MACvF,KAAA,EAAO,KAAK,6BAAA,GAAgC,0BAAA;AAAA,MAC5C,IAAA,EAAM;AAAA,KACR,EACE,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,EAAA,CAAG,IAAA,EAAM,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,EAAA,GAAK,0BAAA,GAA6B,0BAAA,EAA2B,EAAG,CAAA;AAAA,sBACrHA,cAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,CAAA,EAAE,EAAI,aAAG,KAAA,EAAM,CAAA;AAAA,MACnC,GAAG,KAAA,mBAAQA,cAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,OAAA,EAAS,WAAW,YAAA,EAAc,yBAAA,EAA2B,YAAY,wBAAA,EAA0B,KAAA,EAAO,4BAA2B,EAAI,QAAA,EAAA,EAAA,CAAG,OAAM,CAAA,GAAU;AAAA,KAAA,EAC5N,CAAA;AAAA,EAEJ,CAAA;AACA,EAAA,uBACED,eAAA,CAAC,WAAM,KAAA,EAAO,EAAE,OAAO,GAAA,EAAK,UAAA,EAAY,CAAA,EAAG,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,cAAc,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,OAAA,EAAS,IAAI,UAAA,EAAY,wBAAA,EAA0B,WAAA,EAAa,uCAAA,EAAwC,EACpO,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,cAAA,EAAe,EACpF,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,2BAAA,EAA6B,KAAA,EAAO,0BAAA,EAA4B,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAS,EACtN,QAAA,kBAAAA,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAM,CAAA,EACzD,CAAA;AAAA,sCACC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAA,EAAY,KAAI,EAC5B,QAAA,EAAA;AAAA,wBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,IAAiC,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,wBACrGA,cAAA,CAAC,SAAI,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAG,QAAA,EAAA,WAAA,EAAS;AAAA,OAAA,EACtG;AAAA,KAAA,EACF,CAAA;AAAA,oBACAD,eAAA,CAAC,SAAI,KAAA,EAAO,EAAE,UAAU,UAAA,EAAY,YAAA,EAAc,IAAG,EACnD,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,OAAE,SAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAE,UAAU,UAAA,EAAY,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,OAAO,SAAA,EAAW,kBAAA,EAAoB,UAAU,EAAA,EAAI,KAAA,EAAO,6BAA4B,EAAG,CAAA;AAAA,sBACtKA,cAAA,CAAC,OAAA,EAAA,EAAM,WAAA,EAAY,QAAA,EAAS,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,YAAA,EAAc,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,eAAA,EAAiB,YAAA,EAAc,uBAAA,EAAyB,MAAA,EAAQ,MAAA,EAAQ,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA+C,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,6BAAA,EAA+B,OAAA,EAAS,MAAA,EAAO,EAAG;AAAA,KAAA,EAC5W,CAAA;AAAA,oBACAA,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,iCAAA,EAAmC,aAAA,EAAe,qCAAA,EAAuC,aAAA,EAAe,aAAa,KAAA,EAAO,2BAAA,EAA6B,OAAA,EAAS,YAAA,IAAgB,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,oBAC1MA,cAAA,CAAC,SAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,aAAA,EAAe,UAAU,GAAA,EAAK,CAAA,IAAM,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,EAAA,qBAAOA,cAAA,CAAC,QAAiB,EAAA,EAAA,EAAP,EAAA,CAAG,EAAY,CAAE,CAAA,EAAE,CAAA;AAAA,oBAClHA,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,iCAAA,EAAmC,aAAA,EAAe,qCAAA,EAAuC,aAAA,EAAe,aAAa,KAAA,EAAO,2BAAA,EAA6B,OAAA,EAAS,eAAA,IAAmB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,oBAC9MA,cAAA,CAAC,SAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,aAAA,EAAe,UAAU,GAAA,EAAK,CAAA,IAAM,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,qBAAOA,cAAA,CAAC,QAAiB,EAAA,EAAA,EAAP,EAAA,CAAG,EAAY,CAAE,CAAA,EAAE,CAAA;AAAA,mCAClH,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,GAAE,EAAG,CAAA;AAAA,oCACxB,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,GAAG,YAAA,EAAc,uBAAA,EAAyB,WAAW,6CAAA,EAA+C,UAAA,EAAY,0BAAyB,EAC9M,QAAA,EAAA;AAAA,sBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,QAAQ,EAAA,EAAI,YAAA,EAAc,yBAAA,EAA2B,UAAA,EAAY,mCAAA,EAAqC,KAAA,EAAO,kCAAkC,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,IAAA,EAAM,2BAAA,EAA6B,UAAA,EAAY,CAAA,EAAE,EAAI,QAAA,EAAA,IAAA,CAAK,QAAA,EAAS,CAAA;AAAA,sBAC7SD,eAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,GAAG,QAAA,EAAU,CAAA,EAAG,UAAA,EAAY,GAAA,EAAI,EAClD,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA+B,UAAA,EAAY,QAAA,EAAU,UAAU,QAAA,EAAU,YAAA,EAAc,UAAA,EAAW,EAAI,eAAK,IAAA,EAAK,CAAA;AAAA,uCACvK,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,iCAAiC,KAAA,EAAO,2BAAA,EAA6B,UAAA,EAAY,QAAA,EAAU,UAAU,QAAA,EAAU,YAAA,EAAc,UAAA,EAAW,EAAI,eAAK,KAAA,EAAM;AAAA,OAAA,EAC7K,CAAA;AAAA,sBACAA,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wBAAA,EAAyB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG;AAAA,KAAA,EACrG;AAAA,GAAA,EACF,CAAA;AAEJ;ACxEO,SAAS,MAAA,CAAO,EAAE,KAAA,EAAO,QAAA,EAAS,EAAgB;AACvD,EAAA,uBACED,eAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,IAAI,OAAA,EAAS,WAAA,EAAa,cAAc,uCAAA,EAAyC,UAAA,EAAY,0BAAyB,EACjL,QAAA,EAAA;AAAA,oBAAAA,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,GAAE,EACpB,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC1D,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAC1GA,cAAAA,CAACC,uBAAA,EAAA,EAAM,OAAM,MAAA,EAAO,IAAA,EAAK,SAAQ,QAAA,EAAA,MAAA,EAAI;AAAA,OAAA,EACvC,CAAA;AAAA,sBACAD,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,SAAA,EAAW,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAI,QAAA,EAAA,QAAA,EAAS;AAAA,KAAA,EACvH,CAAA;AAAA,oBACAA,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,QAAA,EAAS,sBAAMF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0BAAyB,CAAA,EAAI,CAAA;AAAA,oBACvGA,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,QAAA,EAAS,sBAAMF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAmB,CAAA,EAAI,CAAA;AAAA,oBACjGA,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,WAAA,kBAAaF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,aAAA,EAAc,CAAA,EAAI,QAAA,EAAA,cAAA,EAAY;AAAA,GAAA,EACpF,CAAA;AAEJ;ACGO,SAAS,cAAA,GAAiB;AAC/B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIG,eAAS,OAAO,CAAA;AAC1C,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAIA,eAAS,KAAK,CAAA;AAEpC,EAAA,MAAM,KAAA,GAAgB;AAAA,IACpB,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,QAAA,EAAU,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,SAAA,EAAU;AAAA,IACpH,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,OAAA,EAAS,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,oBAAA,EAAsB,IAAA,EAAM,SAAA,EAAU;AAAA,IAC9G,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,OAAA,EAAS,EAAA,EAAI,KAAA,EAAO,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,SAAA,EAAU;AAAA,IAC/G,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,OAAA,EAAS,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,gBAAA,EAAkB,IAAA,EAAM,aAAA;AAAc,GACjH;AACA,EAAA,MAAM,EAAA,GAAoB;AAAA,IACxB,EAAE,IAAA,EAAM,OAAA,EAAS,KAAK,cAAA,EAAgB,GAAA,EAAK,WAAW,IAAA,EAAM,cAAA,EAAgB,MAAA,EAAQ,WAAA,EAAa,OAAO,OAAA,EAAS,IAAA,EAAM,0BAA0B,EAAA,EAAI,mCAAA,EAAqC,IAAI,gCAAA,EAAiC;AAAA,IAC/N,EAAE,IAAA,EAAM,eAAA,EAAiB,KAAK,QAAA,EAAU,GAAA,EAAK,cAAc,IAAA,EAAM,cAAA,EAAgB,MAAA,EAAQ,WAAA,EAAa,OAAO,OAAA,EAAS,IAAA,EAAM,gBAAgB,EAAA,EAAI,mCAAA,EAAqC,IAAI,gCAAA,EAAiC;AAAA,IAC1N,EAAE,IAAA,EAAM,KAAA,EAAO,KAAK,gBAAA,EAAkB,GAAA,EAAK,YAAY,IAAA,EAAM,WAAA,EAAa,MAAA,EAAQ,SAAA,EAAW,OAAO,QAAA,EAAU,IAAA,EAAM,iBAAiB,EAAA,EAAI,mCAAA,EAAqC,IAAI,gCAAA,EAAiC;AAAA,IACnN,EAAE,IAAA,EAAM,QAAA,EAAU,KAAK,cAAA,EAAgB,GAAA,EAAK,WAAW,IAAA,EAAM,QAAA,EAAU,MAAA,EAAQ,WAAA,EAAa,OAAO,OAAA,EAAS,IAAA,EAAM,iBAAiB,EAAA,EAAI,uCAAA,EAAyC,IAAI,oCAAA,EAAqC;AAAA,IACzN,EAAE,IAAA,EAAM,oBAAA,EAAmB,KAAK,QAAA,EAAU,GAAA,EAAK,YAAY,IAAA,EAAM,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAO,KAAA,EAAO,IAAA,EAAM,qBAAqB,EAAA,EAAI,wBAAA,EAA0B,IAAI,0BAAA;AAA2B,GACrM;AACA,EAAA,MAAM,MAAA,GAA2D;AAAA,IAC/D,CAAC,SAAA,EAAW,EAAA,EAAI,SAAS,CAAA;AAAA,IACzB,CAAC,MAAA,EAAQ,EAAA,EAAI,SAAS,CAAA;AAAA,IACtB,CAAC,WAAA,EAAa,EAAA,EAAI,SAAS;AAAA,GAC7B;AAEA,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,IAAG,EAC3E,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,eAAA,EAAgB,EACnF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAACI,kCAAA,EAAA,EAAiB,KAAA,EAAO,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,IAAU,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ,EAAG,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,CAAA,EAAG,CAAA;AAAA,sBACrKJ,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,YAAW,QAAA,EAAS,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAqB,GAAI,QAAA,EAAA,QAAA,EAAM;AAAA,KAAA,EACtH,CAAA;AAAA,oBAEAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAA,EAAK,EAAA,IACxE,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,qBACVD,gBAACM,sBAAA,EAAA,EAAmB,OAAA,EAAQ,QAAA,EAAS,OAAA,EAAS,EAAA,EAC5C,QAAA,EAAA;AAAA,sBAAAN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,cAAA,EAAgB,eAAA,EAAiB,UAAA,EAAY,YAAA,EAAa,EACvF,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,yBAAyB,UAAA,EAAY,CAAA,iBAAA,EAAoB,CAAA,CAAE,IAAI,aAAa,KAAA,EAAO,CAAA,iBAAA,EAAoB,CAAA,CAAE,IAAI,UAAU,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,gBAAgB,QAAA,EAAU,QAAA,EAAU,EAAA,EAAG,EAAG,0BAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,MAAM,CAAA,EAAE,CAAA;AAAA,wBACnRA,eAACC,uBAAA,EAAA,EAAM,KAAA,EAAO,EAAE,EAAA,GAAK,OAAA,GAAU,KAAA,EAAO,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,SAAQ,WAAA,kBAAaD,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,KAAK,kBAAA,GAAqB,oBAAA,EAAsB,CAAA,EAAK,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM;AAAA,OAAA,EAC/J,CAAA;AAAA,sBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAI,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAI,YAAE,KAAA,EAAM,CAAA;AAAA,sBAClHA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,YAAE,KAAA,EAAM;AAAA,KAAA,EAAA,EANvG,CAAA,CAAE,KAOb,CACD,CAAA,EACH,CAAA;AAAA,oBAEAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,WAAA,EAAa,GAAA,EAAK,EAAA,EAAI,UAAA,EAAY,SAAQ,EAC5F,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAACM,sBAAA,EAAA,EAAK,OAAA,EAAQ,QAAA,EAAS,SAAS,CAAA,EAC9B,QAAA,EAAA;AAAA,wBAAAN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,WAAA,EAAa,YAAA,EAAc,uCAAA,EAAyC,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,iBAAgB,EAChK,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,qBAAA,EAAmB,CAAA;AAAA,0BAC5GA,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,YAAW,OAAA,EAAQ,IAAA,EAAK,QAAA,EAAS,YAAA,kBAAcF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAA,EAAwB,GAAI,QAAA,EAAA,UAAA,EAAQ;AAAA,SAAA,EAC5H,CAAA;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,UAAA,EAAW,EAChC,QAAA,kBAAAA,cAAAA,CAACM,0BAAK,KAAA,EAAO,GAAA,EAAK,QAAA,EAAU,MAAA,EAAQ,OAAO,CAAC,EAAE,KAAA,EAAO,KAAA,EAAO,OAAO,KAAA,EAAM,EAAG,EAAE,KAAA,EAAO,UAAU,KAAA,EAAO,QAAA,EAAS,EAAG,EAAE,OAAO,SAAA,EAAW,KAAA,EAAO,UAAA,EAAY,GAAG,CAAA,EAC9J,CAAA;AAAA,wBACAN,cAAAA,CAAC,KAAA,EAAA,EACE,QAAA,EAAA,EAAA,CAAG,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACVD,eAAAA,CAAC,KAAA,EAAA,EAAY,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,WAAA,EAAa,SAAA,EAAW,CAAA,GAAI,uCAAA,GAA0C,MAAA,EAAO,EAC1J,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,CAAA,CAAE,EAAA,EAAI,OAAO,CAAA,CAAE,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,UAAU,EAAA,EAAI,UAAA,EAAY,CAAA,EAAE,EAAG,0BAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,MAAM,CAAA,EAAE,CAAA;AAAA,0BACnOD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAE,EACjC,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK,CAAA;AAAA,4BACjGD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAI,QAAA,EAAA;AAAA,cAAA,CAAA,CAAE,GAAA;AAAA,cAAI,QAAA;AAAA,cAAI,CAAA,CAAE;AAAA,aAAA,EAAK;AAAA,WAAA,EAC/G,CAAA;AAAA,0BACAC,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAO,CAAA,CAAE,KAAA,EAAO,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,OAAA,EAAS,QAAA,EAAA,CAAA,CAAE,MAAA,EAAO,CAAA;AAAA,0BAC9DD,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,WAAW,OAAA,EAAS,IAAA,EAAM,6BAA6B,KAAA,EAAO,CAAA,CAAE,IAAI,CAAC,CAAA,KAAM,MAAM,gCAAA,GAAmC,6BAAA,EAA8B,EAAI,QAAA,EAAA,CAAA,CAAE,GAAA,EAAI;AAAA,SAAA,EAAA,EAP7K,CAQV,CACD,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAAA,sBAEAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAACM,sBAAA,EAAA,EAAK,OAAA,EAAQ,QAAA,EAAS,OAAA,EAAS,IAAI,KAAA,EAAO,EAAE,UAAA,EAAY,2BAAA,EAA4B,EACnF,QAAA,EAAA;AAAA,0BAAAN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,cAAA,EAAgB,eAAA,EAAiB,KAAA,EAAO,iCAAA,EAAkC,EACvG,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,OAAA,EAAS,GAAA,EAAG,EAAG,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,4BACjFA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAe,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG;AAAA,WAAA,EACvD,CAAA;AAAA,0BACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAI,IAAA,EAAM,2BAAA,EAA6B,aAAA,EAAe,QAAA,EAAU,KAAA,EAAO,iCAAA,IAAqC,QAAA,EAAA,kFAAA,EAAoD,CAAA;AAAA,0BACzLD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,WAAW,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAgB,iBAAiB,KAAA,EAAO,iCAAA,EAAmC,SAAS,GAAA,EAAI,IAAA,EAAM,iCAAgC,EAC1K,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,UAAK,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,4BAAOA,cAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,SAAA,EAAO;AAAA,WAAA,EACzC;AAAA,SAAA,EACF,CAAA;AAAA,wBACAD,eAAAA,CAACM,sBAAA,EAAA,EAAK,OAAA,EAAQ,QAAA,EAAS,SAAS,EAAA,EAC9B,QAAA,EAAA;AAAA,0BAAAN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,eAAA,EAAgB,EACnF,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,4BACxGA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAG,QAAA,EAAA,mBAAA,EAAiB;AAAA,WAAA,EAC9G,CAAA;AAAA,0BACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAG,EAAG,QAAA,kBAAAA,cAAAA,CAACO,6BAAA,EAAA,EAAY,KAAA,EAAO,IAAI,CAAA,EAAE,CAAA;AAAA,0BACzDP,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,IACzE,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,qBACnBD,eAAAA,CAAC,KAAA,EAAA,EAAY,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,IAAG,EACnE,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,OAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,YAAA,EAAc,yBAAA,EAA2B,UAAA,EAAY,CAAA,iBAAA,EAAoB,CAAC,UAAS,EAAG,CAAA;AAAA,4BAC1HA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAI,QAAA,EAAA,CAAA,EAAE,CAAA;AAAA,4BACvGD,gBAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA;AAAA,cAAA,CAAA;AAAA,cAAE;AAAA,aAAA,EAAC;AAAA,WAAA,EAAA,EAHtF,CAIV,CACD,CAAA,EACH;AAAA,SAAA,EACF;AAAA,OAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AChHO,SAAS,cAAA,GAAiB;AAC/B,EAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,GAAII,eAAS,IAAI,CAAA;AAC/B,EAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,GAAIA,eAAS,KAAK,CAAA;AAChC,EAAA,MAAM,KAAA,GAAQ,CAAC,EAAE,KAAA,EAAO,UAAU,IAAA,EAAM,QAAA,EAAS,qBAC/CJ,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,WAAA,EAAa,GAAA,EAAK,IAAI,OAAA,EAAS,QAAA,EAAU,SAAA,EAAW,uCAAA,EAAwC,EAC9I,QAAA,EAAA;AAAA,oBAAAA,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAACQ,uBAAA,EAAA,EAAM,QAAA,EAAqB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MACjC,IAAA,mBAAOR,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,SAAA,EAAW,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAI,gBAAK,CAAA,GAAS;AAAA,KAAA,EAClI,CAAA;AAAA,oBACAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,IAAQ,QAAA,EAAS;AAAA,GAAA,EAC3C,CAAA;AAEF,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,EAAA,EAAI,QAAA,EAAU,GAAA,EAAI,EACvC,0BAAAD,eAAAA,CAACM,sBAAA,EAAA,EAAK,OAAA,EAAQ,QAAA,EAAS,SAAS,EAAA,EAC9B,QAAA,EAAA;AAAA,oBAAAN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC3D,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,OAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,yBAAA,EAA2B,UAAA,EAAY,qCAAqC,KAAA,EAAO,gCAAA,EAAkC,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,gBAAgB,QAAA,EAAU,IAAA,EAAM,2BAAA,EAA4B,EAAG,QAAA,EAAA,IAAA,EAAE,CAAA;AAAA,sBACjRD,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAE,EACpB,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC1D,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,0BACvGA,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAM,OAAA,EAAQ,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,OAAA,EAAQ,GAAA,EAAG,IAAA,EAAC,QAAA,EAAA,UAAA,EAAQ;AAAA,SAAA,EAChE,CAAA;AAAA,wBACAD,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAG,QAAA,EAAA,oBAAA,EAAkB;AAAA,OAAA,EAC9G,CAAA;AAAA,sBACAA,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,YAAW,QAAA,EAAS,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAA,EAAmB,GAAI,QAAA,EAAA,cAAA,EAAY;AAAA,KAAA,EAC1H,CAAA;AAAA,oBAEAD,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,SAAA,EAAW,GAAE,EACzB,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAM,KAAA,EAAM,WAAA,EAAY,QAAA,EAAQ,IAAA,EAC/B,QAAA,kBAAAA,cAAAA,CAACS,uBAAA,EAAA,EAAM,YAAA,EAAa,eAAA,EAAgB,CAAA,EACtC,CAAA;AAAA,sBACAT,eAAC,KAAA,EAAA,EAAM,KAAA,EAAM,iBAAgB,QAAA,EAAQ,IAAA,EAAC,IAAA,EAAK,gCAAA,EACzC,QAAA,kBAAAA,cAAAA,CAACS,2BAAM,IAAA,EAAK,OAAA,EAAQ,YAAA,EAAa,oBAAA,EAAqB,WAAA,kBAAaT,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,cAAA,EAAe,CAAA,EAAI,CAAA,EACrG,CAAA;AAAA,sBACAA,eAAC,KAAA,EAAA,EAAM,KAAA,EAAM,QACX,QAAA,kBAAAD,eAAAA,CAACW,wBAAA,EAAA,EAAO,YAAA,EAAa,SAAA,EAAU,QAAA,EAAA;AAAA,wBAAAV,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,SAAA,EAAU,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,wBAASA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,SAAQ,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,wBAASA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,UAAS,QAAA,EAAA,QAAA,EAAM;AAAA,OAAA,EAAS,CAAA,EAChK,CAAA;AAAA,sBACAA,cAAAA,CAAC,KAAA,EAAA,EAAM,OAAM,eAAA,EAAgB,IAAA,EAAK,qBAChC,QAAA,kBAAAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,GAAA,EAAK,IAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,+BAA8B,EACtI,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAACW,wBAAA,EAAA,EAAO,OAAA,EAAS,CAAA,EAAG,UAAU,IAAA,EAAM,CAAA;AAAA,UAAE;AAAA,SAAA,EACxC,CAAA;AAAA,wBACAZ,eAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,KAAK,EAAA,EAAI,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,+BAA8B,EACtI,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAACW,wBAAA,EAAA,EAAO,OAAA,EAAS,CAAA,EAAG,UAAU,IAAA,EAAM,CAAA;AAAA,UAAE;AAAA,SAAA,EACxC;AAAA,OAAA,EACF,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBAEAX,cAAAA,CAACY,yBAAA,EAAA,EAAQ,OAAO,EAAE,MAAA,EAAQ,cAAa,EAAG,CAAA;AAAA,oBAC1Cb,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAgB,UAAA,EAAY,GAAA,EAAK,EAAA,EAAG,EACjE,QAAA,EAAA;AAAA,sBAAAC,eAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,UAAS,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,sBACpDF,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,WAAU,QAAA,EAAA,cAAA,EAAY;AAAA,KAAA,EACxC;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AC/CA,IAAM,KAAA,GAA8B;AAAA,EAClC,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,QAAA,EAAU,qCAAA,EAAuC,MAAA,EAAQ,sBAAMF,cAAAA,CAAC,cAAA,EAAA,EAAe,CAAA,EAAG;AAAA,EACjH,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,QAAA,EAAU,sCAAA,EAAwC,MAAA,EAAQ,sBAAMA,cAAAA,CAAC,cAAA,EAAA,EAAe,CAAA;AACjH,CAAA;AAEO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIG,eAAS,UAAU,CAAA;AAC/C,EAAA,MAAM,IAAA,GAAa,KAAA,CAAM,MAAM,CAAA,IAAK;AAAA,IAClC,KAAA,EAAO,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,IAC/C,QAAA,EAAU,2BAAA;AAAA,IACV,MAAA,EAAQ,sBACNJ,eAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,OAAA,EAAS,EAAA,EAAI,WAAW,QAAA,EAAU,KAAA,EAAO,2BAAA,EAA6B,IAAA,EAAM,iCAAgC,EACxH,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,eAAA,EAAgB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,OAAA,EAAS,OAAA,EAAS,YAAA,EAAc,EAAA,EAAG,EAAG,CAAA;AAAA,MAAE;AAAA,KAAA,EAE9F;AAAA,GAEJ;AACA,EAAA,MAAM,OAAoB,EAAE,IAAA,EAAM,iBAAiB,KAAA,EAAO,oBAAA,EAAsB,UAAU,IAAA,EAAK;AAC/F,EAAA,uBACED,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAO,EAC5C,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,OAAA,EAAA,EAAQ,MAAA,EAAgB,UAAA,EAAY,WAAW,IAAA,EAAY,CAAA;AAAA,oBAC5DD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,QAAA,EAAU,UAAS,EAC/F,QAAA,EAAA;AAAA,sBAAAC,eAAC,MAAA,EAAA,EAAO,KAAA,EAAO,KAAK,KAAA,EAAO,QAAA,EAAU,KAAK,QAAA,EAAU,CAAA;AAAA,sBACpDA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,MAAA,EAAQ,UAAA,EAAY,wBAAA,EAAyB,EAAI,QAAA,EAAA,IAAA,CAAK,QAAO,EAAE;AAAA,KAAA,EACnG;AAAA,GAAA,EACF,CAAA;AAEJ;AC5BO,SAAS,UAAU,EAAE,aAAA,EAAe,UAAU,QAAA,EAAU,KAAA,EAAO,MAAK,EAAmB;AAC5F,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,aAAA,CAAc,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,OAAO,CAAA,EAAE;AAAA,IAC1E,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,aAAA,CAAc,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,MAAM,CAAA;AAAE,GACrF;AACA,EAAA,uBACED,gBAAC,OAAA,EAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAO,GAAA,EAAK,UAAA,EAAY,CAAA,EAAG,MAAA,EAAQ,MAAA,EAAQ,WAAW,YAAA,EAAc,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,OAAA,EAAS,IAAI,UAAA,EAAY,wBAAA,EAA0B,WAAA,EAAa,uCAAA,EAAwC,EACpO,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,cAAA,EAAe,EACpF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,2BAAA,EAA6B,OAAO,0BAAA,EAA4B,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAS,EACtN,0BAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAsB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAM,CAAA,EAC9D,CAAA;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,SAAA,EAAO;AAAA,KAAA,EACnG,CAAA;AAAA,oBAEAD,eAAAA,CAAC,QAAA,EAAA,EAAO,OAAA,EAAS,OAAO,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,OAAO,MAAA,EAAQ,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,QAAA,EAAU,YAAA,EAAc,EAAA,EAAI,MAAA,EAAQ,QAAQ,YAAA,EAAc,uBAAA,EAAyB,MAAA,EAAQ,SAAA,EAAW,YAAY,0BAAA,EAA4B,KAAA,EAAO,iCAAA,EAAmC,IAAA,EAAM,6BAA4B,EAC5U,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,OAAE,SAAA,EAAU,aAAA,EAAc,OAAO,EAAE,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,MAAE;AAAA,KAAA,EACxD,CAAA;AAAA,oBAEAD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,YAAA,EAAc,EAAA,EAAG,EACnD,QAAA,EAAA;AAAA,sBAAAC,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAiB,KAAA,EAAO,EAAE,UAAU,UAAA,EAAY,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,OAAO,SAAA,EAAW,kBAAA,EAAoB,UAAU,EAAA,EAAI,KAAA,EAAO,6BAA4B,EAAG,CAAA;AAAA,sBACtKA,cAAAA,CAAC,OAAA,EAAA,EAAM,WAAA,EAAY,cAAA,EAAe,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,YAAA,EAAc,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,eAAA,EAAiB,YAAA,EAAc,uBAAA,EAAyB,MAAA,EAAQ,MAAA,EAAQ,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA+C,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,6BAAA,EAA+B,OAAA,EAAS,QAAO,EAAG;AAAA,KAAA,EAClX,CAAA;AAAA,oBAEAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,CAAA,EAAG,QAAA,EAAU,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,UAAU,GAAA,EAAK,EAAA,EAAG,EACxF,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,mBACzBD,eAAAA,CAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAC,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,mCAAmC,aAAA,EAAe,qCAAA,EAAuC,aAAA,EAAe,WAAA,EAAa,OAAO,2BAAA,EAA6B,OAAA,EAAS,WAAA,EAAY,EAAI,YAAE,KAAA,EAAM,CAAA;AAAA,sBAC9MA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,GAAE,EAC5D,QAAA,EAAA,CAAA,CAAE,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AAClB,QAAA,MAAM,EAAA,GAAK,EAAE,EAAA,KAAO,QAAA;AACpB,QAAA,uBACED,gBAAC,QAAA,EAAA,EAAkB,OAAA,EAAS,MAAM,QAAA,CAAS,CAAA,CAAE,EAAE,CAAA,EAAG,KAAA,EAAO;AAAA,UACvD,OAAA,EAAS,MAAA;AAAA,UAAQ,UAAA,EAAY,QAAA;AAAA,UAAU,GAAA,EAAK,CAAA;AAAA,UAAG,KAAA,EAAO,MAAA;AAAA,UAAQ,MAAA,EAAQ,EAAA;AAAA,UAAI,OAAA,EAAS,QAAA;AAAA,UACnF,MAAA,EAAQ,MAAA;AAAA,UAAQ,YAAA,EAAc,uBAAA;AAAA,UAAyB,MAAA,EAAQ,SAAA;AAAA,UAAW,SAAA,EAAW,MAAA;AAAA,UACrF,UAAA,EAAY,KAAK,wBAAA,GAA2B,aAAA;AAAA,UAC5C,SAAA,EAAW,KAAK,oEAAA,GAAuE,MAAA;AAAA,UACvF,KAAA,EAAO,KAAK,6BAAA,GAAgC,0BAAA;AAAA,UAA4B,IAAA,EAAM;AAAA,SAChF,EACE,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA6B,UAAA,EAAY,CAAA,EAAE,EAAG,CAAA;AAAA,0BAC1GA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,UAAA,EAAY,QAAA,EAAU,UAAU,QAAA,EAAU,YAAA,EAAc,UAAA,EAAW,EAAI,YAAE,KAAA,EAAM;AAAA,SAAA,EAAA,EAR5F,EAAE,EASf,CAAA;AAAA,MAEJ,CAAC,CAAA,EACH;AAAA,KAAA,EAAA,EAlBQ,CAAA,CAAE,KAmBZ,CAAA,GACE,IAAI,CAAA,EACV,CAAA;AAAA,oBAEAD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAU,GAAA,EAAK,IAAI,OAAA,EAAS,CAAA,EAAG,WAAW,CAAA,EAAG,YAAA,EAAc,yBAAyB,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA8C,EAC5N,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,yBAAA,EAA2B,UAAA,EAAY,mCAAA,EAAqC,KAAA,EAAO,kCAAkC,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,IAAA,EAAM,2BAAA,EAA6B,UAAA,EAAY,CAAA,EAAE,EAAI,QAAA,EAAA,IAAA,CAAK,QAAA,EAAS,CAAA;AAAA,sBAC7SD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,UAAA,EAAY,GAAA,EAAI,EAClD,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,IAAA,CAAK,IAAA,EAAK,CAAA;AAAA,wBACpGA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAG,QAAA,EAAA,WAAA,EAAS;AAAA,OAAA,EACtG,CAAA;AAAA,sBACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAqB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG;AAAA,KAAA,EACjG;AAAA,GAAA,EACF,CAAA;AAEJ;AC1EA,SAAS,OAAO,EAAE,IAAA,GAAO,MAAA,EAAQ,MAAA,EAAQ,UAAS,EAAuE;AACvH,EAAA,MAAM,KAAK,IAAA,KAAS,IAAA;AACpB,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,EAAA,GAAK,gBAAgB,KAAA,EAAO,GAAA,EAAK,EAAA,EAAI,UAAA,EAAY,YAAW,EACvG,QAAA,EAAA;AAAA,IAAA,MAAA,mBAASC,eAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,UAAA,EAAY,CAAA,EAAE,EAAI,QAAA,EAAA,MAAA,EAAO,CAAA,GAAU,IAAA;AAAA,oBAC5DA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,QAAA,EAAU,OAAO,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAK,CAAA,EAAG,UAAA,EAAY,KAAK,UAAA,GAAa,YAAA,IAC7G,QAAA,kBAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,WAAA,EAAa,MAAM,+BAAA,EAAiC,YAAA,EAAc,KAAK,4FAAA,GAA+F,4FAAA,EAA8F,YAAY,EAAA,GAAK,0BAAA,GAA6B,0BAA0B,KAAA,EAAO,EAAA,GAAK,oCAAoC,6BAAA,EAA8B,EAAI,UAAS,CAAA,EAChc;AAAA,GAAA,EACF,CAAA;AAEJ;AAcO,SAAS,WAAW,EAAE,QAAA,EAAU,IAAA,EAAM,YAAA,EAAc,WAAU,EAAoB;AACvF,EAAA,MAAM,MAAA,GAASa,aAAuB,IAAI,CAAA;AAC1C,EAAAC,eAAA,CAAU,MAAM;AAAE,IAAA,MAAA,CAAO,OAAA,EAAS,QAAA,GAAW,CAAA,EAAG,MAAA,CAAO,QAAQ,YAAY,CAAA;AAAA,EAAG,CAAA,EAAG,CAAC,QAAA,EAAU,IAAI,CAAC,CAAA;AAEjG,EAAA,MAAM,WAAA,GAAc;AAAA,IAClB,EAAE,IAAA,EAAM,qBAAA,EAAuB,IAAA,EAAM,8BAAA,EAA+B;AAAA,IACpE,EAAE,IAAA,EAAM,oBAAA,EAAsB,IAAA,EAAM,2BAAA,EAA4B;AAAA,IAChE,EAAE,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,qCAAA,EAAsC;AAAA,IACzE,EAAE,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,iCAAA;AAAkC,GAC3E;AAEA,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,IAAA,uBACEf,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAG,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,UAAA,EAAY,UAAU,cAAA,EAAgB,QAAA,EAAU,SAAS,EAAA,EAAI,SAAA,EAAW,UAAS,EAChJ,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,wBAAA,EAA0B,UAAA,EAAY,2BAAA,EAA6B,OAAO,0BAAA,EAA4B,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,QAAA,EAAU,EAAA,EAAI,YAAA,EAAc,EAAA,EAAG,EACvP,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAsB,CAAA,EACrC,CAAA;AAAA,sBACAA,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,yBAAA,EAAuB,CAAA;AAAA,sBAC1HA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,YAAA,EAAc,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAG,QAAA,EAAA,iDAAA,EAA+C,CAAA;AAAA,sBAC7JA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,SAAA,EAAW,GAAA,EAAK,EAAA,EAAI,QAAA,EAAU,GAAA,EAAK,KAAA,EAAO,MAAA,EAAO,EAClG,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAC,CAAA,qBAChBD,eAAAA,CAAC,QAAA,EAAA,EAAoB,OAAA,EAAS,MAAM,SAAA,CAAU,CAAA,CAAE,IAAI,GAAG,KAAA,EAAO;AAAA,QAC5D,OAAA,EAAS,MAAA;AAAA,QAAQ,UAAA,EAAY,QAAA;AAAA,QAAU,GAAA,EAAK,EAAA;AAAA,QAAI,OAAA,EAAS,WAAA;AAAA,QAAa,SAAA,EAAW,MAAA;AAAA,QACjF,MAAA,EAAQ,MAAA;AAAA,QAAQ,YAAA,EAAc,uBAAA;AAAA,QAAyB,MAAA,EAAQ,SAAA;AAAA,QAAW,UAAA,EAAY,wBAAA;AAAA,QACtF,SAAA,EAAW,6CAAA;AAAA,QAA+C,IAAA,EAAM,2BAAA;AAAA,QAA6B,KAAA,EAAO;AAAA,OACtG,EACE,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,IAAA,EAAM,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,0BAAA,EAA2B,EAAG,CAAA;AAAA,wBAClFA,cAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK;AAAA,OAAA,EAAA,EANH,CAAA,CAAE,IAOf,CACD,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,MAAA,EAAQ,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,MAAA,EAAO,EACnD,QAAA,kBAAAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,eAAA,EAAiB,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,IAAG,EACxH,QAAA,EAAA;AAAA,IAAA,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBAChBC,cAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QAAe,MAAM,CAAA,CAAE,IAAA;AAAA,QACtB,QAAQ,CAAA,CAAE,IAAA,KAAS,uBACfA,cAAAA,CAACe,4BAAO,IAAA,EAAK,IAAA,EAAK,UAAU,YAAA,EAAc,KAAA,EAAM,UAAS,CAAA,mBACzDf,eAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,QAAQ,EAAA,EAAI,YAAA,EAAc,2BAA2B,UAAA,EAAY,2BAAA,EAA6B,OAAO,0BAAA,EAA4B,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,gBAAgB,QAAA,EAAU,QAAA,EAAU,IAAG,EAAG,QAAA,kBAAAA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAsB,CAAA,EAAE,CAAA;AAAA,QACrR,QAAA,EAAA,CAAA,CAAE;AAAA,OAAA;AAAA,MAJS;AAAA,KAKd,CAAA;AAAA,IACA,uBACCA,cAAAA,CAAC,UAAO,IAAA,EAAK,MAAA,EAAO,wBAAQA,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,OAAO,EAAA,EAAI,MAAA,EAAQ,IAAI,YAAA,EAAc,yBAAA,EAA2B,YAAY,2BAAA,EAA6B,KAAA,EAAO,0BAAA,EAA4B,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,gBAAgB,QAAA,EAAU,QAAA,EAAU,IAAG,EAAG,QAAA,kBAAAA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAsB,CAAA,EAAE,CAAA,EAC3S,0BAAAD,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,WAAA,EAAY,QAAA,EAAA;AAAA,sBAAAC,eAAC,MAAA,EAAA,EAAK,CAAA;AAAA,sBAAOA,eAAC,MAAA,EAAA,EAAK,CAAA;AAAA,sBAAOA,eAAC,MAAA,EAAA,EAAK;AAAA,KAAA,EAAO,GACrE,CAAA,GACE;AAAA,GAAA,EACN,CAAA,EACF,CAAA;AAEJ;AC1EO,SAAS,UAAA,CAAW,EAAE,MAAA,EAAQ,IAAA,EAAK,EAAoB;AAC5D,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,EAAE,CAAA;AACnC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,SAAS,CAAA;AAC5C,EAAA,MAAM,KAAA,GAAQU,aAA4B,IAAI,CAAA;AAC9C,EAAA,MAAM,OAAO,MAAM;AACjB,IAAA,MAAM,CAAA,GAAI,KAAK,IAAA,EAAK;AACpB,IAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AAChB,IAAA,MAAA,CAAO,CAAC,CAAA;AACR,IAAA,OAAA,CAAQ,EAAE,CAAA;AACV,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,MAAM,MAAA,GAAS,MAAA;AAAA,EAClD,CAAA;AACA,EAAA,MAAM,IAAA,GAAO,CAAC,CAAA,KAAwC;AACpD,IAAA,OAAA,CAAQ,CAAA,CAAE,OAAO,KAAK,CAAA;AACtB,IAAA,CAAA,CAAE,MAAA,CAAO,MAAM,MAAA,GAAS,MAAA;AACxB,IAAA,CAAA,CAAE,MAAA,CAAO,MAAM,MAAA,GAAS,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,CAAO,YAAA,EAAc,GAAG,CAAA,GAAI,IAAA;AAAA,EACjE,CAAA;AACA,EAAA,uBACEd,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,eAAc,EACnC,QAAA,EAAA;AAAA,oBAAAA,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,KAAK,MAAA,EAAQ,QAAA,EAAU,YAAA,EAAc,wBAAA,EAA0B,YAAY,wBAAA,EAA0B,SAAA,EAAW,oEAAA,EAAsE,OAAA,EAAS,IAAG,EACxN,QAAA,EAAA;AAAA,sBAAAC,cAAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,KAAA;AAAA,UACL,KAAA,EAAO,IAAA;AAAA,UACP,QAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAW,CAAC,CAAA,KAAM;AAAE,YAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAC,EAAE,QAAA,EAAU;AAAE,cAAA,CAAA,CAAE,cAAA,EAAe;AAAG,cAAA,IAAA,EAAK;AAAA,YAAG;AAAA,UAAE,CAAA;AAAA,UAC1F,WAAA,EAAY,4BAAA;AAAA,UACZ,IAAA,EAAM,CAAA;AAAA,UACN,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,WAAW,YAAA,EAAc,MAAA,EAAQ,QAAQ,OAAA,EAAS,MAAA,EAAQ,QAAQ,MAAA,EAAQ,UAAA,EAAY,eAAe,IAAA,EAAM,+BAAA,EAAiC,OAAO,6BAAA,EAA+B,OAAA,EAAS,cAAA,EAAgB,SAAA,EAAW,GAAA;AAAI;AAAA,OACpP;AAAA,sBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC1D,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,aAAA,EAAc,KAAA,EAAO,OAAA,EAAS,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAA,EAAkB,CAAA,EAAE,CAAA;AAAA,wBAC7EA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,WAAA,EAAY,KAAA,EAAO,OAAA,EAAS,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,eAAA,EAAgB,CAAA,EAAE,CAAA;AAAA,wBACzED,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,MAAA,EAAQ,IAAI,OAAA,EAAS,cAAA,EAAgB,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,wBAAA,EAA0B,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,0BAAA,EAA4B,MAAA,EAAQ,SAAA,EAAU,EACrQ,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,aAAA,EAAc,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG,CAAA;AAAA,0BACxFD,eAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAO,KAAA,EAAO,QAAA,EAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,KAAK,GAAG,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,gBAAA,EAAkB,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAS,MAAA,EAAQ,UAAA,EAAY,aAAA,EAAe,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,0BAAA,EAA4B,MAAA,EAAQ,WAAU,EAC1Q,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,YAAO,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,4BAASA,cAAAA,CAAC,QAAA,EAAA,EAAO,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,4BAASA,cAAAA,CAAC,QAAA,EAAA,EAAO,QAAA,EAAA,WAAA,EAAS;AAAA,WAAA,EACxE,CAAA;AAAA,0BACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG;AAAA,SAAA,EACnG,CAAA;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAE,EAAG,CAAA;AAAA,wBACzBA,cAAAA,CAAC,QAAA,EAAA,EAAO,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,CAAC,IAAA,CAAK,IAAA,EAAK,IAAK,IAAA,EAAM,KAAA,EAAM,QAAO,KAAA,EAAO;AAAA,UACzE,OAAA,EAAS,aAAA;AAAA,UAAe,UAAA,EAAY,QAAA;AAAA,UAAU,cAAA,EAAgB,QAAA;AAAA,UAAU,KAAA,EAAO,EAAA;AAAA,UAAI,MAAA,EAAQ,EAAA;AAAA,UAC3F,MAAA,EAAQ,MAAA;AAAA,UAAQ,YAAA,EAAc,uBAAA;AAAA,UAAyB,QAAQ,IAAA,CAAK,IAAA,EAAK,IAAK,CAAC,OAAO,SAAA,GAAY,aAAA;AAAA,UAClG,YAAY,IAAA,CAAK,IAAA,EAAK,IAAK,CAAC,OAAO,0BAAA,GAA6B,yBAAA;AAAA,UAChE,OAAO,IAAA,CAAK,IAAA,EAAK,IAAK,CAAC,OAAO,iCAAA,GAAoC,2BAAA;AAAA,UAA6B,QAAA,EAAU;AAAA,WACxG,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAmB,CAAA,EAAE;AAAA,OAAA,EACvC;AAAA,KAAA,EACF,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAU,GAAA,EAAK,MAAA,EAAQ,YAAA,EAAc,SAAA,EAAW,UAAU,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,IAA+B,QAAA,EAAA,kDAAA,EAErJ;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,IAAM,OAAA,GAAyB,EAAE,OAAA,EAAS,aAAA,EAAe,YAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,IAAI,MAAA,EAAQ,MAAA,EAAQ,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,aAAA,EAAe,OAAO,0BAAA,EAA4B,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,EAAA,EAAG;ACvDrR,IAAM,OAAA,GAAU;AAAA,EACd,sIAAA;AAAA,EACA,wHAAA;AAAA,EACA,kGAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,mBAAA,GAAsB;AACpC,EAAA,MAAM,IAAA,GAAyB;AAAA,IAC7B,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,OAAO,sBAAA,EAAuB;AAAA,IAC1D,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,OAAO,uBAAA,EAAwB;AAAA,IAC3D,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,OAAO,mBAAA,EAAoB;AAAA,IACtD,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,OAAO,iBAAA;AAAkB,GACtD;AACA,EAAA,MAAM,CAAC,KAAK,CAAA,GAAIG,cAAAA,CAA2B,IAAI,CAAA;AAC/C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,SAAS,UAAU,CAAA,GAAIA,eAAsC,EAAE,GAAA,EAAK,EAAC,EAAG,CAAA;AAC/E,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,IAAA,GAAe,EAAE,IAAA,EAAM,eAAA,EAAiB,UAAU,IAAA,EAAK;AAC7D,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,QAAQ,CAAA,IAAK,EAAC;AAEvC,EAAA,MAAM,GAAA,GAAM,CAAC,IAAA,KAAiB;AAC5B,IAAA,UAAA,CAAW,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAI,EAAE,QAAQ,CAAA,IAAK,EAAC,EAAI,EAAE,MAAM,IAAA,EAAM,IAAA,EAAM,CAAA,EAAE,CAAE,CAAA;AACxF,IAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,MAAM,KAAA,GAAQ,QAAQ,IAAA,CAAK,KAAA,CAAM,KAAK,MAAA,EAAO,GAAI,OAAA,CAAQ,MAAM,CAAC,CAAA;AAChE,MAAA,UAAA,CAAW,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAI,CAAA,CAAE,QAAQ,CAAA,IAAK,IAAK,EAAE,IAAA,EAAM,QAAQ,IAAA,EAAM,KAAA,EAAO,CAAA,EAAE,CAAE,CAAA;AACjG,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,GAAG,IAAI,CAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AAAE,IAAA,WAAA,CAAY,KAAK,CAAA;AAAG,IAAA,UAAA,CAAW,CAAC,OAAO,EAAE,GAAG,GAAG,GAAA,EAAK,IAAG,CAAE,CAAA;AAAA,EAAG,CAAA;AAEpF,EAAA,uBACEJ,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAO,EAC5C,QAAA,EAAA;AAAA,oBAAAC,eAAC,SAAA,EAAA,EAAU,aAAA,EAAe,OAAO,QAAA,EAAoB,QAAA,EAAU,CAAC,EAAA,KAAO;AAAE,MAAA,WAAA,CAAY,EAAE,CAAA;AAAG,MAAA,UAAA,CAAW,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,IAAI,CAAA,GAAI,EAAE,GAAG,CAAA,EAAG,CAAC,EAAE,GAAG,IAAI,CAAA;AAAA,IAAG,CAAA,EAAG,KAAA,EAAO,OAAA,EAAS,IAAA,EAAY,CAAA;AAAA,oBAC5KD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,UAAS,EAC3E,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,WAAA,EAAa,YAAA,EAAc,yCAAwC,EAC3I,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,wBAClGA,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAM,QAAA,EAAS,SAAQ,SAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaD,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAqB,GAAI,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,wBAC/GA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAE,EAAG,CAAA;AAAA,wBACzBA,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,OAAA,EAAQ,sBAAMF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAgB,CAAA,EAAI,CAAA;AAAA,wBAC7FA,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,OAAA,EAAQ,sBAAMF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAiB,CAAA,EAAI;AAAA,OAAA,EAChG,CAAA;AAAA,sBACAA,eAAC,UAAA,EAAA,EAAW,QAAA,EAAoB,MAAY,YAAA,EAAc,IAAA,CAAK,QAAA,EAAU,SAAA,EAAW,GAAA,EAAK,CAAA;AAAA,sBACzFA,cAAAA,CAAC,UAAA,EAAA,EAAW,MAAA,EAAQ,KAAK,IAAA,EAAY;AAAA,KAAA,EACvC;AAAA,GAAA,EACF,CAAA;AAEJ;AC/BA,IAAM,WAAW,EAAE,OAAA,EAAS,QAAQ,IAAA,EAAM,IAAA,EAAM,MAAM,SAAA,EAAU;AAEzD,SAAS,aAAa,EAAE,QAAA,EAAU,UAAU,QAAA,EAAU,KAAA,EAAO,MAAK,EAAsB;AAC7F,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,OAAO,CAAA,EAAE;AAAA,IACrE,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,MAAM,CAAA;AAAE,GAChF;AACA,EAAA,uBACED,eAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,GAAA;AAAA,QACP,UAAA,EAAY,CAAA;AAAA,QACZ,MAAA,EAAQ,MAAA;AAAA,QACR,SAAA,EAAW,YAAA;AAAA,QACX,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,OAAA,EAAS,EAAA;AAAA,QACT,UAAA,EAAY,wBAAA;AAAA,QACZ,WAAA,EAAa;AAAA,OACf;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,cAAA,EAAe,EACpF,QAAA,EAAA;AAAA,0BAAAC,cAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO;AAAA,gBACL,KAAA,EAAO,EAAA;AAAA,gBACP,MAAA,EAAQ,EAAA;AAAA,gBACR,YAAA,EAAc,uBAAA;AAAA,gBACd,UAAA,EAAY,2BAAA;AAAA,gBACZ,KAAA,EAAO,0BAAA;AAAA,gBACP,OAAA,EAAS,MAAA;AAAA,gBACT,UAAA,EAAY,QAAA;AAAA,gBACZ,cAAA,EAAgB;AAAA,eAClB;AAAA,cAEA,QAAA,kBAAAA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAsB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG;AAAA;AAAA,WAC9D;AAAA,0BACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,YAAA,EAAU;AAAA,SAAA,EACtG,CAAA;AAAA,wBAEAD,eAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,KAAA;AAAA,YACT,KAAA,EAAO;AAAA,cACL,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,GAAA,EAAK,CAAA;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,EAAA;AAAA,cACR,OAAA,EAAS,QAAA;AAAA,cACT,YAAA,EAAc,EAAA;AAAA,cACd,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,uBAAA;AAAA,cACd,MAAA,EAAQ,SAAA;AAAA,cACR,UAAA,EAAY,0BAAA;AAAA,cACZ,KAAA,EAAO,iCAAA;AAAA,cACP,IAAA,EAAM;AAAA,aACR;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAAA,CAAC,OAAE,SAAA,EAAU,aAAA,EAAc,OAAO,EAAE,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SACxD;AAAA,wBAEAD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,YAAA,EAAc,EAAA,EAAG,EACnD,QAAA,EAAA;AAAA,0BAAAC,cAAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,gBAAA;AAAA,cACV,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,KAAA,EAAO,SAAA,EAAW,kBAAA,EAAoB,QAAA,EAAU,EAAA,EAAI,OAAO,2BAAA;AAA4B;AAAA,WACvI;AAAA,0BACAA,cAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAY,cAAA;AAAA,cACZ,KAAA,EAAO;AAAA,gBACL,KAAA,EAAO,MAAA;AAAA,gBACP,SAAA,EAAW,YAAA;AAAA,gBACX,MAAA,EAAQ,EAAA;AAAA,gBACR,OAAA,EAAS,eAAA;AAAA,gBACT,YAAA,EAAc,uBAAA;AAAA,gBACd,MAAA,EAAQ,MAAA;AAAA,gBACR,UAAA,EAAY,wBAAA;AAAA,gBACZ,SAAA,EAAW,6CAAA;AAAA,gBACX,IAAA,EAAM,+BAAA;AAAA,gBACN,KAAA,EAAO,6BAAA;AAAA,gBACP,OAAA,EAAS;AAAA;AACX;AAAA;AACF,SAAA,EACF,CAAA;AAAA,wBAEAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,CAAA,EAAG,QAAA,EAAU,MAAA,EAAQ,OAAA,EAAS,QAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,IACrF,QAAA,EAAA,MAAA,CAAO,GAAA;AAAA,UAAI,CAAC,CAAA,KACX,CAAA,CAAE,MAAM,MAAA,mBACND,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAC,cAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO;AAAA,kBACL,IAAA,EAAM,iCAAA;AAAA,kBACN,aAAA,EAAe,qCAAA;AAAA,kBACf,aAAA,EAAe,WAAA;AAAA,kBACf,KAAA,EAAO,2BAAA;AAAA,kBACP,OAAA,EAAS;AAAA,iBACX;AAAA,gBAEC,QAAA,EAAA,CAAA,CAAE;AAAA;AAAA,aACL;AAAA,4BACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,GAAE,EAC5D,QAAA,EAAA,CAAA,CAAE,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM;AAClB,cAAA,MAAM,EAAA,GAAK,EAAE,EAAA,KAAO,QAAA;AACpB,cAAA,uBACED,eAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEC,OAAA,EAAS,MAAM,QAAA,CAAS,CAAA,CAAE,EAAE,CAAA;AAAA,kBAC5B,KAAA,EAAO;AAAA,oBACL,OAAA,EAAS,MAAA;AAAA,oBACT,UAAA,EAAY,QAAA;AAAA,oBACZ,GAAA,EAAK,CAAA;AAAA,oBACL,KAAA,EAAO,MAAA;AAAA,oBACP,MAAA,EAAQ,EAAA;AAAA,oBACR,OAAA,EAAS,QAAA;AAAA,oBACT,MAAA,EAAQ,MAAA;AAAA,oBACR,YAAA,EAAc,uBAAA;AAAA,oBACd,MAAA,EAAQ,SAAA;AAAA,oBACR,SAAA,EAAW,MAAA;AAAA,oBACX,UAAA,EAAY,KAAK,wBAAA,GAA2B,aAAA;AAAA,oBAC5C,SAAA,EAAW,KAAK,oEAAA,GAAuE,MAAA;AAAA,oBACvF,KAAA,EAAO,KAAK,6BAAA,GAAgC,0BAAA;AAAA,oBAC5C,IAAA,EAAM;AAAA,mBACR;AAAA,kBAEC,QAAA,EAAA;AAAA,oBAAA,CAAA,CAAE,KAAA,mBACDC,cAAAA,CAACgB,2BAAA,EAAA,EAAU,IAAA,EAAM,QAAA,CAAS,CAAA,CAAE,KAAK,CAAA,EAAG,IAAA,EAAK,IAAA,EAAK,KAAA,EAAO,CAAA,CAAE,KAAA,KAAU,SAAA,EAAW,CAAA,mBAE5EhB,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA6B,UAAA,EAAY,GAAE,EAAG,CAAA;AAAA,oCAE5GA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,UAAA,EAAY,QAAA,EAAU,UAAU,QAAA,EAAU,YAAA,EAAc,UAAA,EAAW,EAAI,YAAE,KAAA,EAAM;AAAA;AAAA,iBAAA;AAAA,gBAxBlG,CAAA,CAAE;AAAA,eAyBT;AAAA,YAEJ,CAAC,CAAA,EACH;AAAA,WAAA,EAAA,EA7CQ,CAAA,CAAE,KA8CZ,CAAA,GACE;AAAA,SACN,EACF,CAAA;AAAA,wBAEAD,eAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,GAAA,EAAK,EAAA;AAAA,cACL,OAAA,EAAS,CAAA;AAAA,cACT,SAAA,EAAW,CAAA;AAAA,cACX,YAAA,EAAc,uBAAA;AAAA,cACd,UAAA,EAAY,wBAAA;AAAA,cACZ,SAAA,EAAW;AAAA,aACb;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO;AAAA,oBACL,KAAA,EAAO,EAAA;AAAA,oBACP,MAAA,EAAQ,EAAA;AAAA,oBACR,YAAA,EAAc,yBAAA;AAAA,oBACd,UAAA,EAAY,mCAAA;AAAA,oBACZ,KAAA,EAAO,gCAAA;AAAA,oBACP,OAAA,EAAS,MAAA;AAAA,oBACT,UAAA,EAAY,QAAA;AAAA,oBACZ,cAAA,EAAgB,QAAA;AAAA,oBAChB,IAAA,EAAM,2BAAA;AAAA,oBACN,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR;AAAA,8BACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,UAAA,EAAY,GAAA,EAAI,EAClD,QAAA,EAAA;AAAA,gCAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,IAAA,CAAK,IAAA,EAAK,CAAA;AAAA,gCACpGA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAI,QAAA,EAAA,IAAA,CAAK,IAAA,IAAQ,WAAA,EAAY;AAAA,eAAA,EACvH,CAAA;AAAA,8BACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAqB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG;AAAA;AAAA;AAAA;AACjG;AAAA;AAAA,GACF;AAEJ;AC/HA,SAAS,SAAA,CAAU,EAAE,IAAA,GAAO,EAAA,EAAG,EAAsB;AACnD,EAAA,uBACEA,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,KAAA,EAAO,IAAA;AAAA,QACP,MAAA,EAAQ,IAAA;AAAA,QACR,UAAA,EAAY,CAAA;AAAA,QACZ,YAAA,EAAc,yBAAA;AAAA,QACd,UAAA,EAAY,2BAAA;AAAA,QACZ,KAAA,EAAO,0BAAA;AAAA,QACP,OAAA,EAAS,MAAA;AAAA,QACT,UAAA,EAAY,QAAA;AAAA,QACZ,cAAA,EAAgB,QAAA;AAAA,QAChB,UAAU,IAAA,GAAO;AAAA,OACnB;AAAA,MAEA,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAsB;AAAA;AAAA,GACrC;AAEJ;AAEA,IAAM,QAAA,GAA0B;AAAA,EAC9B,YAAA,EAAc,uBAAA;AAAA,EACd,UAAA,EAAY,wBAAA;AAAA,EACZ,SAAA,EAAW,6CAAA;AAAA,EACX,QAAA,EAAU;AACZ,CAAA;AAEA,IAAM,UAAA,GAA4B;AAAA,EAChC,OAAA,EAAS,MAAA;AAAA,EACT,UAAA,EAAY,QAAA;AAAA,EACZ,GAAA,EAAK,CAAA;AAAA,EACL,KAAA,EAAO,MAAA;AAAA,EACP,OAAA,EAAS,WAAA;AAAA,EACT,MAAA,EAAQ,MAAA;AAAA,EACR,UAAA,EAAY,aAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,SAAA,EAAW,MAAA;AAAA,EACX,IAAA,EAAM,2BAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AAEA,SAAS,OAAA,CAAQ,EAAE,IAAA,EAAK,EAAsB;AAC5C,EAAA,uBACEA,cAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,sBAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,UAAA,EAAY,MAAA;AAAA,QACZ,QAAA,EAAU,EAAA;AAAA,QACV,KAAA,EAAO,2BAAA;AAAA,QACP,SAAA,EAAW,OAAO,gBAAA,GAAmB,MAAA;AAAA,QACrC,UAAA,EAAY;AAAA;AACd;AAAA,GACF;AAEJ;AAIA,SAAS,aAAA,CAAc,EAAE,KAAA,EAAM,EAAkC;AAC/D,EAAA,MAAM,IAAA,GAAO,MAAM,OAAA,IAAW,IAAA;AAC9B,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,cAAAA,CAAS,CAAC,IAAI,CAAA;AAEtC,EAAA,MAAM,OAAA,GAAUU,aAAO,IAAI,CAAA;AAC3B,EAAAC,gBAAU,MAAM;AACd,IAAA,IAAI,IAAA,IAAQ,CAAC,OAAA,CAAQ,OAAA,UAAiB,KAAK,CAAA;AAC3C,IAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAAA,EACpB,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,uBACEf,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,QAAA,EACV,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,KAAA,EAAO,UAAA,EAAY,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA,EACvE,QAAA,EAAA;AAAA,sBAAAC,cAAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,OAAO,eAAA,GAAkB,kBAAA;AAAA,UACpC,KAAA,EAAO;AAAA,YACL,QAAA,EAAU,EAAA;AAAA,YACV,KAAA,EAAO,gCAAA;AAAA,YACP,SAAA,EAAW,OAAO,MAAA,GAAY;AAAA;AAChC;AAAA,OACF;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,0BAAA,EAA2B,EAC9C,QAAA,EAAA,IAAA,GAAO,CAAA,YAAA,EAAe,KAAA,CAAM,OAAO,MAAM,gBAAA,EAC5C,CAAA;AAAA,sBACAA,cAAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAY;AAAA,KAAA,EACvB,CAAA;AAAA,IACC,uBACCA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,OAAA,EAAS,kBAAA;AAAA,UACT,IAAA,EAAM,+BAAA;AAAA,UACN,SAAA,EAAW,QAAA;AAAA,UACX,KAAA,EAAO,0BAAA;AAAA,UACP,UAAA,EAAY,UAAA;AAAA,UACZ,UAAA,EAAY;AAAA,SACd;AAAA,QAEC,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,KACT,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;AAIA,IAAM,SAAA,GAAgD;AAAA,EACpD,IAAA,kBAAMA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAA0B,KAAA,EAAO,EAAE,KAAA,EAAO,gCAAA,EAAiC,EAAG,CAAA;AAAA,EACjG,wBAAQA,cAAAA,CAACiB,6BAAQ,IAAA,EAAK,IAAA,EAAK,OAAM,0BAAA,EAA2B,CAAA;AAAA,EAC5D,IAAA,kBAAMjB,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAgC,KAAA,EAAO,EAAE,KAAA,EAAO,2BAAA,EAA4B,EAAG;AACpG,CAAA;AAEA,SAAS,SAAA,CAAU,EAAE,KAAA,EAAM,EAA8B;AACvD,EAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,KAAW,MAAM,CAAA,CAAE,MAAA;AAC5D,EAAA,uBACED,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,GAAG,QAAA,EAAU,OAAA,EAAS,WAAA,EAAY,EAC9C,QAAA,EAAA;AAAA,oBAAAA,eAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,OAAA,EAAS,MAAA;AAAA,UACT,UAAA,EAAY,QAAA;AAAA,UACZ,GAAA,EAAK,CAAA;AAAA,UACL,YAAA,EAAc,EAAA;AAAA,UACd,IAAA,EAAM,2BAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAA,EAAkB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,0BAAA,EAA2B,EAAG,CAAA;AAAA,0BAC3FA,cAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,KAAA,CAAM,SAAS,MAAA,EAAO,CAAA;AAAA,0BAC7BD,eAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAC1G,QAAA,EAAA;AAAA,YAAA,IAAA;AAAA,YAAK,GAAA;AAAA,YAAE,MAAM,KAAA,CAAM;AAAA,WAAA,EACtB;AAAA;AAAA;AAAA,KACF;AAAA,oBACAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC5D,QAAA,EAAA,KAAA,CAAM,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACnBD,eAAAA,CAAC,KAAA,EAAA,EAAY,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,IAAG,EACnE,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,OAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,UAAU,cAAA,EAAgB,QAAA,EAAU,UAAU,EAAA,EAAI,UAAA,EAAY,GAAE,EACvI,QAAA,EAAA,SAAA,CAAU,CAAA,CAAE,MAAM,CAAA,EACrB,CAAA;AAAA,sBACAA,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO;AAAA,YACL,IAAA,EAAM,+BAAA;AAAA,YACN,KAAA,EAAO,CAAA,CAAE,MAAA,KAAW,MAAA,GAAS,2BAAA,GAA8B,6BAAA;AAAA,YAC3D,cAAA,EAAgB,CAAA,CAAE,MAAA,KAAW,MAAA,GAAS,cAAA,GAAiB,MAAA;AAAA,YACvD,mBAAA,EAAqB;AAAA,WACvB;AAAA,UAEC,QAAA,EAAA,CAAA,CAAE;AAAA;AAAA;AACL,KAAA,EAAA,EAbQ,CAcV,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAIA,IAAM,SAAA,GAAoF;AAAA,EACxF,OAAA,EAAS,EAAE,GAAA,EAAK,MAAA,EAAQ,OAAO,SAAA,EAAU;AAAA,EACzC,IAAA,EAAM,EAAE,GAAA,EAAK,IAAA,EAAM,OAAO,MAAA,EAAO;AAAA,EACjC,KAAA,EAAO,EAAE,GAAA,EAAK,KAAA,EAAO,OAAO,SAAA;AAC9B,CAAA;AAEA,SAAS,SAAA,CAAU,EAAE,KAAA,EAAM,EAA8B;AACvD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,MAAM,CAAA;AACnC,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,QAAA,EACV,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,KAAA,EAAO,UAAA,EAAY,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA,EACvE,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,KAAA,CAAM,IAAA,IAAQ,sBAAA,EAAwB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,0BAAA,EAA2B,EAAG,CAAA;AAAA,sBAChHA,eAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,2BAAA,IAA+B,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,sBACzDA,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO;AAAA,YACL,IAAA,EAAM,2BAAA;AAAA,YACN,UAAA,EAAY,gDAAA;AAAA,YACZ,KAAA,EAAO;AAAA,WACT;AAAA,UAEC,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,OACT;AAAA,MACC,MAAM,MAAA,KAAW,SAAA,mBAChBA,cAAAA,CAACiB,yBAAA,EAAA,EAAQ,MAAK,IAAA,EAAK,KAAA,EAAM,gCAAA,EAAiC,CAAA,mBAE1DjB,cAAAA,CAACgB,2BAAA,EAAA,EAAU,MAAM,IAAA,CAAK,GAAA,EAAK,MAAK,IAAA,EAAK,CAAA;AAAA,sBAEvChB,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAI,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,sBACxGA,cAAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAY;AAAA,KAAA,EACvB,CAAA;AAAA,IACC,IAAA,mBACCD,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,aAAA,EAAe,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,IAAG,EACrF,QAAA,EAAA;AAAA,MAAA,KAAA,CAAM,OAAA,mBAAUC,cAAAA,CAAC,OAAA,EAAA,EAAQ,OAAM,SAAA,EAAU,IAAA,EAAM,KAAA,CAAM,OAAA,EAAS,CAAA,GAAK,IAAA;AAAA,MACnE,MAAM,MAAA,mBACLA,cAAAA,CAAC,OAAA,EAAA,EAAQ,OAAM,QAAA,EAAS,IAAA,EAAM,KAAA,CAAM,MAAA,EAAQ,MAAM,KAAA,CAAM,MAAA,KAAW,OAAA,GAAU,OAAA,GAAU,WAAW,CAAA,GAChG;AAAA,KAAA,EACN,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;AAEA,SAAS,QAAQ,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,GAAO,WAAU,EAAgE;AAC/G,EAAA,uBACED,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,iCAAA,EAAmC,aAAA,EAAe,qCAAA,EAAuC,aAAA,EAAe,aAAa,KAAA,EAAO,2BAAA,EAA6B,YAAA,EAAc,CAAA,IACxL,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,oBACAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,MAAA,EAAQ,CAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,YAAA,EAAc,uBAAA;AAAA,UACd,UAAA,EAAY,IAAA,KAAS,OAAA,GAAU,iCAAA,GAAoC,wBAAA;AAAA,UACnE,IAAA,EAAM,+BAAA;AAAA,UACN,UAAA,EAAY,gDAAA;AAAA,UACZ,KAAA,EAAO,IAAA,KAAS,OAAA,GAAU,8BAAA,GAAiC,0BAAA;AAAA,UAC3D,UAAA,EAAY,UAAA;AAAA,UACZ,SAAA,EAAW;AAAA,SACb;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AAIA,SAAS,SAAA,CAAU,EAAE,KAAA,EAAO,SAAA,EAAU,EAAmD;AACvF,EAAA,uBACED,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,+BAAA;AAAA,QACN,KAAA,EAAO,6BAAA;AAAA,QACP,UAAA,EAAY,IAAA;AAAA,QACZ,UAAA,EAAY;AAAA,OACd;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,IAAA;AAAA,QACN,4BAAYC,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAmB,CAAA,GAAK;AAAA;AAAA;AAAA,GACvD;AAEJ;AAIA,SAAS,SAAA,CAAU,EAAE,GAAA,EAAI,EAA0B;AACjD,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,IAAU,EAAC;AAC9B,EAAA,MAAM,WAAA,GAAc,OAAO,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,IAAI,CAAA,CAAE,WAAA,CAAY,MAAM,CAAA;AAChE,EAAA,MAAM,YAAA,GAAe,MAAA,CAAO,MAAA,GAAS,CAAA,IAAK,MAAA,CAAO,MAAM,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,UAAU,CAAA;AACnF,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,EAAA,EAAI,UAAA,EAAY,YAAA,EAAa,EAC/D,QAAA,EAAA;AAAA,oBAAAC,eAAC,SAAA,EAAA,EAAU,CAAA;AAAA,oBACXD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,OAAA,EAAS,QAAQ,aAAA,EAAe,QAAA,EAAU,KAAK,EAAA,EAAI,UAAA,EAAY,GAAE,EAClG,QAAA,EAAA;AAAA,MAAA,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AACpB,QAAA,IAAI,CAAA,CAAE,SAAS,UAAA,EAAY,uBAAOC,cAAAA,CAAC,aAAA,EAAA,EAAsB,KAAA,EAAO,CAAA,EAAA,EAAV,CAAa,CAAA;AACnE,QAAA,IAAI,CAAA,CAAE,SAAS,MAAA,EAAQ,uBAAOA,cAAAA,CAAC,SAAA,EAAA,EAAkB,KAAA,EAAO,CAAA,EAAA,EAAV,CAAa,CAAA;AAC3D,QAAA,IAAI,CAAA,CAAE,SAAS,MAAA,EAAQ,uBAAOA,cAAAA,CAAC,SAAA,EAAA,EAAkB,KAAA,EAAO,CAAA,EAAA,EAAV,CAAa,CAAA;AAC3D,QAAA,uBAAOA,cAAAA,CAAC,SAAA,EAAA,EAAkB,KAAA,EAAO,CAAA,EAAG,WAAW,GAAA,CAAI,SAAA,IAAa,CAAA,KAAM,WAAA,EAAA,EAA/C,CAA4D,CAAA;AAAA,MACrF,CAAC,CAAA;AAAA,MAEA,GAAA,CAAI,SAAA,IAAa,WAAA,KAAgB,EAAA,IAAM,CAAC,+BACvCD,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EAAoB,QAAA,EAAA;AAAA,wBAAAC,eAAC,MAAA,EAAA,EAAK,CAAA;AAAA,wBAAEA,eAAC,MAAA,EAAA,EAAK,CAAA;AAAA,wBAAEA,eAAC,MAAA,EAAA,EAAK;AAAA,OAAA,EAAE,CAAA,GAC1D;AAAA,KAAA,EACN;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,QAAA,CAAS,EAAE,GAAA,EAAK,QAAA,EAAS,EAA4C;AAC5E,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,aAAA,EAAe,GAAA,EAAK,EAAA,EAAI,UAAA,EAAY,cAAa,EAC7F,QAAA,EAAA;AAAA,oBAAAC,eAACe,wBAAA,EAAA,EAAO,IAAA,EAAK,IAAA,EAAK,QAAA,EAAoB,OAAM,QAAA,EAAS,CAAA;AAAA,oBACrDf,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,KAAA;AAAA,UACV,OAAA,EAAS,WAAA;AAAA,UACT,YAAA,EAAc,4FAAA;AAAA,UACd,UAAA,EAAY,0BAAA;AAAA,UACZ,KAAA,EAAO,iCAAA;AAAA,UACP,IAAA,EAAM,+BAAA;AAAA,UACN,UAAA,EAAY,IAAA;AAAA,UACZ,UAAA,EAAY;AAAA,SACd;AAAA,QAEC,QAAA,EAAA,GAAA,CAAI;AAAA;AAAA;AACP,GAAA,EACF,CAAA;AAEJ;AAEO,SAAS,YAAY,EAAE,QAAA,EAAU,cAAc,SAAA,EAAW,WAAA,EAAa,WAAU,EAAqB;AAC3G,EAAA,MAAM,SAAA,GAAYa,aAAuB,IAAI,CAAA;AAC7C,EAAAC,gBAAU,MAAM;AACd,IAAA,SAAA,CAAU,OAAA,EAAS,QAAA,GAAW,CAAA,EAAG,SAAA,CAAU,QAAQ,YAAY,CAAA;AAAA,EACjE,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,IAAA,uBACEf,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAG,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,UAAA,EAAY,UAAU,cAAA,EAAgB,QAAA,EAAU,SAAS,EAAA,EAAI,SAAA,EAAW,UAAS,EAChJ,QAAA,EAAA;AAAA,sBAAAC,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,EAAA;AAAA,YACP,MAAA,EAAQ,EAAA;AAAA,YACR,YAAA,EAAc,wBAAA;AAAA,YACd,UAAA,EAAY,2BAAA;AAAA,YACZ,KAAA,EAAO,0BAAA;AAAA,YACP,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,cAAA,EAAgB,QAAA;AAAA,YAChB,QAAA,EAAU,EAAA;AAAA,YACV,YAAA,EAAc;AAAA,WAChB;AAAA,UAEA,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAsB;AAAA;AAAA,OACrC;AAAA,sBACAD,eAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA;AAAA,QAAA,cAAA;AAAA,QACpF,SAAA;AAAA,QAAU;AAAA,OAAA,EACzB,CAAA;AAAA,sBACAC,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,YAAA,EAAc,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAG,QAAA,EAAA,yEAAA,EAE9G,CAAA;AAAA,sBACAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,qBAAqB,SAAA,EAAW,GAAA,EAAK,IAAI,QAAA,EAAU,GAAA,EAAK,OAAO,MAAA,EAAO,EAClG,sBAAY,GAAA,CAAI,CAAC,sBAChBD,eAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,OAAA,EAAS,MAAM,SAAA,CAAU,CAAA,CAAE,IAAI,CAAA;AAAA,UAC/B,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,GAAA,EAAK,EAAA;AAAA,YACL,OAAA,EAAS,WAAA;AAAA,YACT,SAAA,EAAW,MAAA;AAAA,YACX,MAAA,EAAQ,MAAA;AAAA,YACR,YAAA,EAAc,uBAAA;AAAA,YACd,MAAA,EAAQ,SAAA;AAAA,YACR,UAAA,EAAY,wBAAA;AAAA,YACZ,SAAA,EAAW,6CAAA;AAAA,YACX,IAAA,EAAM,2BAAA;AAAA,YACN,KAAA,EAAO;AAAA,WACT;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,IAAA,EAAM,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,0BAAA,EAA2B,EAAG,CAAA;AAAA,4BAClFA,cAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK;AAAA;AAAA,SAAA;AAAA,QAlBT,CAAA,CAAE;AAAA,OAoBV,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,SAAA,EAAW,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,MAAA,EAAO,EACtD,0BAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,eAAA,EAAiB,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,IACrH,QAAA,EAAA,QAAA,CAAS,GAAA;AAAA,IAAI,CAAC,MACb,CAAA,CAAE,IAAA,KAAS,uBACTA,cAAAA,CAAC,YAAoB,GAAA,EAAK,CAAA,EAAG,UAAU,YAAA,EAAA,EAAxB,CAAA,CAAE,EAAoC,CAAA,mBAErDA,eAAC,SAAA,EAAA,EAAqB,GAAA,EAAK,CAAA,EAAA,EAAX,CAAA,CAAE,EAAY;AAAA,KAGpC,CAAA,EACF,CAAA;AAEJ;AAGO,SAAS,aAAA,CAAc,EAAE,IAAA,EAAK,EAAsB;AACzD,EAAA,OAAO,uBACLA,cAAAA,CAACC,2BAAM,KAAA,EAAM,QAAA,EAAS,SAAQ,SAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaD,cAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,kBAAA,EAAmB,KAAA,EAAO,EAAE,SAAA,EAAW,qCAAA,EAAsC,EAAG,CAAA,EAAI,qBAEnK,CAAA,mBAEAA,eAACC,uBAAA,EAAA,EAAM,KAAA,EAAM,SAAQ,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,6BAAaD,cAAAA,CAAC,OAAE,SAAA,EAAU,eAAA,EAAgB,GAAI,QAAA,EAAA,MAAA,EAElG,CAAA;AAEJ;ACjbO,SAAS,cAAc,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,OAAA,EAAS,eAAc,EAAuB;AAClG,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,EAAE,CAAA;AACnC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,cAAc,CAAA;AACjD,EAAA,MAAM,KAAA,GAAQU,aAA4B,IAAI,CAAA;AAE9C,EAAA,MAAM,OAAO,MAAM;AACjB,IAAA,MAAM,CAAA,GAAI,KAAK,IAAA,EAAK;AACpB,IAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AAChB,IAAA,MAAA,CAAO,CAAC,CAAA;AACR,IAAA,OAAA,CAAQ,EAAE,CAAA;AACV,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,MAAM,MAAA,GAAS,MAAA;AAAA,EAClD,CAAA;AACA,EAAA,MAAM,IAAA,GAAO,CAAC,CAAA,KAAwC;AACpD,IAAA,OAAA,CAAQ,CAAA,CAAE,OAAO,KAAK,CAAA;AACtB,IAAA,CAAA,CAAE,MAAA,CAAO,MAAM,MAAA,GAAS,MAAA;AACxB,IAAA,CAAA,CAAE,MAAA,CAAO,MAAM,MAAA,GAAS,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,CAAO,YAAA,EAAc,GAAG,CAAA,GAAI,IAAA;AAAA,EACjE,CAAA;AAEA,EAAA,MAAM,UAAU,CAAC,CAAC,IAAA,CAAK,IAAA,MAAU,CAAC,IAAA;AAElC,EAAA,uBACEd,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,eAAc,EACnC,QAAA,EAAA;AAAA,oBAAAA,eAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,GAAA;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,YAAA,EAAc,wBAAA;AAAA,UACd,UAAA,EAAY,wBAAA;AAAA,UACZ,SAAA,EAAW,oEAAA;AAAA,UACX,OAAA,EAAS;AAAA,SACX;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAC,cAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,KAAA;AAAA,cACL,KAAA,EAAO,IAAA;AAAA,cACP,QAAA,EAAU,IAAA;AAAA,cACV,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,gBAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAC,EAAE,QAAA,EAAU;AACpC,kBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,kBAAA,IAAA,EAAK;AAAA,gBACP;AAAA,cACF,CAAA;AAAA,cACA,WAAA,EAAY,6BAAA;AAAA,cACZ,IAAA,EAAM,CAAA;AAAA,cACN,KAAA,EAAO;AAAA,gBACL,KAAA,EAAO,MAAA;AAAA,gBACP,SAAA,EAAW,YAAA;AAAA,gBACX,MAAA,EAAQ,MAAA;AAAA,gBACR,OAAA,EAAS,MAAA;AAAA,gBACT,MAAA,EAAQ,MAAA;AAAA,gBACR,UAAA,EAAY,aAAA;AAAA,gBACZ,IAAA,EAAM,+BAAA;AAAA,gBACN,KAAA,EAAO,6BAAA;AAAA,gBACP,OAAA,EAAS,cAAA;AAAA,gBACT,SAAA,EAAW;AAAA;AACb;AAAA,WACF;AAAA,0BACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC1D,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,aAAA,EAAc,KAAA,EAAOkB,QAAAA,EACjC,QAAA,kBAAAlB,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAA,EAAkB,CAAA,EACjC,CAAA;AAAA,4BACAD,eAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAS,MAAM,aAAA,CAAc,CAAC,OAAO,CAAA;AAAA,gBACrC,KAAA,EAAM,cAAA;AAAA,gBACN,KAAA,EAAO;AAAA,kBACL,OAAA,EAAS,aAAA;AAAA,kBACT,UAAA,EAAY,QAAA;AAAA,kBACZ,GAAA,EAAK,CAAA;AAAA,kBACL,MAAA,EAAQ,EAAA;AAAA,kBACR,OAAA,EAAS,QAAA;AAAA,kBACT,MAAA,EAAQ,MAAA;AAAA,kBACR,YAAA,EAAc,uBAAA;AAAA,kBACd,MAAA,EAAQ,SAAA;AAAA,kBACR,IAAA,EAAM,2BAAA;AAAA,kBACN,UAAA,EAAY,UAAU,mCAAA,GAAsC,wBAAA;AAAA,kBAC5D,KAAA,EAAO,UAAU,gCAAA,GAAmC;AAAA,iBACtD;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAAC,cAAAA,CAAC,OAAE,SAAA,EAAU,eAAA,EAAgB,OAAO,EAAE,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,kBAAE;AAAA;AAAA;AAAA,aAE1D;AAAA,4BACAD,eAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO;AAAA,kBACL,OAAA,EAAS,MAAA;AAAA,kBACT,UAAA,EAAY,QAAA;AAAA,kBACZ,GAAA,EAAK,CAAA;AAAA,kBACL,MAAA,EAAQ,EAAA;AAAA,kBACR,OAAA,EAAS,cAAA;AAAA,kBACT,YAAA,EAAc,uBAAA;AAAA,kBACd,UAAA,EAAY,wBAAA;AAAA,kBACZ,IAAA,EAAM,2BAAA;AAAA,kBACN,KAAA,EAAO,0BAAA;AAAA,kBACP,MAAA,EAAQ;AAAA,iBACV;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,aAAA,EAAc,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG,CAAA;AAAA,kCACxFD,eAAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBACC,KAAA,EAAO,KAAA;AAAA,sBACP,UAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,sBACxC,KAAA,EAAO;AAAA,wBACL,UAAA,EAAY,MAAA;AAAA,wBACZ,gBAAA,EAAkB,MAAA;AAAA,wBAClB,MAAA,EAAQ,MAAA;AAAA,wBACR,OAAA,EAAS,MAAA;AAAA,wBACT,UAAA,EAAY,aAAA;AAAA,wBACZ,IAAA,EAAM,2BAAA;AAAA,wBACN,KAAA,EAAO,0BAAA;AAAA,wBACP,MAAA,EAAQ;AAAA,uBACV;AAAA,sBAEA,QAAA,EAAA;AAAA,wCAAAC,cAAAA,CAAC,YAAO,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,wCACpBA,cAAAA,CAAC,QAAA,EAAA,EAAO,QAAA,EAAA,mBAAA,EAAiB,CAAA;AAAA,wCACzBA,cAAAA,CAAC,QAAA,EAAA,EAAO,QAAA,EAAA,kBAAA,EAAgB;AAAA;AAAA;AAAA,mBAC1B;AAAA,kCACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sBAAA,EAAuB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG;AAAA;AAAA;AAAA,aACnG;AAAA,4BACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAE,EAAG,CAAA;AAAA,YACxB,uBACCA,cAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,MAAA;AAAA,gBACT,KAAA,EAAM,MAAA;AAAA,gBACN,KAAA,EAAO;AAAA,kBACL,OAAA,EAAS,aAAA;AAAA,kBACT,UAAA,EAAY,QAAA;AAAA,kBACZ,cAAA,EAAgB,QAAA;AAAA,kBAChB,KAAA,EAAO,EAAA;AAAA,kBACP,MAAA,EAAQ,EAAA;AAAA,kBACR,MAAA,EAAQ,MAAA;AAAA,kBACR,YAAA,EAAc,uBAAA;AAAA,kBACd,MAAA,EAAQ,SAAA;AAAA,kBACR,UAAA,EAAY,2BAAA;AAAA,kBACZ,KAAA,EAAO,0BAAA;AAAA,kBACP,QAAA,EAAU;AAAA,iBACZ;AAAA,gBAEA,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,cAAA,EAAe;AAAA;AAAA,gCAG9BA,cAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,IAAA;AAAA,gBACT,UAAU,CAAC,OAAA;AAAA,gBACX,KAAA,EAAM,MAAA;AAAA,gBACN,KAAA,EAAO;AAAA,kBACL,OAAA,EAAS,aAAA;AAAA,kBACT,UAAA,EAAY,QAAA;AAAA,kBACZ,cAAA,EAAgB,QAAA;AAAA,kBAChB,KAAA,EAAO,EAAA;AAAA,kBACP,MAAA,EAAQ,EAAA;AAAA,kBACR,MAAA,EAAQ,MAAA;AAAA,kBACR,YAAA,EAAc,uBAAA;AAAA,kBACd,MAAA,EAAQ,UAAU,SAAA,GAAY,aAAA;AAAA,kBAC9B,UAAA,EAAY,UAAU,0BAAA,GAA6B,yBAAA;AAAA,kBACnD,KAAA,EAAO,UAAU,iCAAA,GAAoC,2BAAA;AAAA,kBACrD,QAAA,EAAU;AAAA,iBACZ;AAAA,gBAEA,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAA,EAAmB;AAAA;AAAA;AAClC,WAAA,EAEJ;AAAA;AAAA;AAAA,KACF;AAAA,oBACAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,GAAA;AAAA,UACV,MAAA,EAAQ,YAAA;AAAA,UACR,SAAA,EAAW,QAAA;AAAA,UACX,IAAA,EAAM,+BAAA;AAAA,UACN,KAAA,EAAO;AAAA,SACT;AAAA,QACD,QAAA,EAAA;AAAA;AAAA;AAED,GAAA,EACF,CAAA;AAEJ;AAEA,IAAMkB,QAAAA,GAAyB;AAAA,EAC7B,OAAA,EAAS,aAAA;AAAA,EACT,UAAA,EAAY,QAAA;AAAA,EACZ,cAAA,EAAgB,QAAA;AAAA,EAChB,KAAA,EAAO,EAAA;AAAA,EACP,MAAA,EAAQ,EAAA;AAAA,EACR,MAAA,EAAQ,MAAA;AAAA,EACR,YAAA,EAAc,uBAAA;AAAA,EACd,UAAA,EAAY,aAAA;AAAA,EACZ,KAAA,EAAO,0BAAA;AAAA,EACP,MAAA,EAAQ,SAAA;AAAA,EACR,QAAA,EAAU;AACZ,CAAA;AC5KA,IAAM,SAAA,GAAwB;AAAA,EAC5B;AAAA,IACE,QAAA,EACE,kPAAA;AAAA,IACF,YAAA,EAAc,CAAA;AAAA,IACd,SAAA,EAAW,MAAA;AAAA,IACX,KAAA,EAAO,CAAC,2BAAA,EAA6B,2BAAA,EAA6B,mBAAmB,CAAA;AAAA,IACrF,KAAA,EAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,IAAA,EAAM,kBAAA;AAAA,QACN,OAAA,EAAS,0CAAA;AAAA,QACT,MAAA,EAAQ;AAAA,OACV;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,IAAA,EAAM,mBAAA;AAAA,QACN,OAAA,EAAS,+BAAA;AAAA,QACT,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,MAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EACE,wLAAA;AAAA,IACF,YAAA,EAAc,CAAA;AAAA,IACd,SAAA,EAAW,MAAA;AAAA,IACX,KAAA,EAAO,CAAC,qBAAA,EAAuB,mBAAA,EAAqB,mBAAmB,CAAA;AAAA,IACvE,KAAA,EAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,IAAA,EAAM,kBAAA;AAAA,QACN,OAAA,EAAS,kBAAA;AAAA,QACT,MAAA,EAAQ;AAAA,OACV;AAAA,MACA;AAAA,QACE,IAAA,EAAM,cAAA;AAAA,QACN,IAAA,EAAM,kBAAA;AAAA,QACN,OAAA,EAAS,0EAAA;AAAA,QACT,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,MAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,WAAA,GAAiC;AAAA,EACrC,EAAE,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,0CAAA,EAA2C;AAAA,EAC7E,EAAE,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,6CAAA,EAA8C;AAAA,EACjF,EAAE,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,kDAAA,EAAmD;AAAA,EAChF,EAAE,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,iCAAA;AACzC,CAAA;AAIA,SAAS,WAAA,CACP,MAAA,EACA,IAAA,EACA,EAAA,EACc;AACd,EAAA,KAAA,IAAS,IAAI,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK;AAC3C,IAAA,IAAI,MAAA,CAAO,CAAC,CAAA,CAAE,IAAA,KAAS,IAAA,EAAM;AAC3B,MAAA,MAAM,IAAA,GAAO,OAAO,KAAA,EAAM;AAC1B,MAAA,IAAA,CAAK,CAAC,CAAA,GAAI,EAAA,CAAG,MAAA,CAAO,CAAC,CAAqC,CAAA;AAC1D,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAIA,IAAM,MAAA,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAWR,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,OAAkB,EAAE,IAAA,EAAM,iBAAiB,QAAA,EAAU,IAAA,EAAM,MAAM,UAAA,EAAW;AAElF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIf,cAAAA,CAAyB;AAAA,IACvD,EAAE,IAAI,IAAA,EAAM,KAAA,EAAO,SAAS,KAAA,EAAO,oBAAA,EAAsB,OAAO,MAAA,EAAO;AAAA,IACvE,EAAE,IAAI,IAAA,EAAM,KAAA,EAAO,SAAS,KAAA,EAAO,wBAAA,EAA0B,OAAO,MAAA,EAAO;AAAA,IAC3E,EAAE,IAAI,IAAA,EAAM,KAAA,EAAO,QAAQ,KAAA,EAAO,oBAAA,EAAsB,OAAO,MAAA;AAAO,GACvE,CAAA;AACD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,SAAS,UAAU,CAAA,GAAIA,eAAyC,EAAE,GAAA,EAAK,EAAC,EAAG,CAAA;AAClF,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAS,IAAI,CAAA;AAE3C,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,QAAQ,CAAA,IAAK,EAAC;AAGvC,EAAA,MAAM,QAAA,GAAWU,aAAO,CAAC,CAAA;AACzB,EAAA,MAAM,KAAA,GAAQA,aAAO,CAAC,CAAA;AACtB,EAAA,MAAM,YAAA,GAAeA,aAAO,KAAK,CAAA;AACjC,EAAA,MAAM,aAAA,GAAgBA,aAAO,EAAE,CAAA;AAC/B,EAAA,MAAM,SAAA,GAAYA,YAAAA,CAAwC,EAAE,CAAA;AAC5D,EAAA,MAAM,UAAA,GAAaA,aAAO,OAAO,CAAA;AACjC,EAAA,UAAA,CAAW,OAAA,GAAU,OAAA;AACrB,EAAA,MAAM,WAAA,GAAcA,aAAO,CAAC,CAAA;AAE5B,EAAAC,eAAAA,CAAU,MAAM,MAAM,SAAA,CAAU,QAAQ,OAAA,CAAQ,YAAY,CAAA,EAAG,EAAE,CAAA;AAEjE,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,KAAc,CAAA,EAAG,CAAC,CAAA,EAAI,KAAA,CAAM,WAAW,CAAE,CAAA,CAAA;AAEzD,EAAA,MAAM,KAAA,GAAQ,CAAC,EAAA,EAAY,KAAA,KACzB,IAAI,OAAA,CAAc,CAAC,SAAS,MAAA,KAAW;AACrC,IAAA,MAAM,EAAA,GAAK,WAAW,MAAM;AAC1B,MAAA,IAAI,KAAA,KAAU,QAAA,CAAS,OAAA,EAAS,OAAA,EAAQ;AAAA,WACnC,MAAA,CAAO,IAAI,KAAA,CAAM,SAAS,CAAC,CAAA;AAAA,IAClC,GAAG,EAAE,CAAA;AACL,IAAA,SAAA,CAAU,OAAA,CAAQ,KAAK,EAAE,CAAA;AAAA,EAC3B,CAAC,CAAA;AAEH,EAAA,MAAM,eAAA,GAAkB,CAAC,EAAA,EAAY,KAAA,KACnC,YAAY,CAAC,EAAA,KAAO,GAAG,GAAA,CAAI,CAAC,MAAO,CAAA,CAAE,EAAA,KAAO,KAAK,EAAE,GAAG,GAAG,KAAA,EAAM,GAAI,CAAE,CAAC,CAAA;AAExE,EAAA,MAAM,GAAA,GAAM,OAAO,MAAA,KAAmB;AACpC,IAAA,MAAM,KAAA,GAAS,SAAS,OAAA,IAAW,CAAA;AACnC,IAAA,MAAM,QAAA,GAAW,QAAA;AACjB,IAAA,MAAM,OAAA,GAAU,OAAO,GAAG,CAAA;AAC1B,IAAA,YAAA,CAAa,OAAA,GAAU,QAAA;AACvB,IAAA,aAAA,CAAc,OAAA,GAAU,OAAA;AAExB,IAAA,MAAM,EAAA,GAAK,SAAA,CAAU,WAAA,CAAY,OAAA,GAAU,UAAU,MAAM,CAAA;AAC3D,IAAA,WAAA,CAAY,OAAA,IAAW,CAAA;AACvB,IAAA,MAAM,WAAW,UAAA,CAAW,OAAA;AAG5B,IAAA,MAAM,KAAA,GAAQ,CAAC,OAAA,KACb,UAAA,CAAW,CAAC,CAAA,KAAM;AAChB,MAAA,MAAM,IAAA,GAAO,EAAE,QAAQ,CAAA;AACvB,MAAA,IAAI,CAAC,MAAM,OAAO,CAAA;AAClB,MAAA,MAAM,MAAM,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AAClD,MAAA,IAAI,GAAA,GAAM,GAAG,OAAO,CAAA;AACpB,MAAA,MAAM,IAAA,GAAO,KAAK,KAAA,EAAM;AACxB,MAAA,IAAA,CAAK,GAAG,CAAA,GAAI,EAAE,GAAG,KAAK,GAAG,CAAA,EAAG,MAAA,EAAQ,OAAA,CAAQ,KAAK,GAAG,CAAA,CAAE,MAAA,IAAU,EAAE,CAAA,EAAE;AACpE,MAAA,OAAO,EAAE,GAAG,CAAA,EAAG,CAAC,QAAQ,GAAG,IAAA,EAAK;AAAA,IAClC,CAAC,CAAA;AACH,IAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KACpB,UAAA,CAAW,CAAC,CAAA,KAAM;AAChB,MAAA,MAAM,IAAA,GAAO,EAAE,QAAQ,CAAA;AACvB,MAAA,IAAI,CAAC,MAAM,OAAO,CAAA;AAClB,MAAA,MAAM,MAAM,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AAClD,MAAA,IAAI,GAAA,GAAM,GAAG,OAAO,CAAA;AACpB,MAAA,MAAM,IAAA,GAAO,KAAK,KAAA,EAAM;AACxB,MAAA,IAAA,CAAK,GAAG,CAAA,GAAI,EAAE,GAAG,IAAA,CAAK,GAAG,GAAG,SAAA,EAAU;AACtC,MAAA,OAAO,EAAE,GAAG,CAAA,EAAG,CAAC,QAAQ,GAAG,IAAA,EAAK;AAAA,IAClC,CAAC,CAAA;AACH,IAAA,MAAM,IAAA,GAAO,CAAC,CAAA,KAAkB,KAAA,CAAM,CAAC,OAAO,CAAC,GAAG,EAAA,EAAI,CAAC,CAAC,CAAA;AAExD,IAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,IAAA,IAAI,QAAA,KAAa,KAAA,EAAO,eAAA,CAAgB,QAAA,EAAU,SAAS,CAAA;AAC3D,IAAA,UAAA,CAAW,CAAC,CAAA,MAAO;AAAA,MACjB,GAAG,CAAA;AAAA,MACH,CAAC,QAAQ,GAAG,CAAC,GAAI,CAAA,CAAE,QAAQ,KAAK,EAAC,EAAI,EAAE,EAAA,EAAI,OAAA,EAAS,MAAM,OAAA,EAAS,MAAA,EAAQ,EAAC,EAAG,SAAA,EAAW,MAAM;AAAA,KAClG,CAAE,CAAA;AAEF,IAAA,IAAI;AAEF,MAAA,IAAA,CAAK,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,EAAA,CAAG,UAAU,CAAA;AAC5C,MAAA,MAAM,KAAA,CAAM,MAAM,KAAK,CAAA;AACvB,MAAA,KAAA,CAAM,CAAC,EAAA,KAAO,WAAA,CAAY,EAAA,EAAI,YAAY,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,OAAA,EAAS,EAAA,CAAG,YAAA,GAAe,CAAC,CAAA;AAEtF,MAAA,IAAI,QAAA,EAAU;AAEZ,QAAA,MAAM,KAAA,GAAqB,EAAA,CAAG,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,MAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA,KAAM,CAAA,GAAI,QAAA,GAAW,QAAO,CAAE,CAAA;AACpG,QAAA,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAO,EAAA,CAAG,SAAA,EAAW,OAAO,CAAA;AACjD,QAAA,MAAM,KAAA,CAAM,KAAK,KAAK,CAAA;AAGtB,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,EAAA,CAAG,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACxC,UAAA,MAAM,IAAA,GAAO,EAAA,CAAG,KAAA,CAAM,CAAC,CAAA;AACvB,UAAA,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,KAAK,IAAA,EAAM,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,OAAA,EAAS,IAAA,CAAK,OAAA,EAAS,MAAA,EAAQ,WAAW,CAAA;AACjG,UAAA,MAAM,KAAA,CAAM,MAAM,KAAK,CAAA;AACvB,UAAA,KAAA,CAAM,CAAC,EAAA,KAAO,WAAA,CAAY,EAAA,EAAI,MAAA,EAAQ,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,QAAQ,MAAA,EAAQ,MAAA,EAAQ,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAC7F,UAAA,KAAA;AAAA,YAAM,CAAC,EAAA,KACL,WAAA,CAAY,EAAA,EAAI,MAAA,EAAQ,CAAC,CAAA,MAAuB;AAAA,cAC9C,GAAG,CAAA;AAAA,cACH,KAAA,EAAO,EAAE,KAAA,CAAM,GAAA;AAAA,gBAAI,CAAC,CAAA,EAAG,CAAA,KACrB,MAAM,CAAA,GAAI,EAAE,GAAG,CAAA,EAAG,MAAA,EAAQ,QAAO,GAAI,CAAA,KAAM,IAAI,CAAA,GAAI,EAAE,GAAG,CAAA,EAAG,MAAA,EAAQ,UAAS,GAAI;AAAA;AAClF,aACF,CAAE;AAAA,WACJ;AACA,UAAA,MAAM,KAAA,CAAM,KAAK,KAAK,CAAA;AAAA,QACxB;AAAA,MACF;AAGA,MAAA,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAA;AAC/B,MAAA,MAAM,KAAA,GAAQ,EAAA,CAAG,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AACjC,MAAA,IAAI,GAAA,GAAM,EAAA;AACV,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,QAAA,GAAA,IAAA,CAAQ,CAAA,KAAM,CAAA,GAAI,EAAA,GAAK,GAAA,IAAO,MAAM,CAAC,CAAA;AACrC,QAAA,MAAM,GAAA,GAAM,GAAA;AACZ,QAAA,KAAA,CAAM,CAAC,EAAA,KAAO,WAAA,CAAY,EAAA,EAAI,MAAA,EAAQ,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,IAAA,EAAM,GAAA,GAAM,CAAC,CAAA;AACnE,QAAA,MAAM,KAAA,CAAM,IAAI,KAAK,CAAA;AAAA,MACvB;AAGA,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,KAAA;AAAA,UAAM,CAAC,EAAA,KACL,WAAA,CAAY,EAAA,EAAI,MAAA,EAAQ,CAAC,CAAA,MAAuB;AAAA,YAC9C,GAAG,CAAA;AAAA,YACH,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,MAAA,EAAQ,MAAA,EAAgB,CAAE;AAAA,WAC/D,CAAE;AAAA,SACJ;AAAA,MACF;AACA,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,IAAI,QAAA,KAAa,KAAA,EAAO,eAAA,CAAgB,QAAA,EAAU,MAAM,CAAA;AACxD,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,CAAA,CAAA,MAAQ;AAAA,IAER;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,OAAO,MAAM;AACjB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,QAAA,CAAS,OAAA,IAAW,CAAA;AACpB,IAAA,MAAM,WAAW,YAAA,CAAa,OAAA;AAC9B,IAAA,MAAM,UAAU,aAAA,CAAc,OAAA;AAC9B,IAAA,UAAA,CAAW,CAAC,CAAA,KAAM;AAChB,MAAA,MAAM,IAAA,GAAO,EAAE,QAAQ,CAAA;AACvB,MAAA,IAAI,CAAC,MAAM,OAAO,CAAA;AAClB,MAAA,MAAM,MAAM,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AAClD,MAAA,IAAI,GAAA,GAAM,GAAG,OAAO,CAAA;AACpB,MAAA,MAAM,GAAA,GAAM,KAAK,GAAG,CAAA;AACpB,MAAA,IAAI,MAAA,GAAA,CAAwB,GAAA,CAAI,MAAA,IAAU,EAAC,EAAG,GAAA;AAAA,QAAI,CAAC,CAAA,KACjD,CAAA,CAAE,IAAA,KAAS,UAAU,CAAA,CAAE,MAAA,KAAW,SAAA,GAAY,EAAE,GAAG,CAAA,EAAG,MAAA,EAAQ,OAAA,EAAS,MAAA,EAAQ,oBAAmB,GAAI;AAAA,OACxG;AACA,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AACrC,MAAA,IAAI,IAAA,IAAQ,IAAA,CAAK,IAAA,KAAS,MAAA,IAAU,CAAE,IAAA,CAAwB,IAAA,EAAM,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAC/F,MAAA,MAAA,GAAS,CAAC,GAAG,MAAA,EAAQ,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,mBAAc,CAAA;AACzD,MAAA,MAAM,IAAA,GAAO,KAAK,KAAA,EAAM;AACxB,MAAA,IAAA,CAAK,GAAG,CAAA,GAAI,EAAE,GAAG,GAAA,EAAK,MAAA,EAAQ,WAAW,KAAA,EAAM;AAC/C,MAAA,OAAO,EAAE,GAAG,CAAA,EAAG,CAAC,QAAQ,GAAG,IAAA,EAAK;AAAA,IAClC,CAAC,CAAA;AACD,IAAA,IAAI,QAAA,KAAa,KAAA,EAAO,eAAA,CAAgB,QAAA,EAAU,MAAM,CAAA;AACxD,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,MAAM,GAAA,GAAM,CAAC,IAAA,KAAiB;AAC5B,IAAA,IAAI,IAAA,EAAM;AACV,IAAA,UAAA,CAAW,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,CAAC,QAAQ,GAAG,CAAC,GAAI,CAAA,CAAE,QAAQ,KAAK,EAAC,EAAI,EAAE,EAAA,EAAI,MAAA,CAAO,GAAG,CAAA,EAAG,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,CAAA,EAAE,CAAE,CAAA;AACzG,IAAA,GAAA,CAAQ,CAAA;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,IAAI,MAAM,IAAA,EAAK;AACf,IAAA,WAAA,CAAY,KAAK,CAAA;AACjB,IAAA,UAAA,CAAW,CAAC,OAAO,EAAE,GAAG,GAAG,GAAA,EAAK,IAAG,CAAE,CAAA;AAAA,EACvC,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS,CAAC,EAAA,KAAe;AAC7B,IAAA,WAAA,CAAY,EAAE,CAAA;AACd,IAAA,UAAA,CAAW,CAAC,CAAA,KAAO,CAAA,CAAE,EAAE,IAAI,CAAA,GAAI,EAAE,GAAG,CAAA,EAAG,CAAC,EAAE,GAAG,IAAK,CAAA;AAAA,EACpD,CAAA;AAEA,EAAA,MAAM,KAAA,GAAQ,QAAA,KAAa,KAAA,GAAQ,UAAA,GAAa,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,QAAQ,CAAA,EAAG,KAAA,IAAS,MAAA;AAElG,EAAA,uBACEf,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAO,EAC5C,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,WAAO,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,oBACfA,eAAC,YAAA,EAAA,EAAa,QAAA,EAAoB,UAAoB,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,IAAA,EAAY,CAAA;AAAA,oBACpGD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,UAAS,EAC3E,QAAA,EAAA;AAAA,sBAAAA,eAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,GAAA,EAAK,EAAA;AAAA,YACL,OAAA,EAAS,WAAA;AAAA,YACT,YAAA,EAAc;AAAA,WAChB;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,4BACjGA,cAAAA,CAAC,aAAA,EAAA,EAAc,IAAA,EAAY,CAAA;AAAA,4BAC3BA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAE,EAAG,CAAA;AAAA,4BACzBA,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,OAAA,EAAQ,sBAAMF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAgB,CAAA,EAAI,CAAA;AAAA,4BAC7FA,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,OAAA,EAAQ,sBAAMF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAiB,CAAA,EAAI;AAAA;AAAA;AAAA,OAChG;AAAA,sBACAA,cAAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,cAAc,IAAA,CAAK,QAAA;AAAA,UACnB,SAAA,EAAU,WAAA;AAAA,UACV,WAAA,EAAa,WAAA;AAAA,UACb,SAAA,EAAW;AAAA;AAAA,OACb;AAAA,sBACAA,cAAAA,CAAC,aAAA,EAAA,EAAc,MAAA,EAAQ,GAAA,EAAK,QAAQ,IAAA,EAAM,IAAA,EAAY,OAAA,EAAkB,aAAA,EAAe,UAAA,EAAY;AAAA,KAAA,EACrG;AAAA,GAAA,EACF,CAAA;AAEJ;AC7TO,SAAS,aAAA,CAAc,EAAE,MAAA,EAAQ,UAAA,EAAW,EAAuB;AACxE,EAAA,MAAM,IAAA,GAAkB;AAAA,IACtB,EAAE,EAAA,EAAI,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,MAAM,oBAAA,EAAqB;AAAA,IAC9D,EAAE,EAAA,EAAI,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,MAAM,qBAAA,EAAsB;AAAA,IACnE,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,MAAM,cAAA,EAAe;AAAA,IACpD,EAAE,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,MAAM,kBAAA,EAAmB;AAAA,IAC1D,EAAE,IAAI,MAAA,EAAQ,KAAA,EAAO,QAAQ,IAAA,EAAM,eAAA,EAAiB,OAAO,KAAA;AAAM,GACnE;AACA,EAAA,MAAM,KAAA,GAAmB;AAAA,IACvB,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,MAAM,iBAAA,EAAkB;AAAA,IAC7D,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,MAAM,oBAAA;AAAqB,GAClE;AACA,EAAA,MAAM,IAAA,GAAO,CAAC,EAAE,EAAA,EAAG,KAAuB;AACxC,IAAA,MAAM,EAAA,GAAK,WAAW,EAAA,CAAG,EAAA;AACzB,IAAA,uBACED,gBAAC,QAAA,EAAA,EAAO,OAAA,EAAS,MAAM,UAAA,CAAW,EAAA,CAAG,EAAE,CAAA,EAAG,KAAA,EAAO;AAAA,MAC/C,OAAA,EAAS,MAAA;AAAA,MAAQ,UAAA,EAAY,QAAA;AAAA,MAAU,GAAA,EAAK,EAAA;AAAA,MAAI,KAAA,EAAO,MAAA;AAAA,MAAQ,MAAA,EAAQ,EAAA;AAAA,MAAI,OAAA,EAAS,QAAA;AAAA,MACpF,MAAA,EAAQ,MAAA;AAAA,MAAQ,YAAA,EAAc,uBAAA;AAAA,MAAyB,MAAA,EAAQ,SAAA;AAAA,MAAW,SAAA,EAAW,MAAA;AAAA,MACrF,UAAA,EAAY,KAAK,wBAAA,GAA2B,aAAA;AAAA,MAC5C,SAAA,EAAW,KAAK,oEAAA,GAAuE,MAAA;AAAA,MACvF,KAAA,EAAO,KAAK,6BAAA,GAAgC,0BAAA;AAAA,MAA4B,IAAA,EAAM;AAAA,KAChF,EACE,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,EAAA,CAAG,IAAA,EAAM,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,EAAA,GAAK,0BAAA,GAA6B,4BAA2B,EAAG,CAAA;AAAA,sBACrHA,eAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAE,EAAI,QAAA,EAAA,EAAA,CAAG,KAAA,EAAM,CAAA;AAAA,MACnC,EAAA,CAAG,wBAAQA,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,iCAAA,EAAmC,OAAA,EAAS,WAAW,YAAA,EAAc,yBAAA,EAA2B,YAAY,mCAAA,EAAqC,KAAA,EAAO,kCAAiC,EAAI,QAAA,EAAA,EAAA,CAAG,OAAM,CAAA,GAAU;AAAA,KAAA,EACnP,CAAA;AAAA,EAEJ,CAAA;AACA,EAAA,uBACED,gBAAC,OAAA,EAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAO,GAAA,EAAK,UAAA,EAAY,CAAA,EAAG,MAAA,EAAQ,MAAA,EAAQ,WAAW,YAAA,EAAc,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,OAAA,EAAS,IAAI,UAAA,EAAY,wBAAA,EAA0B,WAAA,EAAa,uCAAA,EAAwC,EACpO,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,cAAA,EAAe,EACpF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,0BAAA,EAA4B,OAAO,iCAAA,EAAmC,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAS,EAC5N,0BAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAA,EAAmB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAM,CAAA,EAC3D,CAAA;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,eAAA,EAAa;AAAA,KAAA,EACzG,CAAA;AAAA,oBACAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,CAAA,IAAM,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,EAAA,qBAAOA,cAAAA,CAAC,QAAiB,EAAA,EAAA,EAAP,EAAA,CAAG,EAAY,CAAE,CAAA,EAAE,CAAA;AAAA,oBAClHA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,iCAAA,EAAmC,aAAA,EAAe,qCAAA,EAAuC,aAAA,EAAe,aAAa,KAAA,EAAO,2BAAA,EAA6B,OAAA,EAAS,eAAA,IAAmB,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,oBAChNA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,CAAA,IAAM,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,qBAAOA,cAAAA,CAAC,QAAiB,EAAA,EAAA,EAAP,EAAA,CAAG,EAAY,CAAE,CAAA,EAAE,CAAA;AAAA,oBACnHA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,IAAA,EAAM,GAAE,EAAG,CAAA;AAAA,oBACzBD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,2BAAA,EAA6B,OAAA,EAAS,EAAA,EAAI,KAAA,EAAO,mCAAkC,EAClJ,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,OAAE,SAAA,EAAU,qBAAA,EAAsB,OAAO,EAAE,QAAA,EAAU,IAAG,EAAG,CAAA;AAAA,sBAC5DA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,WAAW,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA4B,EAAG,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,sBAC/EA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,OAAA,EAAS,GAAA,EAAG,EAAG,QAAA,EAAA,kCAAA,EAAgC;AAAA,KAAA,EACpH;AAAA,GAAA,EACF,CAAA;AAEJ;ACxDA,SAAS,IAAA,CAAK,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,QAAQ,IAAA,EAAM,IAAA,GAAO,SAAA,EAAW,IAAA,EAAK,EAGvE;AACD,EAAA,MAAM,EAAA,GAAK,KAAA,KAAU,IAAA,GAAO,SAAA,GAAY,OAAA;AACxC,EAAA,uBACED,eAAAA,CAACM,sBAAA,EAAA,EAAK,OAAA,EAAQ,QAAA,EAAS,SAAS,EAAA,EAC9B,QAAA,EAAA;AAAA,oBAAAN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,YAAA,EAAc,cAAA,EAAgB,eAAA,EAAgB,EACvF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,QAAA,EAAU,EAAA,EAAI,UAAA,EAAY,CAAA,iBAAA,EAAoB,IAAI,CAAA,SAAA,CAAA,EAAa,KAAA,EAAO,CAAA,iBAAA,EAAoB,IAAI,CAAA,MAAA,CAAA,EAAS,EAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,MAC7P,KAAA,IAAS,IAAA,mBACRD,eAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,OAAA,EAAS,YAAA,EAAc,4BAAA,EAA8B,IAAA,EAAM,2BAAA,EAA6B,UAAA,EAAY,CAAA,iBAAA,EAAoB,EAAE,CAAA,SAAA,CAAA,EAAa,KAAA,EAAO,CAAA,iBAAA,EAAoB,EAAE,UAAS,EACrQ,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,KAAA,KAAU,IAAA,GAAO,kBAAA,GAAqB,oBAAA,EAAsB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG,CAAA;AAAA,QAAG;AAAA,OAAA,EACxG,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAI,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAChHA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAChH,CAAA;AAEJ;AAGA,SAAS,UAAU,GAAA,EAA+B;AAChD,EAAA,MAAM,GAAA,GAAwC;AAAA,IAC5C,GAAA,EAAK,CAAC,WAAA,EAAa,SAAS,CAAA;AAAA,IAAG,GAAA,EAAK,CAAC,WAAA,EAAa,SAAS,CAAA;AAAA,IAAG,GAAA,EAAK,CAAC,WAAA,EAAa,SAAS,CAAA;AAAA,IAC1F,GAAA,EAAK,CAAC,WAAA,EAAa,SAAS,CAAA;AAAA,IAAG,GAAA,EAAK,CAAC,WAAA,EAAa,SAAS,CAAA;AAAA,IAAG,IAAA,EAAM,CAAC,WAAA,EAAa,SAAS,CAAA;AAAA,IAC3F,IAAA,EAAM,CAAC,WAAA,EAAa,SAAS,CAAA;AAAA,IAAG,GAAA,EAAK,CAAC,WAAA,EAAa,SAAS;AAAA,GAC9D;AACA,EAAA,OAAO,GAAA,CAAI,GAAG,CAAA,IAAK,CAAC,0BAA0B,0BAA0B,CAAA;AAC1E;AAOA,SAAS,QAAA,CAAS,EAAE,GAAA,EAAK,IAAA,GAAO,IAAG,EAAkB;AACnD,EAAA,MAAM,CAAC,EAAA,EAAI,EAAE,CAAA,GAAI,UAAU,GAAG,CAAA;AAC9B,EAAA,uBAAOA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,YAAA,EAAc,yBAAA,EAA2B,UAAA,EAAY,EAAA,EAAI,OAAO,EAAA,EAAI,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,IAAA,EAAM,6BAA6B,UAAA,EAAY,GAAA,EAAK,UAAA,EAAY,CAAA,EAAE,EAAI,QAAA,EAAA,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,EAAE,CAAA;AACrR;AAQA,SAAS,MAAM,EAAE,EAAA,EAAI,IAAI,EAAA,EAAI,CAAA,GAAI,IAAG,EAAe;AACjD,EAAA,MAAM,GAAA,GAAM,EAAA,GAAK,CAAC,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA,GAAI,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAC,CAAA;AACjH,EAAA,MAAM,IAAA,GAAO,CAAA,IAAK,GAAA,CAAI,MAAA,GAAS,CAAA,CAAA;AAC/B,EAAA,MAAM,CAAA,GAAI,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,CAAA,GAAI,GAAA,GAAM,GAAG,CAAA,EAAA,CAAI,CAAA,GAAI,MAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAA,CAAK,CAAA,GAAI,CAAA,EAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACtG,EAAA,MAAM,CAAA,GAAI,KAAK,gCAAA,GAAmC,8BAAA;AAClD,EAAA,uBAAOA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,GAAG,MAAA,EAAQ,CAAA,EAAG,0BAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,GAAM,IAAA,EAAK,MAAA,EAAO,QAAQ,CAAA,EAAG,WAAA,EAAY,OAAM,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,CAAA,EAAE,CAAA;AACvI;AAYO,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIG,eAAS,IAAI,CAAA;AAEvC,EAAA,MAAM,QAAA,GAAsB;AAAA,IAC1B,EAAE,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,WAAW,KAAA,EAAO,SAAA,EAAW,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,IAAI,IAAA,EAAK;AAAA,IAC/G,EAAE,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,YAAY,KAAA,EAAO,QAAA,EAAU,MAAA,EAAQ,UAAA,EAAY,KAAA,EAAO,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,IAAI,IAAA,EAAK;AAAA,IAC9G,EAAE,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,UAAU,KAAA,EAAO,SAAA,EAAW,MAAA,EAAQ,UAAA,EAAY,KAAA,EAAO,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,IAAI,KAAA,EAAM;AAAA,IAC9G,EAAE,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,OAAO,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,QAAA,EAAU,GAAA,EAAK,OAAA,EAAS,IAAI,KAAA,EAAM;AAAA,IACzG,EAAE,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,OAAO,KAAA,EAAO,SAAA,EAAW,MAAA,EAAQ,UAAA,EAAY,KAAA,EAAO,QAAA,EAAU,GAAA,EAAK,OAAA,EAAS,IAAI,KAAA;AAAM,GAC5G;AACA,EAAA,MAAM,OAAA,GAAkC;AAAA,IACtC,EAAE,GAAA,EAAK,MAAA,EAAQ,QAAQ,OAAA,EAAS,MAAA,EAAQ,CAAC,CAAA,qBACvCJ,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAU,GAAA,EAAK,IAAG,EAC3D,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,QAAA,EAAA,EAAS,GAAA,EAAK,CAAA,CAAE,GAAA,EAAK,CAAA;AAAA,sBACtBD,gBAAC,KAAA,EAAA,EAAI,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK,CAAA;AAAA,wBACtGA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAI,QAAA,EAAA,CAAA,CAAE,GAAA,EAAI;AAAA,OAAA,EAAM;AAAA,KAAA,EAC1G,CAAA,EAAQ;AAAA,IACV,EAAE,GAAA,EAAK,OAAA,EAAS,QAAQ,OAAA,EAAS,MAAA,EAAQ,CAAC,CAAA,qBAAMA,cAAAA,CAAC,MAAA,EAAA,EAAK,OAAO,EAAE,IAAA,EAAM,6BAA4B,EAAI,QAAA,EAAA,CAAA,CAAE,OAAM,CAAA,EAAQ;AAAA,IACrH,EAAE,GAAA,EAAK,QAAA,EAAU,QAAQ,UAAA,EAAY,MAAA,EAAQ,CAAC,CAAA,qBAAMA,cAAAA,CAAC,MAAA,EAAA,EAAK,OAAO,EAAE,KAAA,EAAO,4BAA2B,EAAI,QAAA,EAAA,CAAA,CAAE,QAAO,CAAA,EAAQ;AAAA,IAC1H,EAAE,GAAA,EAAK,KAAA,EAAO,MAAA,EAAQ,OAAO,MAAA,EAAQ,CAAC,CAAA,qBAAMA,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAO,CAAA,CAAE,KAAK,OAAA,GAAU,KAAA,EAAO,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaD,eAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,EAAA,GAAK,kBAAA,GAAqB,oBAAA,EAAsB,CAAA,EAAK,QAAA,EAAA,CAAA,CAAE,KAAI,CAAA,EAAS;AAAA,IAChN,EAAE,KAAK,OAAA,EAAS,MAAA,EAAQ,SAAS,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ,CAAC,CAAA,qBAAMA,eAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,2BAAA,EAA6B,OAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM,CAAA,EAAQ;AAAA,IAC3K,EAAE,GAAA,EAAK,OAAA,EAAS,QAAQ,EAAA,EAAI,KAAA,EAAO,KAAK,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ,CAAC,sBAAMA,cAAAA,CAAC,SAAM,EAAA,EAAI,CAAA,CAAE,IAAI,CAAA;AAAG,GAC7F;AAEA,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,IAAG,EAC3E,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,mBAAA,EAAqB,eAAA,EAAiB,GAAA,EAAK,EAAA,EAAG,EAC3E,QAAA,kBAAAD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAA,EAAY,QAAA,EAAU,OAAA,EAAS,QAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAA,EAAK,EAAA,EAAG,EAClG,QAAA,EAAA;AAAA,sBAAAC,eAAC,IAAA,EAAA,EAAK,KAAA,EAAM,iBAAgB,KAAA,EAAM,YAAA,EAAa,OAAM,MAAA,EAAO,KAAA,EAAM,IAAA,EAAK,IAAA,EAAK,WAAU,IAAA,kBAAMA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAmB,CAAA,EAAI,CAAA;AAAA,sBAChIA,cAAAA,CAAC,IAAA,EAAA,EAAK,OAAM,SAAA,EAAU,KAAA,EAAM,cAAa,KAAA,EAAM,MAAA,EAAO,OAAM,IAAA,EAAK,IAAA,EAAK,WAAU,IAAA,kBAAMA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sBAAqB,CAAA,EAAI,CAAA;AAAA,sBAC5HA,cAAAA,CAAC,IAAA,EAAA,EAAK,OAAM,WAAA,EAAY,KAAA,EAAM,cAAa,KAAA,EAAM,MAAA,EAAO,OAAM,IAAA,EAAK,IAAA,EAAK,eAAc,IAAA,kBAAMA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAe,CAAA,EAAI;AAAA,KAAA,EAC9H,CAAA,EACF,CAAA;AAAA,oBAEAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAA,EAAY,wBAAA,EAA0B,YAAA,EAAc,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA+C,OAAA,EAAS,IAAG,EAChK,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,eAAA,EAAiB,YAAA,EAAc,CAAA,EAAE,EACpG,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC3D,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,QAAA,EAAA,EAAS,GAAA,EAAI,KAAA,EAAM,MAAM,EAAA,EAAI,CAAA;AAAA,0BAC9BD,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC1D,QAAA,EAAA;AAAA,8BAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,8BACpGA,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAM,OAAA,EAAQ,SAAQ,OAAA,EAAQ,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaD,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAA,EAAmB,GAAI,QAAA,EAAA,MAAA,EAAI;AAAA,aAAA,EACzG,CAAA;AAAA,4BACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAG,QAAA,EAAA,sBAAA,EAAiB;AAAA,WAAA,EAC9G;AAAA,SAAA,EACF,CAAA;AAAA,wBACAA,cAAAA,CAACI,kCAAA,EAAA,EAAiB,KAAA,EAAO,OAAO,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,MAAK,EAAG,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,IAAA,EAAK,EAAG,EAAE,OAAO,IAAA,EAAM,KAAA,EAAO,IAAA,EAAK,EAAG,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,CAAA,EAAG;AAAA,OAAA,EACvL,CAAA;AAAA,sBACAJ,eAAC,SAAA,EAAA,EAAU;AAAA,KAAA,EACb,CAAA;AAAA,oBAEAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAA,EAAY,wBAAA,EAA0B,YAAA,EAAc,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA+C,QAAA,EAAU,UAAS,EACvK,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,WAAA,EAAa,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,eAAA,EAAgB,EACzG,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,wBACvGA,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,WAAU,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,aAAA,EAAc,GAAI,QAAA,EAAA,YAAA,EAAU;AAAA,OAAA,EAC/F,CAAA;AAAA,sBACAA,cAAAA,CAACmB,uBAAA,EAAA,EAAM,SAAkB,IAAA,EAAM,QAAA,EAAU,UAAU,CAAC,CAAA,KAAM,EAAE,GAAA,EAAK,KAAA,EAAO,EAAE,YAAA,EAAc,CAAA,EAAG,WAAW,MAAA,EAAQ,SAAA,EAAW,yCAAwC,EAAG;AAAA,KAAA,EACtK;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,SAAA,GAAuB;AAC9B,EAAA,MAAM,MAAM,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,KAAK,GAAG,CAAA;AACzE,EAAA,MAAM,CAAA,GAAI,GAAA,EAAM,CAAA,GAAI,GAAA,EAAK,GAAA,GAAM,GAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,CAAA,IAAK,GAAA,CAAI,MAAA,GAAS,CAAA,CAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,EAAG,CAAA,GAAI,GAAA,GAAM,GAAG,CAAA,EAAA,CAAI,CAAA,GAAI,IAAA,EAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAA,CAAK,CAAA,GAAK,CAAA,GAAI,GAAA,GAAO,CAAA,EAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACrH,EAAA,MAAM,IAAA,GAAO,GAAG,IAAI,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,EAAI,CAAC,OAAO,CAAC,CAAA,EAAA,CAAA;AACvC,EAAA,uBACEpB,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAS,CAAA,IAAA,EAAO,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,qBAAoB,MAAA,EAAO,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,QAAQ,GAAA,EAAK,OAAA,EAAS,SAAQ,EAC9G,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAAD,eAAAA,CAAC,oBAAe,EAAA,EAAG,YAAA,EAAa,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EACtD,QAAA,EAAA;AAAA,sBAAAC,eAAC,MAAA,EAAA,EAAK,MAAA,EAAO,MAAK,SAAA,EAAU,0BAAA,EAA2B,aAAY,MAAA,EAAO,CAAA;AAAA,sBAC1EA,eAAC,MAAA,EAAA,EAAK,MAAA,EAAO,QAAO,SAAA,EAAU,0BAAA,EAA2B,aAAY,GAAA,EAAI;AAAA,KAAA,EAC3E,CAAA,EACF,CAAA;AAAA,oBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,IAAA,EAAM,MAAK,kBAAA,EAAmB,CAAA;AAAA,oBACvCA,cAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAG,MAAM,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,0BAAA,EAA2B,WAAA,EAAY,KAAA,EAAM,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EAAQ;AAAA,GAAA,EAC9H,CAAA;AAEJ;AC/IO,SAAS,cAAA,GAAiB;AAC/B,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIG,eAAS,WAAW,CAAA;AAChD,EAAA,uBACEJ,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAO,EAC5C,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,aAAA,EAAA,EAAc,MAAA,EAAgB,UAAA,EAAY,SAAA,EAAW,CAAA;AAAA,oBACtDD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,QAAA,EAAU,UAAS,EAC/F,QAAA,EAAA;AAAA,sBAAAA,gBAAC,QAAA,EAAA,EAAO,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,SAAS,WAAA,EAAa,YAAA,EAAc,uCAAA,EAAyC,UAAA,EAAY,0BAAyB,EACjL,QAAA,EAAA;AAAA,wBAAAC,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,IAClB,QAAA,kBAAAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAU,GAAA,EAAK,GAAE,EAC1D,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,0BAC5GA,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAM,OAAA,EAAQ,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,OAAA,EAAQ,GAAA,EAAG,IAAA,EAAC,QAAA,EAAA,cAAA,EAAY;AAAA,SAAA,EACpE,CAAA,EACF,CAAA;AAAA,wBACAF,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,QAAA,EAAU,YAAW,EACjC,QAAA,EAAA;AAAA,0BAAAC,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAiB,KAAA,EAAO,EAAE,UAAU,UAAA,EAAY,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,OAAO,SAAA,EAAW,kBAAA,EAAoB,UAAU,EAAA,EAAI,KAAA,EAAO,6BAA4B,EAAG,CAAA;AAAA,0BACtKA,cAAAA,CAAC,OAAA,EAAA,EAAM,WAAA,EAAY,eAAA,EAAgB,KAAA,EAAO,EAAE,KAAA,EAAO,GAAA,EAAK,SAAA,EAAW,YAAA,EAAc,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,eAAA,EAAiB,YAAA,EAAc,uBAAA,EAAyB,MAAA,EAAQ,MAAA,EAAQ,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA+C,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,6BAAA,EAA+B,OAAA,EAAS,QAAO,EAAG;AAAA,SAAA,EAChX,CAAA;AAAA,wBACAA,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,QAAA,EAAS,sBAAMF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0BAAyB,CAAA,EAAI,CAAA;AAAA,wBACvGA,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,WAAA,kBAAaF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0BAAA,EAA2B,CAAA,EAAI,QAAA,EAAA,OAAA,EAAK;AAAA,OAAA,EAC1F,CAAA;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,MAAA,EAAQ,YAAY,wBAAA,EAAyB,EAC7E,QAAA,kBAAAA,cAAAA,CAAC,iBAAc,CAAA,EACjB;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AC9BO,SAAS,YAAA,GAAe;AAC7B,EAAA,MAAM,QAAQ,CAAC,SAAA,EAAW,WAAA,EAAa,SAAA,EAAW,aAAa,MAAM,CAAA;AACrE,EAAA,uBACEA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAO,EAAE,QAAA,EAAU,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,QAAQ,EAAA,EAAI,UAAA,EAAY,6DAAA,EAA+D,cAAA,EAAgB,cAAc,YAAA,EAAc,uCAAA,EAAwC,EACtN,QAAA,kBAAAD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,MAAM,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,aAAY,EACnH,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC3D,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,2BAAA,EAA6B,OAAO,0BAAA,EAA4B,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAS,EACtN,0BAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAM,CAAA,EACzD,CAAA;AAAA,sBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,MAAA,EAAI;AAAA,KAAA,EAChG,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,GAAE,EAC5C,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,sBACVA,cAAAA,CAAC,GAAA,EAAA,EAAU,IAAA,EAAK,KAAI,KAAA,EAAO,EAAE,OAAA,EAAS,UAAA,EAAY,cAAc,uBAAA,EAAyB,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,4BAA4B,cAAA,EAAgB,MAAA,IAAW,QAAA,EAAA,CAAA,EAAA,EAAlL,CAAoL,CAC7L,CAAA,EACH,CAAA;AAAA,oBACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,IAAA,EAAK,KAAI,KAAA,EAAO,EAAE,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,0BAAA,EAA4B,cAAA,EAAgB,MAAA,IAAU,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,oBAC5HA,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,WAAU,IAAA,EAAK,OAAA,EAAQ,YAAA,kBAAcF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAsB,GAAI,QAAA,EAAA,YAAA,EAAU;AAAA,GAAA,EACxG,CAAA,EACF,CAAA;AAEJ;ACpBA,SAASoB,KAAAA,CAAK,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,QAAQ,IAAA,EAAM,IAAA,GAAO,SAAA,EAAW,IAAA,EAAK,EAGvE;AACD,EAAA,MAAM,EAAA,GAAK,KAAA,KAAU,IAAA,GAAO,SAAA,GAAY,OAAA;AACxC,EAAA,uBACErB,eAAAA,CAACM,sBAAA,EAAA,EAAK,OAAA,EAAQ,QAAA,EAAS,SAAS,EAAA,EAC9B,QAAA,EAAA;AAAA,oBAAAN,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,YAAA,EAAc,cAAA,EAAgB,eAAA,EAAgB,EACvF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,QAAA,EAAU,EAAA,EAAI,UAAA,EAAY,CAAA,iBAAA,EAAoB,IAAI,CAAA,SAAA,CAAA,EAAa,KAAA,EAAO,CAAA,iBAAA,EAAoB,IAAI,CAAA,MAAA,CAAA,EAAS,EAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,MAC7P,KAAA,IAAS,IAAA,mBACRD,eAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,OAAA,EAAS,YAAA,EAAc,4BAAA,EAA8B,IAAA,EAAM,2BAAA,EAA6B,UAAA,EAAY,CAAA,iBAAA,EAAoB,EAAE,CAAA,SAAA,CAAA,EAAa,KAAA,EAAO,CAAA,iBAAA,EAAoB,EAAE,UAAS,EACrQ,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,KAAA,KAAU,IAAA,GAAO,kBAAA,GAAqB,oBAAA,EAAsB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG,EAAG,CAAA;AAAA,QAAG;AAAA,OAAA,EACxG,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAI,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAChHA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAChH,CAAA;AAEJ;AAsBO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,OAAsB,EAAE,QAAA,EAAU,MAAM,MAAA,EAAQ,QAAA,EAAU,SAAS,QAAA,EAAS;AAElF,EAAA,MAAM,QAAA,GAAsB;AAAA,IAC1B,EAAE,IAAA,EAAM,uBAAA,EAAyB,CAAA,EAAG,iBAAA,EAAmB,GAAG,4EAAA,EAA6E;AAAA,IACvI,EAAE,IAAA,EAAM,oBAAA,EAAsB,CAAA,EAAG,oBAAA,EAAsB,GAAG,sEAAA,EAAkE;AAAA,IAC5H,EAAE,IAAA,EAAM,iBAAA,EAAmB,CAAA,EAAG,oBAAA,EAAsB,GAAG,qEAAA,EAAsE;AAAA,IAC7H,EAAE,IAAA,EAAM,kBAAA,EAAoB,CAAA,EAAG,gBAAA,EAAkB,GAAG,0DAAA,EAA2D;AAAA,IAC/G,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAA,EAAG,mBAAA,EAAqB,GAAG,wDAAA,EAAyD;AAAA,IACnH,EAAE,IAAA,EAAM,sBAAA,EAAwB,CAAA,EAAG,eAAA,EAAiB,GAAG,qDAAA;AAAsD,GAC/G;AAEA,EAAA,MAAM,KAAA,GAAuB;AAAA,IAC3B,EAAE,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,IAAA,EAAM,MAAM,iBAAA,EAAmB,KAAA,EAAO,CAAC,aAAA,EAAe,iBAAiB,mBAAmB,CAAA,EAAG,GAAA,EAAK,aAAA,EAAe,UAAU,KAAA,EAAM;AAAA,IAC3J,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,MAAM,oBAAA,EAAsB,KAAA,EAAO,CAAC,oBAAA,EAAsB,qBAAqB,oBAAA,EAAsB,kBAAkB,GAAG,GAAA,EAAK,kBAAA,EAAoB,UAAU,IAAA,EAAK;AAAA,IAC/L,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,MAAM,mBAAA,EAAqB,KAAA,EAAO,CAAC,mBAAA,EAAqB,eAAe,mBAAA,EAAqB,KAAK,GAAG,GAAA,EAAK,eAAA,EAAiB,UAAU,KAAA;AAAM,GAC7K;AAEA,EAAA,MAAM,aAAA,GAAgC;AAAA,IACpC,EAAE,GAAG,SAAA,EAAW,CAAA,EAAG,CAAC,YAAA,EAAc,QAAA,EAAU,WAAA,EAAa,WAAW,CAAA,EAAE;AAAA,IACtE,EAAE,GAAG,SAAA,EAAW,CAAA,EAAG,CAAC,OAAA,EAAS,SAAA,EAAW,MAAA,EAAQ,SAAS,CAAA,EAAE;AAAA,IAC3D,EAAE,GAAG,OAAA,EAAS,CAAA,EAAG,CAAC,SAAA,EAAW,OAAA,EAAS,SAAS,CAAA;AAAE,GACnD;AAEA,EAAA,uBACED,gBAAC,MAAA,EAAA,EAEC,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,GAAG,MAAM,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,gBAAA,EAAiB,EACxE,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,eAAe,YAAA,EAAc,EAAA,EAAG,EACrD,QAAA,kBAAAA,cAAAA,CAACC,uBAAA,EAAA,EAAM,OAAM,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAU,WAAA,kBAAaD,cAAAA,CAAC,OAAE,SAAA,EAAU,qBAAA,EAAsB,CAAA,EAAI,QAAA,EAAA,qBAAA,EAAmB,CAAA,EACjH,CAAA;AAAA,sBACAA,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,QAAQ,QAAA,EAAU,QAAA,EAAU,GAAA,EAAK,IAAA,EAAM,6BAA6B,aAAA,EAAe,+BAAA,EAAiC,KAAA,EAAO,6BAAA,IAAiC,QAAA,EAAA,uCAAA,EAEzK,CAAA;AAAA,sBACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,IAA8B,QAAA,EAAA,iJAAA,EAE9H,CAAA;AAAA,sBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,EAAA,EAAI,cAAA,EAAgB,QAAA,EAAU,SAAA,EAAW,IAAG,EAC9E,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,YAAA,kBAAcF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAsB,GAAI,QAAA,EAAA,qBAAA,EAAmB,CAAA;AAAA,wBAC/GA,cAAAA,CAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,YAAW,QAAA,EAAS,IAAA,EAAK,OAAA,EAAQ,WAAA,kBAAaF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EAAiB,GAAI,QAAA,EAAA,gBAAA,EAAc;AAAA,OAAA,EAC1H,CAAA;AAAA,sBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAI,MAAA,EAAQ,GAAA,EAAK,cAAc,wBAAA,EAA0B,UAAA,EAAY,yEAAA,EAA2E,SAAA,EAAW,sEAAsE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,+BAAA,IAChU,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0BAAyB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAM,CAAA,EACjE;AAAA,KAAA,EACF,CAAA;AAAA,oBAGAD,gBAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,eAAA,EAAgB,EAClD,QAAA,EAAA;AAAA,sBAAAC,eAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,SAAA,EAAW,UAAU,IAAA,EAAM,gCAAA,EAAkC,aAAA,EAAe,oCAAA,EAAsC,eAAe,WAAA,EAAa,KAAA,EAAO,6BAA6B,YAAA,EAAc,EAAA,IAAM,QAAA,EAAA,qBAAA,EAAmB,CAAA;AAAA,sBACrOA,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,QAAQ,QAAA,EAAU,MAAA,EAAQ,GAAA,EAAK,EAAA,EAAI,gBAAgB,QAAA,EAAU,UAAA,EAAY,UAAU,KAAA,EAAO,+BAAA,IAC9G,QAAA,EAAA,CAAC,gBAAA,EAAkB,mBAAA,EAAqB,eAAA,EAAiB,kBAAkB,eAAA,EAAiB,gBAAgB,EAAE,GAAA,CAAI,CAAC,sBAClHA,cAAAA,CAAC,OAAU,SAAA,EAAW,CAAA,EAAG,OAAO,EAAE,QAAA,EAAU,IAAG,EAAA,EAAvC,CAA0C,CACnD,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,oBAGAA,eAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,SAAS,gBAAA,EAAiB,EACnD,0BAAAD,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,QAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAA,EAAK,EAAA,EAAG,EAC5E,QAAA,EAAA;AAAA,sBAAAC,eAACoB,KAAAA,EAAA,EAAK,OAAM,YAAA,EAAa,KAAA,EAAM,OAAM,KAAA,EAAM,aAAA,EAAc,OAAM,IAAA,EAAK,IAAA,EAAK,WAAU,IAAA,kBAAMpB,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAmB,CAAA,EAAI,CAAA;AAAA,sBAC7HA,eAACoB,KAAAA,EAAA,EAAK,OAAM,eAAA,EAAgB,KAAA,EAAM,QAAO,KAAA,EAAM,eAAA,EAAgB,OAAM,IAAA,EAAK,IAAA,EAAK,eAAc,IAAA,kBAAMpB,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mBAAkB,CAAA,EAAI,CAAA;AAAA,sBACtIA,eAACoB,KAAAA,EAAA,EAAK,OAAM,OAAA,EAAQ,KAAA,EAAM,UAAS,KAAA,EAAM,aAAA,EAAc,OAAM,IAAA,EAAK,IAAA,EAAK,WAAU,IAAA,kBAAMpB,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAiB,CAAA,EAAI,CAAA;AAAA,sBACzHA,eAACoB,KAAAA,EAAA,EAAK,OAAM,QAAA,EAAS,KAAA,EAAM,YAAW,KAAA,EAAM,SAAA,EAAU,OAAM,IAAA,EAAK,IAAA,EAAK,WAAU,IAAA,kBAAMpB,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sBAAqB,CAAA,EAAI;AAAA,KAAA,EAC9H,CAAA,EACF,CAAA;AAAA,oBAGAD,gBAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,WAAA,EAAY,EAC9C,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,UAAU,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,aAAA,EAAc,EACtE,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,aAAA,EAAe,+BAAA,EAAiC,KAAA,EAAO,6BAAA,IAAiC,QAAA,EAAA,oCAAA,EAAkC,CAAA;AAAA,wBACrLA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAG,QAAA,EAAA,iEAAA,EAA+D;AAAA,OAAA,EAC7K,CAAA;AAAA,sBACAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAA,EAAK,EAAA,IACxE,QAAA,EAAA,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,qBACbD,gBAACM,sBAAA,EAAA,EAAe,OAAA,EAAQ,QAAA,EAAS,OAAA,EAAS,EAAA,EACxC,QAAA,EAAA;AAAA,wBAAAL,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,6BAAA,EAA+B,OAAO,0BAAA,EAA4B,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,QAAA,EAAU,IAAI,YAAA,EAAc,EAAA,EAAG,EACxP,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,MAAM,CAAA,EACxB,CAAA;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA+B,YAAA,EAAc,CAAA,EAAE,EAAI,YAAE,CAAA,EAAE,CAAA;AAAA,wBAC/GA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAI,YAAE,CAAA,EAAE;AAAA,OAAA,EAAA,EAL/F,CAAA,CAAE,CAMb,CACD,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,oBAGAD,gBAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,WAAA,EAAY,EAC9C,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,UAAU,YAAA,EAAc,EAAA,EAAG,EAClD,QAAA,kBAAAA,cAAAA,CAAC,IAAA,EAAA,EAAG,OAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,aAAA,EAAe,iCAAiC,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,sBAAA,EAAoB,CAAA,EACzK,CAAA;AAAA,sBACAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,qBAAqB,gBAAA,EAAkB,GAAA,EAAK,IAAI,UAAA,EAAY,OAAA,IACxF,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,qBACVD,eAAAA,CAAC,KAAA,EAAA,EAAiB,KAAA,EAAO;AAAA,QACvB,YAAA,EAAc,wBAAA;AAAA,QAA0B,OAAA,EAAS,EAAA;AAAA,QACjD,UAAA,EAAY,CAAA,CAAE,QAAA,GAAW,2BAAA,GAA8B,wBAAA;AAAA,QACvD,KAAA,EAAO,CAAA,CAAE,QAAA,GAAW,iCAAA,GAAoC,6BAAA;AAAA,QACxD,SAAA,EAAW,CAAA,CAAE,QAAA,GAAW,uBAAA,GAA0B;AAAA,OACpD,EACE,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC1D,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA4B,EAAI,YAAE,IAAA,EAAK,CAAA;AAAA,UAC3D,CAAA,CAAE,QAAA,mBAAWA,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAM,QAAA,EAAS,OAAA,EAAQ,QAAA,EAAS,IAAA,EAAK,OAAA,EAAQ,QAAA,EAAA,SAAA,EAAO,CAAA,GAAW;AAAA,SAAA,EACtF,CAAA;AAAA,wBACAF,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,EAAI,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,UAAA,EAAY,GAAA,EAAK,GAAE,EAC3E,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,aAAA,EAAe,+BAAA,EAAgC,EAAI,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM,CAAA;AAAA,0BAC7GA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,OAAA,EAAS,GAAA,EAAG,EAAI,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK;AAAA,SAAA,EAC/E,CAAA;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAQ,QAAA,EAAU,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,UAAU,GAAA,EAAK,EAAA,EAAG,EAC/E,QAAA,EAAA,CAAA,CAAE,MAAM,GAAA,CAAI,CAAC,CAAA,qBACZD,gBAAC,KAAA,EAAA,EAAY,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,MAAM,+BAAA,EAAiC,OAAA,EAAS,EAAE,QAAA,GAAW,GAAA,GAAK,GAAE,EACvI,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAA,EAA0B,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,CAAA,CAAE,QAAA,GAAW,iCAAA,GAAoC,kCAAiC,EAAG,CAAA;AAAA,UAAG;AAAA,SAAA,EAAA,EADrJ,CAEV,CACD,CAAA,EACH,CAAA;AAAA,wBACAA,cAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAO;AAAA,UACb,KAAA,EAAO,MAAA;AAAA,UAAQ,MAAA,EAAQ,EAAA;AAAA,UAAI,MAAA,EAAQ,MAAA;AAAA,UAAQ,YAAA,EAAc,uBAAA;AAAA,UAAyB,MAAA,EAAQ,SAAA;AAAA,UAAW,IAAA,EAAM,2BAAA;AAAA,UAC3G,UAAA,EAAY,CAAA,CAAE,QAAA,GAAW,iCAAA,GAAoC,0BAAA;AAAA,UAC7D,KAAA,EAAO,CAAA,CAAE,QAAA,GAAW,iCAAA,GAAoC;AAAA,SAC1D,EAAI,YAAE,GAAA,EAAI;AAAA,OAAA,EAAA,EAzBF,CAAA,CAAE,IA0BZ,CACD,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,oBAGAA,eAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,WAAA,EAAY,EAC9C,QAAA,kBAAAD,gBAACM,sBAAA,EAAA,EAAK,OAAA,EAAQ,MAAA,EAAO,OAAA,EAAS,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,QAAA,EAAU,YAAA,EAAc,wBAAA,EAAyB,EACrG,QAAA,EAAA;AAAA,sBAAAL,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,cAAA,EAAgB,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,OAAO,6BAAA,EAA+B,YAAA,EAAc,EAAA,EAAG,EACrH,WAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,qBAAMA,cAAAA,CAAC,GAAA,EAAA,EAAU,SAAA,EAAU,cAAA,EAAe,OAAO,EAAE,QAAA,EAAU,IAAG,EAAA,EAAlD,CAAqD,CAAE,CAAA,EAC7F,CAAA;AAAA,sBACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAQ,QAAA,EAAU,QAAA,EAAU,GAAA,EAAK,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA+B,UAAA,EAAY,0BAAA,IAA8B,QAAA,EAAA,gJAAA,EAEhK,CAAA;AAAA,sBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,gBAAgB,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,SAAA,EAAW,IAAG,EACpG,QAAA,EAAA;AAAA,wBAAAC,eAACe,wBAAA,EAAA,EAAO,IAAA,EAAK,MAAK,QAAA,EAAS,IAAA,EAAK,OAAM,QAAA,EAAS,CAAA;AAAA,wBAC/ChB,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,SAAA,EAAW,QAAO,EAC9B,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,0BACxGA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAG,QAAA,EAAA,2BAAA,EAAyB;AAAA,SAAA,EACtH;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,oBAGAD,eAAAA,CAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,WAAA,EAAY,EACtE,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,QAAQ,UAAA,EAAY,SAAA,EAAW,QAAA,EAAU,IAAA,EAAM,6BAA6B,aAAA,EAAe,+BAAA,EAAiC,KAAA,EAAO,6BAAA,IAAiC,QAAA,EAAA,kBAAA,EAAgB,CAAA;AAAA,sBACjMA,cAAAA,CAACqB,2BAAA,EAAA,EAAU,WAAA,EAAY,KAAI,KAAA,EAAO;AAAA,QAChC,EAAE,EAAA,EAAI,GAAA,EAAK,KAAA,EAAO,yBAAA,EAA2B,SAAS,gIAAA,EAAiI;AAAA,QACvL,EAAE,EAAA,EAAI,GAAA,EAAK,KAAA,EAAO,iCAAA,EAAmC,SAAS,8IAAA,EAA0I;AAAA,QACxM,EAAE,EAAA,EAAI,GAAA,EAAK,KAAA,EAAO,4BAAA,EAA8B,SAAS,oIAAA,EAAqI;AAAA,QAC9L,EAAE,EAAA,EAAI,GAAA,EAAK,KAAA,EAAO,yBAAA,EAA2B,SAAS,yGAAA;AAA4G,OACpK,EAAG;AAAA,KAAA,EACL,CAAA;AAAA,oBAGArB,cAAAA,CAAC,SAAA,EAAA,EAAQ,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,gBAAA,EAAiB,EACnD,QAAA,kBAAAD,eAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,YAAA,EAAc,wBAAA,EAA0B,OAAA,EAAS,WAAA,EAAa,SAAA,EAAW,QAAA,EAAU,UAAA,EAAY,2BAAA,EAA6B,KAAA,EAAO,iCAAA,EAAkC,EACjL,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,aAAA,EAAe,+BAAA,EAAgC,EAAG,QAAA,EAAA,4BAAA,EAA0B,CAAA;AAAA,sBACvIA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,IAAA,EAAM,+BAAA,EAAiC,OAAA,EAAS,GAAA,IAAM,QAAA,EAAA,yCAAA,EAAuC,CAAA;AAAA,sBAC/ID,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,EAAA,EAAI,cAAA,EAAgB,QAAA,EAAU,SAAA,EAAW,IAAG,EAC9E,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,YAAO,KAAA,EAAO,EAAE,QAAQ,EAAA,EAAI,OAAA,EAAS,UAAU,MAAA,EAAQ,MAAA,EAAQ,cAAc,uBAAA,EAAyB,MAAA,EAAQ,WAAW,IAAA,EAAM,2BAAA,EAA6B,YAAY,iCAAA,EAAmC,KAAA,EAAO,iCAAA,EAAkC,EAAG,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,wBAClQA,eAAC,QAAA,EAAA,EAAO,KAAA,EAAO,EAAE,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAS,QAAA,EAAU,MAAA,EAAQ,MAAA,EAAQ,cAAc,uBAAA,EAAyB,MAAA,EAAQ,WAAW,IAAA,EAAM,2BAAA,EAA6B,YAAY,kCAAA,EAAoC,KAAA,EAAO,iCAAA,EAAkC,EAAG,QAAA,EAAA,aAAA,EAAW;AAAA,OAAA,EACtQ;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,oBAGAD,eAAAA,CAAC,QAAA,EAAA,EAAO,OAAO,EAAE,SAAA,EAAW,yCAAwC,EAClE,QAAA,EAAA;AAAA,sBAAAA,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,GAAG,MAAM,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,EAAA,EAAI,UAAU,MAAA,EAAQ,cAAA,EAAgB,eAAA,EAAiB,OAAA,EAAS,aAAY,EACvH,QAAA,EAAA;AAAA,wBAAAA,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,KAAI,EAC1B,QAAA,EAAA;AAAA,0BAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,YAAA,EAAc,EAAA,EAAG,EAC7E,QAAA,EAAA;AAAA,4BAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,2BAAA,EAA6B,OAAO,0BAAA,EAA4B,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAS,EAAG,0BAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAM,CAAA,EAAE,CAAA;AAAA,4BACpRA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,MAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAG,QAAA,EAAA,MAAA,EAAI;AAAA,WAAA,EAChG,CAAA;AAAA,0BACAA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAG,QAAA,EAAA,wCAAA,EAAsC;AAAA,SAAA,EAC5I,CAAA;AAAA,QACC,cAAc,GAAA,CAAI,CAAC,CAAA,qBAClBD,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAC,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,kCAAkC,aAAA,EAAe,oCAAA,EAAsC,aAAA,EAAe,WAAA,EAAa,OAAO,2BAAA,EAA6B,YAAA,EAAc,EAAA,EAAG,EAAI,YAAE,CAAA,EAAE,CAAA;AAAA,0BACpMA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAK,CAAA,EAAE,EAC5D,QAAA,EAAA,CAAA,CAAE,CAAA,CAAE,IAAI,CAAC,CAAA,qBAAMA,cAAAA,CAAC,GAAA,EAAA,EAAU,IAAA,EAAK,GAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA4B,gBAAgB,MAAA,EAAO,EAAI,QAAA,EAAA,CAAA,EAAA,EAA1H,CAA4H,CAAI,CAAA,EAC1J;AAAA,SAAA,EAAA,EAJQ,CAAA,CAAE,CAKZ,CACD;AAAA,OAAA,EACH,CAAA;AAAA,sBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAgB,iBAAiB,UAAA,EAAY,QAAA,EAAU,SAAS,WAAA,EAAa,SAAA,EAAW,yCAAwC,EACtK,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAG,QAAA,EAAA,sCAAA,EAAiC,CAAA;AAAA,wBAC7HA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EACxE,QAAA,EAAA,CAAC,qBAAqB,gBAAA,EAAkB,kBAAkB,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,qBAAMA,cAAAA,CAAC,OAAU,SAAA,EAAW,CAAA,EAAG,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAG,EAAA,EAAvC,CAA0C,CAAE,CAAA,EAC9H;AAAA,OAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;ACzOO,SAAS,iBAAA,GAAoB;AAClC,EAAA,uBACED,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,eAAC,YAAA,EAAA,EAAa,CAAA;AAAA,oBACdA,eAAC,iBAAA,EAAA,EAAkB;AAAA,GAAA,EACrB,CAAA;AAEJ;ACMA,IAAM,GAAA,GAAM,CAAC,KAAA,EAAO,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAC5D,IAAM,GAAA,GAAgC;AAAA,EACpC,OAAA,EAAS,EAAE,KAAA,EAAO,MAAA,EAAQ,OAAO,SAAA,EAAU;AAAA,EAC3C,KAAA,EAAO,EAAE,KAAA,EAAO,QAAA,EAAU,OAAO,OAAA,EAAQ;AAAA,EACzC,MAAA,EAAQ,EAAE,KAAA,EAAO,OAAA,EAAS,OAAO,QAAA,EAAS;AAAA,EAC1C,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAU,OAAO,QAAA;AACpC,CAAA;AAQA,IAAM,MAAA,GAAqC;AAAA,EACzC,GAAG,CAAC,EAAE,GAAG,SAAA,EAAW,CAAA,EAAG,WAAW,CAAA;AAAA,EAClC,CAAA,EAAG,CAAC,EAAE,CAAA,EAAG,OAAA,EAAS,CAAA,EAAG,eAAA,EAAgB,EAAG,EAAE,CAAA,EAAG,QAAA,EAAU,CAAA,EAAG,WAAW,CAAA;AAAA,EACrE,GAAG,CAAC,EAAE,GAAG,QAAA,EAAU,CAAA,EAAG,cAAc,CAAA;AAAA,EACpC,GAAG,CAAC,EAAE,GAAG,SAAA,EAAW,CAAA,EAAG,WAAW,CAAA;AAAA,EAClC,IAAI,CAAC,EAAE,GAAG,SAAA,EAAW,CAAA,EAAG,WAAU,EAAG,EAAE,GAAG,OAAA,EAAS,CAAA,EAAG,cAAa,EAAG,EAAE,GAAG,QAAA,EAAU,CAAA,EAAG,WAAW,CAAA;AAAA,EACnG,IAAI,CAAC,EAAE,GAAG,QAAA,EAAU,CAAA,EAAG,WAAW,CAAA;AAAA,EAClC,IAAI,CAAC,EAAE,GAAG,OAAA,EAAS,CAAA,EAAG,aAAa,CAAA;AAAA,EACnC,IAAI,CAAC,EAAE,GAAG,SAAA,EAAW,CAAA,EAAG,aAAa,CAAA;AAAA,EACrC,IAAI,CAAC,EAAE,GAAG,QAAA,EAAU,CAAA,EAAG,WAAW,CAAA;AAAA,EAClC,IAAI,CAAC,EAAE,GAAG,QAAA,EAAU,CAAA,EAAG,WAAW,CAAA;AAAA,EAClC,IAAI,CAAC,EAAE,GAAG,SAAA,EAAW,CAAA,EAAG,YAAY;AACtC,CAAA;AAOA,SAAS,OAAA,CAAQ,EAAE,GAAA,EAAK,KAAA,EAAM,EAAiB;AAC7C,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,GAAG,CAAA,IAAK,EAAC;AAC5B,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,SAAA,EAAW,KAAK,OAAA,EAAS,CAAA,EAAG,YAAY,wBAAA,EAA0B,SAAA,EAAW,iDAAiD,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,GAAA,EAAK,GAAE,EAC3L,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO;AAAA,MACX,SAAA,EAAW,YAAA;AAAA,MAAc,OAAA,EAAS,aAAA;AAAA,MAAe,UAAA,EAAY,QAAA;AAAA,MAAU,cAAA,EAAgB,QAAA;AAAA,MACvF,QAAA,EAAU,EAAA;AAAA,MAAI,MAAA,EAAQ,EAAA;AAAA,MAAI,OAAA,EAAS,OAAA;AAAA,MAAS,YAAA,EAAc,yBAAA;AAAA,MAC1D,IAAA,EAAM,2BAAA;AAAA,MAA6B,kBAAA,EAAoB,cAAA;AAAA,MACvD,UAAA,EAAY,QAAQ,0BAAA,GAA6B,aAAA;AAAA,MACjD,KAAA,EAAO,QAAQ,iCAAA,GAAoC;AAAA,OACjD,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,oBACRA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,GAAA,EAAK,GAAE,EAC5D,QAAA,EAAA,GAAA,CAAI,MAAM,CAAA,EAAG,CAAC,EAAE,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AAC7B,MAAA,MAAM,GAAA,GAAM,GAAA,CAAI,CAAA,CAAE,CAAC,CAAA;AACnB,MAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAY,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,OAAA,EAAS,SAAA,EAAW,cAAc,uBAAA,EAAyB,UAAA,EAAY,CAAA,WAAA,EAAc,GAAA,CAAI,KAAK,CAAA,IAAA,CAAA,EAAQ,IAAA,EAAM,2BAAA,EAA6B,OAAO,CAAA,WAAA,EAAc,GAAA,CAAI,KAAK,CAAA,+BAAA,CAAA,EAAmC,UAAU,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,YAAA,EAAc,YAAW,EAChV,QAAA,EAAA;AAAA,wBAAAC,eAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,GAAG,MAAA,EAAQ,CAAA,EAAG,YAAA,EAAc,yBAAA,EAA2B,YAAY,CAAA,WAAA,EAAc,GAAA,CAAI,KAAK,CAAA,KAAA,CAAA,EAAS,IAAA,EAAM,QAAO,EAAG,CAAA;AAAA,wBACzIA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,QAAA,EAAU,YAAA,EAAc,UAAA,EAAW,EAAI,QAAA,EAAA,CAAA,CAAE,CAAA,EAAE;AAAA,OAAA,EAAA,EAF5D,CAGV,CAAA;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAQA,IAAM,MAAA,GAAwB;AAAA,EAC5B,EAAE,CAAA,EAAG,kBAAA,EAAoB,IAAA,EAAM,oBAAA,EAAiB,GAAG,SAAA,EAAU;AAAA,EAC7D,EAAE,CAAA,EAAG,YAAA,EAAc,IAAA,EAAM,oBAAA,EAAiB,GAAG,OAAA,EAAQ;AAAA,EACrD,EAAE,CAAA,EAAG,SAAA,EAAW,IAAA,EAAM,oBAAA,EAAiB,GAAG,QAAA;AAC5C,CAAA;AAGO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIG,eAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,eAAS,OAAO,CAAA;AAExC,EAAA,MAAM,KAAA,GAA2B,CAAC,GAAG,KAAA,CAAY,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,EAAG,GAAG,MAAM,IAAA,CAAK,EAAE,QAAQ,EAAA,EAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAC,CAAC,CAAA;AAC9G,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,gBAAA,EAAiB,EACxE,QAAA,EAAA;AAAA,oBAAAA,gBAAC,QAAA,EAAA,EAAO,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,YAAA,EAAc,GAAA,EAAK,EAAA,EAAI,OAAO,MAAA,EAAQ,OAAA,EAAS,UAAA,EAAY,SAAA,EAAW,8CAA6C,EAC/J,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,GAAE,EACnF,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA+B,aAAA,EAAe,SAAA,IAAa,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,wBACrIA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAG,QAAA,EAAA,sCAAA,EAAiC;AAAA,OAAA,EACtI,CAAA;AAAA,sBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,QAAO,EAAG,QAAA,kBAAAA,cAAAA,CAACE,wBAAA,EAAA,EAAO,WAAA,kBAAaF,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,aAAA,EAAc,CAAA,EAAI,QAAA,EAAA,WAAA,EAAS,CAAA,EAAS;AAAA,KAAA,EACrJ,CAAA;AAAA,oBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,iBAAiB,GAAA,EAAK,EAAA,EAAI,UAAU,MAAA,EAAQ,MAAA,EAAQ,eAAc,EACrI,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC3D,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,SAAS,aAAA,EAAe,UAAA,EAAY,UAAU,GAAA,EAAK,CAAA,EAAG,QAAQ,EAAA,EAAI,OAAA,EAAS,gBAAgB,YAAA,EAAc,uBAAA,EAAyB,YAAY,wBAAA,EAA0B,SAAA,EAAW,+CAA8C,EAC7O,QAAA,EAAA;AAAA,0BAAAC,eAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,YAAA,EAAW,iBAAA,EAAkB,SAAS,MAAM;AAAA,UAAC,CAAA,EAAG,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,IAAI,MAAA,EAAQ,MAAA,EAAQ,UAAA,EAAY,aAAA,EAAe,KAAA,EAAO,0BAAA,EAA4B,MAAA,EAAQ,SAAA,EAAW,UAAU,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAwB,EAAG,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wBAAuB,CAAA,EAAE,CAAA;AAAA,0BAC5WA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAA,EAAmB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,2BAAA,EAA4B,EAAG,CAAA;AAAA,0BAC7FD,eAAAA,CAAC,MAAA,EAAA,EAAK,OAAO,EAAE,OAAA,EAAS,eAAe,UAAA,EAAY,QAAA,EAAU,KAAK,CAAA,EAAG,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA+B,YAAY,QAAA,EAAU,OAAA,EAAS,SAAQ,EAAG,QAAA,EAAA;AAAA,YAAA,OAAA;AAAA,4BAAKC,eAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,2BAAA,IAA+B,QAAA,EAAA,QAAA,EAAC,CAAA;AAAA,YAAO;AAAA,WAAA,EAAM,CAAA;AAAA,0BAChQA,eAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,YAAA,EAAW,aAAA,EAAc,SAAS,MAAM;AAAA,UAAC,CAAA,EAAG,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,IAAI,MAAA,EAAQ,MAAA,EAAQ,UAAA,EAAY,aAAA,EAAe,KAAA,EAAO,0BAAA,EAA4B,MAAA,EAAQ,SAAA,EAAW,UAAU,EAAA,EAAI,YAAA,EAAc,uBAAA,EAAwB,EAAG,QAAA,kBAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAwB,CAAA,EAAE;AAAA,SAAA,EAC3W,CAAA;AAAA,wBACAA,eAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,WAAU,UAAA,EAAW,OAAA,EAAQ,IAAA,EAAK,OAAA,EAAQ,QAAA,EAAA,OAAA,EAAK;AAAA,OAAA,EACjE,CAAA;AAAA,sBACAH,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC3D,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAACsB,6BAAA,EAAA,EAAY,OAAA,EAAQ,QAAA,EAAS,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,CAAC,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,QAAO,EAAG,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,OAAA,EAAQ,EAAG,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,QAAA,EAAS,EAAG,EAAE,QAAA,EAAU,IAAA,EAAM,CAAA,EAAG,CAAA;AAAA,wBACnLtB,cAAAA,CAACI,kCAAA,EAAA,EAAiB,KAAA,EAAO,IAAA,EAAM,QAAA,EAAU,OAAA,EAAS,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAQ,EAAG,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO,EAAG,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,CAAA,EAAG;AAAA,OAAA,EACnK;AAAA,KAAA,EACF,CAAA;AAAA,oBACAJ,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,EAAA,EAAG,EAC7B,QAAA,kBAAAA,eAACuB,kCAAA,EAAA,EAAiB,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,WAAW,KAAA,EAAO;AAAA,MAC3D,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,OAAO,EAAA,EAAG;AAAA,MACxC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,CAAA,EAAG,IAAA,kBAAMvB,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAgB,CAAA,EAAG;AAAA,MACvF,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,OAAO,CAAA,EAAE;AAAA,MAC3C,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,SAAA,EAAW,OAAO,CAAA,EAAE;AAAA,MAC9C,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,OAAO,CAAA;AAAE,OAC5C,CAAA,EACL,CAAA;AAAA,oBACAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,wBAAA,EAA0B,QAAA,EAAU,QAAA,EAAU,SAAA,EAAW,6CAAA,EAA+C,YAAY,wBAAA,EAAyB,EACvK,QAAA,kBAAAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,gBAAA,EAAiB,EAClE,QAAA,EAAA;AAAA,MAAA,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,qBACRC,cAAAA,CAAC,SAAY,KAAA,EAAO,EAAE,OAAA,EAAS,UAAA,EAAY,IAAA,EAAM,4DAAA,EAA8D,eAAe,OAAA,EAAS,aAAA,EAAe,WAAA,EAAa,KAAA,EAAO,2BAAA,EAA6B,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,+CAAA,EAAgD,EAAI,QAAA,EAAA,CAAA,EAAA,EAAlS,CAAoS,CAC/S,CAAA;AAAA,MACA,KAAA,CAAM,GAAA,CAAI,CAAC,GAAA,EAAK,CAAA,KAAM,GAAA,IAAO,IAAA,mBAC1BA,cAAAA,CAAC,KAAA,EAAA,EAAY,KAAA,EAAO,EAAE,SAAA,EAAW,GAAA,EAAK,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,+CAAA,EAAgD,EAAA,EAA7H,CAAgI,CAAA,mBAC1IA,cAAAA,CAAC,OAAA,EAAA,EAAgB,GAAA,EAAU,KAAA,EAAO,GAAA,KAAQ,EAAA,EAAA,EAA5B,CAAgC,CAAE;AAAA,KAAA,EACtD,CAAA,EACF,CAAA;AAAA,oBACAD,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,SAAA,EAAW,IAAG,EAC1B,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAACwB,kCAAa,IAAA,kBAAMxB,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wBAAA,EAAyB,CAAA,EAAI,QAAA,EAAA,oBAAA,EAAe,CAAA;AAAA,sBAC7EA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,GAAG,SAAA,EAAW,EAAA,IACxE,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACdD,eAAAA,CAAC,SAAY,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,aAAa,YAAA,EAAc,uBAAA,EAAyB,YAAY,wBAAA,EAA0B,SAAA,EAAW,+CAA8C,EAChO,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,OAAO,CAAA,EAAG,MAAA,EAAQ,IAAI,YAAA,EAAc,yBAAA,EAA2B,YAAY,CAAA,WAAA,EAAc,GAAA,CAAI,EAAE,CAAC,CAAA,CAAE,KAAK,CAAA,KAAA,CAAA,EAAS,IAAA,EAAM,QAAO,EAAG,CAAA;AAAA,wBAC/ID,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAE,EACjC,QAAA,EAAA;AAAA,0BAAAC,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,CAAA,CAAE,CAAA,EAAE,CAAA;AAAA,0BAC9FA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAI,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK;AAAA,SAAA,EACrG,CAAA;AAAA,wBACAA,cAAAA,CAACyB,sBAAA,EAAA,EAAK,KAAA,EAAO,IAAI,CAAA,CAAE,CAAC,CAAA,CAAE,KAAA,EAAO,KAAG,IAAA,EAAE,QAAA,EAAA,GAAA,CAAI,CAAA,CAAE,CAAC,EAAE,KAAA,EAAM;AAAA,OAAA,EAAA,EANzC,CAOV,CACD,CAAA,EACH;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AChIA,IAAM,KAAA,GAAgB;AAAA,EACpB;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IAAW,IAAA,EAAM,SAAA;AAAA,IAAW,OAAA,EAAS,kCAAA;AAAA,IAAoC,OAAA,EAAS,CAAA;AAAA,IAAG,MAAA,EAAQ,CAAA;AAAA,IAAG,GAAA,EAAK,gBAAA;AAAA,IACzG,QAAA,EAAU,CAAC,aAAA,EAAe,kBAAA,EAAoB,qBAAqB,cAAc;AAAA,GACnF;AAAA,EACA;AAAA,IACE,EAAA,EAAI,KAAA;AAAA,IAAO,IAAA,EAAM,KAAA;AAAA,IAAO,OAAA,EAAS,mCAAA;AAAA,IAAqC,OAAA,EAAS,EAAA;AAAA,IAAI,MAAA,EAAQ,EAAA;AAAA,IAAI,GAAA,EAAK,oBAAA;AAAA,IAAsB,QAAA,EAAU,IAAA;AAAA,IACpI,UAAU,CAAC,sBAAA,EAAwB,sBAAsB,kBAAA,EAAoB,gBAAA,EAAkB,sBAAsB,cAAc;AAAA,GACrI;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IAAc,IAAA,EAAM,YAAA;AAAA,IAAc,OAAA,EAAS,6BAAA;AAAA,IAA+B,OAAA,EAAS,IAAA;AAAA,IAAM,MAAA,EAAQ,IAAA;AAAA,IAAM,GAAA,EAAK,eAAA;AAAA,IAChH,UAAU,CAAC,mBAAA,EAAqB,cAAc,YAAA,EAAc,mBAAA,EAAqB,aAAa,kBAAkB;AAAA;AAEpH,CAAA;AAOA,SAAS,KAAA,CAAM,EAAE,IAAA,EAAM,KAAA,EAAM,EAAe;AAC1C,EAAA,IAAI,IAAA,CAAK,WAAW,IAAA,EAAM;AACxB,IAAA,uBAAOzB,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA+B,aAAA,EAAe,QAAA,EAAS,EAAG,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,EACjI;AACA,EAAA,MAAM,GAAA,GAAM,KAAA,KAAU,QAAA,GAAW,IAAA,CAAK,SAAS,IAAA,CAAK,OAAA;AACpD,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,UAAA,EAAY,GAAA,EAAK,CAAA,EAAE,EAC5D,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA+B,aAAA,EAAe,QAAA,EAAS,EAAG,QAAA,EAAA;AAAA,MAAA,GAAA;AAAA,MAAE;AAAA,KAAA,EAAI,CAAA;AAAA,oBACzHC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,MAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA4B,EAAG,QAAA,EAAA,MAAA,EAAI;AAAA,GAAA,EAClG,CAAA;AAEJ;AAOA,SAAS,QAAA,CAAS,EAAE,IAAA,EAAM,KAAA,EAAM,EAAkB;AAChD,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AACtB,EAAA,uBACED,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,IACV,QAAA,EAAU,UAAA;AAAA,IAAY,OAAA,EAAS,MAAA;AAAA,IAAQ,aAAA,EAAe,QAAA;AAAA,IAAU,GAAA,EAAK,EAAA;AAAA,IAAI,OAAA,EAAS,EAAA;AAAA,IAAI,IAAA,EAAM,CAAA;AAAA,IAAG,QAAA,EAAU,CAAA;AAAA,IACzG,YAAA,EAAc,8BAAA;AAAA,IAAgC,UAAA,EAAY,wBAAA;AAAA,IAC1D,SAAA,EAAW,WACP,uGAAA,GACA;AAAA,GACN,EACE,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,eAAA,EAAgB,EACnF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,IAAA,CAAK,IAAA,EAAK,CAAA;AAAA,MACpG,QAAA,mBAAWA,cAAAA,CAACC,uBAAA,EAAA,EAAM,OAAM,MAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,QAAA,EAAA,cAAA,EAAY,CAAA,GAAW;AAAA,KAAA,EAC3E,CAAA;AAAA,oBACAD,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,4BAA4B,SAAA,EAAW,EAAA,EAAI,UAAU,QAAA,EAAS,EAAI,eAAK,OAAA,EAAQ,CAAA;AAAA,oBACpJA,cAAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAY,KAAA,EAAc,CAAA;AAAA,IAChC,QAAA,mBACGA,cAAAA,CAACE,wBAAA,EAAA,EAAO,MAAK,OAAA,EAAQ,SAAA,EAAS,MAAE,QAAA,EAAA,IAAA,CAAK,GAAA,EAAI,oBACzCF,cAAAA,CAACE,4BAAO,SAAA,EAAS,IAAA,EAAC,SAAQ,SAAA,EAAU,UAAA,EAAW,QAAA,EAAU,QAAA,EAAA,IAAA,CAAK,GAAA,EAAI,CAAA;AAAA,oBACtEF,eAACY,yBAAA,EAAA,EAAQ,CAAA;AAAA,oBACTZ,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC7D,QAAA,EAAA,IAAA,CAAK,SAAS,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACrBD,eAAAA,CAAC,KAAA,EAAA,EAAY,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,KAAK,EAAA,EAAI,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,4BAA2B,EAC7I,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,eAAA,EAAgB,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,gCAAA,EAAiC,EAAG,CAAA;AAAA,MAAG;AAAA,KAAA,EAAA,EAD1F,CAEV,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,IAAM,GAAA,GAAuB;AAAA,EAC3B,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,2BAAA,EAA6B,SAAS,sFAAA,EAAkF;AAAA,EAC3I,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,4BAAA,EAA8B,SAAS,qEAAA,EAAsE;AAAA,EAChI,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,qCAAA,EAAuC,SAAS,0EAAA,EAA2E;AAAA,EAC9I,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,yCAAA,EAA2C,SAAS,yDAAA;AACzE,CAAA;AAGO,SAAS,eAAA,GAAkB;AAChC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIG,eAAgB,SAAS,CAAA;AACnD,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,EAAM,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,gBAAA,EAAiB,EACxE,QAAA,EAAA;AAAA,oBAAAA,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,aAAA,EAAe,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,KAAK,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,YAAA,EAAc,IAAG,EAC3H,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAACwB,8BAAA,EAAA,EAAa,KAAA,EAAM,MAAA,EAAO,IAAA,kBAAMxB,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAsB,CAAA,EAAI,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,sBAC/EA,cAAAA,CAAC,IAAA,EAAA,EAAG,OAAO,EAAE,MAAA,EAAQ,GAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA+B,eAAe,QAAA,EAAU,QAAA,EAAU,KAAK,QAAA,EAAU,SAAA,IAAa,QAAA,EAAA,qCAAA,EAAmC,CAAA;AAAA,sBACnMA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,4BAA4B,QAAA,EAAU,GAAA,EAAK,QAAA,EAAU,QAAA,IAAY,QAAA,EAAA,uEAAA,EAAqE,CAAA;AAAA,sBAC3MD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,SAAA,EAAW,GAAE,EAChF,QAAA,EAAA;AAAA,wBAAAC,cAAAA;AAAA,UAACI,kCAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,KAAA;AAAA,YAAO,QAAA,EAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAU,CAAA;AAAA,YAClD,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU,EAAG,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,UAAU;AAAA;AAAA,SACtF;AAAA,wBACAJ,cAAAA,CAACC,uBAAA,EAAA,EAAM,OAAM,OAAA,EAAQ,OAAA,EAAQ,WAAU,QAAA,EAAA,UAAA,EAAQ;AAAA,OAAA,EACjD;AAAA,KAAA,EACF,CAAA;AAAA,oBACAD,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,EAAA,EAAI,UAAA,EAAY,SAAA,EAAW,QAAA,EAAU,MAAA,EAAO,EAC7E,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,qBAAMA,cAAAA,CAAC,QAAA,EAAA,EAAoB,IAAA,EAAM,CAAA,EAAG,KAAA,EAAA,EAAf,CAAA,CAAE,EAA2B,CAAE,CAAA,EAClE,CAAA;AAAA,oBACAA,cAAAA,CAAC0B,uBAAA,EAAA,EAAM,QAAO,aAAA,EAAc,KAAA,EAAM,0BAAyB,IAAA,kBAAM1B,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAoB,CAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,IAAM,QAAA,EAAA,6FAAA,EAAsF,CAAA;AAAA,oBACtND,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,SAAA,EAAW,IAAG,EAC1B,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,QAAQ,SAAA,EAAW,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,+BAA+B,aAAA,EAAe,QAAA,EAAU,SAAA,EAAW,QAAA,IAAY,QAAA,EAAA,4BAAA,EAA0B,CAAA;AAAA,sBACnLA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA4B,SAAA,EAAW,QAAA,IAAY,QAAA,EAAA,sDAAA,EAAoD,CAAA;AAAA,sBACrLA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,QAAA,IACnC,QAAA,kBAAAA,cAAAA,CAACqB,2BAAA,EAAA,EAAU,KAAA,EAAO,KAAK,CAAA,EACzB;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;ACzGA,SAAS,IAAI,EAAE,KAAA,EAAO,IAAA,EAAM,QAAA,EAAU,KAAI,EAAa;AACrD,EAAA,uBACEtB,eAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,QAAQ,mBAAA,EAAqB,WAAA,EAAa,KAAK,EAAA,EAAI,OAAA,EAAS,UAAU,UAAA,EAAY,GAAA,GAAM,eAAe,QAAA,EAAU,SAAA,EAAW,8CAA6C,EAC9L,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,CAAA,EAAE,EAC7D,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAACQ,2BAAO,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MACb,IAAA,mBAAOR,cAAAA,CAAC,MAAA,EAAA,EAAK,OAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,2BAAA,EAA6B,QAAA,EAAU,QAAA,EAAS,EAAI,gBAAK,CAAA,GAAU;AAAA,KAAA,EAC1I,CAAA;AAAA,oBACAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,CAAA,IAAM,QAAA,EAAS;AAAA,GAAA,EACzC,CAAA;AAEJ;AAEA,SAAS,KAAA,CAAM,EAAE,QAAA,EAAS,EAA4B;AACpD,EAAA,uBAAOA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,UAAA,EAAY,wBAAA,EAA0B,YAAA,EAAc,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA+C,OAAA,EAAS,eAAA,IAAoB,QAAA,EAAS,CAAA;AACrM;AAEA,SAAS,UAAA,GAAa;AACpB,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAIG,eAAS,kDAAkD,CAAA;AACjF,EAAA,uBACEJ,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,eAAC,GAAA,EAAA,EAAI,KAAA,EAAM,OAAA,EAAQ,IAAA,EAAK,0BAAyB,GAAA,EAAG,IAAA,EAClD,QAAA,kBAAAA,cAAAA,CAAC2B,iCAAY,KAAA,EAAM,kBAAA,EAAmB,IAAA,EAAK,0BAAA,EAAwB,UAAU,MAAM;AAAA,IAAC,CAAA,EAAG,GAAA,EAAI,EAAA,EAAG,CAAA,EAChG,CAAA;AAAA,oBACA3B,cAAAA,CAAC,GAAA,EAAA,EAAI,KAAA,EAAM,aACT,QAAA,kBAAAD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,IAAG,EACrC,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAACS,uBAAA,EAAA,EAAM,YAAA,EAAa,QAAA,EAAS,aAAY,YAAA,EAAa,CAAA;AAAA,sBACtDT,cAAAA,CAACS,uBAAA,EAAA,EAAM,YAAA,EAAa,QAAA,EAAS,aAAY,WAAA,EAAY;AAAA,KAAA,EACvD,CAAA,EACF,CAAA;AAAA,oBACAT,eAAC,GAAA,EAAA,EAAI,KAAA,EAAM,iBAAgB,IAAA,EAAK,qCAAA,EAC9B,0BAAAA,cAAAA,CAACS,uBAAA,EAAA,EAAM,MAAK,OAAA,EAAQ,YAAA,EAAa,qBAAoB,WAAA,kBAAaT,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,cAAA,EAAe,CAAA,EAAI,CAAA,EACpG,CAAA;AAAA,oBACAA,cAAAA,CAAC,GAAA,EAAA,EAAI,KAAA,EAAM,MAAA,EACT,QAAA,kBAAAA,cAAAA,CAAC4B,4BAAA,EAAA,EAAW,KAAA,EAAM,QAAA,EAAS,QAAA,EAAU,MAAM;AAAA,IAAC,GAAG,OAAA,EAAS;AAAA,MACtD,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,kBAAM5B,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wBAAA,EAAyB,CAAA,EAAG;AAAA,MACrF,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,UAAA,EAAY,IAAA,kBAAMA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sBAAA,EAAuB,CAAA,EAAG;AAAA,MAChF,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,iBAAA,EAAmB,IAAA,kBAAMA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAG,OAClF,CAAA,EACL,CAAA;AAAA,oBACAA,eAAC,GAAA,EAAA,EAAI,KAAA,EAAM,OAAM,IAAA,EAAK,uCAAA,EAAwC,KAAG,IAAA,EAC/D,QAAA,kBAAAD,gBAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,eAAe,QAAA,EAAU,GAAA,EAAK,GAAE,EAC7D,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC6B,0BAAA,EAAA,EAAS,KAAA,EAAO,GAAA,EAAK,UAAU,CAAC,CAAA,KAAwC,MAAA,CAAO,CAAA,CAAE,OAAO,KAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,WAAW,GAAA,EAAK,CAAA;AAAA,sBAC1H7B,cAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,QAAQ,cAAA,EAAgB,UAAA,EAAW,EAAG,QAAA,kBAAAA,eAAC8B,kCAAA,EAAA,EAAiB,KAAA,EAAO,IAAI,MAAA,EAAQ,GAAA,EAAK,KAAK,CAAA,EAAE;AAAA,KAAA,EAChH,CAAA,EACF,CAAA;AAAA,oBACA/B,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAgB,UAAA,EAAY,GAAA,EAAK,EAAA,EAAI,UAAA,EAAY,IAAG,EACjF,QAAA,EAAA;AAAA,sBAAAC,eAACE,wBAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,UAAS,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,sBACpDF,cAAAA,CAACE,wBAAA,EAAA,EAAO,QAAA,EAAA,cAAA,EAAY;AAAA,KAAA,EACtB;AAAA,GAAA,EACF,CAAA;AAEJ;AAQA,SAAS,gBAAA,GAAmB;AAC1B,EAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,GAAIC,cAAAA,CAAkC,EAAE,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,UAAU,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,SAAA,EAAW,OAAO,CAAA;AACrI,EAAA,MAAM,MAAM,CAAC,CAAA,KAAc,IAAA,CAAK,CAAC,OAAO,EAAE,GAAG,CAAA,EAAG,CAAC,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,GAAE,CAAE,CAAA;AAC7D,EAAA,MAAM,KAAA,GAA+B;AAAA,IACnC,EAAE,CAAA,EAAG,SAAA,EAAW,KAAA,EAAO,iBAAA,EAAmB,MAAM,gCAAA,EAAiC;AAAA,IACjF,EAAE,CAAA,EAAG,QAAA,EAAU,KAAA,EAAO,eAAA,EAAiB,MAAM,qCAAA,EAAsC;AAAA,IACnF,EAAE,CAAA,EAAG,UAAA,EAAY,KAAA,EAAO,qBAAA,EAAuB,MAAM,6BAAA,EAA8B;AAAA,IACnF,EAAE,CAAA,EAAG,UAAA,EAAY,KAAA,EAAO,iBAAA,EAAmB,MAAM,gCAAA,EAAiC;AAAA,IAClF,EAAE,CAAA,EAAG,WAAA,EAAa,KAAA,EAAO,kBAAA,EAAoB,MAAM,wBAAA;AAAyB,GAC9E;AACA,EAAA,uBACEJ,gBAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAACwB,kCAAa,KAAA,EAAO,EAAE,YAAY,EAAA,EAAI,OAAA,EAAS,OAAA,EAAQ,EAAG,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,IAC/D,MAAM,GAAA,CAAI,CAAC,uBACVxB,cAAAA,CAAC,OAAe,KAAA,EAAO,EAAA,CAAG,KAAA,EAAO,IAAA,EAAM,GAAG,IAAA,EACxC,QAAA,kBAAAA,eAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,cAAA,EAAgB,UAAA,IAC7C,QAAA,kBAAAA,cAAAA,CAACW,4BAAO,OAAA,EAAS,CAAA,CAAE,GAAG,CAAC,CAAA,EAAG,UAAU,MAAM,GAAA,CAAI,GAAG,CAAC,CAAA,EAAG,GACvD,CAAA,EAAA,EAHQ,EAAA,CAAG,CAIb,CACD,CAAA;AAAA,oBACDX,cAAAA,CAAC0B,uBAAA,EAAA,EAAM,MAAA,EAAO,aAAA,EAAc,sBAAM1B,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAwB,CAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,EAAA,IAAM,QAAA,EAAA,uEAAA,EAAgE;AAAA,GAAA,EACvK,CAAA;AAEJ;AASA,SAAS,eAAA,GAAkB;AACzB,EAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,GAAIG,eAAkC,EAAE,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,OAAO,CAAA;AAC9G,EAAA,MAAM,MAAM,CAAC,CAAA,KAAc,IAAA,CAAK,CAAC,OAAO,EAAE,GAAG,CAAA,EAAG,CAAC,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,GAAE,CAAE,CAAA;AAC7D,EAAA,MAAM,IAAA,GAAyB;AAAA,IAC7B,EAAE,GAAG,OAAA,EAAS,IAAA,EAAM,SAAS,IAAA,EAAM,eAAA,EAAiB,MAAM,kCAAA,EAAmC;AAAA,IAC7F,EAAE,GAAG,QAAA,EAAU,IAAA,EAAM,UAAU,IAAA,EAAM,gBAAA,EAAkB,MAAM,iCAAA,EAAkC;AAAA,IAC/F,EAAE,GAAG,OAAA,EAAS,IAAA,EAAM,SAAS,IAAA,EAAM,eAAA,EAAiB,MAAM,8BAAA,EAA+B;AAAA,IACzF,EAAE,GAAG,QAAA,EAAU,IAAA,EAAM,UAAU,IAAA,EAAM,oBAAA,EAAsB,MAAM,uBAAA;AAAwB,GAC3F;AACA,EAAA,uBACEH,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAK,EAAA,EAAG,EAC7D,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,qBACTD,eAAAA,CAAC,KAAA,EAAA,EAAc,OAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,UAAU,GAAA,EAAK,EAAA,EAAI,OAAA,EAAS,EAAA,EAAI,cAAc,wBAAA,EAA0B,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,+CAA8C,EAC1N,QAAA,EAAA;AAAA,oBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,SAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,IAAI,IAAA,EAAM,MAAA,EAAQ,YAAA,EAAc,uBAAA,EAAyB,UAAA,EAAY,wBAAA,EAA0B,SAAA,EAAW,6CAAA,EAA+C,OAAO,0BAAA,EAA4B,QAAA,EAAU,EAAA,EAAG,EAAG,0BAAAA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,CAAA,CAAE,MAAM,CAAA,EAAE,CAAA;AAAA,oBAC9UD,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,GAAE,EACnF,QAAA,EAAA;AAAA,sBAAAC,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,6BAA6B,KAAA,EAAO,6BAAA,EAA8B,EAAI,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK,CAAA;AAAA,sBAClGA,cAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAI,QAAA,EAAA,CAAA,CAAE,IAAA,EAAK;AAAA,KAAA,EACrG,CAAA;AAAA,oBACAA,cAAAA,CAACW,wBAAA,EAAA,EAAO,OAAA,EAAS,CAAA,CAAE,CAAA,CAAE,CAAC,CAAA,EAAG,QAAA,EAAU,MAAM,GAAA,CAAI,CAAA,CAAE,CAAC,CAAA,EAAG;AAAA,GAAA,EAAA,EAN3C,CAAA,CAAE,CAOZ,CACD,CAAA,EACH,CAAA;AAEJ;AAEA,IAAM,IAAA,GAAkB;AAAA,EACtB,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,eAAA,EAAgB;AAAA,EACjD,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,cAAA,EAAgB,OAAO,GAAA;AACzD,CAAA;AAGO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAIR,eAAS,SAAS,CAAA;AACxC,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,gBAAA,EAAiB,EACvE,QAAA,EAAA;AAAA,oBAAAA,gBAAC,QAAA,EAAA,EAAO,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,YAAA,EAAc,GAAA,EAAK,EAAA,EAAI,OAAO,MAAA,EAAQ,OAAA,EAAS,UAAA,EAAY,SAAA,EAAW,8CAA6C,EAC/J,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,GAAE,EACnF,QAAA,EAAA;AAAA,wBAAAC,cAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,2BAAA,EAA6B,KAAA,EAAO,6BAAA,EAA+B,aAAA,EAAe,SAAA,IAAa,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,wBACrIA,cAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,IAAA,EAAM,+BAAA,EAAiC,KAAA,EAAO,0BAAA,EAA2B,EAAG,QAAA,EAAA,wDAAA,EAAsD;AAAA,OAAA,EAC3J,CAAA;AAAA,sBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,QAAO,EAAG,QAAA,kBAAAA,cAAAA,CAACC,uBAAA,EAAA,EAAM,KAAA,EAAM,OAAA,EAAQ,SAAQ,SAAA,EAAU,GAAA,EAAG,IAAA,EAAC,QAAA,EAAA,mBAAA,EAAiB,CAAA,EAAQ;AAAA,KAAA,EACnJ,CAAA;AAAA,oBACAD,cAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAQ,aAAA,EAAc,EAClC,QAAA,kBAAAA,cAAAA,CAACM,0BAAK,KAAA,EAAO,IAAA,EAAM,OAAO,GAAA,EAAK,QAAA,EAAU,QAAQ,CAAA,EACnD,CAAA;AAAA,IACC,GAAA,KAAQ,SAAA,mBAAYN,cAAAA,CAAC,cAAW,CAAA,GAAK,GAAA,KAAQ,eAAA,mBAAkBA,cAAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA,mBAAKA,eAAC,eAAA,EAAA,EAAgB;AAAA,GAAA,EAC1G,CAAA;AAEJ","file":"index.cjs","sourcesContent":["// Klun UI dashboard sidebar — brand, nav sections, footer profile.\n\nexport interface SidebarUser {\n name: string;\n email: string;\n initials: string;\n}\n\nexport interface SidebarProps {\n active: string;\n onNavigate: (id: string) => void;\n user: SidebarUser;\n}\n\ninterface NavItem {\n id: string;\n label: string;\n icon: string;\n badge?: string;\n}\n\nexport function Sidebar({ active, onNavigate, user }: SidebarProps) {\n const main: NavItem[] = [\n { id: \"overview\", label: \"Overview\", icon: \"ri-dashboard-line\" },\n { id: \"transactions\", label: \"Transactions\", icon: \"ri-arrow-left-right-line\", badge: \"24\" },\n { id: \"cards\", label: \"Cards\", icon: \"ri-bank-card-line\" },\n { id: \"analytics\", label: \"Analytics\", icon: \"ri-bar-chart-2-line\" },\n { id: \"invoices\", label: \"Invoices\", icon: \"ri-bill-line\" },\n ];\n const other: NavItem[] = [\n { id: \"settings\", label: \"Settings\", icon: \"ri-settings-2-line\" },\n { id: \"support\", label: \"Support\", icon: \"ri-headphone-line\" },\n ];\n const Item = ({ it }: { it: NavItem }) => {\n const on = active === it.id;\n return (\n <button onClick={() => onNavigate(it.id)} style={{\n display: \"flex\", alignItems: \"center\", gap: 10, width: \"100%\", height: 38, padding: \"0 12px\",\n border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: \"pointer\", textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\",\n font: \"var(--klun-text-label-sm)\",\n }}>\n <i className={it.icon} style={{ fontSize: 20, color: on ? \"var(--klun-primary-base)\" : \"var(--klun-icon-sub-600)\" }} />\n <span style={{ flex: 1 }}>{it.label}</span>\n {it.badge ? <span style={{ font: \"var(--klun-text-label-xs)\", padding: \"1px 6px\", borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-bg-weak-50)\", color: \"var(--klun-text-sub-600)\" }}>{it.badge}</span> : null}\n </button>\n );\n };\n return (\n <aside style={{ width: 272, flexShrink: 0, height: \"100%\", boxSizing: \"border-box\", display: \"flex\", flexDirection: \"column\", padding: 20, background: \"var(--klun-bg-weak-50)\", borderRight: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 8px 18px\" }}>\n <div style={{ width: 36, height: 36, borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-shapes-line\" style={{ fontSize: 20 }} />\n </div>\n <div style={{ lineHeight: 1.1 }}>\n <div style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Apex Finance</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>Workspace</div>\n </div>\n </div>\n <div style={{ position: \"relative\", marginBottom: 16 }}>\n <i className=\"ri-search-line\" style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n <input placeholder=\"Search\" style={{ width: \"100%\", boxSizing: \"border-box\", height: 36, padding: \"0 12px 0 36px\", borderRadius: \"var(--klun-radius-lg)\", border: \"none\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-strong-950)\", outline: \"none\" }} />\n </div>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"0 12px 8px\" }}>Main</div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{main.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"20px 12px 8px\" }}>Other</div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{other.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ flex: 1 }} />\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: 8, borderRadius: \"var(--klun-radius-xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <span style={{ width: 36, height: 36, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-feature-lighter)\", color: \"var(--klun-state-feature-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-label-sm)\", flexShrink: 0 }}>{user.initials}</span>\n <div style={{ flex: 1, minWidth: 0, lineHeight: 1.2 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\", whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{user.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\", whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{user.email}</div>\n </div>\n <i className=\"ri-expand-up-down-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n </aside>\n );\n}\n","// Klun UI dashboard top bar — page title, search, actions.\nimport { Button, Badge } from \"../../index\";\n\nexport interface TopBarProps {\n title: string;\n subtitle: string;\n}\n\nexport function TopBar({ title, subtitle }: TopBarProps) {\n return (\n <header style={{ display: \"flex\", alignItems: \"center\", gap: 16, padding: \"20px 32px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <div style={{ flex: 1 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{title}</h1>\n <Badge color=\"gray\" size=\"small\">Live</Badge>\n </div>\n <p style={{ margin: \"2px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{subtitle}</p>\n </div>\n <Button iconOnly variant=\"neutral\" appearance=\"stroke\" icon={<i className=\"ri-notification-3-line\" />} />\n <Button iconOnly variant=\"neutral\" appearance=\"stroke\" icon={<i className=\"ri-calendar-line\" />} />\n <Button variant=\"primary\" leadingIcon={<i className=\"ri-add-line\" />}>New transfer</Button>\n </header>\n );\n}\n","// Klun UI dashboard — Overview screen. Stat cards, balance, recent transactions table.\nimport { useState } from \"react\";\nimport { Card, Badge, Button, ProgressBar, SegmentedControl, Tabs } from \"../../index\";\nimport type { BadgeColor } from \"../../index\";\n\ninterface Stat {\n label: string;\n value: string;\n delta: string;\n up: boolean;\n icon: string;\n tint: string;\n}\n\ninterface Transaction {\n name: string;\n sub: string;\n amt: string;\n date: string;\n status: string;\n color: BadgeColor;\n icon: string;\n bg: string;\n fg: string;\n}\n\nexport function OverviewScreen() {\n const [range, setRange] = useState(\"month\");\n const [tab, setTab] = useState(\"all\");\n\n const stats: Stat[] = [\n { label: \"Total balance\", value: \"$84,920.50\", delta: \"+12.4%\", up: true, icon: \"ri-wallet-3-line\", tint: \"feature\" },\n { label: \"Income\", value: \"$24,300.00\", delta: \"+8.1%\", up: true, icon: \"ri-arrow-down-line\", tint: \"success\" },\n { label: \"Expenses\", value: \"$11,240.80\", delta: \"-3.2%\", up: false, icon: \"ri-arrow-up-line\", tint: \"warning\" },\n { label: \"Savings\", value: \"$13,059.20\", delta: \"+5.7%\", up: true, icon: \"ri-safe-2-line\", tint: \"information\" },\n ];\n const tx: Transaction[] = [\n { name: \"Figma\", sub: \"Subscription\", amt: \"-$45.00\", date: \"Today, 10:24\", status: \"Completed\", color: \"green\", icon: \"ri-pencil-ruler-2-line\", bg: \"var(--klun-state-feature-lighter)\", fg: \"var(--klun-state-feature-base)\" },\n { name: \"Stripe payout\", sub: \"Income\", amt: \"+$2,400.00\", date: \"Today, 08:10\", status: \"Completed\", color: \"green\", icon: \"ri-bank-line\", bg: \"var(--klun-state-success-lighter)\", fg: \"var(--klun-state-success-base)\" },\n { name: \"AWS\", sub: \"Infrastructure\", amt: \"-$312.40\", date: \"Yesterday\", status: \"Pending\", color: \"orange\", icon: \"ri-cloud-line\", bg: \"var(--klun-state-warning-lighter)\", fg: \"var(--klun-state-warning-base)\" },\n { name: \"Linear\", sub: \"Subscription\", amt: \"-$96.00\", date: \"Mar 12\", status: \"Completed\", color: \"green\", icon: \"ri-flow-chart\", bg: \"var(--klun-state-information-lighter)\", fg: \"var(--klun-state-information-base)\" },\n { name: \"Refund · Notion\", sub: \"Income\", amt: \"+$120.00\", date: \"Mar 11\", status: \"Failed\", color: \"red\", icon: \"ri-file-text-line\", bg: \"var(--klun-bg-weak-50)\", fg: \"var(--klun-text-sub-600)\" },\n ];\n const budget: ReadonlyArray<readonly [string, number, string]> = [\n [\"Housing\", 38, \"feature\"],\n [\"Food\", 24, \"success\"],\n [\"Transport\", 18, \"warning\"],\n ];\n\n return (\n <div style={{ padding: 32, display: \"flex\", flexDirection: \"column\", gap: 24 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <SegmentedControl value={range} onChange={setRange} items={[{ value: \"week\", label: \"Week\" }, { value: \"month\", label: \"Month\" }, { value: \"year\", label: \"Year\" }]} />\n <Button variant=\"neutral\" appearance=\"stroke\" size=\"small\" leadingIcon={<i className=\"ri-download-2-line\" />}>Export</Button>\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(4, 1fr)\", gap: 16 }}>\n {stats.map((s) => (\n <Card key={s.label} variant=\"stroke\" padding={18}>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-start\" }}>\n <div style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", background: `var(--klun-state-${s.tint}-lighter)`, color: `var(--klun-state-${s.tint}-base)`, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22 }}><i className={s.icon} /></div>\n <Badge color={s.up ? \"green\" : \"red\"} variant=\"light\" size=\"small\" leadingIcon={<i className={s.up ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} />}>{s.delta}</Badge>\n </div>\n <div style={{ marginTop: 16, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{s.label}</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{s.value}</div>\n </Card>\n ))}\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"1.7fr 1fr\", gap: 16, alignItems: \"start\" }}>\n <Card variant=\"stroke\" padding={0}>\n <div style={{ padding: \"16px 20px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\", display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <div style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Recent transactions</div>\n <Button variant=\"neutral\" appearance=\"ghost\" size=\"xsmall\" trailingIcon={<i className=\"ri-arrow-right-s-line\" />}>View all</Button>\n </div>\n <div style={{ padding: \"8px 12px\" }}>\n <Tabs value={tab} onChange={setTab} items={[{ value: \"all\", label: \"All\" }, { value: \"income\", label: \"Income\" }, { value: \"expense\", label: \"Expenses\" }]} />\n </div>\n <div>\n {tx.map((t, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 12, padding: \"12px 20px\", borderTop: i ? \"1px solid var(--klun-stroke-soft-200)\" : \"none\" }}>\n <div style={{ width: 38, height: 38, borderRadius: \"var(--klun-radius-lg)\", background: t.bg, color: t.fg, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 20, flexShrink: 0 }}><i className={t.icon} /></div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{t.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{t.sub} · {t.date}</div>\n </div>\n <Badge color={t.color} variant=\"light\" size=\"small\">{t.status}</Badge>\n <div style={{ width: 92, textAlign: \"right\", font: \"var(--klun-text-label-sm)\", color: t.amt[0] === \"+\" ? \"var(--klun-state-success-base)\" : \"var(--klun-text-strong-950)\" }}>{t.amt}</div>\n </div>\n ))}\n </div>\n </Card>\n\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n <Card variant=\"shadow\" padding={20} style={{ background: \"var(--klun-bg-strong-950)\" }}>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", color: \"var(--klun-static-static-white)\" }}>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", opacity: .7 }}>Virtual card</span>\n <i className=\"ri-visa-line\" style={{ fontSize: 24 }} />\n </div>\n <div style={{ marginTop: 28, font: \"var(--klun-text-label-lg)\", letterSpacing: \"0.12em\", color: \"var(--klun-static-static-white)\" }}>4218 •••• •••• 9042</div>\n <div style={{ marginTop: 16, display: \"flex\", justifyContent: \"space-between\", color: \"var(--klun-static-static-white)\", opacity: .8, font: \"var(--klun-text-paragraph-xs)\" }}>\n <span>Arthur Taylor</span><span>09 / 28</span>\n </div>\n </Card>\n <Card variant=\"stroke\" padding={20}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Monthly budget</span>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>$11,240 / $16,000</span>\n </div>\n <div style={{ marginTop: 14 }}><ProgressBar value={70} /></div>\n <div style={{ marginTop: 16, display: \"flex\", flexDirection: \"column\", gap: 10 }}>\n {budget.map(([l, p, c]) => (\n <div key={l} style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <span style={{ width: 8, height: 8, borderRadius: \"var(--klun-radius-pill)\", background: `var(--klun-state-${c}-base)` }} />\n <span style={{ flex: 1, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{l}</span>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{p}%</span>\n </div>\n ))}\n </div>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n","// Klun UI dashboard — Settings screen (profile form).\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Card, Input, Select, Switch, Label, Button, Badge, Divider } from \"../../index\";\n\ninterface FieldProps {\n label: ReactNode;\n children: ReactNode;\n hint?: ReactNode;\n required?: boolean;\n}\n\nexport function SettingsScreen() {\n const [n, setN] = useState(true);\n const [m, setM] = useState(false);\n const Field = ({ label, children, hint, required }: FieldProps) => (\n <div style={{ display: \"grid\", gridTemplateColumns: \"220px 1fr\", gap: 24, padding: \"20px 0\", borderTop: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div>\n <Label required={required}>{label}</Label>\n {hint ? <div style={{ marginTop: 2, font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{hint}</div> : null}\n </div>\n <div style={{ maxWidth: 420 }}>{children}</div>\n </div>\n );\n return (\n <div style={{ padding: 32, maxWidth: 920 }}>\n <Card variant=\"stroke\" padding={24}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 16 }}>\n <span style={{ width: 64, height: 64, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-feature-lighter)\", color: \"var(--klun-state-feature-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-title-h5)\" }}>AT</span>\n <div style={{ flex: 1 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Arthur Taylor</span>\n <Badge color=\"green\" variant=\"light\" size=\"small\" dot>Verified</Badge>\n </div>\n <div style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>arthur@alignui.com</div>\n </div>\n <Button variant=\"neutral\" appearance=\"stroke\" size=\"small\" leadingIcon={<i className=\"ri-upload-2-line\" />}>Change photo</Button>\n </div>\n\n <div style={{ marginTop: 8 }}>\n <Field label=\"Full name\" required>\n <Input defaultValue=\"Arthur Taylor\" />\n </Field>\n <Field label=\"Email address\" required hint=\"Used for sign-in and receipts.\">\n <Input type=\"email\" defaultValue=\"arthur@alignui.com\" leadingIcon={<i className=\"ri-mail-line\" />} />\n </Field>\n <Field label=\"Role\">\n <Select defaultValue=\"finance\"><option value=\"finance\">Finance lead</option><option value=\"admin\">Administrator</option><option value=\"member\">Member</option></Select>\n </Field>\n <Field label=\"Notifications\" hint=\"How we reach you.\">\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n <label style={{ display: \"flex\", alignItems: \"center\", gap: 10, font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n <Switch checked={n} onChange={setN} /> Email notifications\n </label>\n <label style={{ display: \"flex\", alignItems: \"center\", gap: 10, font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n <Switch checked={m} onChange={setM} /> Marketing updates\n </label>\n </div>\n </Field>\n </div>\n\n <Divider style={{ margin: \"8px 0 20px\" }} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 10 }}>\n <Button variant=\"neutral\" appearance=\"stroke\">Cancel</Button>\n <Button variant=\"primary\">Save changes</Button>\n </div>\n </Card>\n </div>\n );\n}\n","// Klun UI dashboard template — app shell composing sidebar, top bar, and screens.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Sidebar } from \"./Sidebar\";\nimport type { SidebarUser } from \"./Sidebar\";\nimport { TopBar } from \"./TopBar\";\nimport { OverviewScreen } from \"./OverviewScreen\";\nimport { SettingsScreen } from \"./SettingsScreen\";\n\nexport { Sidebar } from \"./Sidebar\";\nexport type { SidebarProps, SidebarUser } from \"./Sidebar\";\nexport { TopBar } from \"./TopBar\";\nexport type { TopBarProps } from \"./TopBar\";\nexport { OverviewScreen } from \"./OverviewScreen\";\nexport { SettingsScreen } from \"./SettingsScreen\";\n\ninterface Page {\n title: string;\n subtitle: string;\n render: () => ReactNode;\n}\n\nconst PAGES: Record<string, Page> = {\n overview: { title: \"Overview\", subtitle: \"Your money at a glance, March 2026.\", render: () => <OverviewScreen /> },\n settings: { title: \"Settings\", subtitle: \"Manage your profile and preferences.\", render: () => <SettingsScreen /> },\n};\n\nexport function DashboardTemplate() {\n const [active, setActive] = useState(\"overview\");\n const page: Page = PAGES[active] ?? {\n title: active[0].toUpperCase() + active.slice(1),\n subtitle: \"Coming soon in this demo.\",\n render: () => (\n <div style={{ padding: 64, textAlign: \"center\", color: \"var(--klun-text-soft-400)\", font: \"var(--klun-text-paragraph-lg)\" }}>\n <i className=\"ri-inbox-line\" style={{ fontSize: 40, display: \"block\", marginBottom: 12 }} />\n This screen isn't part of the demo — try Overview or Settings.\n </div>\n ),\n };\n const user: SidebarUser = { name: \"Arthur Taylor\", email: \"arthur@alignui.com\", initials: \"AT\" };\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <Sidebar active={active} onNavigate={setActive} user={user} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}>\n <TopBar title={page.title} subtitle={page.subtitle} />\n <main style={{ flex: 1, overflow: \"auto\", background: \"var(--klun-bg-weak-50)\" }}>{page.render()}</main>\n </div>\n </div>\n );\n}\n","// Klun UI AI assistant — conversations sidebar.\n\nexport interface AIConversation {\n id: string;\n group: \"today\" | \"week\";\n title: string;\n}\n\nexport interface AIUser {\n name: string;\n initials: string;\n}\n\nexport interface AISidebarProps {\n conversations: AIConversation[];\n activeId: string;\n onSelect: (id: string) => void;\n onNew: () => void;\n user: AIUser;\n}\n\nexport function AISidebar({ conversations, activeId, onSelect, onNew, user }: AISidebarProps) {\n const groups = [\n { label: \"Today\", items: conversations.filter((c) => c.group === \"today\") },\n { label: \"Previous 7 days\", items: conversations.filter((c) => c.group === \"week\") },\n ];\n return (\n <aside style={{ width: 280, flexShrink: 0, height: \"100%\", boxSizing: \"border-box\", display: \"flex\", flexDirection: \"column\", padding: 16, background: \"var(--klun-bg-weak-50)\", borderRight: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 6px 16px\" }}>\n <div style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-sparkling-2-fill\" style={{ fontSize: 18 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Klun AI</span>\n </div>\n\n <button onClick={onNew} style={{ display: \"flex\", alignItems: \"center\", gap: 8, width: \"100%\", height: 40, padding: \"0 12px\", marginBottom: 16, border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: \"pointer\", background: \"var(--klun-primary-base)\", color: \"var(--klun-static-static-white)\", font: \"var(--klun-text-label-sm)\" }}>\n <i className=\"ri-add-line\" style={{ fontSize: 20 }} /> New chat\n </button>\n\n <div style={{ position: \"relative\", marginBottom: 16 }}>\n <i className=\"ri-search-line\" style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n <input placeholder=\"Search chats\" style={{ width: \"100%\", boxSizing: \"border-box\", height: 36, padding: \"0 12px 0 36px\", borderRadius: \"var(--klun-radius-lg)\", border: \"none\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-strong-950)\", outline: \"none\" }} />\n </div>\n\n <div style={{ flex: 1, overflow: \"auto\", display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n {groups.map((g) => g.items.length ? (\n <div key={g.label}>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"0 8px 6px\" }}>{g.label}</div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n {g.items.map((c) => {\n const on = c.id === activeId;\n return (\n <button key={c.id} onClick={() => onSelect(c.id)} style={{\n display: \"flex\", alignItems: \"center\", gap: 8, width: \"100%\", height: 36, padding: \"0 10px\",\n border: \"none\", borderRadius: \"var(--klun-radius-md)\", cursor: \"pointer\", textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\", font: \"var(--klun-text-label-sm)\",\n }}>\n <i className=\"ri-chat-1-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\", flexShrink: 0 }} />\n <span style={{ flex: 1, whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{c.title}</span>\n </button>\n );\n })}\n </div>\n </div>\n ) : null)}\n </div>\n\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: 8, marginTop: 8, borderRadius: \"var(--klun-radius-xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <span style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-feature-lighter)\", color: \"var(--klun-state-feature-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-label-xs)\", flexShrink: 0 }}>{user.initials}</span>\n <div style={{ flex: 1, minWidth: 0, lineHeight: 1.2 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{user.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>Free plan</div>\n </div>\n <i className=\"ri-settings-3-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n </aside>\n );\n}\n","// Klun UI AI assistant — chat thread + welcome state.\nimport { useEffect, useRef } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Avatar } from \"../../index\";\n\nfunction Bubble({ from = \"them\", avatar, children }: { from?: \"me\" | \"them\"; avatar?: ReactNode; children?: ReactNode }) {\n const me = from === \"me\";\n return (\n <div style={{ display: \"flex\", flexDirection: me ? \"row-reverse\" : \"row\", gap: 10, alignItems: \"flex-end\" }}>\n {avatar ? <span style={{ flexShrink: 0 }}>{avatar}</span> : null}\n <div style={{ maxWidth: \"76%\", display: \"flex\", flexDirection: \"column\", gap: 4, alignItems: me ? \"flex-end\" : \"flex-start\" }}>\n <div style={{ padding: \"10px 14px\", font: \"var(--klun-text-paragraph-sm)\", borderRadius: me ? \"var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-sm) var(--klun-radius-2xl)\" : \"var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-sm)\", background: me ? \"var(--klun-primary-base)\" : \"var(--klun-bg-weak-50)\", color: me ? \"var(--klun-static-static-white)\" : \"var(--klun-text-strong-950)\" }}>{children}</div>\n </div>\n </div>\n );\n}\n\nexport interface AIMessage {\n from: \"me\" | \"them\";\n text: string;\n}\n\nexport interface AIChatViewProps {\n messages: AIMessage[];\n busy: boolean;\n userInitials: string;\n onSuggest: (text: string) => void;\n}\n\nexport function AIChatView({ messages, busy, userInitials, onSuggest }: AIChatViewProps) {\n const endRef = useRef<HTMLDivElement>(null);\n useEffect(() => { endRef.current?.scrollTo?.(0, endRef.current.scrollHeight); }, [messages, busy]);\n\n const suggestions = [\n { icon: \"ri-file-list-3-line\", text: \"Summarize my unread invoices\" },\n { icon: \"ri-line-chart-line\", text: \"Compare Q1 and Q2 revenue\" },\n { icon: \"ri-mail-send-line\", text: \"Draft a follow-up email to a client\" },\n { icon: \"ri-calendar-todo-line\", text: \"Plan my week around 3 deadlines\" },\n ];\n\n if (messages.length === 0) {\n return (\n <div style={{ flex: 1, display: \"flex\", flexDirection: \"column\", alignItems: \"center\", justifyContent: \"center\", padding: 32, textAlign: \"center\" }}>\n <div style={{ width: 56, height: 56, borderRadius: \"var(--klun-radius-2xl)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 28, marginBottom: 20 }}>\n <i className=\"ri-sparkling-2-fill\" />\n </div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>How can I help, Arthur?</h1>\n <p style={{ margin: \"8px 0 28px\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\" }}>Ask anything, or start from a suggestion below.</p>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 12, maxWidth: 540, width: \"100%\" }}>\n {suggestions.map((s) => (\n <button key={s.text} onClick={() => onSuggest(s.text)} style={{\n display: \"flex\", alignItems: \"center\", gap: 10, padding: \"14px 16px\", textAlign: \"left\",\n border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\",\n }}>\n <i className={s.icon} style={{ fontSize: 20, color: \"var(--klun-primary-base)\" }} />\n <span>{s.text}</span>\n </button>\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div ref={endRef} style={{ flex: 1, overflow: \"auto\" }}>\n <div style={{ maxWidth: 720, margin: \"0 auto\", padding: \"24px 24px 8px\", display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n {messages.map((m, i) => (\n <Bubble key={i} from={m.from}\n avatar={m.from === \"me\"\n ? <Avatar size=\"32\" initials={userInitials} color=\"purple\" />\n : <span style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 16 }}><i className=\"ri-sparkling-2-fill\" /></span>}\n >{m.text}</Bubble>\n ))}\n {busy ? (\n <Bubble from=\"them\" avatar={<span style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 16 }}><i className=\"ri-sparkling-2-fill\" /></span>}>\n <span className=\"ai-typing\"><span></span><span></span><span></span></span>\n </Bubble>\n ) : null}\n </div>\n </div>\n );\n}\n","// Klun UI AI assistant — prompt composer with model select, attachments, send.\nimport { useRef, useState, type ChangeEvent, type CSSProperties } from \"react\";\n\nexport interface AIComposerProps {\n onSend: (text: string) => void;\n busy: boolean;\n}\n\nexport function AIComposer({ onSend, busy }: AIComposerProps) {\n const [text, setText] = useState(\"\");\n const [model, setModel] = useState(\"Klun-4o\");\n const taRef = useRef<HTMLTextAreaElement>(null);\n const send = () => {\n const t = text.trim();\n if (!t || busy) return;\n onSend(t);\n setText(\"\");\n if (taRef.current) taRef.current.style.height = \"auto\";\n };\n const grow = (e: ChangeEvent<HTMLTextAreaElement>) => {\n setText(e.target.value);\n e.target.style.height = \"auto\";\n e.target.style.height = Math.min(e.target.scrollHeight, 160) + \"px\";\n };\n return (\n <div style={{ padding: \"0 24px 20px\" }}>\n <div style={{ maxWidth: 720, margin: \"0 auto\", borderRadius: \"var(--klun-radius-3xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200)\", padding: 12 }}>\n <textarea\n ref={taRef}\n value={text}\n onChange={grow}\n onKeyDown={(e) => { if (e.key === \"Enter\" && !e.shiftKey) { e.preventDefault(); send(); } }}\n placeholder=\"Ask Klun AI anything…\"\n rows={1}\n style={{ width: \"100%\", boxSizing: \"border-box\", border: \"none\", outline: \"none\", resize: \"none\", background: \"transparent\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-strong-950)\", padding: \"6px 6px 10px\", maxHeight: 160 }}\n />\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <button title=\"Attach file\" style={iconBtn}><i className=\"ri-attachment-2\" /></button>\n <button title=\"Add image\" style={iconBtn}><i className=\"ri-image-line\" /></button>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 4, height: 32, padding: \"0 8px 0 10px\", borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-weak-50)\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", cursor: \"pointer\" }}>\n <i className=\"ri-cpu-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n <select value={model} onChange={(e) => setModel(e.target.value)} style={{ appearance: \"none\", WebkitAppearance: \"none\", border: \"none\", outline: \"none\", background: \"transparent\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", cursor: \"pointer\" }}>\n <option>Klun-4o</option><option>Klun-4 Turbo</option><option>Klun-mini</option>\n </select>\n <i className=\"ri-arrow-down-s-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n <div style={{ flex: 1 }} />\n <button onClick={send} disabled={!text.trim() || busy} title=\"Send\" style={{\n display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 36, height: 36,\n border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: text.trim() && !busy ? \"pointer\" : \"not-allowed\",\n background: text.trim() && !busy ? \"var(--klun-primary-base)\" : \"var(--klun-bg-soft-200)\",\n color: text.trim() && !busy ? \"var(--klun-static-static-white)\" : \"var(--klun-text-soft-400)\", fontSize: 20,\n }}><i className=\"ri-arrow-up-line\" /></button>\n </div>\n </div>\n <div style={{ maxWidth: 720, margin: \"8px auto 0\", textAlign: \"center\", font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n Klun AI can make mistakes. Check important info.\n </div>\n </div>\n );\n}\n\nconst iconBtn: CSSProperties = { display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 32, height: 32, border: \"none\", borderRadius: \"var(--klun-radius-md)\", background: \"transparent\", color: \"var(--klun-icon-sub-600)\", cursor: \"pointer\", fontSize: 18 };\n","// Klun UI AI assistant — full template composition.\nimport { useState } from \"react\";\nimport { Badge, Button } from \"../../index\";\nimport { AISidebar, type AIConversation, type AIUser } from \"./AISidebar\";\nimport { AIChatView, type AIMessage } from \"./ChatView\";\nimport { AIComposer } from \"./Composer\";\n\nconst REPLIES = [\n \"Here's a quick summary: you have 3 unread invoices totaling $4,512. Two are overdue — Apex Ltd ($2,400) and Northwind ($1,800).\",\n \"Happy to help with that. Based on your data, Q2 revenue is up 12.4% over Q1, driven mainly by recurring subscriptions.\",\n \"Done — I've drafted a friendly follow-up. Want me to adjust the tone or add a payment link?\",\n \"Got it. I've blocked focus time around your 3 deadlines and left buffers for review. Shall I add them to your calendar?\",\n];\n\nexport function AIAssistantTemplate() {\n const seed: AIConversation[] = [\n { id: \"c1\", group: \"today\", title: \"Q2 revenue breakdown\" },\n { id: \"c2\", group: \"today\", title: \"Follow-up email draft\" },\n { id: \"c3\", group: \"week\", title: \"Invoice reminders\" },\n { id: \"c4\", group: \"week\", title: \"Weekly planning\" },\n ];\n const [convs] = useState<AIConversation[]>(seed);\n const [activeId, setActiveId] = useState(\"new\");\n const [threads, setThreads] = useState<Record<string, AIMessage[]>>({ new: [] });\n const [busy, setBusy] = useState(false);\n const user: AIUser = { name: \"Arthur Taylor\", initials: \"AT\" };\n const messages = threads[activeId] || [];\n\n const ask = (text: string) => {\n setThreads((t) => ({ ...t, [activeId]: [...(t[activeId] || []), { from: \"me\", text }] }));\n setBusy(true);\n setTimeout(() => {\n const reply = REPLIES[Math.floor(Math.random() * REPLIES.length)];\n setThreads((t) => ({ ...t, [activeId]: [...(t[activeId] || []), { from: \"them\", text: reply }] }));\n setBusy(false);\n }, 1100);\n };\n\n const newChat = () => { setActiveId(\"new\"); setThreads((t) => ({ ...t, new: [] })); };\n\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <AISidebar conversations={convs} activeId={activeId} onSelect={(id) => { setActiveId(id); setThreads((t) => t[id] ? t : { ...t, [id]: [] }); }} onNew={newChat} user={user} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\" }}>\n <header style={{ display: \"flex\", alignItems: \"center\", gap: 12, padding: \"14px 24px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>New chat</span>\n <Badge color=\"purple\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-flashlight-fill\" />}>Klun-4o</Badge>\n <div style={{ flex: 1 }} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-share-line\" />} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-more-2-fill\" />} />\n </header>\n <AIChatView messages={messages} busy={busy} userInitials={user.initials} onSuggest={ask} />\n <AIComposer onSend={ask} busy={busy} />\n </div>\n </div>\n );\n}\n","// Klun UI agent chat — sessions sidebar.\nimport { StatusDot } from \"../../index\";\n\nexport interface AgentSession {\n id: string;\n group: \"today\" | \"week\";\n title: string;\n /** Live state shown as a leading dot. */\n state?: \"running\" | \"done\" | \"idle\";\n}\n\nexport interface AgentUser {\n name: string;\n initials: string;\n plan?: string;\n}\n\nexport interface AgentSidebarProps {\n sessions: AgentSession[];\n activeId: string;\n onSelect: (id: string) => void;\n onNew: () => void;\n user: AgentUser;\n}\n\nconst DOT_TONE = { running: \"warn\", done: \"ok\", idle: \"neutral\" } as const;\n\nexport function AgentSidebar({ sessions, activeId, onSelect, onNew, user }: AgentSidebarProps) {\n const groups = [\n { label: \"Today\", items: sessions.filter((c) => c.group === \"today\") },\n { label: \"Previous 7 days\", items: sessions.filter((c) => c.group === \"week\") },\n ];\n return (\n <aside\n style={{\n width: 280,\n flexShrink: 0,\n height: \"100%\",\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: 16,\n background: \"var(--klun-bg-weak-50)\",\n borderRight: \"1px solid var(--klun-stroke-soft-200)\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 6px 16px\" }}>\n <div\n style={{\n width: 32,\n height: 32,\n borderRadius: \"var(--klun-radius-md)\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <i className=\"ri-sparkling-2-fill\" style={{ fontSize: 18 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Klun Agent</span>\n </div>\n\n <button\n onClick={onNew}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n width: \"100%\",\n height: 40,\n padding: \"0 12px\",\n marginBottom: 16,\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: \"pointer\",\n background: \"var(--klun-primary-base)\",\n color: \"var(--klun-static-static-white)\",\n font: \"var(--klun-text-label-sm)\",\n }}\n >\n <i className=\"ri-add-line\" style={{ fontSize: 20 }} /> New task\n </button>\n\n <div style={{ position: \"relative\", marginBottom: 16 }}>\n <i\n className=\"ri-search-line\"\n style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }}\n />\n <input\n placeholder=\"Search tasks\"\n style={{\n width: \"100%\",\n boxSizing: \"border-box\",\n height: 36,\n padding: \"0 12px 0 36px\",\n borderRadius: \"var(--klun-radius-lg)\",\n border: \"none\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n font: \"var(--klun-text-paragraph-sm)\",\n color: \"var(--klun-text-strong-950)\",\n outline: \"none\",\n }}\n />\n </div>\n\n <div style={{ flex: 1, overflow: \"auto\", display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n {groups.map((g) =>\n g.items.length ? (\n <div key={g.label}>\n <div\n style={{\n font: \"var(--klun-text-subheading-2xs)\",\n letterSpacing: \"var(--klun-subheading-2xs-tracking)\",\n textTransform: \"uppercase\",\n color: \"var(--klun-text-soft-400)\",\n padding: \"0 8px 6px\",\n }}\n >\n {g.label}\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n {g.items.map((c) => {\n const on = c.id === activeId;\n return (\n <button\n key={c.id}\n onClick={() => onSelect(c.id)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n width: \"100%\",\n height: 36,\n padding: \"0 10px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-md)\",\n cursor: \"pointer\",\n textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\",\n font: \"var(--klun-text-label-sm)\",\n }}\n >\n {c.state ? (\n <StatusDot tone={DOT_TONE[c.state]} size=\"sm\" pulse={c.state === \"running\"} />\n ) : (\n <i className=\"ri-chat-1-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\", flexShrink: 0 }} />\n )}\n <span style={{ flex: 1, whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{c.title}</span>\n </button>\n );\n })}\n </div>\n </div>\n ) : null,\n )}\n </div>\n\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n padding: 8,\n marginTop: 8,\n borderRadius: \"var(--klun-radius-xl)\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n }}\n >\n <span\n style={{\n width: 32,\n height: 32,\n borderRadius: \"var(--klun-radius-pill)\",\n background: \"var(--klun-state-feature-lighter)\",\n color: \"var(--klun-state-feature-base)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n font: \"var(--klun-text-label-xs)\",\n flexShrink: 0,\n }}\n >\n {user.initials}\n </span>\n <div style={{ flex: 1, minWidth: 0, lineHeight: 1.2 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{user.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{user.plan || \"Free plan\"}</div>\n </div>\n <i className=\"ri-settings-3-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n </aside>\n );\n}\n","// Klun UI agent chat — message thread that renders an agent run: reasoning,\n// task plan, tool calls and the streamed final answer.\nimport { useEffect, useRef, useState } from \"react\";\nimport type { CSSProperties, ReactNode } from \"react\";\nimport { Avatar, Badge, Spinner, StatusDot } from \"../../index\";\n\n/* ------------------------------------------------------------------ types -- */\n\nexport type AgentStepStatus = \"todo\" | \"active\" | \"done\";\nexport interface AgentStep {\n text: string;\n status: AgentStepStatus;\n}\n\nexport type AgentToolStatus = \"running\" | \"done\" | \"error\";\n\n/** A collapsible chain-of-thought block. While `seconds` is undefined the agent\n * is still thinking; once set, the block collapses to a one-line summary. */\nexport interface AgentThinkingBlock {\n kind: \"thinking\";\n text: string;\n seconds?: number;\n}\n/** A task list the agent committed to before acting. */\nexport interface AgentPlanBlock {\n kind: \"plan\";\n title?: string;\n steps: AgentStep[];\n}\n/** A single tool invocation with request preview, status and result. */\nexport interface AgentToolBlock {\n kind: \"tool\";\n name: string;\n icon?: string;\n request?: string;\n status: AgentToolStatus;\n result?: string;\n}\n/** Plain (possibly still-streaming) assistant prose. */\nexport interface AgentTextBlock {\n kind: \"text\";\n text: string;\n}\nexport type AgentBlock = AgentThinkingBlock | AgentPlanBlock | AgentToolBlock | AgentTextBlock;\n\nexport interface AgentMessage {\n id: string;\n from: \"me\" | \"agent\";\n /** User turns. */\n text?: string;\n /** Agent turns are a sequence of blocks. */\n blocks?: AgentBlock[];\n /** True while the agent is still producing this turn. */\n streaming?: boolean;\n}\n\nexport interface AgentSuggestion {\n icon: string;\n text: string;\n}\n\nexport interface AgentThreadProps {\n messages: AgentMessage[];\n userInitials: string;\n agentName: string;\n suggestions: AgentSuggestion[];\n onSuggest: (text: string) => void;\n}\n\n/* -------------------------------------------------------------- primitives -- */\n\nfunction AgentMark({ size = 32 }: { size?: number }) {\n return (\n <span\n style={{\n width: size,\n height: size,\n flexShrink: 0,\n borderRadius: \"var(--klun-radius-pill)\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: size * 0.5,\n }}\n >\n <i className=\"ri-sparkling-2-fill\" />\n </span>\n );\n}\n\nconst cardBase: CSSProperties = {\n borderRadius: \"var(--klun-radius-xl)\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n overflow: \"hidden\",\n};\n\nconst cardHeader: CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n width: \"100%\",\n padding: \"10px 12px\",\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n textAlign: \"left\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-strong-950)\",\n};\n\nfunction Chevron({ open }: { open: boolean }) {\n return (\n <i\n className=\"ri-arrow-down-s-line\"\n style={{\n marginLeft: \"auto\",\n fontSize: 18,\n color: \"var(--klun-icon-soft-400)\",\n transform: open ? \"rotate(180deg)\" : \"none\",\n transition: \"transform var(--klun-duration-fast, .15s) var(--klun-ease-out, ease)\",\n }}\n />\n );\n}\n\n/* --- thinking ----------------------------------------------------------- */\n\nfunction ThinkingBlock({ block }: { block: AgentThinkingBlock }) {\n const done = block.seconds != null;\n const [open, setOpen] = useState(!done);\n // Auto-collapse once thinking finishes.\n const wasDone = useRef(done);\n useEffect(() => {\n if (done && !wasDone.current) setOpen(false);\n wasDone.current = done;\n }, [done]);\n\n return (\n <div style={cardBase}>\n <button type=\"button\" style={cardHeader} onClick={() => setOpen((o) => !o)}>\n <i\n className={done ? \"ri-brain-line\" : \"ri-loader-4-line\"}\n style={{\n fontSize: 18,\n color: \"var(--klun-state-feature-base)\",\n animation: done ? undefined : \"klun-agent-spin .9s linear infinite\",\n }}\n />\n <span style={{ color: \"var(--klun-text-sub-600)\" }}>\n {done ? `Thought for ${block.seconds}s` : \"Thinking…\"}\n </span>\n <Chevron open={open} />\n </button>\n {open ? (\n <div\n style={{\n padding: \"0 12px 12px 38px\",\n font: \"var(--klun-text-paragraph-sm)\",\n fontStyle: \"italic\",\n color: \"var(--klun-text-sub-600)\",\n whiteSpace: \"pre-wrap\",\n lineHeight: 1.6,\n }}\n >\n {block.text}\n </div>\n ) : null}\n </div>\n );\n}\n\n/* --- plan --------------------------------------------------------------- */\n\nconst STEP_ICON: Record<AgentStepStatus, ReactNode> = {\n done: <i className=\"ri-checkbox-circle-fill\" style={{ color: \"var(--klun-state-success-base)\" }} />,\n active: <Spinner size=\"sm\" color=\"var(--klun-primary-base)\" />,\n todo: <i className=\"ri-checkbox-blank-circle-line\" style={{ color: \"var(--klun-icon-soft-400)\" }} />,\n};\n\nfunction PlanBlock({ block }: { block: AgentPlanBlock }) {\n const done = block.steps.filter((s) => s.status === \"done\").length;\n return (\n <div style={{ ...cardBase, padding: \"12px 14px\" }}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n marginBottom: 10,\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n <i className=\"ri-list-check-2\" style={{ fontSize: 18, color: \"var(--klun-icon-sub-600)\" }} />\n <span>{block.title || \"Plan\"}</span>\n <span style={{ marginLeft: \"auto\", font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n {done}/{block.steps.length}\n </span>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n {block.steps.map((s, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <span style={{ width: 16, height: 16, display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 16, flexShrink: 0 }}>\n {STEP_ICON[s.status]}\n </span>\n <span\n style={{\n font: \"var(--klun-text-paragraph-sm)\",\n color: s.status === \"todo\" ? \"var(--klun-text-soft-400)\" : \"var(--klun-text-strong-950)\",\n textDecoration: s.status === \"done\" ? \"line-through\" : \"none\",\n textDecorationColor: \"var(--klun-text-soft-400)\",\n }}\n >\n {s.text}\n </span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n/* --- tool call ---------------------------------------------------------- */\n\nconst TOOL_TONE: Record<AgentToolStatus, { dot: \"warn\" | \"ok\" | \"err\"; label: string }> = {\n running: { dot: \"warn\", label: \"Running\" },\n done: { dot: \"ok\", label: \"Done\" },\n error: { dot: \"err\", label: \"Stopped\" },\n};\n\nfunction ToolBlock({ block }: { block: AgentToolBlock }) {\n const [open, setOpen] = useState(false);\n const tone = TOOL_TONE[block.status];\n return (\n <div style={cardBase}>\n <button type=\"button\" style={cardHeader} onClick={() => setOpen((o) => !o)}>\n <i className={block.icon || \"ri-terminal-box-line\"} style={{ fontSize: 18, color: \"var(--klun-icon-sub-600)\" }} />\n <span style={{ color: \"var(--klun-text-soft-400)\" }}>Tool</span>\n <code\n style={{\n font: \"var(--klun-text-label-sm)\",\n fontFamily: \"var(--klun-font-mono, ui-monospace, monospace)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n {block.name}\n </code>\n {block.status === \"running\" ? (\n <Spinner size=\"xs\" color=\"var(--klun-state-warning-base)\" />\n ) : (\n <StatusDot tone={tone.dot} size=\"sm\" />\n )}\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{tone.label}</span>\n <Chevron open={open} />\n </button>\n {open ? (\n <div style={{ padding: \"0 12px 12px\", display: \"flex\", flexDirection: \"column\", gap: 10 }}>\n {block.request ? <Snippet label=\"Request\" body={block.request} /> : null}\n {block.result ? (\n <Snippet label=\"Result\" body={block.result} tone={block.status === \"error\" ? \"error\" : \"default\"} />\n ) : null}\n </div>\n ) : null}\n </div>\n );\n}\n\nfunction Snippet({ label, body, tone = \"default\" }: { label: string; body: string; tone?: \"default\" | \"error\" }) {\n return (\n <div>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", marginBottom: 4 }}>\n {label}\n </div>\n <pre\n style={{\n margin: 0,\n padding: \"8px 10px\",\n borderRadius: \"var(--klun-radius-md)\",\n background: tone === \"error\" ? \"var(--klun-state-error-lighter)\" : \"var(--klun-bg-weak-50)\",\n font: \"var(--klun-text-paragraph-xs)\",\n fontFamily: \"var(--klun-font-mono, ui-monospace, monospace)\",\n color: tone === \"error\" ? \"var(--klun-state-error-base)\" : \"var(--klun-text-sub-600)\",\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n }}\n >\n {body}\n </pre>\n </div>\n );\n}\n\n/* --- text --------------------------------------------------------------- */\n\nfunction TextBlock({ block, streaming }: { block: AgentTextBlock; streaming?: boolean }) {\n return (\n <div\n style={{\n font: \"var(--klun-text-paragraph-md)\",\n color: \"var(--klun-text-strong-950)\",\n lineHeight: 1.65,\n whiteSpace: \"pre-wrap\",\n }}\n >\n {block.text}\n {streaming ? <span className=\"klun-agent-caret\" /> : null}\n </div>\n );\n}\n\n/* ----------------------------------------------------------------- render -- */\n\nfunction AgentTurn({ msg }: { msg: AgentMessage }) {\n const blocks = msg.blocks || [];\n const lastTextIdx = blocks.map((b) => b.kind).lastIndexOf(\"text\");\n const onlyThinking = blocks.length > 0 && blocks.every((b) => b.kind === \"thinking\");\n return (\n <div style={{ display: \"flex\", gap: 12, alignItems: \"flex-start\" }}>\n <AgentMark />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: 10, paddingTop: 4 }}>\n {blocks.map((b, i) => {\n if (b.kind === \"thinking\") return <ThinkingBlock key={i} block={b} />;\n if (b.kind === \"plan\") return <PlanBlock key={i} block={b} />;\n if (b.kind === \"tool\") return <ToolBlock key={i} block={b} />;\n return <TextBlock key={i} block={b} streaming={msg.streaming && i === lastTextIdx} />;\n })}\n {/* No text yet but still working → show a typing affordance. */}\n {msg.streaming && lastTextIdx === -1 && !onlyThinking ? (\n <span className=\"klun-agent-typing\"><span /><span /><span /></span>\n ) : null}\n </div>\n </div>\n );\n}\n\nfunction UserTurn({ msg, initials }: { msg: AgentMessage; initials: string }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"row-reverse\", gap: 12, alignItems: \"flex-start\" }}>\n <Avatar size=\"32\" initials={initials} color=\"purple\" />\n <div\n style={{\n maxWidth: \"78%\",\n padding: \"10px 14px\",\n borderRadius: \"var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-sm) var(--klun-radius-2xl)\",\n background: \"var(--klun-primary-base)\",\n color: \"var(--klun-static-static-white)\",\n font: \"var(--klun-text-paragraph-sm)\",\n lineHeight: 1.55,\n whiteSpace: \"pre-wrap\",\n }}\n >\n {msg.text}\n </div>\n </div>\n );\n}\n\nexport function AgentThread({ messages, userInitials, agentName, suggestions, onSuggest }: AgentThreadProps) {\n const scrollRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n scrollRef.current?.scrollTo?.(0, scrollRef.current.scrollHeight);\n }, [messages]);\n\n if (messages.length === 0) {\n return (\n <div style={{ flex: 1, display: \"flex\", flexDirection: \"column\", alignItems: \"center\", justifyContent: \"center\", padding: 32, textAlign: \"center\" }}>\n <div\n style={{\n width: 56,\n height: 56,\n borderRadius: \"var(--klun-radius-2xl)\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: 28,\n marginBottom: 20,\n }}\n >\n <i className=\"ri-sparkling-2-fill\" />\n </div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n What should {agentName} work on?\n </h1>\n <p style={{ margin: \"8px 0 28px\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\" }}>\n Describe a task — the agent will plan, use tools, and report back.\n </p>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 12, maxWidth: 560, width: \"100%\" }}>\n {suggestions.map((s) => (\n <button\n key={s.text}\n onClick={() => onSuggest(s.text)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n padding: \"14px 16px\",\n textAlign: \"left\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-xl)\",\n cursor: \"pointer\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n <i className={s.icon} style={{ fontSize: 20, color: \"var(--klun-primary-base)\" }} />\n <span>{s.text}</span>\n </button>\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div ref={scrollRef} style={{ flex: 1, overflow: \"auto\" }}>\n <div style={{ maxWidth: 760, margin: \"0 auto\", padding: \"24px 24px 8px\", display: \"flex\", flexDirection: \"column\", gap: 24 }}>\n {messages.map((m) =>\n m.from === \"me\" ? (\n <UserTurn key={m.id} msg={m} initials={userInitials} />\n ) : (\n <AgentTurn key={m.id} msg={m} />\n ),\n )}\n </div>\n </div>\n );\n}\n\n/** Small status pill for the thread header. */\nexport function AgentRunBadge({ busy }: { busy: boolean }) {\n return busy ? (\n <Badge color=\"orange\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-loader-4-line\" style={{ animation: \"klun-agent-spin .9s linear infinite\" }} />}>\n Working\n </Badge>\n ) : (\n <Badge color=\"green\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-check-line\" />}>\n Idle\n </Badge>\n );\n}\n","// Klun UI agent chat — composer with model picker, tool toggle and a send\n// button that flips to a stop control while the agent is running.\nimport { useRef, useState, type ChangeEvent, type CSSProperties } from \"react\";\n\nexport interface AgentComposerProps {\n onSend: (text: string) => void;\n onStop: () => void;\n busy: boolean;\n /** Whether the agent is allowed to call tools this turn. */\n toolsOn: boolean;\n onToggleTools: (on: boolean) => void;\n}\n\nexport function AgentComposer({ onSend, onStop, busy, toolsOn, onToggleTools }: AgentComposerProps) {\n const [text, setText] = useState(\"\");\n const [model, setModel] = useState(\"Klun Agent-1\");\n const taRef = useRef<HTMLTextAreaElement>(null);\n\n const send = () => {\n const t = text.trim();\n if (!t || busy) return;\n onSend(t);\n setText(\"\");\n if (taRef.current) taRef.current.style.height = \"auto\";\n };\n const grow = (e: ChangeEvent<HTMLTextAreaElement>) => {\n setText(e.target.value);\n e.target.style.height = \"auto\";\n e.target.style.height = Math.min(e.target.scrollHeight, 160) + \"px\";\n };\n\n const canSend = !!text.trim() && !busy;\n\n return (\n <div style={{ padding: \"0 24px 20px\" }}>\n <div\n style={{\n maxWidth: 760,\n margin: \"0 auto\",\n borderRadius: \"var(--klun-radius-3xl)\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n padding: 12,\n }}\n >\n <textarea\n ref={taRef}\n value={text}\n onChange={grow}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n send();\n }\n }}\n placeholder=\"Give the agent a task…\"\n rows={1}\n style={{\n width: \"100%\",\n boxSizing: \"border-box\",\n border: \"none\",\n outline: \"none\",\n resize: \"none\",\n background: \"transparent\",\n font: \"var(--klun-text-paragraph-md)\",\n color: \"var(--klun-text-strong-950)\",\n padding: \"6px 6px 10px\",\n maxHeight: 160,\n }}\n />\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <button title=\"Attach file\" style={iconBtn}>\n <i className=\"ri-attachment-2\" />\n </button>\n <button\n type=\"button\"\n onClick={() => onToggleTools(!toolsOn)}\n title=\"Toggle tools\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 6,\n height: 32,\n padding: \"0 10px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-md)\",\n cursor: \"pointer\",\n font: \"var(--klun-text-label-sm)\",\n background: toolsOn ? \"var(--klun-state-feature-lighter)\" : \"var(--klun-bg-weak-50)\",\n color: toolsOn ? \"var(--klun-state-feature-base)\" : \"var(--klun-text-sub-600)\",\n }}\n >\n <i className=\"ri-tools-line\" style={{ fontSize: 16 }} />\n Tools\n </button>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 4,\n height: 32,\n padding: \"0 8px 0 10px\",\n borderRadius: \"var(--klun-radius-md)\",\n background: \"var(--klun-bg-weak-50)\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-sub-600)\",\n cursor: \"pointer\",\n }}\n >\n <i className=\"ri-cpu-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n <select\n value={model}\n onChange={(e) => setModel(e.target.value)}\n style={{\n appearance: \"none\",\n WebkitAppearance: \"none\",\n border: \"none\",\n outline: \"none\",\n background: \"transparent\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-sub-600)\",\n cursor: \"pointer\",\n }}\n >\n <option>Klun Agent-1</option>\n <option>Klun Agent-1 Mini</option>\n <option>Klun Agent-1 Pro</option>\n </select>\n <i className=\"ri-arrow-down-s-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n <div style={{ flex: 1 }} />\n {busy ? (\n <button\n onClick={onStop}\n title=\"Stop\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 36,\n height: 36,\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: \"pointer\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n fontSize: 18,\n }}\n >\n <i className=\"ri-stop-fill\" />\n </button>\n ) : (\n <button\n onClick={send}\n disabled={!canSend}\n title=\"Send\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 36,\n height: 36,\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: canSend ? \"pointer\" : \"not-allowed\",\n background: canSend ? \"var(--klun-primary-base)\" : \"var(--klun-bg-soft-200)\",\n color: canSend ? \"var(--klun-static-static-white)\" : \"var(--klun-text-soft-400)\",\n fontSize: 20,\n }}\n >\n <i className=\"ri-arrow-up-line\" />\n </button>\n )}\n </div>\n </div>\n <div\n style={{\n maxWidth: 760,\n margin: \"8px auto 0\",\n textAlign: \"center\",\n font: \"var(--klun-text-paragraph-xs)\",\n color: \"var(--klun-text-soft-400)\",\n }}\n >\n The agent can run tools and make mistakes. Review its actions.\n </div>\n </div>\n );\n}\n\nconst iconBtn: CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 32,\n height: 32,\n border: \"none\",\n borderRadius: \"var(--klun-radius-md)\",\n background: \"transparent\",\n color: \"var(--klun-icon-sub-600)\",\n cursor: \"pointer\",\n fontSize: 18,\n};\n","// Klun UI agent chat — full template composition. A simulated agent run that\n// reasons, lays out a plan, calls tools and streams its final answer, with a\n// working Stop control that aborts the run mid-flight.\nimport { useEffect, useRef, useState } from \"react\";\nimport { Button } from \"../../index\";\nimport { AgentSidebar, type AgentSession, type AgentUser } from \"./AgentSidebar\";\nimport {\n AgentThread,\n AgentRunBadge,\n type AgentBlock,\n type AgentMessage,\n type AgentPlanBlock,\n type AgentStep,\n type AgentSuggestion,\n type AgentTextBlock,\n} from \"./AgentThread\";\nimport { AgentComposer } from \"./AgentComposer\";\n\n/* --------------------------------------------------------------- scenarios -- */\n\ninterface Scenario {\n thinking: string;\n thinkSeconds: number;\n planTitle: string;\n /** One label per tool, plus a final \"compose the answer\" step. */\n steps: string[];\n tools: { name: string; icon: string; request: string; result: string }[];\n answer: string;\n}\n\nconst SCENARIOS: Scenario[] = [\n {\n thinking:\n \"The user wants the Q2 numbers summarized. I'll search the knowledge base for the latest financials, read the segment breakdown, then write a short summary with the key drivers. I won't make up figures — everything comes from the files.\",\n thinkSeconds: 3,\n planTitle: \"Plan\",\n steps: [\"Search the knowledge base\", \"Read the matching records\", \"Write the summary\"],\n tools: [\n {\n name: \"search_kb\",\n icon: \"ri-search-2-line\",\n request: 'query: \"Q2 revenue by segment\"\\nlimit: 5',\n result: \"5 documents found:\\n• 2024-Q2-financials.pdf (0.94)\\n• segment-breakdown.csv (0.91)\\n• board-notes.md (0.83)\",\n },\n {\n name: \"read_file\",\n icon: \"ri-file-text-line\",\n request: 'path: \"segment-breakdown.csv\"',\n result: \"segment,revenue,growth\\nSubscriptions,1.82M,+18%\\nServices,0.64M,+4%\\nOne-off,0.21M,-7%\",\n },\n ],\n answer:\n \"Here's the Q2 breakdown: total revenue was $2.67M, up 12.4% over Q1. Growth came almost entirely from subscriptions (+18%, $1.82M), while one-off sales slipped 7%. Want me to chart this or draft a board summary?\",\n },\n {\n thinking:\n \"They want a follow-up email for an overdue invoice. I'll look up the contact, draft the message, and save it as a draft — I will not send anything without explicit confirmation.\",\n thinkSeconds: 2,\n planTitle: \"Plan\",\n steps: [\"Look up the contact\", \"Draft the message\", \"Prepare the draft\"],\n tools: [\n {\n name: \"get_contact\",\n icon: \"ri-contacts-line\",\n request: 'name: \"Apex Ltd\"',\n result: '{ \"name\": \"Apex Ltd\", \"email\": \"ap@apex.example\", \"owner\": \"Arthur\" }',\n },\n {\n name: \"create_draft\",\n icon: \"ri-mail-add-line\",\n request: 'to: \"ap@apex.example\"\\nsubject: \"Friendly reminder — invoice #1042\"',\n result: \"Draft saved (id: dr_7c21). Not sent.\",\n },\n ],\n answer:\n \"I've drafted a friendly reminder to Apex Ltd about invoice #1042 ($2,400, 6 days overdue) and saved it as a draft — I did not send it. Want me to add a payment link, soften the tone, or go ahead and send?\",\n },\n];\n\nconst SUGGESTIONS: AgentSuggestion[] = [\n { icon: \"ri-search-2-line\", text: \"Research our Q2 revenue and summarize it\" },\n { icon: \"ri-mail-send-line\", text: \"Draft and queue an overdue-invoice reminder\" },\n { icon: \"ri-bug-line\", text: \"Find the failing checkout test and propose a fix\" },\n { icon: \"ri-calendar-todo-line\", text: \"Plan my week around 3 deadlines\" },\n];\n\n/* ----------------------------------------------------------------- helpers -- */\n\nfunction mapLastKind<K extends AgentBlock[\"kind\"]>(\n blocks: AgentBlock[],\n kind: K,\n fn: (b: Extract<AgentBlock, { kind: K }>) => AgentBlock,\n): AgentBlock[] {\n for (let i = blocks.length - 1; i >= 0; i--) {\n if (blocks[i].kind === kind) {\n const next = blocks.slice();\n next[i] = fn(blocks[i] as Extract<AgentBlock, { kind: K }>);\n return next;\n }\n }\n return blocks;\n}\n\n/* ------------------------------------------------------------------- view -- */\n\nconst STYLES = `\n@keyframes klun-agent-spin { to { transform: rotate(360deg); } }\n@keyframes klun-agent-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }\n@keyframes klun-agent-bounce { 0%, 80%, 100% { transform: translateY(0); opacity: .4; } 40% { transform: translateY(-4px); opacity: 1; } }\n.klun-agent-caret { display: inline-block; width: 7px; height: 1.05em; margin-left: 2px; transform: translateY(2px); border-radius: 1px; background: var(--klun-primary-base); animation: klun-agent-blink 1s steps(2) infinite; }\n.klun-agent-typing { display: inline-flex; gap: 4px; padding: 6px 2px; }\n.klun-agent-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--klun-icon-soft-400); animation: klun-agent-bounce 1.2s infinite ease-in-out; }\n.klun-agent-typing span:nth-child(2) { animation-delay: .15s; }\n.klun-agent-typing span:nth-child(3) { animation-delay: .3s; }\n`;\n\nexport function AgentChatTemplate() {\n const user: AgentUser = { name: \"Arthur Taylor\", initials: \"AT\", plan: \"Pro plan\" };\n\n const [sessions, setSessions] = useState<AgentSession[]>([\n { id: \"s1\", group: \"today\", title: \"Q2 revenue summary\", state: \"done\" },\n { id: \"s2\", group: \"today\", title: \"Invoice reminder draft\", state: \"done\" },\n { id: \"s3\", group: \"week\", title: \"Fix checkout flake\", state: \"idle\" },\n ]);\n const [activeId, setActiveId] = useState(\"new\");\n const [threads, setThreads] = useState<Record<string, AgentMessage[]>>({ new: [] });\n const [busy, setBusy] = useState(false);\n const [toolsOn, setToolsOn] = useState(true);\n\n const messages = threads[activeId] || [];\n\n // Run bookkeeping. runId invalidates in-flight timers so Stop unwinds cleanly.\n const runIdRef = useRef(0);\n const idRef = useRef(0);\n const runThreadRef = useRef(\"new\");\n const agentMsgIdRef = useRef(\"\");\n const timersRef = useRef<ReturnType<typeof setTimeout>[]>([]);\n const toolsOnRef = useRef(toolsOn);\n toolsOnRef.current = toolsOn;\n const scenarioRef = useRef(0);\n\n useEffect(() => () => timersRef.current.forEach(clearTimeout), []);\n\n const nextId = (p: string) => `${p}${(idRef.current += 1)}`;\n\n const sleep = (ms: number, token: number) =>\n new Promise<void>((resolve, reject) => {\n const id = setTimeout(() => {\n if (token === runIdRef.current) resolve();\n else reject(new Error(\"aborted\"));\n }, ms);\n timersRef.current.push(id);\n });\n\n const setSessionState = (id: string, state: AgentSession[\"state\"]) =>\n setSessions((ss) => ss.map((s) => (s.id === id ? { ...s, state } : s)));\n\n const run = async (prompt: string) => {\n const token = (runIdRef.current += 1);\n const threadId = activeId;\n const agentId = nextId(\"a\");\n runThreadRef.current = threadId;\n agentMsgIdRef.current = agentId;\n\n const sc = SCENARIOS[scenarioRef.current % SCENARIOS.length];\n scenarioRef.current += 1;\n const useTools = toolsOnRef.current;\n\n // Scoped helpers that always target this run's agent message.\n const patch = (updater: (blocks: AgentBlock[]) => AgentBlock[]) =>\n setThreads((t) => {\n const msgs = t[threadId];\n if (!msgs) return t;\n const idx = msgs.findIndex((m) => m.id === agentId);\n if (idx < 0) return t;\n const next = msgs.slice();\n next[idx] = { ...next[idx], blocks: updater(next[idx].blocks || []) };\n return { ...t, [threadId]: next };\n });\n const setStreaming = (streaming: boolean) =>\n setThreads((t) => {\n const msgs = t[threadId];\n if (!msgs) return t;\n const idx = msgs.findIndex((m) => m.id === agentId);\n if (idx < 0) return t;\n const next = msgs.slice();\n next[idx] = { ...next[idx], streaming };\n return { ...t, [threadId]: next };\n });\n const push = (b: AgentBlock) => patch((bl) => [...bl, b]);\n\n setBusy(true);\n if (threadId !== \"new\") setSessionState(threadId, \"running\");\n setThreads((t) => ({\n ...t,\n [threadId]: [...(t[threadId] || []), { id: agentId, from: \"agent\", blocks: [], streaming: true }],\n }));\n\n try {\n // 1. Reason.\n push({ kind: \"thinking\", text: sc.thinking });\n await sleep(1500, token);\n patch((bl) => mapLastKind(bl, \"thinking\", (b) => ({ ...b, seconds: sc.thinkSeconds })));\n\n if (useTools) {\n // 2. Plan.\n const steps: AgentStep[] = sc.steps.map((text, i) => ({ text, status: i === 0 ? \"active\" : \"todo\" }));\n push({ kind: \"plan\", title: sc.planTitle, steps });\n await sleep(700, token);\n\n // 3. Tools — advance the plan as each completes.\n for (let i = 0; i < sc.tools.length; i++) {\n const tool = sc.tools[i];\n push({ kind: \"tool\", name: tool.name, icon: tool.icon, request: tool.request, status: \"running\" });\n await sleep(1500, token);\n patch((bl) => mapLastKind(bl, \"tool\", (b) => ({ ...b, status: \"done\", result: tool.result })));\n patch((bl) =>\n mapLastKind(bl, \"plan\", (p: AgentPlanBlock) => ({\n ...p,\n steps: p.steps.map((s, k) =>\n k === i ? { ...s, status: \"done\" } : k === i + 1 ? { ...s, status: \"active\" } : s,\n ),\n })),\n );\n await sleep(450, token);\n }\n }\n\n // 4. Stream the answer.\n push({ kind: \"text\", text: \"\" });\n const words = sc.answer.split(\" \");\n let acc = \"\";\n for (let i = 0; i < words.length; i++) {\n acc += (i === 0 ? \"\" : \" \") + words[i];\n const cur = acc;\n patch((bl) => mapLastKind(bl, \"text\", (b) => ({ ...b, text: cur })));\n await sleep(28, token);\n }\n\n // 5. Done — close out the plan.\n if (useTools) {\n patch((bl) =>\n mapLastKind(bl, \"plan\", (p: AgentPlanBlock) => ({\n ...p,\n steps: p.steps.map((s) => ({ ...s, status: \"done\" as const })),\n })),\n );\n }\n setStreaming(false);\n if (threadId !== \"new\") setSessionState(threadId, \"done\");\n setBusy(false);\n } catch {\n // Aborted via Stop — handled there.\n }\n };\n\n const stop = () => {\n if (!busy) return;\n runIdRef.current += 1; // invalidate: the in-flight sleep will reject and unwind\n const threadId = runThreadRef.current;\n const agentId = agentMsgIdRef.current;\n setThreads((t) => {\n const msgs = t[threadId];\n if (!msgs) return t;\n const idx = msgs.findIndex((m) => m.id === agentId);\n if (idx < 0) return t;\n const msg = msgs[idx];\n let blocks: AgentBlock[] = (msg.blocks || []).map((b) =>\n b.kind === \"tool\" && b.status === \"running\" ? { ...b, status: \"error\", result: \"Stopped by user.\" } : b,\n );\n const last = blocks[blocks.length - 1];\n if (last && last.kind === \"text\" && !(last as AgentTextBlock).text) blocks = blocks.slice(0, -1);\n blocks = [...blocks, { kind: \"text\", text: \"⏹ Stopped.\" }];\n const next = msgs.slice();\n next[idx] = { ...msg, blocks, streaming: false };\n return { ...t, [threadId]: next };\n });\n if (threadId !== \"new\") setSessionState(threadId, \"idle\");\n setBusy(false);\n };\n\n const ask = (text: string) => {\n if (busy) return;\n setThreads((t) => ({ ...t, [activeId]: [...(t[activeId] || []), { id: nextId(\"u\"), from: \"me\", text }] }));\n run(text);\n };\n\n const newTask = () => {\n if (busy) stop();\n setActiveId(\"new\");\n setThreads((t) => ({ ...t, new: [] }));\n };\n\n const select = (id: string) => {\n setActiveId(id);\n setThreads((t) => (t[id] ? t : { ...t, [id]: [] }));\n };\n\n const title = activeId === \"new\" ? \"New task\" : sessions.find((s) => s.id === activeId)?.title || \"Task\";\n\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <style>{STYLES}</style>\n <AgentSidebar sessions={sessions} activeId={activeId} onSelect={select} onNew={newTask} user={user} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\" }}>\n <header\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n padding: \"14px 24px\",\n borderBottom: \"1px solid var(--klun-stroke-soft-200)\",\n }}\n >\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>{title}</span>\n <AgentRunBadge busy={busy} />\n <div style={{ flex: 1 }} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-share-line\" />} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-more-2-fill\" />} />\n </header>\n <AgentThread\n messages={messages}\n userInitials={user.initials}\n agentName=\"the agent\"\n suggestions={SUGGESTIONS}\n onSuggest={ask}\n />\n <AgentComposer onSend={ask} onStop={stop} busy={busy} toolsOn={toolsOn} onToggleTools={setToolsOn} />\n </div>\n </div>\n );\n}\n","// Klun UI crypto — trading sidebar.\n\ninterface NavItem {\n id: string;\n label: string;\n icon: string;\n badge?: string;\n}\n\nexport interface CryptoSidebarProps {\n active: string;\n onNavigate: (id: string) => void;\n}\n\nexport function CryptoSidebar({ active, onNavigate }: CryptoSidebarProps) {\n const main: NavItem[] = [\n { id: \"markets\", label: \"Markets\", icon: \"ri-line-chart-line\" },\n { id: \"portfolio\", label: \"Portfolio\", icon: \"ri-pie-chart-2-line\" },\n { id: \"trade\", label: \"Trade\", icon: \"ri-swap-line\" },\n { id: \"wallet\", label: \"Wallet\", icon: \"ri-wallet-3-line\" },\n { id: \"earn\", label: \"Earn\", icon: \"ri-funds-line\", badge: \"New\" },\n ];\n const other: NavItem[] = [\n { id: \"activity\", label: \"Activity\", icon: \"ri-history-line\" },\n { id: \"settings\", label: \"Settings\", icon: \"ri-settings-2-line\" },\n ];\n const Item = ({ it }: { it: NavItem }) => {\n const on = active === it.id;\n return (\n <button onClick={() => onNavigate(it.id)} style={{\n display: \"flex\", alignItems: \"center\", gap: 10, width: \"100%\", height: 38, padding: \"0 12px\",\n border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: \"pointer\", textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\", font: \"var(--klun-text-label-sm)\",\n }}>\n <i className={it.icon} style={{ fontSize: 20, color: on ? \"var(--klun-primary-base)\" : \"var(--klun-icon-sub-600)\" }} />\n <span style={{ flex: 1 }}>{it.label}</span>\n {it.badge ? <span style={{ font: \"var(--klun-text-subheading-2xs)\", padding: \"1px 6px\", borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-success-lighter)\", color: \"var(--klun-state-success-base)\" }}>{it.badge}</span> : null}\n </button>\n );\n };\n return (\n <aside style={{ width: 256, flexShrink: 0, height: \"100%\", boxSizing: \"border-box\", display: \"flex\", flexDirection: \"column\", padding: 18, background: \"var(--klun-bg-weak-50)\", borderRight: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 8px 18px\" }}>\n <div style={{ width: 34, height: 34, borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-primary-base)\", color: \"var(--klun-static-static-white)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-currency-line\" style={{ fontSize: 20 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Apex Exchange</span>\n </div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{main.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"20px 12px 8px\" }}>Account</div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{other.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ flex: 1 }} />\n <div style={{ borderRadius: \"var(--klun-radius-xl)\", background: \"var(--klun-bg-strong-950)\", padding: 16, color: \"var(--klun-static-static-white)\" }}>\n <i className=\"ri-vip-crown-2-line\" style={{ fontSize: 22 }} />\n <div style={{ marginTop: 8, font: \"var(--klun-text-label-sm)\" }}>Upgrade to Pro</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-paragraph-xs)\", opacity: .7 }}>0% maker fees & advanced charts.</div>\n </div>\n </aside>\n );\n}\n","// Klun UI crypto — Markets/Portfolio screen.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Card, Table, Badge, SegmentedControl, Button } from \"../../index\";\n\nfunction Stat({ label, value, delta, trend = \"up\", tint = \"feature\", icon }: {\n label: ReactNode; value: ReactNode; delta?: ReactNode; trend?: \"up\" | \"down\";\n tint?: \"feature\" | \"success\" | \"warning\" | \"information\" | \"error\"; icon?: ReactNode;\n}) {\n const dc = trend === \"up\" ? \"success\" : \"error\";\n return (\n <Card variant=\"stroke\" padding={18}>\n <div style={{ display: \"flex\", alignItems: \"flex-start\", justifyContent: \"space-between\" }}>\n <span style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22, background: `var(--klun-state-${tint}-lighter)`, color: `var(--klun-state-${tint}-base)` }}>{icon}</span>\n {delta != null ? (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 2, height: 20, padding: \"0 6px\", borderRadius: \"var(--klun-radius-capsule)\", font: \"var(--klun-text-label-xs)\", background: `var(--klun-state-${dc}-lighter)`, color: `var(--klun-state-${dc}-base)` }}>\n <i className={trend === \"up\" ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} style={{ fontSize: 14 }} />{delta}\n </span>\n ) : null}\n </div>\n <div style={{ marginTop: 16, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{label}</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{value}</div>\n </Card>\n );\n}\nimport type { TableColumn } from \"../../index\";\n\nfunction coinStyle(sym: string): [string, string] {\n const map: Record<string, [string, string]> = {\n BTC: [\"#F7931A22\", \"#F7931A\"], ETH: [\"#627EEA22\", \"#627EEA\"], SOL: [\"#9945FF22\", \"#9945FF\"],\n XRP: [\"#23292F22\", \"#23292F\"], BNB: [\"#F3BA2F22\", \"#C99A2C\"], USDC: [\"#2775CA22\", \"#2775CA\"],\n AVAX: [\"#E8414222\", \"#E84142\"], ADA: [\"#0033AD22\", \"#0033AD\"],\n };\n return map[sym] || [\"var(--klun-bg-weak-50)\", \"var(--klun-text-sub-600)\"];\n}\n\ninterface CoinIconProps {\n sym: string;\n size?: number;\n}\n\nfunction CoinIcon({ sym, size = 32 }: CoinIconProps) {\n const [bg, fg] = coinStyle(sym);\n return <span style={{ width: size, height: size, borderRadius: \"var(--klun-radius-pill)\", background: bg, color: fg, display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-label-xs)\", fontWeight: 600, flexShrink: 0 }}>{sym.slice(0, 3)}</span>;\n}\n\ninterface SparkProps {\n up: boolean;\n w?: number;\n h?: number;\n}\n\nfunction Spark({ up, w = 96, h = 32 }: SparkProps) {\n const pts = up ? [10, 12, 8, 14, 11, 16, 13, 20, 18, 24, 22, 28] : [26, 22, 24, 18, 20, 16, 18, 12, 14, 10, 12, 8];\n const step = w / (pts.length - 1);\n const d = pts.map((p, i) => `${i ? \"L\" : \"M\"}${(i * step).toFixed(1)},${(h - p).toFixed(1)}`).join(\" \");\n const c = up ? \"var(--klun-state-success-base)\" : \"var(--klun-state-error-base)\";\n return <svg width={w} height={h}><path d={d} fill=\"none\" stroke={c} strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" /></svg>;\n}\n\ninterface Holding {\n sym: string;\n name: string;\n price: string;\n amount: string;\n value: string;\n chg: string;\n up: boolean;\n}\n\nexport function MarketsScreen() {\n const [range, setRange] = useState(\"1w\");\n\n const holdings: Holding[] = [\n { sym: \"BTC\", name: \"Bitcoin\", price: \"$64,210\", amount: \"0.842 BTC\", value: \"$54,065\", chg: \"+2.4%\", up: true },\n { sym: \"ETH\", name: \"Ethereum\", price: \"$3,180\", amount: \"6.20 ETH\", value: \"$19,716\", chg: \"+1.3%\", up: true },\n { sym: \"SOL\", name: \"Solana\", price: \"$142.50\", amount: \"84.0 SOL\", value: \"$11,970\", chg: \"-2.3%\", up: false },\n { sym: \"XRP\", name: \"XRP\", price: \"$0.62\", amount: \"9,400 XRP\", value: \"$5,828\", chg: \"-0.2%\", up: false },\n { sym: \"BNB\", name: \"BNB\", price: \"$590.10\", amount: \"12.0 BNB\", value: \"$7,081\", chg: \"-1.5%\", up: false },\n ];\n const columns: TableColumn<Holding>[] = [\n { key: \"name\", header: \"Asset\", render: (r) => (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <CoinIcon sym={r.sym} />\n <div><div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{r.sym}</div></div>\n </div>) },\n { key: \"price\", header: \"Price\", render: (r) => <span style={{ font: \"var(--klun-text-label-sm)\" }}>{r.price}</span> },\n { key: \"amount\", header: \"Holdings\", render: (r) => <span style={{ color: \"var(--klun-text-sub-600)\" }}>{r.amount}</span> },\n { key: \"chg\", header: \"24h\", render: (r) => <Badge color={r.up ? \"green\" : \"red\"} variant=\"light\" size=\"small\" leadingIcon={<i className={r.up ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} />}>{r.chg}</Badge> },\n { key: \"value\", header: \"Value\", align: \"right\", render: (r) => <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.value}</span> },\n { key: \"spark\", header: \"\", width: 110, align: \"right\", render: (r) => <Spark up={r.up} /> },\n ];\n\n return (\n <div style={{ padding: 28, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1.6fr 1fr 1fr\", gap: 16 }}>\n <div style={{ gridColumn: \"1 / -1\", display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 16 }}>\n <Stat label=\"Total balance\" value=\"$98,659.40\" delta=\"3.8%\" trend=\"up\" tint=\"feature\" icon={<i className=\"ri-wallet-3-line\" />} />\n <Stat label=\"24h P&L\" value=\"+$1,842.10\" delta=\"1.9%\" trend=\"up\" tint=\"success\" icon={<i className=\"ri-line-chart-line\" />} />\n <Stat label=\"Available\" value=\"$12,430.00\" delta=\"0.0%\" trend=\"up\" tint=\"information\" icon={<i className=\"ri-cash-line\" />} />\n </div>\n </div>\n\n <div style={{ background: \"var(--klun-bg-white-0)\", borderRadius: \"var(--klun-radius-2xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", padding: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: 8 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n <CoinIcon sym=\"BTC\" size={36} />\n <div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>$64,210.40</span>\n <Badge color=\"green\" variant=\"light\" size=\"small\" leadingIcon={<i className=\"ri-arrow-up-line\" />}>2.4%</Badge>\n </div>\n <div style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>Bitcoin · BTC/USD</div>\n </div>\n </div>\n <SegmentedControl value={range} onChange={setRange} items={[{ value: \"1d\", label: \"1D\" }, { value: \"1w\", label: \"1W\" }, { value: \"1m\", label: \"1M\" }, { value: \"1y\", label: \"1Y\" }]} />\n </div>\n <AreaChart />\n </div>\n\n <div style={{ background: \"var(--klun-bg-white-0)\", borderRadius: \"var(--klun-radius-2xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", overflow: \"hidden\" }}>\n <div style={{ padding: \"16px 20px\", display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Your holdings</span>\n <Button variant=\"primary\" size=\"small\" leadingIcon={<i className=\"ri-add-line\" />}>Buy crypto</Button>\n </div>\n <Table columns={columns} rows={holdings} getRowId={(r) => r.sym} style={{ borderRadius: 0, boxShadow: \"none\", borderTop: \"1px solid var(--klun-stroke-soft-200)\" }} />\n </div>\n </div>\n );\n}\n\nfunction AreaChart(): ReactNode {\n const pts = [40, 44, 38, 52, 48, 60, 55, 72, 68, 84, 78, 96, 90, 108, 118];\n const w = 1000, h = 160, max = 130;\n const step = w / (pts.length - 1);\n const line = pts.map((p, i) => `${i ? \"L\" : \"M\"}${(i * step).toFixed(1)},${(h - (p / max) * h).toFixed(1)}`).join(\" \");\n const area = `${line} L${w},${h} L0,${h} Z`;\n return (\n <svg viewBox={`0 0 ${w} ${h}`} preserveAspectRatio=\"none\" style={{ width: \"100%\", height: 160, display: \"block\" }}>\n <defs>\n <linearGradient id=\"cryptoFill\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"var(--klun-primary-base)\" stopOpacity=\"0.18\" />\n <stop offset=\"100%\" stopColor=\"var(--klun-primary-base)\" stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n <path d={area} fill=\"url(#cryptoFill)\" />\n <path d={line} fill=\"none\" stroke=\"var(--klun-primary-base)\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n","// Klun UI crypto — trading dashboard template.\n// Markets/portfolio starting point — balance cards, area chart, holdings table.\nimport { useState } from \"react\";\nimport { Badge, Button } from \"../../index\";\nimport { CryptoSidebar } from \"./CryptoSidebar\";\nimport { MarketsScreen } from \"./MarketsScreen\";\n\nexport function CryptoTemplate() {\n const [active, setActive] = useState(\"portfolio\");\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <CryptoSidebar active={active} onNavigate={setActive} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}>\n <header style={{ display: \"flex\", alignItems: \"center\", gap: 16, padding: \"16px 28px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <div style={{ flex: 1 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>Portfolio</h1>\n <Badge color=\"green\" variant=\"light\" size=\"small\" dot>Markets open</Badge>\n </div>\n </div>\n <div style={{ position: \"relative\" }}>\n <i className=\"ri-search-line\" style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }}></i>\n <input placeholder=\"Search assets\" style={{ width: 220, boxSizing: \"border-box\", height: 36, padding: \"0 12px 0 36px\", borderRadius: \"var(--klun-radius-lg)\", border: \"none\", background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-strong-950)\", outline: \"none\" }} />\n </div>\n <Button iconOnly variant=\"neutral\" appearance=\"stroke\" icon={<i className=\"ri-notification-3-line\" />} />\n <Button variant=\"primary\" leadingIcon={<i className=\"ri-arrow-left-right-line\" />}>Trade</Button>\n </header>\n <main style={{ flex: 1, overflow: \"auto\", background: \"var(--klun-bg-weak-50)\" }}>\n <MarketsScreen />\n </main>\n </div>\n </div>\n );\n}\n","// Klun UI marketing — top nav.\nimport { Button } from \"../../index\";\n\nexport function MarketingNav() {\n const links = [\"Product\", \"Solutions\", \"Pricing\", \"Customers\", \"Docs\"];\n return (\n <header style={{ position: \"sticky\", top: 0, zIndex: 20, background: \"color-mix(in srgb, var(--klun-bg-white-0) 80%, transparent)\", backdropFilter: \"blur(12px)\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ maxWidth: 1120, margin: \"0 auto\", display: \"flex\", alignItems: \"center\", gap: 24, padding: \"14px 24px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <div style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-shapes-line\" style={{ fontSize: 18 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Klun</span>\n </div>\n <nav style={{ display: \"flex\", gap: 4, flex: 1 }}>\n {links.map((l) => (\n <a key={l} href=\"#\" style={{ padding: \"6px 12px\", borderRadius: \"var(--klun-radius-md)\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", textDecoration: \"none\" }}>{l}</a>\n ))}\n </nav>\n <a href=\"#\" style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", textDecoration: \"none\" }}>Sign in</a>\n <Button variant=\"neutral\" size=\"small\" trailingIcon={<i className=\"ri-arrow-right-line\" />}>Start free</Button>\n </div>\n </header>\n );\n}\n","// Klun UI marketing — page sections.\nimport type { CSSProperties, ReactNode } from \"react\";\nimport { Badge, Button, Card, Accordion, Avatar } from \"../../index\";\n\nfunction Stat({ label, value, delta, trend = \"up\", tint = \"feature\", icon }: {\n label: ReactNode; value: ReactNode; delta?: ReactNode; trend?: \"up\" | \"down\";\n tint?: \"feature\" | \"success\" | \"warning\" | \"information\" | \"error\"; icon?: ReactNode;\n}) {\n const dc = trend === \"up\" ? \"success\" : \"error\";\n return (\n <Card variant=\"stroke\" padding={18}>\n <div style={{ display: \"flex\", alignItems: \"flex-start\", justifyContent: \"space-between\" }}>\n <span style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22, background: `var(--klun-state-${tint}-lighter)`, color: `var(--klun-state-${tint}-base)` }}>{icon}</span>\n {delta != null ? (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 2, height: 20, padding: \"0 6px\", borderRadius: \"var(--klun-radius-capsule)\", font: \"var(--klun-text-label-xs)\", background: `var(--klun-state-${dc}-lighter)`, color: `var(--klun-state-${dc}-base)` }}>\n <i className={trend === \"up\" ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} style={{ fontSize: 14 }} />{delta}\n </span>\n ) : null}\n </div>\n <div style={{ marginTop: 16, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{label}</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{value}</div>\n </Card>\n );\n}\n\ninterface Feature {\n icon: string;\n t: string;\n d: string;\n}\n\ninterface PricingTier {\n name: string;\n price: string;\n note: string;\n feats: string[];\n cta: string;\n featured: boolean;\n}\n\ninterface FooterColumn {\n h: string;\n l: string[];\n}\n\nexport function MarketingSections() {\n const wrap: CSSProperties = { maxWidth: 1120, margin: \"0 auto\", padding: \"0 24px\" };\n\n const features: Feature[] = [\n { icon: \"ri-contrast-drop-line\", t: \"Semantic tokens\", d: \"Every color, radius and space is a named token that re-themes in one line.\" },\n { icon: \"ri-moon-clear-line\", t: \"Dark mode built-in\", d: \"Light and dark resolve automatically — no duplicate components.\" },\n { icon: \"ri-palette-line\", t: \"Four accent themes\", d: \"Blue, purple, orange or green. Switch with a single data attribute.\" },\n { icon: \"ri-puzzle-2-line\", t: \"50+ components\", d: \"Buttons to command menus, all composable and accessible.\" },\n { icon: \"ri-layout-grid-line\", t: \"Product templates\", d: \"Dashboards, AI chat and trading screens ready to fork.\" },\n { icon: \"ri-code-s-slash-line\", t: \"Figma to code\", d: \"Tokens and structure map straight to your codebase.\" },\n ];\n\n const tiers: PricingTier[] = [\n { name: \"Starter\", price: \"$0\", note: \"for solo makers\", feats: [\"Core tokens\", \"30 components\", \"Community support\"], cta: \"Get started\", featured: false },\n { name: \"Pro\", price: \"$29\", note: \"per editor / month\", feats: [\"All 50+ components\", \"Product templates\", \"Dark mode & themes\", \"Priority support\"], cta: \"Start free trial\", featured: true },\n { name: \"Team\", price: \"Custom\", note: \"for organizations\", feats: [\"Everything in Pro\", \"SSO & roles\", \"Design ops review\", \"SLA\"], cta: \"Contact sales\", featured: false },\n ];\n\n const footerColumns: FooterColumn[] = [\n { h: \"Product\", l: [\"Components\", \"Tokens\", \"Templates\", \"Changelog\"] },\n { h: \"Company\", l: [\"About\", \"Careers\", \"Blog\", \"Contact\"] },\n { h: \"Legal\", l: [\"Privacy\", \"Terms\", \"License\"] },\n ];\n\n return (\n <main>\n {/* Hero */}\n <section style={{ ...wrap, textAlign: \"center\", padding: \"80px 24px 64px\" }}>\n <div style={{ display: \"inline-flex\", marginBottom: 20 }}>\n <Badge color=\"purple\" variant=\"lighter\" leadingIcon={<i className=\"ri-sparkling-2-fill\" />}>Klun UI 2.0 is here</Badge>\n </div>\n <h1 style={{ margin: \"0 auto\", maxWidth: 760, font: \"var(--klun-text-title-h1)\", letterSpacing: \"var(--klun-title-h1-tracking)\", color: \"var(--klun-text-strong-950)\" }}>\n The design system that ships with you\n </h1>\n <p style={{ margin: \"20px auto 0\", maxWidth: 560, font: \"var(--klun-text-paragraph-lg)\", color: \"var(--klun-text-sub-600)\" }}>\n Tokens, components and full product templates — themeable, dark-mode ready, and built to move from Figma to production without the redraw.\n </p>\n <div style={{ display: \"flex\", gap: 12, justifyContent: \"center\", marginTop: 28 }}>\n <Button variant=\"primary\" size=\"large\" trailingIcon={<i className=\"ri-arrow-right-line\" />}>Start building free</Button>\n <Button variant=\"neutral\" appearance=\"stroke\" size=\"large\" leadingIcon={<i className=\"ri-github-fill\" />}>View on GitHub</Button>\n </div>\n <div style={{ marginTop: 40, height: 280, borderRadius: \"var(--klun-radius-3xl)\", background: \"linear-gradient(180deg, var(--klun-bg-weak-50), var(--klun-bg-white-0))\", boxShadow: \"var(--klun-shadow-lg), inset 0 0 0 1px var(--klun-stroke-soft-200)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", color: \"var(--klun-text-disabled-300)\" }}>\n <i className=\"ri-layout-masonry-line\" style={{ fontSize: 56 }} />\n </div>\n </section>\n\n {/* Social proof */}\n <section style={{ ...wrap, padding: \"8px 24px 56px\" }}>\n <p style={{ textAlign: \"center\", font: \"var(--klun-text-subheading-xs)\", letterSpacing: \"var(--klun-subheading-xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", marginBottom: 20 }}>Trusted by teams at</p>\n <div style={{ display: \"flex\", flexWrap: \"wrap\", gap: 40, justifyContent: \"center\", alignItems: \"center\", color: \"var(--klun-text-disabled-300)\" }}>\n {[\"ri-google-fill\", \"ri-microsoft-fill\", \"ri-slack-fill\", \"ri-notion-fill\", \"ri-figma-fill\", \"ri-amazon-fill\"].map((i) => (\n <i key={i} className={i} style={{ fontSize: 30 }} />\n ))}\n </div>\n </section>\n\n {/* Stats */}\n <section style={{ ...wrap, padding: \"16px 24px 64px\" }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(4, 1fr)\", gap: 16 }}>\n <Stat label=\"Components\" value=\"50+\" delta=\"2.0 release\" trend=\"up\" tint=\"feature\" icon={<i className=\"ri-puzzle-2-line\" />} />\n <Stat label=\"Design tokens\" value=\"700+\" delta=\"9 collections\" trend=\"up\" tint=\"information\" icon={<i className=\"ri-palette-line\" />} />\n <Stat label=\"Icons\" value=\"4,200+\" delta=\"line & fill\" trend=\"up\" tint=\"success\" icon={<i className=\"ri-shapes-line\" />} />\n <Stat label=\"Themes\" value=\"4 + dark\" delta=\"instant\" trend=\"up\" tint=\"warning\" icon={<i className=\"ri-contrast-2-line\" />} />\n </div>\n </section>\n\n {/* Features */}\n <section style={{ ...wrap, padding: \"56px 24px\" }}>\n <div style={{ textAlign: \"center\", maxWidth: 560, margin: \"0 auto 40px\" }}>\n <h2 style={{ margin: 0, font: \"var(--klun-text-title-h3)\", letterSpacing: \"var(--klun-title-h3-tracking)\", color: \"var(--klun-text-strong-950)\" }}>Everything you need to design fast</h2>\n <p style={{ margin: \"12px 0 0\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\" }}>One coherent system from the smallest token to the full screen.</p>\n </div>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 16 }}>\n {features.map((f) => (\n <Card key={f.t} variant=\"stroke\" padding={24}>\n <div style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-primary-lighter)\", color: \"var(--klun-primary-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22, marginBottom: 16 }}>\n <i className={f.icon} />\n </div>\n <div style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\", marginBottom: 6 }}>{f.t}</div>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{f.d}</p>\n </Card>\n ))}\n </div>\n </section>\n\n {/* Pricing */}\n <section style={{ ...wrap, padding: \"56px 24px\" }}>\n <div style={{ textAlign: \"center\", marginBottom: 40 }}>\n <h2 style={{ margin: 0, font: \"var(--klun-text-title-h3)\", letterSpacing: \"var(--klun-title-h3-tracking)\", color: \"var(--klun-text-strong-950)\" }}>Simple, fair pricing</h2>\n </div>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 16, alignItems: \"start\" }}>\n {tiers.map((p) => (\n <div key={p.name} style={{\n borderRadius: \"var(--klun-radius-3xl)\", padding: 28,\n background: p.featured ? \"var(--klun-bg-strong-950)\" : \"var(--klun-bg-white-0)\",\n color: p.featured ? \"var(--klun-static-static-white)\" : \"var(--klun-text-strong-950)\",\n boxShadow: p.featured ? \"var(--klun-shadow-lg)\" : \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-label-lg)\" }}>{p.name}</span>\n {p.featured ? <Badge color=\"purple\" variant=\"filled\" size=\"small\">Popular</Badge> : null}\n </div>\n <div style={{ marginTop: 16, display: \"flex\", alignItems: \"baseline\", gap: 6 }}>\n <span style={{ font: \"var(--klun-text-title-h2)\", letterSpacing: \"var(--klun-title-h2-tracking)\" }}>{p.price}</span>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", opacity: .7 }}>{p.note}</span>\n </div>\n <div style={{ margin: \"20px 0\", display: \"flex\", flexDirection: \"column\", gap: 10 }}>\n {p.feats.map((f) => (\n <div key={f} style={{ display: \"flex\", alignItems: \"center\", gap: 8, font: \"var(--klun-text-paragraph-sm)\", opacity: p.featured ? .9 : 1 }}>\n <i className=\"ri-checkbox-circle-fill\" style={{ fontSize: 18, color: p.featured ? \"var(--klun-static-static-white)\" : \"var(--klun-state-success-base)\" }} />{f}\n </div>\n ))}\n </div>\n <button style={{\n width: \"100%\", height: 44, border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", font: \"var(--klun-text-label-md)\",\n background: p.featured ? \"var(--klun-static-static-white)\" : \"var(--klun-primary-base)\",\n color: p.featured ? \"var(--klun-static-static-black)\" : \"var(--klun-static-static-white)\",\n }}>{p.cta}</button>\n </div>\n ))}\n </div>\n </section>\n\n {/* Testimonial */}\n <section style={{ ...wrap, padding: \"56px 24px\" }}>\n <Card variant=\"flat\" padding={40} style={{ textAlign: \"center\", borderRadius: \"var(--klun-radius-4xl)\" }}>\n <div style={{ display: \"flex\", justifyContent: \"center\", gap: 4, color: \"var(--klun-state-away-base)\", marginBottom: 16 }}>\n {[0, 1, 2, 3, 4].map((i) => <i key={i} className=\"ri-star-fill\" style={{ fontSize: 20 }} />)}\n </div>\n <p style={{ margin: \"0 auto\", maxWidth: 680, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\", fontFamily: \"var(--klun-font-display)\" }}>\n “We replaced three internal libraries with Klun UI and shipped our dashboard a month early. The token system alone paid for itself.”\n </p>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"center\", gap: 12, marginTop: 24 }}>\n <Avatar size=\"48\" initials=\"SW\" color=\"purple\" />\n <div style={{ textAlign: \"left\" }}>\n <div style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Sophia Williams</div>\n <div style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>Head of Design, Northwind</div>\n </div>\n </div>\n </Card>\n </section>\n\n {/* FAQ */}\n <section style={{ maxWidth: 720, margin: \"0 auto\", padding: \"56px 24px\" }}>\n <h2 style={{ margin: \"0 0 28px\", textAlign: \"center\", font: \"var(--klun-text-title-h3)\", letterSpacing: \"var(--klun-title-h3-tracking)\", color: \"var(--klun-text-strong-950)\" }}>Frequently asked</h2>\n <Accordion defaultOpen=\"a\" items={[\n { id: \"a\", title: \"Is Klun UI free to use?\", content: \"The Starter tier with core tokens and 30 components is free forever. Pro unlocks the full component set, templates and themes.\" },\n { id: \"b\", title: \"Does it work with my framework?\", content: \"Components ship as framework-agnostic patterns driven by CSS custom properties — drop the tokens into React, Vue, Svelte or plain HTML.\" },\n { id: \"c\", title: \"Can I customize the theme?\", content: \"Yes. Swap the accent (blue/purple/orange/green) and neutral ramp (gray/slate) with a single data attribute, or override any token.\" },\n { id: \"d\", title: \"Do you offer dark mode?\", content: \"Dark mode is built in. Set data-theme=\\\"dark\\\" and every component re-themes through its semantic tokens.\" },\n ]} />\n </section>\n\n {/* CTA */}\n <section style={{ ...wrap, padding: \"40px 24px 80px\" }}>\n <div style={{ borderRadius: \"var(--klun-radius-4xl)\", padding: \"56px 24px\", textAlign: \"center\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-static-static-white)\" }}>\n <h2 style={{ margin: 0, font: \"var(--klun-text-title-h2)\", letterSpacing: \"var(--klun-title-h2-tracking)\" }}>Start designing in harmony</h2>\n <p style={{ margin: \"12px auto 0\", maxWidth: 480, font: \"var(--klun-text-paragraph-lg)\", opacity: .8 }}>Free to start. No credit card required.</p>\n <div style={{ display: \"flex\", gap: 12, justifyContent: \"center\", marginTop: 28 }}>\n <button style={{ height: 48, padding: \"0 24px\", border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", font: \"var(--klun-text-label-md)\", background: \"var(--klun-static-static-white)\", color: \"var(--klun-static-static-black)\" }}>Start free</button>\n <button style={{ height: 48, padding: \"0 24px\", border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", font: \"var(--klun-text-label-md)\", background: \"var(--klun-alpha-white-alpha-16)\", color: \"var(--klun-static-static-white)\" }}>Book a demo</button>\n </div>\n </div>\n </section>\n\n {/* Footer */}\n <footer style={{ borderTop: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ ...wrap, display: \"flex\", gap: 24, flexWrap: \"wrap\", justifyContent: \"space-between\", padding: \"40px 24px\" }}>\n <div style={{ maxWidth: 260 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, marginBottom: 12 }}>\n <div style={{ width: 28, height: 28, borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}><i className=\"ri-shapes-line\" style={{ fontSize: 16 }} /></div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Klun</span>\n </div>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>The design system that ships with you.</p>\n </div>\n {footerColumns.map((c) => (\n <div key={c.h}>\n <div style={{ font: \"var(--klun-text-subheading-xs)\", letterSpacing: \"var(--klun-subheading-xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", marginBottom: 12 }}>{c.h}</div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n {c.l.map((x) => <a key={x} href=\"#\" style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\", textDecoration: \"none\" }}>{x}</a>)}\n </div>\n </div>\n ))}\n </div>\n <div style={{ ...wrap, display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\", padding: \"20px 24px\", borderTop: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>© 2026 Klun. All rights reserved.</span>\n <div style={{ display: \"flex\", gap: 14, color: \"var(--klun-icon-soft-400)\" }}>\n {[\"ri-twitter-x-fill\", \"ri-github-fill\", \"ri-linkedin-fill\"].map((i) => <i key={i} className={i} style={{ fontSize: 18 }} />)}\n </div>\n </div>\n </footer>\n </main>\n );\n}\n","// Klun UI marketing template — SaaS landing page composition.\nimport { MarketingNav } from \"./MarketingNav\";\nimport { MarketingSections } from \"./MarketingSections\";\n\n/** Marketing site starting point — hero, features, pricing, FAQ, footer. */\nexport function MarketingTemplate() {\n return (\n <div>\n <MarketingNav />\n <MarketingSections />\n </div>\n );\n}\n","// Klun UI calendar template — month grid with period nav, filters, event chips\n// and an agenda list. Single-page composition built from klun-ui components.\nimport { useState } from \"react\";\nimport {\n HorizontalFilter,\n Button,\n SegmentedControl,\n AvatarGroup,\n Chip,\n ContentLabel,\n} from \"../../index\";\nimport type { ChipColor } from \"../../index\";\n\ninterface Category {\n color: ChipColor;\n label: string;\n}\n\nconst DOW = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\nconst CAT: Record<string, Category> = {\n meeting: { color: \"blue\", label: \"Meeting\" },\n focus: { color: \"purple\", label: \"Focus\" },\n review: { color: \"green\", label: \"Review\" },\n travel: { color: \"orange\", label: \"Travel\" },\n};\n\ninterface DayEvent {\n c: keyof typeof CAT;\n t: string;\n}\n\n// March 2026 starts on a Sunday; offset so Monday-first grid leads with 6 blanks.\nconst EVENTS: Record<number, DayEvent[]> = {\n 3: [{ c: \"meeting\", t: \"Standup\" }],\n 4: [{ c: \"focus\", t: \"Design review\" }, { c: \"review\", t: \"PR #482\" }],\n 6: [{ c: \"travel\", t: \"Flight SFO\" }],\n 9: [{ c: \"meeting\", t: \"1:1 Mia\" }],\n 12: [{ c: \"meeting\", t: \"Roadmap\" }, { c: \"focus\", t: \"Spec draft\" }, { c: \"review\", t: \"QA pass\" }],\n 17: [{ c: \"review\", t: \"Release\" }],\n 18: [{ c: \"focus\", t: \"Deep work\" }],\n 20: [{ c: \"meeting\", t: \"All-hands\" }],\n 24: [{ c: \"travel\", t: \"Offsite\" }],\n 25: [{ c: \"travel\", t: \"Offsite\" }],\n 27: [{ c: \"meeting\", t: \"Demo day\" }],\n};\n\ninterface DayCellProps {\n day: number;\n today: boolean;\n}\n\nfunction DayCell({ day, today }: DayCellProps) {\n const evs = EVENTS[day] || [];\n return (\n <div style={{ minHeight: 116, padding: 8, background: \"var(--klun-bg-white-0)\", boxShadow: \"inset -1px -1px 0 var(--klun-stroke-soft-200)\", display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n <span style={{\n alignSelf: \"flex-start\", display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\",\n minWidth: 24, height: 24, padding: \"0 6px\", borderRadius: \"var(--klun-radius-pill)\",\n font: \"var(--klun-text-label-xs)\", fontVariantNumeric: \"tabular-nums\",\n background: today ? \"var(--klun-primary-base)\" : \"transparent\",\n color: today ? \"var(--klun-static-static-white)\" : \"var(--klun-text-sub-600)\",\n }}>{day}</span>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 3 }}>\n {evs.slice(0, 3).map((e, i) => {\n const cat = CAT[e.c];\n return (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 6, padding: \"3px 6px\", borderRadius: \"var(--klun-radius-sm)\", background: `var(--klun-${cat.color}-50)`, font: \"var(--klun-text-label-xs)\", color: `var(--klun-${cat.color}-600, var(--klun-text-sub-600))`, overflow: \"hidden\", whiteSpace: \"nowrap\", textOverflow: \"ellipsis\" }}>\n <span style={{ width: 6, height: 6, borderRadius: \"var(--klun-radius-pill)\", background: `var(--klun-${cat.color}-500)`, flex: \"none\" }} />\n <span style={{ overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{e.t}</span>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\ninterface AgendaEntry {\n t: string;\n time: string;\n c: keyof typeof CAT;\n}\n\nconst AGENDA: AgendaEntry[] = [\n { t: \"Roadmap planning\", time: \"10:00 – 11:00\", c: \"meeting\" },\n { t: \"Spec draft\", time: \"13:30 – 15:00\", c: \"focus\" },\n { t: \"QA pass\", time: \"16:00 – 16:30\", c: \"review\" },\n];\n\n/** Calendar starting point — month grid, period nav, filters and agenda. */\nexport function CalendarTemplate() {\n const [filter, setFilter] = useState(\"all\");\n const [view, setView] = useState(\"month\");\n // 6 leading blanks (March 1 2026 = Sunday, Monday-first grid), 31 days.\n const cells: (number | null)[] = [...Array<null>(6).fill(null), ...Array.from({ length: 31 }, (_, i) => i + 1)];\n return (\n <div style={{ maxWidth: 1120, margin: \"0 auto\", padding: \"40px 32px 80px\" }}>\n <header style={{ display: \"flex\", alignItems: \"flex-start\", gap: 16, width: \"100%\", padding: \"0 0 20px\", boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4, flex: 1, minWidth: 0 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-0.01em\" }}>Calendar</h1>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>March 2026 · 11 events this month</p>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8, flex: \"none\" }}><Button leadingIcon={<i className=\"ri-add-line\" />}>New event</Button></div>\n </header>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 16, flexWrap: \"wrap\", margin: \"24px 0 16px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n <div style={{ display: \"inline-flex\", alignItems: \"center\", gap: 6, height: 36, padding: \"0 4px 0 10px\", borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <button type=\"button\" aria-label=\"Previous period\" onClick={() => {}} style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 28, height: 28, border: \"none\", background: \"transparent\", color: \"var(--klun-icon-sub-600)\", cursor: \"pointer\", fontSize: 18, borderRadius: \"var(--klun-radius-sm)\" }}><i className=\"ri-arrow-left-s-line\" /></button>\n <i className=\"ri-calendar-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 6, font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\", whiteSpace: \"nowrap\", padding: \"0 2px\" }}>Mar 1<span style={{ color: \"var(--klun-text-soft-400)\" }}>→</span>Mar 31</span>\n <button type=\"button\" aria-label=\"Next period\" onClick={() => {}} style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 28, height: 28, border: \"none\", background: \"transparent\", color: \"var(--klun-icon-sub-600)\", cursor: \"pointer\", fontSize: 18, borderRadius: \"var(--klun-radius-sm)\" }}><i className=\"ri-arrow-right-s-line\" /></button>\n </div>\n <Button variant=\"neutral\" appearance=\"ghost\" size=\"small\">Today</Button>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n <AvatarGroup variant=\"stroke\" size=\"24\" avatars={[{ initials: \"AT\", color: \"blue\" }, { initials: \"MB\", color: \"green\" }, { initials: \"JK\", color: \"orange\" }, { initials: \"RP\" }]} />\n <SegmentedControl value={view} onChange={setView} items={[{ value: \"month\", label: \"Month\" }, { value: \"week\", label: \"Week\" }, { value: \"day\", label: \"Day\" }]} />\n </div>\n </div>\n <div style={{ marginBottom: 16 }}>\n <HorizontalFilter value={filter} onChange={setFilter} items={[\n { value: \"all\", label: \"All\", count: 11 },\n { value: \"meeting\", label: \"Meetings\", count: 5, icon: <i className=\"ri-group-line\" /> },\n { value: \"focus\", label: \"Focus\", count: 3 },\n { value: \"review\", label: \"Reviews\", count: 3 },\n { value: \"travel\", label: \"Travel\", count: 3 },\n ]} />\n </div>\n <div style={{ borderRadius: \"var(--klun-radius-2xl)\", overflow: \"hidden\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(7, 1fr)\" }}>\n {DOW.map((d) => (\n <div key={d} style={{ padding: \"10px 8px\", font: \"var(--klun-text-subheading-2xs, var(--klun-text-label-xs))\", letterSpacing: \".06em\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset -1px -1px 0 var(--klun-stroke-soft-200)\" }}>{d}</div>\n ))}\n {cells.map((day, i) => day == null\n ? <div key={i} style={{ minHeight: 116, background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset -1px -1px 0 var(--klun-stroke-soft-200)\" }} />\n : <DayCell key={i} day={day} today={day === 12} />)}\n </div>\n </div>\n <div style={{ marginTop: 28 }}>\n <ContentLabel icon={<i className=\"ri-calendar-event-line\" />}>Up next · today</ContentLabel>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8, marginTop: 12 }}>\n {AGENDA.map((e, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 14, padding: \"12px 16px\", borderRadius: \"var(--klun-radius-xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <span style={{ width: 4, height: 36, borderRadius: \"var(--klun-radius-pill)\", background: `var(--klun-${CAT[e.c].color}-500)`, flex: \"none\" }} />\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{e.t}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{e.time}</div>\n </div>\n <Chip color={CAT[e.c].color} dot>{CAT[e.c].label}</Chip>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","// Klun UI pricing template — plan toggle, tier cards and an FAQ. Single-page\n// composition built from klun-ui components.\nimport { useState } from \"react\";\nimport {\n SegmentedControl,\n Badge,\n Button,\n ContentLabel,\n Accordion,\n Alert,\n Divider,\n} from \"../../index\";\nimport type { AccordionItem } from \"../../index\";\n\ntype Cycle = \"monthly\" | \"yearly\";\n\ninterface Plan {\n id: string;\n name: string;\n tagline: string;\n monthly: number | null;\n yearly: number | null;\n cta: string;\n featured?: boolean;\n features: string[];\n}\n\nconst PLANS: Plan[] = [\n {\n id: \"starter\", name: \"Starter\", tagline: \"For individuals getting started.\", monthly: 0, yearly: 0, cta: \"Start for free\",\n features: [\"1 workspace\", \"Up to 3 projects\", \"Community support\", \"1 GB storage\"],\n },\n {\n id: \"pro\", name: \"Pro\", tagline: \"For growing teams that ship fast.\", monthly: 24, yearly: 19, cta: \"Start 14-day trial\", featured: true,\n features: [\"Unlimited workspaces\", \"Unlimited projects\", \"Priority support\", \"100 GB storage\", \"Advanced analytics\", \"Custom roles\"],\n },\n {\n id: \"enterprise\", name: \"Enterprise\", tagline: \"For organizations at scale.\", monthly: null, yearly: null, cta: \"Contact sales\",\n features: [\"Everything in Pro\", \"SSO & SCIM\", \"Audit logs\", \"Dedicated manager\", \"99.9% SLA\", \"Custom contracts\"],\n },\n];\n\ninterface PriceProps {\n plan: Plan;\n cycle: Cycle;\n}\n\nfunction Price({ plan, cycle }: PriceProps) {\n if (plan.monthly == null) {\n return <div style={{ font: \"var(--klun-text-title-h3)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.02em\" }}>Custom</div>;\n }\n const amt = cycle === \"yearly\" ? plan.yearly : plan.monthly;\n return (\n <div style={{ display: \"flex\", alignItems: \"baseline\", gap: 4 }}>\n <span style={{ font: \"var(--klun-text-title-h2)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.02em\" }}>${amt}</span>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>/ mo</span>\n </div>\n );\n}\n\ninterface PlanCardProps {\n plan: Plan;\n cycle: Cycle;\n}\n\nfunction PlanCard({ plan, cycle }: PlanCardProps) {\n const featured = plan.featured;\n return (\n <div style={{\n position: \"relative\", display: \"flex\", flexDirection: \"column\", gap: 20, padding: 28, flex: 1, minWidth: 0,\n borderRadius: \"var(--klun-radius-4xl, 24px)\", background: \"var(--klun-bg-white-0)\",\n boxShadow: featured\n ? \"inset 0 0 0 2px var(--klun-primary-base), var(--klun-shadow-lg, 0 24px 48px -16px rgba(14,18,27,.16))\"\n : \"inset 0 0 0 1px var(--klun-stroke-soft-200), var(--klun-shadow-xs, 0 1px 2px rgba(10,13,20,.03))\",\n }}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>{plan.name}</span>\n {featured ? <Badge color=\"blue\" variant=\"lighter\">Most popular</Badge> : null}\n </div>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\", minHeight: 40, textWrap: \"pretty\" }}>{plan.tagline}</p>\n <Price plan={plan} cycle={cycle} />\n {featured\n ? <Button kind=\"fancy\" fullWidth>{plan.cta}</Button>\n : <Button fullWidth variant=\"neutral\" appearance=\"stroke\">{plan.cta}</Button>}\n <Divider />\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12 }}>\n {plan.features.map((f, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 10, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n <i className=\"ri-check-line\" style={{ fontSize: 18, color: \"var(--klun-state-success-base)\" }} />{f}\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nconst FAQ: AccordionItem[] = [\n { id: \"f1\", title: \"Can I change plans later?\", content: \"Yes — upgrade or downgrade anytime. Changes are prorated to your billing cycle.\" },\n { id: \"f2\", title: \"Do you offer a free trial?\", content: \"Every paid plan includes a 14-day trial. No card required to start.\" },\n { id: \"f3\", title: \"What payment methods do you accept?\", content: \"All major cards and ACH for annual plans. Enterprise can pay by invoice.\" },\n { id: \"f4\", title: \"Is there a discount for annual billing?\", content: \"Annual billing saves roughly 20% versus paying monthly.\" },\n];\n\n/** Pricing starting point — plan toggle, tier cards and an FAQ. */\nexport function PricingTemplate() {\n const [cycle, setCycle] = useState<Cycle>(\"monthly\");\n return (\n <div style={{ maxWidth: 1080, margin: \"0 auto\", padding: \"72px 32px 96px\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", gap: 16, textAlign: \"center\", marginBottom: 40 }}>\n <ContentLabel color=\"blue\" icon={<i className=\"ri-price-tag-3-line\" />}>Pricing</ContentLabel>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h1)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.03em\", maxWidth: 640, textWrap: \"balance\" }}>Simple pricing that scales with you</h1>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-lg)\", color: \"var(--klun-text-sub-600)\", maxWidth: 520, textWrap: \"pretty\" }}>Start free, then pick a plan when your team is ready. No hidden fees.</p>\n <div style={{ display: \"inline-flex\", alignItems: \"center\", gap: 10, marginTop: 8 }}>\n <SegmentedControl\n value={cycle} onChange={(v) => setCycle(v as Cycle)}\n items={[{ value: \"monthly\", label: \"Monthly\" }, { value: \"yearly\", label: \"Yearly\" }]}\n />\n <Badge color=\"green\" variant=\"lighter\">Save 20%</Badge>\n </div>\n </div>\n <div style={{ display: \"flex\", gap: 20, alignItems: \"stretch\", flexWrap: \"wrap\" }}>\n {PLANS.map((p) => <PlanCard key={p.id} plan={p} cycle={cycle} />)}\n </div>\n <Alert status=\"information\" title=\"Education & nonprofits\" icon={<i className=\"ri-lightbulb-line\" />} style={{ marginTop: 24 }}>Qualifying teams get 50% off any paid plan — reach out to sales to verify eligibility.</Alert>\n <div style={{ marginTop: 72 }}>\n <h2 style={{ margin: \"0 0 8px\", font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.02em\", textAlign: \"center\" }}>Frequently asked questions</h2>\n <p style={{ margin: \"0 0 28px\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\", textAlign: \"center\" }}>Everything you need to know about plans and billing.</p>\n <div style={{ maxWidth: 720, margin: \"0 auto\" }}>\n <Accordion items={FAQ} />\n </div>\n </div>\n </div>\n );\n}\n","// Klun UI settings template — tabbed account settings with a profile form,\n// notification toggles and integrations. Single-page composition built from\n// klun-ui components.\nimport { useState } from \"react\";\nimport type { ChangeEvent, ReactNode } from \"react\";\nimport {\n Alert,\n Tabs,\n Button,\n Input,\n Textarea,\n Label,\n Switch,\n SelectMenu,\n ImageUpload,\n ContentLabel,\n CharacterCounter,\n Badge,\n} from \"../../index\";\nimport type { TabItem } from \"../../index\";\n\ninterface RowProps {\n label: ReactNode;\n hint?: ReactNode;\n children: ReactNode;\n top?: boolean;\n}\n\nfunction Row({ label, hint, children, top }: RowProps) {\n return (\n <div style={{ display: \"grid\", gridTemplateColumns: \"240px 1fr\", gap: 24, padding: \"20px 0\", alignItems: top ? \"flex-start\" : \"center\", boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <Label>{label}</Label>\n {hint ? <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\", textWrap: \"pretty\" }}>{hint}</span> : null}\n </div>\n <div style={{ minWidth: 0 }}>{children}</div>\n </div>\n );\n}\n\nfunction Panel({ children }: { children: ReactNode }) {\n return <div style={{ background: \"var(--klun-bg-white-0)\", borderRadius: \"var(--klun-radius-2xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", padding: \"8px 24px 24px\" }}>{children}</div>;\n}\n\nfunction ProfileTab() {\n const [bio, setBio] = useState(\"Product designer focused on systems and tooling.\");\n return (\n <Panel>\n <Row label=\"Photo\" hint=\"PNG or JPG, up to 5MB.\" top>\n <ImageUpload label=\"Upload new photo\" hint=\"Recommended 400×400px\" onRemove={() => {}} src=\"\" />\n </Row>\n <Row label=\"Full name\">\n <div style={{ display: \"flex\", gap: 12 }}>\n <Input defaultValue=\"Arthur\" placeholder=\"First name\" />\n <Input defaultValue=\"Taylor\" placeholder=\"Last name\" />\n </div>\n </Row>\n <Row label=\"Email address\" hint=\"Used for sign-in and notifications.\">\n <Input type=\"email\" defaultValue=\"arthur@klunui.com\" leadingIcon={<i className=\"ri-mail-line\" />} />\n </Row>\n <Row label=\"Role\">\n <SelectMenu value=\"design\" onChange={() => {}} options={[\n { value: \"design\", label: \"Designer\", icon: <i className=\"ri-pencil-ruler-2-line\" /> },\n { value: \"eng\", label: \"Engineer\", icon: <i className=\"ri-code-s-slash-line\" /> },\n { value: \"pm\", label: \"Product manager\", icon: <i className=\"ri-compass-3-line\" /> },\n ]} />\n </Row>\n <Row label=\"Bio\" hint=\"A short description for your profile.\" top>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Textarea value={bio} onChange={(e: ChangeEvent<HTMLTextAreaElement>) => setBio(e.target.value)} rows={3} maxLength={160} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\" }}><CharacterCounter value={bio.length} max={160} /></div>\n </div>\n </Row>\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 10, paddingTop: 20 }}>\n <Button variant=\"neutral\" appearance=\"stroke\">Cancel</Button>\n <Button>Save changes</Button>\n </div>\n </Panel>\n );\n}\n\ninterface NotificationItemDef {\n k: string;\n label: string;\n hint: string;\n}\n\nfunction NotificationsTab() {\n const [s, setS] = useState<Record<string, boolean>>({ product: true, weekly: true, mentions: true, security: true, marketing: false });\n const set = (k: string) => setS((p) => ({ ...p, [k]: !p[k] }));\n const items: NotificationItemDef[] = [\n { k: \"product\", label: \"Product updates\", hint: \"New features and improvements.\" },\n { k: \"weekly\", label: \"Weekly digest\", hint: \"A summary of activity every Monday.\" },\n { k: \"mentions\", label: \"Mentions & comments\", hint: \"When someone @mentions you.\" },\n { k: \"security\", label: \"Security alerts\", hint: \"Sign-ins and password changes.\" },\n { k: \"marketing\", label: \"Marketing emails\", hint: \"Tips, offers and news.\" },\n ];\n return (\n <Panel>\n <ContentLabel style={{ paddingTop: 20, display: \"block\" }}>Email</ContentLabel>\n {items.map((it) => (\n <Row key={it.k} label={it.label} hint={it.hint}>\n <div style={{ display: \"flex\", justifyContent: \"flex-end\" }}>\n <Switch checked={s[it.k]} onChange={() => set(it.k)} />\n </div>\n </Row>\n ))}\n <Alert status=\"information\" icon={<i className=\"ri-information-2-line\" />} style={{ marginTop: 20 }}>Security alerts can't be turned off — they protect your account.</Alert>\n </Panel>\n );\n}\n\ninterface IntegrationDef {\n k: string;\n name: string;\n icon: string;\n desc: string;\n}\n\nfunction IntegrationsTab() {\n const [c, setC] = useState<Record<string, boolean>>({ slack: true, github: true, figma: false, linear: false });\n const set = (k: string) => setC((p) => ({ ...p, [k]: !p[k] }));\n const rows: IntegrationDef[] = [\n { k: \"slack\", name: \"Slack\", icon: \"ri-slack-line\", desc: \"Post notifications to a channel.\" },\n { k: \"github\", name: \"GitHub\", icon: \"ri-github-line\", desc: \"Link commits and pull requests.\" },\n { k: \"figma\", name: \"Figma\", icon: \"ri-figma-line\", desc: \"Embed frames and prototypes.\" },\n { k: \"linear\", name: \"Linear\", icon: \"ri-flashlight-line\", desc: \"Sync issues two ways.\" },\n ];\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12 }}>\n {rows.map((r) => (\n <div key={r.k} style={{ display: \"flex\", alignItems: \"center\", gap: 12, padding: 16, borderRadius: \"var(--klun-radius-2xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <span style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 40, height: 40, flex: \"none\", borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", color: \"var(--klun-icon-sub-600)\", fontSize: 22 }}><i className={r.icon} /></span>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2, flex: 1, minWidth: 0 }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.name}</span>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-sub-600)\" }}>{r.desc}</span>\n </div>\n <Switch checked={c[r.k]} onChange={() => set(r.k)} />\n </div>\n ))}\n </div>\n );\n}\n\nconst TABS: TabItem[] = [\n { value: \"profile\", label: \"Profile\" },\n { value: \"notifications\", label: \"Notifications\" },\n { value: \"integrations\", label: \"Integrations\", badge: \"4\" },\n];\n\n/** Account settings starting point — tabbed sections, profile form, notifications, integrations. */\nexport function SettingsTemplate() {\n const [tab, setTab] = useState(\"profile\");\n return (\n <div style={{ maxWidth: 880, margin: \"0 auto\", padding: \"48px 32px 80px\" }}>\n <header style={{ display: \"flex\", alignItems: \"flex-start\", gap: 16, width: \"100%\", padding: \"0 0 20px\", boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4, flex: 1, minWidth: 0 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-0.01em\" }}>Settings</h1>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>Manage your profile, notifications and connected apps.</p>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8, flex: \"none\" }}><Badge color=\"green\" variant=\"lighter\" dot>All changes saved</Badge></div>\n </header>\n <div style={{ margin: \"24px 0 28px\" }}>\n <Tabs items={TABS} value={tab} onChange={setTab} />\n </div>\n {tab === \"profile\" ? <ProfileTab /> : tab === \"notifications\" ? <NotificationsTab /> : <IntegrationsTab />}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/templates/dashboard/Sidebar.tsx","../../src/templates/dashboard/TopBar.tsx","../../src/templates/dashboard/OverviewScreen.tsx","../../src/templates/dashboard/SettingsScreen.tsx","../../src/templates/dashboard/index.tsx","../../src/templates/ai-assistant/AISidebar.tsx","../../src/templates/ai-assistant/ChatView.tsx","../../src/templates/ai-assistant/Composer.tsx","../../src/templates/ai-assistant/index.tsx","../../src/templates/agent-chat/AgentSidebar.tsx","../../src/templates/agent-chat/AgentThread.tsx","../../src/templates/agent-chat/AgentComposer.tsx","../../src/templates/agent-chat/index.tsx","../../src/templates/crypto/CryptoSidebar.tsx","../../src/templates/crypto/MarketsScreen.tsx","../../src/templates/crypto/index.tsx","../../src/templates/marketing/MarketingNav.tsx","../../src/templates/marketing/MarketingSections.tsx","../../src/templates/marketing/index.tsx","../../src/templates/calendar/index.tsx","../../src/templates/pricing/index.tsx","../../src/templates/settings/index.tsx","../../src/templates/metronic-dashboard/Sidebar.tsx","../../src/templates/metronic-dashboard/TopBar.tsx","../../src/templates/metronic-dashboard/charts.tsx","../../src/templates/metronic-dashboard/widgets.tsx","../../src/templates/metronic-dashboard/DashboardScreen.tsx","../../src/templates/metronic-dashboard/OrdersScreen.tsx","../../src/templates/metronic-dashboard/productModel.ts","../../src/templates/metronic-dashboard/ProductWizardPage.tsx","../../src/templates/metronic-dashboard/ProductsScreen.tsx","../../src/templates/metronic-dashboard/CustomersScreen.tsx","../../src/templates/metronic-dashboard/UsersScreen.tsx","../../src/templates/metronic-dashboard/RolesScreen.tsx","../../src/templates/metronic-dashboard/ReportsScreen.tsx","../../src/templates/metronic-settings/index.tsx","../../src/templates/metronic-dashboard/index.tsx"],"names":["jsxs","jsx","Badge","Button","useState","SegmentedControl","Card","Tabs","ProgressBar","Field","Label","Input","Select","Switch","Divider","useRef","useEffect","Avatar","seed","StatusDot","Spinner","initials","iconBtn","Table","Stat","Accordion","AvatarGroup","HorizontalFilter","ContentLabel","Chip","Alert","ImageUpload","SelectMenu","Textarea","CharacterCounter","useId","AreaChart","ORDERS","STATUS_COLOR","useMemo","Money","CounterInput","Breadcrumb","Wizard","Modal","Drawer","Confirm","Dropdown","RelativeTime","ROLES","Checkbox","Fragment"],"mappings":"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","file":"index.cjs","sourcesContent":["// Klun UI dashboard sidebar — brand, nav sections, footer profile.\n\nexport interface SidebarUser {\n name: string;\n email: string;\n initials: string;\n}\n\nexport interface SidebarProps {\n active: string;\n onNavigate: (id: string) => void;\n user: SidebarUser;\n}\n\ninterface NavItem {\n id: string;\n label: string;\n icon: string;\n badge?: string;\n}\n\nexport function Sidebar({ active, onNavigate, user }: SidebarProps) {\n const main: NavItem[] = [\n { id: \"overview\", label: \"Overview\", icon: \"ri-dashboard-line\" },\n { id: \"transactions\", label: \"Transactions\", icon: \"ri-arrow-left-right-line\", badge: \"24\" },\n { id: \"cards\", label: \"Cards\", icon: \"ri-bank-card-line\" },\n { id: \"analytics\", label: \"Analytics\", icon: \"ri-bar-chart-2-line\" },\n { id: \"invoices\", label: \"Invoices\", icon: \"ri-bill-line\" },\n ];\n const other: NavItem[] = [\n { id: \"settings\", label: \"Settings\", icon: \"ri-settings-2-line\" },\n { id: \"support\", label: \"Support\", icon: \"ri-headphone-line\" },\n ];\n const Item = ({ it }: { it: NavItem }) => {\n const on = active === it.id;\n return (\n <button onClick={() => onNavigate(it.id)} style={{\n display: \"flex\", alignItems: \"center\", gap: 10, width: \"100%\", height: 38, padding: \"0 12px\",\n border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: \"pointer\", textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\",\n font: \"var(--klun-text-label-sm)\",\n }}>\n <i className={it.icon} style={{ fontSize: 20, color: on ? \"var(--klun-primary-base)\" : \"var(--klun-icon-sub-600)\" }} />\n <span style={{ flex: 1 }}>{it.label}</span>\n {it.badge ? <span style={{ font: \"var(--klun-text-label-xs)\", padding: \"1px 6px\", borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-bg-weak-50)\", color: \"var(--klun-text-sub-600)\" }}>{it.badge}</span> : null}\n </button>\n );\n };\n return (\n <aside style={{ width: 272, flexShrink: 0, height: \"100%\", boxSizing: \"border-box\", display: \"flex\", flexDirection: \"column\", padding: 20, background: \"var(--klun-bg-weak-50)\", borderRight: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 8px 18px\" }}>\n <div style={{ width: 36, height: 36, borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-shapes-line\" style={{ fontSize: 20 }} />\n </div>\n <div style={{ lineHeight: 1.1 }}>\n <div style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Apex Finance</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>Workspace</div>\n </div>\n </div>\n <div style={{ position: \"relative\", marginBottom: 16 }}>\n <i className=\"ri-search-line\" style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n <input placeholder=\"Search\" style={{ width: \"100%\", boxSizing: \"border-box\", height: 36, padding: \"0 12px 0 36px\", borderRadius: \"var(--klun-radius-lg)\", border: \"none\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-strong-950)\", outline: \"none\" }} />\n </div>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"0 12px 8px\" }}>Main</div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{main.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"20px 12px 8px\" }}>Other</div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{other.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ flex: 1 }} />\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: 8, borderRadius: \"var(--klun-radius-xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <span style={{ width: 36, height: 36, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-feature-lighter)\", color: \"var(--klun-state-feature-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-label-sm)\", flexShrink: 0 }}>{user.initials}</span>\n <div style={{ flex: 1, minWidth: 0, lineHeight: 1.2 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\", whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{user.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\", whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{user.email}</div>\n </div>\n <i className=\"ri-expand-up-down-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n </aside>\n );\n}\n","// Klun UI dashboard top bar — page title, search, actions.\nimport { Button, Badge } from \"../../index\";\n\nexport interface TopBarProps {\n title: string;\n subtitle: string;\n}\n\nexport function TopBar({ title, subtitle }: TopBarProps) {\n return (\n <header style={{ display: \"flex\", alignItems: \"center\", gap: 16, padding: \"20px 32px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <div style={{ flex: 1 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{title}</h1>\n <Badge color=\"gray\" size=\"small\">Live</Badge>\n </div>\n <p style={{ margin: \"2px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{subtitle}</p>\n </div>\n <Button iconOnly variant=\"neutral\" appearance=\"stroke\" icon={<i className=\"ri-notification-3-line\" />} />\n <Button iconOnly variant=\"neutral\" appearance=\"stroke\" icon={<i className=\"ri-calendar-line\" />} />\n <Button variant=\"primary\" leadingIcon={<i className=\"ri-add-line\" />}>New transfer</Button>\n </header>\n );\n}\n","// Klun UI dashboard — Overview screen. Stat cards, balance, recent transactions table.\nimport { useState } from \"react\";\nimport { Card, Badge, Button, ProgressBar, SegmentedControl, Tabs } from \"../../index\";\nimport type { BadgeColor } from \"../../index\";\n\ninterface Stat {\n label: string;\n value: string;\n delta: string;\n up: boolean;\n icon: string;\n tint: string;\n}\n\ninterface Transaction {\n name: string;\n sub: string;\n amt: string;\n date: string;\n status: string;\n color: BadgeColor;\n icon: string;\n bg: string;\n fg: string;\n}\n\nexport function OverviewScreen() {\n const [range, setRange] = useState(\"month\");\n const [tab, setTab] = useState(\"all\");\n\n const stats: Stat[] = [\n { label: \"Total balance\", value: \"$84,920.50\", delta: \"+12.4%\", up: true, icon: \"ri-wallet-3-line\", tint: \"feature\" },\n { label: \"Income\", value: \"$24,300.00\", delta: \"+8.1%\", up: true, icon: \"ri-arrow-down-line\", tint: \"success\" },\n { label: \"Expenses\", value: \"$11,240.80\", delta: \"-3.2%\", up: false, icon: \"ri-arrow-up-line\", tint: \"warning\" },\n { label: \"Savings\", value: \"$13,059.20\", delta: \"+5.7%\", up: true, icon: \"ri-safe-2-line\", tint: \"information\" },\n ];\n const tx: Transaction[] = [\n { name: \"Figma\", sub: \"Subscription\", amt: \"-$45.00\", date: \"Today, 10:24\", status: \"Completed\", color: \"green\", icon: \"ri-pencil-ruler-2-line\", bg: \"var(--klun-state-feature-lighter)\", fg: \"var(--klun-state-feature-base)\" },\n { name: \"Stripe payout\", sub: \"Income\", amt: \"+$2,400.00\", date: \"Today, 08:10\", status: \"Completed\", color: \"green\", icon: \"ri-bank-line\", bg: \"var(--klun-state-success-lighter)\", fg: \"var(--klun-state-success-base)\" },\n { name: \"AWS\", sub: \"Infrastructure\", amt: \"-$312.40\", date: \"Yesterday\", status: \"Pending\", color: \"orange\", icon: \"ri-cloud-line\", bg: \"var(--klun-state-warning-lighter)\", fg: \"var(--klun-state-warning-base)\" },\n { name: \"Linear\", sub: \"Subscription\", amt: \"-$96.00\", date: \"Mar 12\", status: \"Completed\", color: \"green\", icon: \"ri-flow-chart\", bg: \"var(--klun-state-information-lighter)\", fg: \"var(--klun-state-information-base)\" },\n { name: \"Refund · Notion\", sub: \"Income\", amt: \"+$120.00\", date: \"Mar 11\", status: \"Failed\", color: \"red\", icon: \"ri-file-text-line\", bg: \"var(--klun-bg-weak-50)\", fg: \"var(--klun-text-sub-600)\" },\n ];\n const budget: ReadonlyArray<readonly [string, number, string]> = [\n [\"Housing\", 38, \"feature\"],\n [\"Food\", 24, \"success\"],\n [\"Transport\", 18, \"warning\"],\n ];\n\n return (\n <div style={{ padding: 32, display: \"flex\", flexDirection: \"column\", gap: 24 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <SegmentedControl value={range} onChange={setRange} items={[{ value: \"week\", label: \"Week\" }, { value: \"month\", label: \"Month\" }, { value: \"year\", label: \"Year\" }]} />\n <Button variant=\"neutral\" appearance=\"stroke\" size=\"small\" leadingIcon={<i className=\"ri-download-2-line\" />}>Export</Button>\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(4, 1fr)\", gap: 16 }}>\n {stats.map((s) => (\n <Card key={s.label} variant=\"stroke\" padding={18}>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-start\" }}>\n <div style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", background: `var(--klun-state-${s.tint}-lighter)`, color: `var(--klun-state-${s.tint}-base)`, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22 }}><i className={s.icon} /></div>\n <Badge color={s.up ? \"green\" : \"red\"} variant=\"light\" size=\"small\" leadingIcon={<i className={s.up ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} />}>{s.delta}</Badge>\n </div>\n <div style={{ marginTop: 16, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{s.label}</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{s.value}</div>\n </Card>\n ))}\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"1.7fr 1fr\", gap: 16, alignItems: \"start\" }}>\n <Card variant=\"stroke\" padding={0}>\n <div style={{ padding: \"16px 20px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\", display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <div style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Recent transactions</div>\n <Button variant=\"neutral\" appearance=\"ghost\" size=\"xsmall\" trailingIcon={<i className=\"ri-arrow-right-s-line\" />}>View all</Button>\n </div>\n <div style={{ padding: \"8px 12px\" }}>\n <Tabs value={tab} onChange={setTab} items={[{ value: \"all\", label: \"All\" }, { value: \"income\", label: \"Income\" }, { value: \"expense\", label: \"Expenses\" }]} />\n </div>\n <div>\n {tx.map((t, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 12, padding: \"12px 20px\", borderTop: i ? \"1px solid var(--klun-stroke-soft-200)\" : \"none\" }}>\n <div style={{ width: 38, height: 38, borderRadius: \"var(--klun-radius-lg)\", background: t.bg, color: t.fg, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 20, flexShrink: 0 }}><i className={t.icon} /></div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{t.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{t.sub} · {t.date}</div>\n </div>\n <Badge color={t.color} variant=\"light\" size=\"small\">{t.status}</Badge>\n <div style={{ width: 92, textAlign: \"right\", font: \"var(--klun-text-label-sm)\", color: t.amt[0] === \"+\" ? \"var(--klun-state-success-base)\" : \"var(--klun-text-strong-950)\" }}>{t.amt}</div>\n </div>\n ))}\n </div>\n </Card>\n\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n <Card variant=\"shadow\" padding={20} style={{ background: \"var(--klun-bg-strong-950)\" }}>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", color: \"var(--klun-static-static-white)\" }}>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", opacity: .7 }}>Virtual card</span>\n <i className=\"ri-visa-line\" style={{ fontSize: 24 }} />\n </div>\n <div style={{ marginTop: 28, font: \"var(--klun-text-label-lg)\", letterSpacing: \"0.12em\", color: \"var(--klun-static-static-white)\" }}>4218 •••• •••• 9042</div>\n <div style={{ marginTop: 16, display: \"flex\", justifyContent: \"space-between\", color: \"var(--klun-static-static-white)\", opacity: .8, font: \"var(--klun-text-paragraph-xs)\" }}>\n <span>Arthur Taylor</span><span>09 / 28</span>\n </div>\n </Card>\n <Card variant=\"stroke\" padding={20}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Monthly budget</span>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>$11,240 / $16,000</span>\n </div>\n <div style={{ marginTop: 14 }}><ProgressBar value={70} /></div>\n <div style={{ marginTop: 16, display: \"flex\", flexDirection: \"column\", gap: 10 }}>\n {budget.map(([l, p, c]) => (\n <div key={l} style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <span style={{ width: 8, height: 8, borderRadius: \"var(--klun-radius-pill)\", background: `var(--klun-state-${c}-base)` }} />\n <span style={{ flex: 1, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{l}</span>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{p}%</span>\n </div>\n ))}\n </div>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n","// Klun UI dashboard — Settings screen (profile form).\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Card, Input, Select, Switch, Label, Button, Badge, Divider } from \"../../index\";\n\ninterface FieldProps {\n label: ReactNode;\n children: ReactNode;\n hint?: ReactNode;\n required?: boolean;\n}\n\nexport function SettingsScreen() {\n const [n, setN] = useState(true);\n const [m, setM] = useState(false);\n const Field = ({ label, children, hint, required }: FieldProps) => (\n <div style={{ display: \"grid\", gridTemplateColumns: \"220px 1fr\", gap: 24, padding: \"20px 0\", borderTop: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div>\n <Label required={required}>{label}</Label>\n {hint ? <div style={{ marginTop: 2, font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{hint}</div> : null}\n </div>\n <div style={{ maxWidth: 420 }}>{children}</div>\n </div>\n );\n return (\n <div style={{ padding: 32, maxWidth: 920 }}>\n <Card variant=\"stroke\" padding={24}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 16 }}>\n <span style={{ width: 64, height: 64, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-feature-lighter)\", color: \"var(--klun-state-feature-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-title-h5)\" }}>AT</span>\n <div style={{ flex: 1 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Arthur Taylor</span>\n <Badge color=\"green\" variant=\"light\" size=\"small\" dot>Verified</Badge>\n </div>\n <div style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>arthur@alignui.com</div>\n </div>\n <Button variant=\"neutral\" appearance=\"stroke\" size=\"small\" leadingIcon={<i className=\"ri-upload-2-line\" />}>Change photo</Button>\n </div>\n\n <div style={{ marginTop: 8 }}>\n <Field label=\"Full name\" required>\n <Input defaultValue=\"Arthur Taylor\" />\n </Field>\n <Field label=\"Email address\" required hint=\"Used for sign-in and receipts.\">\n <Input type=\"email\" defaultValue=\"arthur@alignui.com\" leadingIcon={<i className=\"ri-mail-line\" />} />\n </Field>\n <Field label=\"Role\">\n <Select defaultValue=\"finance\"><option value=\"finance\">Finance lead</option><option value=\"admin\">Administrator</option><option value=\"member\">Member</option></Select>\n </Field>\n <Field label=\"Notifications\" hint=\"How we reach you.\">\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n <label style={{ display: \"flex\", alignItems: \"center\", gap: 10, font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n <Switch checked={n} onChange={setN} /> Email notifications\n </label>\n <label style={{ display: \"flex\", alignItems: \"center\", gap: 10, font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n <Switch checked={m} onChange={setM} /> Marketing updates\n </label>\n </div>\n </Field>\n </div>\n\n <Divider style={{ margin: \"8px 0 20px\" }} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 10 }}>\n <Button variant=\"neutral\" appearance=\"stroke\">Cancel</Button>\n <Button variant=\"primary\">Save changes</Button>\n </div>\n </Card>\n </div>\n );\n}\n","// Klun UI dashboard template — app shell composing sidebar, top bar, and screens.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Sidebar } from \"./Sidebar\";\nimport type { SidebarUser } from \"./Sidebar\";\nimport { TopBar } from \"./TopBar\";\nimport { OverviewScreen } from \"./OverviewScreen\";\nimport { SettingsScreen } from \"./SettingsScreen\";\n\nexport { Sidebar } from \"./Sidebar\";\nexport type { SidebarProps, SidebarUser } from \"./Sidebar\";\nexport { TopBar } from \"./TopBar\";\nexport type { TopBarProps } from \"./TopBar\";\nexport { OverviewScreen } from \"./OverviewScreen\";\nexport { SettingsScreen } from \"./SettingsScreen\";\n\ninterface Page {\n title: string;\n subtitle: string;\n render: () => ReactNode;\n}\n\nconst PAGES: Record<string, Page> = {\n overview: { title: \"Overview\", subtitle: \"Your money at a glance, March 2026.\", render: () => <OverviewScreen /> },\n settings: { title: \"Settings\", subtitle: \"Manage your profile and preferences.\", render: () => <SettingsScreen /> },\n};\n\nexport function DashboardTemplate() {\n const [active, setActive] = useState(\"overview\");\n const page: Page = PAGES[active] ?? {\n title: active[0].toUpperCase() + active.slice(1),\n subtitle: \"Coming soon in this demo.\",\n render: () => (\n <div style={{ padding: 64, textAlign: \"center\", color: \"var(--klun-text-soft-400)\", font: \"var(--klun-text-paragraph-lg)\" }}>\n <i className=\"ri-inbox-line\" style={{ fontSize: 40, display: \"block\", marginBottom: 12 }} />\n This screen isn't part of the demo — try Overview or Settings.\n </div>\n ),\n };\n const user: SidebarUser = { name: \"Arthur Taylor\", email: \"arthur@alignui.com\", initials: \"AT\" };\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <Sidebar active={active} onNavigate={setActive} user={user} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}>\n <TopBar title={page.title} subtitle={page.subtitle} />\n <main style={{ flex: 1, overflow: \"auto\", background: \"var(--klun-bg-weak-50)\" }}>{page.render()}</main>\n </div>\n </div>\n );\n}\n","// Klun UI AI assistant — conversations sidebar.\n\nexport interface AIConversation {\n id: string;\n group: \"today\" | \"week\";\n title: string;\n}\n\nexport interface AIUser {\n name: string;\n initials: string;\n}\n\nexport interface AISidebarProps {\n conversations: AIConversation[];\n activeId: string;\n onSelect: (id: string) => void;\n onNew: () => void;\n user: AIUser;\n}\n\nexport function AISidebar({ conversations, activeId, onSelect, onNew, user }: AISidebarProps) {\n const groups = [\n { label: \"Today\", items: conversations.filter((c) => c.group === \"today\") },\n { label: \"Previous 7 days\", items: conversations.filter((c) => c.group === \"week\") },\n ];\n return (\n <aside style={{ width: 280, flexShrink: 0, height: \"100%\", boxSizing: \"border-box\", display: \"flex\", flexDirection: \"column\", padding: 16, background: \"var(--klun-bg-weak-50)\", borderRight: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 6px 16px\" }}>\n <div style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-sparkling-2-fill\" style={{ fontSize: 18 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Klun AI</span>\n </div>\n\n <button onClick={onNew} style={{ display: \"flex\", alignItems: \"center\", gap: 8, width: \"100%\", height: 40, padding: \"0 12px\", marginBottom: 16, border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: \"pointer\", background: \"var(--klun-primary-base)\", color: \"var(--klun-static-static-white)\", font: \"var(--klun-text-label-sm)\" }}>\n <i className=\"ri-add-line\" style={{ fontSize: 20 }} /> New chat\n </button>\n\n <div style={{ position: \"relative\", marginBottom: 16 }}>\n <i className=\"ri-search-line\" style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n <input placeholder=\"Search chats\" style={{ width: \"100%\", boxSizing: \"border-box\", height: 36, padding: \"0 12px 0 36px\", borderRadius: \"var(--klun-radius-lg)\", border: \"none\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-strong-950)\", outline: \"none\" }} />\n </div>\n\n <div style={{ flex: 1, overflow: \"auto\", display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n {groups.map((g) => g.items.length ? (\n <div key={g.label}>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"0 8px 6px\" }}>{g.label}</div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n {g.items.map((c) => {\n const on = c.id === activeId;\n return (\n <button key={c.id} onClick={() => onSelect(c.id)} style={{\n display: \"flex\", alignItems: \"center\", gap: 8, width: \"100%\", height: 36, padding: \"0 10px\",\n border: \"none\", borderRadius: \"var(--klun-radius-md)\", cursor: \"pointer\", textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\", font: \"var(--klun-text-label-sm)\",\n }}>\n <i className=\"ri-chat-1-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\", flexShrink: 0 }} />\n <span style={{ flex: 1, whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{c.title}</span>\n </button>\n );\n })}\n </div>\n </div>\n ) : null)}\n </div>\n\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: 8, marginTop: 8, borderRadius: \"var(--klun-radius-xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <span style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-feature-lighter)\", color: \"var(--klun-state-feature-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-label-xs)\", flexShrink: 0 }}>{user.initials}</span>\n <div style={{ flex: 1, minWidth: 0, lineHeight: 1.2 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{user.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>Free plan</div>\n </div>\n <i className=\"ri-settings-3-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n </aside>\n );\n}\n","// Klun UI AI assistant — chat thread + welcome state.\nimport { useEffect, useRef } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Avatar } from \"../../index\";\n\nfunction Bubble({ from = \"them\", avatar, children }: { from?: \"me\" | \"them\"; avatar?: ReactNode; children?: ReactNode }) {\n const me = from === \"me\";\n return (\n <div style={{ display: \"flex\", flexDirection: me ? \"row-reverse\" : \"row\", gap: 10, alignItems: \"flex-end\" }}>\n {avatar ? <span style={{ flexShrink: 0 }}>{avatar}</span> : null}\n <div style={{ maxWidth: \"76%\", display: \"flex\", flexDirection: \"column\", gap: 4, alignItems: me ? \"flex-end\" : \"flex-start\" }}>\n <div style={{ padding: \"10px 14px\", font: \"var(--klun-text-paragraph-sm)\", borderRadius: me ? \"var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-sm) var(--klun-radius-2xl)\" : \"var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-sm)\", background: me ? \"var(--klun-primary-base)\" : \"var(--klun-bg-weak-50)\", color: me ? \"var(--klun-static-static-white)\" : \"var(--klun-text-strong-950)\" }}>{children}</div>\n </div>\n </div>\n );\n}\n\nexport interface AIMessage {\n from: \"me\" | \"them\";\n text: string;\n}\n\nexport interface AIChatViewProps {\n messages: AIMessage[];\n busy: boolean;\n userInitials: string;\n onSuggest: (text: string) => void;\n}\n\nexport function AIChatView({ messages, busy, userInitials, onSuggest }: AIChatViewProps) {\n const endRef = useRef<HTMLDivElement>(null);\n useEffect(() => { endRef.current?.scrollTo?.(0, endRef.current.scrollHeight); }, [messages, busy]);\n\n const suggestions = [\n { icon: \"ri-file-list-3-line\", text: \"Summarize my unread invoices\" },\n { icon: \"ri-line-chart-line\", text: \"Compare Q1 and Q2 revenue\" },\n { icon: \"ri-mail-send-line\", text: \"Draft a follow-up email to a client\" },\n { icon: \"ri-calendar-todo-line\", text: \"Plan my week around 3 deadlines\" },\n ];\n\n if (messages.length === 0) {\n return (\n <div style={{ flex: 1, display: \"flex\", flexDirection: \"column\", alignItems: \"center\", justifyContent: \"center\", padding: 32, textAlign: \"center\" }}>\n <div style={{ width: 56, height: 56, borderRadius: \"var(--klun-radius-2xl)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 28, marginBottom: 20 }}>\n <i className=\"ri-sparkling-2-fill\" />\n </div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>How can I help, Arthur?</h1>\n <p style={{ margin: \"8px 0 28px\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\" }}>Ask anything, or start from a suggestion below.</p>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 12, maxWidth: 540, width: \"100%\" }}>\n {suggestions.map((s) => (\n <button key={s.text} onClick={() => onSuggest(s.text)} style={{\n display: \"flex\", alignItems: \"center\", gap: 10, padding: \"14px 16px\", textAlign: \"left\",\n border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\",\n }}>\n <i className={s.icon} style={{ fontSize: 20, color: \"var(--klun-primary-base)\" }} />\n <span>{s.text}</span>\n </button>\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div ref={endRef} style={{ flex: 1, overflow: \"auto\" }}>\n <div style={{ maxWidth: 720, margin: \"0 auto\", padding: \"24px 24px 8px\", display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n {messages.map((m, i) => (\n <Bubble key={i} from={m.from}\n avatar={m.from === \"me\"\n ? <Avatar size=\"32\" initials={userInitials} color=\"purple\" />\n : <span style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 16 }}><i className=\"ri-sparkling-2-fill\" /></span>}\n >{m.text}</Bubble>\n ))}\n {busy ? (\n <Bubble from=\"them\" avatar={<span style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 16 }}><i className=\"ri-sparkling-2-fill\" /></span>}>\n <span className=\"ai-typing\"><span></span><span></span><span></span></span>\n </Bubble>\n ) : null}\n </div>\n </div>\n );\n}\n","// Klun UI AI assistant — prompt composer with model select, attachments, send.\nimport { useRef, useState, type ChangeEvent, type CSSProperties } from \"react\";\n\nexport interface AIComposerProps {\n onSend: (text: string) => void;\n busy: boolean;\n}\n\nexport function AIComposer({ onSend, busy }: AIComposerProps) {\n const [text, setText] = useState(\"\");\n const [model, setModel] = useState(\"Klun-4o\");\n const taRef = useRef<HTMLTextAreaElement>(null);\n const send = () => {\n const t = text.trim();\n if (!t || busy) return;\n onSend(t);\n setText(\"\");\n if (taRef.current) taRef.current.style.height = \"auto\";\n };\n const grow = (e: ChangeEvent<HTMLTextAreaElement>) => {\n setText(e.target.value);\n e.target.style.height = \"auto\";\n e.target.style.height = Math.min(e.target.scrollHeight, 160) + \"px\";\n };\n return (\n <div style={{ padding: \"0 24px 20px\" }}>\n <div style={{ maxWidth: 720, margin: \"0 auto\", borderRadius: \"var(--klun-radius-3xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200)\", padding: 12 }}>\n <textarea\n ref={taRef}\n value={text}\n onChange={grow}\n onKeyDown={(e) => { if (e.key === \"Enter\" && !e.shiftKey) { e.preventDefault(); send(); } }}\n placeholder=\"Ask Klun AI anything…\"\n rows={1}\n style={{ width: \"100%\", boxSizing: \"border-box\", border: \"none\", outline: \"none\", resize: \"none\", background: \"transparent\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-strong-950)\", padding: \"6px 6px 10px\", maxHeight: 160 }}\n />\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <button title=\"Attach file\" style={iconBtn}><i className=\"ri-attachment-2\" /></button>\n <button title=\"Add image\" style={iconBtn}><i className=\"ri-image-line\" /></button>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 4, height: 32, padding: \"0 8px 0 10px\", borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-weak-50)\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", cursor: \"pointer\" }}>\n <i className=\"ri-cpu-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n <select value={model} onChange={(e) => setModel(e.target.value)} style={{ appearance: \"none\", WebkitAppearance: \"none\", border: \"none\", outline: \"none\", background: \"transparent\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", cursor: \"pointer\" }}>\n <option>Klun-4o</option><option>Klun-4 Turbo</option><option>Klun-mini</option>\n </select>\n <i className=\"ri-arrow-down-s-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n <div style={{ flex: 1 }} />\n <button onClick={send} disabled={!text.trim() || busy} title=\"Send\" style={{\n display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 36, height: 36,\n border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: text.trim() && !busy ? \"pointer\" : \"not-allowed\",\n background: text.trim() && !busy ? \"var(--klun-primary-base)\" : \"var(--klun-bg-soft-200)\",\n color: text.trim() && !busy ? \"var(--klun-static-static-white)\" : \"var(--klun-text-soft-400)\", fontSize: 20,\n }}><i className=\"ri-arrow-up-line\" /></button>\n </div>\n </div>\n <div style={{ maxWidth: 720, margin: \"8px auto 0\", textAlign: \"center\", font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n Klun AI can make mistakes. Check important info.\n </div>\n </div>\n );\n}\n\nconst iconBtn: CSSProperties = { display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 32, height: 32, border: \"none\", borderRadius: \"var(--klun-radius-md)\", background: \"transparent\", color: \"var(--klun-icon-sub-600)\", cursor: \"pointer\", fontSize: 18 };\n","// Klun UI AI assistant — full template composition.\nimport { useState } from \"react\";\nimport { Badge, Button } from \"../../index\";\nimport { AISidebar, type AIConversation, type AIUser } from \"./AISidebar\";\nimport { AIChatView, type AIMessage } from \"./ChatView\";\nimport { AIComposer } from \"./Composer\";\n\nconst REPLIES = [\n \"Here's a quick summary: you have 3 unread invoices totaling $4,512. Two are overdue — Apex Ltd ($2,400) and Northwind ($1,800).\",\n \"Happy to help with that. Based on your data, Q2 revenue is up 12.4% over Q1, driven mainly by recurring subscriptions.\",\n \"Done — I've drafted a friendly follow-up. Want me to adjust the tone or add a payment link?\",\n \"Got it. I've blocked focus time around your 3 deadlines and left buffers for review. Shall I add them to your calendar?\",\n];\n\nexport function AIAssistantTemplate() {\n const seed: AIConversation[] = [\n { id: \"c1\", group: \"today\", title: \"Q2 revenue breakdown\" },\n { id: \"c2\", group: \"today\", title: \"Follow-up email draft\" },\n { id: \"c3\", group: \"week\", title: \"Invoice reminders\" },\n { id: \"c4\", group: \"week\", title: \"Weekly planning\" },\n ];\n const [convs] = useState<AIConversation[]>(seed);\n const [activeId, setActiveId] = useState(\"new\");\n const [threads, setThreads] = useState<Record<string, AIMessage[]>>({ new: [] });\n const [busy, setBusy] = useState(false);\n const user: AIUser = { name: \"Arthur Taylor\", initials: \"AT\" };\n const messages = threads[activeId] || [];\n\n const ask = (text: string) => {\n setThreads((t) => ({ ...t, [activeId]: [...(t[activeId] || []), { from: \"me\", text }] }));\n setBusy(true);\n setTimeout(() => {\n const reply = REPLIES[Math.floor(Math.random() * REPLIES.length)];\n setThreads((t) => ({ ...t, [activeId]: [...(t[activeId] || []), { from: \"them\", text: reply }] }));\n setBusy(false);\n }, 1100);\n };\n\n const newChat = () => { setActiveId(\"new\"); setThreads((t) => ({ ...t, new: [] })); };\n\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <AISidebar conversations={convs} activeId={activeId} onSelect={(id) => { setActiveId(id); setThreads((t) => t[id] ? t : { ...t, [id]: [] }); }} onNew={newChat} user={user} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\" }}>\n <header style={{ display: \"flex\", alignItems: \"center\", gap: 12, padding: \"14px 24px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>New chat</span>\n <Badge color=\"purple\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-flashlight-fill\" />}>Klun-4o</Badge>\n <div style={{ flex: 1 }} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-share-line\" />} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-more-2-fill\" />} />\n </header>\n <AIChatView messages={messages} busy={busy} userInitials={user.initials} onSuggest={ask} />\n <AIComposer onSend={ask} busy={busy} />\n </div>\n </div>\n );\n}\n","// Klun UI agent chat — sessions sidebar.\nimport { StatusDot } from \"../../index\";\n\nexport interface AgentSession {\n id: string;\n group: \"today\" | \"week\";\n title: string;\n /** Live state shown as a leading dot. */\n state?: \"running\" | \"done\" | \"idle\";\n}\n\nexport interface AgentUser {\n name: string;\n initials: string;\n plan?: string;\n}\n\nexport interface AgentSidebarProps {\n sessions: AgentSession[];\n activeId: string;\n onSelect: (id: string) => void;\n onNew: () => void;\n user: AgentUser;\n}\n\nconst DOT_TONE = { running: \"warn\", done: \"ok\", idle: \"neutral\" } as const;\n\nexport function AgentSidebar({ sessions, activeId, onSelect, onNew, user }: AgentSidebarProps) {\n const groups = [\n { label: \"Today\", items: sessions.filter((c) => c.group === \"today\") },\n { label: \"Previous 7 days\", items: sessions.filter((c) => c.group === \"week\") },\n ];\n return (\n <aside\n style={{\n width: 280,\n flexShrink: 0,\n height: \"100%\",\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: 16,\n background: \"var(--klun-bg-weak-50)\",\n borderRight: \"1px solid var(--klun-stroke-soft-200)\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 6px 16px\" }}>\n <div\n style={{\n width: 32,\n height: 32,\n borderRadius: \"var(--klun-radius-md)\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <i className=\"ri-sparkling-2-fill\" style={{ fontSize: 18 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Klun Agent</span>\n </div>\n\n <button\n onClick={onNew}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n width: \"100%\",\n height: 40,\n padding: \"0 12px\",\n marginBottom: 16,\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: \"pointer\",\n background: \"var(--klun-primary-base)\",\n color: \"var(--klun-static-static-white)\",\n font: \"var(--klun-text-label-sm)\",\n }}\n >\n <i className=\"ri-add-line\" style={{ fontSize: 20 }} /> New task\n </button>\n\n <div style={{ position: \"relative\", marginBottom: 16 }}>\n <i\n className=\"ri-search-line\"\n style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }}\n />\n <input\n placeholder=\"Search tasks\"\n style={{\n width: \"100%\",\n boxSizing: \"border-box\",\n height: 36,\n padding: \"0 12px 0 36px\",\n borderRadius: \"var(--klun-radius-lg)\",\n border: \"none\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n font: \"var(--klun-text-paragraph-sm)\",\n color: \"var(--klun-text-strong-950)\",\n outline: \"none\",\n }}\n />\n </div>\n\n <div style={{ flex: 1, overflow: \"auto\", display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n {groups.map((g) =>\n g.items.length ? (\n <div key={g.label}>\n <div\n style={{\n font: \"var(--klun-text-subheading-2xs)\",\n letterSpacing: \"var(--klun-subheading-2xs-tracking)\",\n textTransform: \"uppercase\",\n color: \"var(--klun-text-soft-400)\",\n padding: \"0 8px 6px\",\n }}\n >\n {g.label}\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n {g.items.map((c) => {\n const on = c.id === activeId;\n return (\n <button\n key={c.id}\n onClick={() => onSelect(c.id)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n width: \"100%\",\n height: 36,\n padding: \"0 10px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-md)\",\n cursor: \"pointer\",\n textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\",\n font: \"var(--klun-text-label-sm)\",\n }}\n >\n {c.state ? (\n <StatusDot tone={DOT_TONE[c.state]} size=\"sm\" pulse={c.state === \"running\"} />\n ) : (\n <i className=\"ri-chat-1-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\", flexShrink: 0 }} />\n )}\n <span style={{ flex: 1, whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{c.title}</span>\n </button>\n );\n })}\n </div>\n </div>\n ) : null,\n )}\n </div>\n\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n padding: 8,\n marginTop: 8,\n borderRadius: \"var(--klun-radius-xl)\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n }}\n >\n <span\n style={{\n width: 32,\n height: 32,\n borderRadius: \"var(--klun-radius-pill)\",\n background: \"var(--klun-state-feature-lighter)\",\n color: \"var(--klun-state-feature-base)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n font: \"var(--klun-text-label-xs)\",\n flexShrink: 0,\n }}\n >\n {user.initials}\n </span>\n <div style={{ flex: 1, minWidth: 0, lineHeight: 1.2 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{user.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{user.plan || \"Free plan\"}</div>\n </div>\n <i className=\"ri-settings-3-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n </aside>\n );\n}\n","// Klun UI agent chat — message thread that renders an agent run: reasoning,\n// task plan, tool calls and the streamed final answer.\nimport { useEffect, useRef, useState } from \"react\";\nimport type { CSSProperties, ReactNode } from \"react\";\nimport { Avatar, Badge, Spinner, StatusDot } from \"../../index\";\n\n/* ------------------------------------------------------------------ types -- */\n\nexport type AgentStepStatus = \"todo\" | \"active\" | \"done\";\nexport interface AgentStep {\n text: string;\n status: AgentStepStatus;\n}\n\nexport type AgentToolStatus = \"running\" | \"done\" | \"error\";\n\n/** A collapsible chain-of-thought block. While `seconds` is undefined the agent\n * is still thinking; once set, the block collapses to a one-line summary. */\nexport interface AgentThinkingBlock {\n kind: \"thinking\";\n text: string;\n seconds?: number;\n}\n/** A task list the agent committed to before acting. */\nexport interface AgentPlanBlock {\n kind: \"plan\";\n title?: string;\n steps: AgentStep[];\n}\n/** A single tool invocation with request preview, status and result. */\nexport interface AgentToolBlock {\n kind: \"tool\";\n name: string;\n icon?: string;\n request?: string;\n status: AgentToolStatus;\n result?: string;\n}\n/** Plain (possibly still-streaming) assistant prose. */\nexport interface AgentTextBlock {\n kind: \"text\";\n text: string;\n}\nexport type AgentBlock = AgentThinkingBlock | AgentPlanBlock | AgentToolBlock | AgentTextBlock;\n\nexport interface AgentMessage {\n id: string;\n from: \"me\" | \"agent\";\n /** User turns. */\n text?: string;\n /** Agent turns are a sequence of blocks. */\n blocks?: AgentBlock[];\n /** True while the agent is still producing this turn. */\n streaming?: boolean;\n}\n\nexport interface AgentSuggestion {\n icon: string;\n text: string;\n}\n\nexport interface AgentThreadProps {\n messages: AgentMessage[];\n userInitials: string;\n agentName: string;\n suggestions: AgentSuggestion[];\n onSuggest: (text: string) => void;\n}\n\n/* -------------------------------------------------------------- primitives -- */\n\nfunction AgentMark({ size = 32 }: { size?: number }) {\n return (\n <span\n style={{\n width: size,\n height: size,\n flexShrink: 0,\n borderRadius: \"var(--klun-radius-pill)\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: size * 0.5,\n }}\n >\n <i className=\"ri-sparkling-2-fill\" />\n </span>\n );\n}\n\nconst cardBase: CSSProperties = {\n borderRadius: \"var(--klun-radius-xl)\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n overflow: \"hidden\",\n};\n\nconst cardHeader: CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n width: \"100%\",\n padding: \"10px 12px\",\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n textAlign: \"left\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-strong-950)\",\n};\n\nfunction Chevron({ open }: { open: boolean }) {\n return (\n <i\n className=\"ri-arrow-down-s-line\"\n style={{\n marginLeft: \"auto\",\n fontSize: 18,\n color: \"var(--klun-icon-soft-400)\",\n transform: open ? \"rotate(180deg)\" : \"none\",\n transition: \"transform var(--klun-duration-fast, .15s) var(--klun-ease-out, ease)\",\n }}\n />\n );\n}\n\n/* --- thinking ----------------------------------------------------------- */\n\nfunction ThinkingBlock({ block }: { block: AgentThinkingBlock }) {\n const done = block.seconds != null;\n const [open, setOpen] = useState(!done);\n // Auto-collapse once thinking finishes.\n const wasDone = useRef(done);\n useEffect(() => {\n if (done && !wasDone.current) setOpen(false);\n wasDone.current = done;\n }, [done]);\n\n return (\n <div style={cardBase}>\n <button type=\"button\" style={cardHeader} onClick={() => setOpen((o) => !o)}>\n <i\n className={done ? \"ri-brain-line\" : \"ri-loader-4-line\"}\n style={{\n fontSize: 18,\n color: \"var(--klun-state-feature-base)\",\n animation: done ? undefined : \"klun-agent-spin .9s linear infinite\",\n }}\n />\n <span style={{ color: \"var(--klun-text-sub-600)\" }}>\n {done ? `Thought for ${block.seconds}s` : \"Thinking…\"}\n </span>\n <Chevron open={open} />\n </button>\n {open ? (\n <div\n style={{\n padding: \"0 12px 12px 38px\",\n font: \"var(--klun-text-paragraph-sm)\",\n fontStyle: \"italic\",\n color: \"var(--klun-text-sub-600)\",\n whiteSpace: \"pre-wrap\",\n lineHeight: 1.6,\n }}\n >\n {block.text}\n </div>\n ) : null}\n </div>\n );\n}\n\n/* --- plan --------------------------------------------------------------- */\n\nconst STEP_ICON: Record<AgentStepStatus, ReactNode> = {\n done: <i className=\"ri-checkbox-circle-fill\" style={{ color: \"var(--klun-state-success-base)\" }} />,\n active: <Spinner size=\"sm\" color=\"var(--klun-primary-base)\" />,\n todo: <i className=\"ri-checkbox-blank-circle-line\" style={{ color: \"var(--klun-icon-soft-400)\" }} />,\n};\n\nfunction PlanBlock({ block }: { block: AgentPlanBlock }) {\n const done = block.steps.filter((s) => s.status === \"done\").length;\n return (\n <div style={{ ...cardBase, padding: \"12px 14px\" }}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n marginBottom: 10,\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n <i className=\"ri-list-check-2\" style={{ fontSize: 18, color: \"var(--klun-icon-sub-600)\" }} />\n <span>{block.title || \"Plan\"}</span>\n <span style={{ marginLeft: \"auto\", font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n {done}/{block.steps.length}\n </span>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n {block.steps.map((s, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <span style={{ width: 16, height: 16, display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 16, flexShrink: 0 }}>\n {STEP_ICON[s.status]}\n </span>\n <span\n style={{\n font: \"var(--klun-text-paragraph-sm)\",\n color: s.status === \"todo\" ? \"var(--klun-text-soft-400)\" : \"var(--klun-text-strong-950)\",\n textDecoration: s.status === \"done\" ? \"line-through\" : \"none\",\n textDecorationColor: \"var(--klun-text-soft-400)\",\n }}\n >\n {s.text}\n </span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n/* --- tool call ---------------------------------------------------------- */\n\nconst TOOL_TONE: Record<AgentToolStatus, { dot: \"warn\" | \"ok\" | \"err\"; label: string }> = {\n running: { dot: \"warn\", label: \"Running\" },\n done: { dot: \"ok\", label: \"Done\" },\n error: { dot: \"err\", label: \"Stopped\" },\n};\n\nfunction ToolBlock({ block }: { block: AgentToolBlock }) {\n const [open, setOpen] = useState(false);\n const tone = TOOL_TONE[block.status];\n return (\n <div style={cardBase}>\n <button type=\"button\" style={cardHeader} onClick={() => setOpen((o) => !o)}>\n <i className={block.icon || \"ri-terminal-box-line\"} style={{ fontSize: 18, color: \"var(--klun-icon-sub-600)\" }} />\n <span style={{ color: \"var(--klun-text-soft-400)\" }}>Tool</span>\n <code\n style={{\n font: \"var(--klun-text-label-sm)\",\n fontFamily: \"var(--klun-font-mono, ui-monospace, monospace)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n {block.name}\n </code>\n {block.status === \"running\" ? (\n <Spinner size=\"xs\" color=\"var(--klun-state-warning-base)\" />\n ) : (\n <StatusDot tone={tone.dot} size=\"sm\" />\n )}\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{tone.label}</span>\n <Chevron open={open} />\n </button>\n {open ? (\n <div style={{ padding: \"0 12px 12px\", display: \"flex\", flexDirection: \"column\", gap: 10 }}>\n {block.request ? <Snippet label=\"Request\" body={block.request} /> : null}\n {block.result ? (\n <Snippet label=\"Result\" body={block.result} tone={block.status === \"error\" ? \"error\" : \"default\"} />\n ) : null}\n </div>\n ) : null}\n </div>\n );\n}\n\nfunction Snippet({ label, body, tone = \"default\" }: { label: string; body: string; tone?: \"default\" | \"error\" }) {\n return (\n <div>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", marginBottom: 4 }}>\n {label}\n </div>\n <pre\n style={{\n margin: 0,\n padding: \"8px 10px\",\n borderRadius: \"var(--klun-radius-md)\",\n background: tone === \"error\" ? \"var(--klun-state-error-lighter)\" : \"var(--klun-bg-weak-50)\",\n font: \"var(--klun-text-paragraph-xs)\",\n fontFamily: \"var(--klun-font-mono, ui-monospace, monospace)\",\n color: tone === \"error\" ? \"var(--klun-state-error-base)\" : \"var(--klun-text-sub-600)\",\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n }}\n >\n {body}\n </pre>\n </div>\n );\n}\n\n/* --- text --------------------------------------------------------------- */\n\nfunction TextBlock({ block, streaming }: { block: AgentTextBlock; streaming?: boolean }) {\n return (\n <div\n style={{\n font: \"var(--klun-text-paragraph-md)\",\n color: \"var(--klun-text-strong-950)\",\n lineHeight: 1.65,\n whiteSpace: \"pre-wrap\",\n }}\n >\n {block.text}\n {streaming ? <span className=\"klun-agent-caret\" /> : null}\n </div>\n );\n}\n\n/* ----------------------------------------------------------------- render -- */\n\nfunction AgentTurn({ msg }: { msg: AgentMessage }) {\n const blocks = msg.blocks || [];\n const lastTextIdx = blocks.map((b) => b.kind).lastIndexOf(\"text\");\n const onlyThinking = blocks.length > 0 && blocks.every((b) => b.kind === \"thinking\");\n return (\n <div style={{ display: \"flex\", gap: 12, alignItems: \"flex-start\" }}>\n <AgentMark />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: 10, paddingTop: 4 }}>\n {blocks.map((b, i) => {\n if (b.kind === \"thinking\") return <ThinkingBlock key={i} block={b} />;\n if (b.kind === \"plan\") return <PlanBlock key={i} block={b} />;\n if (b.kind === \"tool\") return <ToolBlock key={i} block={b} />;\n return <TextBlock key={i} block={b} streaming={msg.streaming && i === lastTextIdx} />;\n })}\n {/* No text yet but still working → show a typing affordance. */}\n {msg.streaming && lastTextIdx === -1 && !onlyThinking ? (\n <span className=\"klun-agent-typing\"><span /><span /><span /></span>\n ) : null}\n </div>\n </div>\n );\n}\n\nfunction UserTurn({ msg, initials }: { msg: AgentMessage; initials: string }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"row-reverse\", gap: 12, alignItems: \"flex-start\" }}>\n <Avatar size=\"32\" initials={initials} color=\"purple\" />\n <div\n style={{\n maxWidth: \"78%\",\n padding: \"10px 14px\",\n borderRadius: \"var(--klun-radius-2xl) var(--klun-radius-2xl) var(--klun-radius-sm) var(--klun-radius-2xl)\",\n background: \"var(--klun-primary-base)\",\n color: \"var(--klun-static-static-white)\",\n font: \"var(--klun-text-paragraph-sm)\",\n lineHeight: 1.55,\n whiteSpace: \"pre-wrap\",\n }}\n >\n {msg.text}\n </div>\n </div>\n );\n}\n\nexport function AgentThread({ messages, userInitials, agentName, suggestions, onSuggest }: AgentThreadProps) {\n const scrollRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n scrollRef.current?.scrollTo?.(0, scrollRef.current.scrollHeight);\n }, [messages]);\n\n if (messages.length === 0) {\n return (\n <div style={{ flex: 1, display: \"flex\", flexDirection: \"column\", alignItems: \"center\", justifyContent: \"center\", padding: 32, textAlign: \"center\" }}>\n <div\n style={{\n width: 56,\n height: 56,\n borderRadius: \"var(--klun-radius-2xl)\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: 28,\n marginBottom: 20,\n }}\n >\n <i className=\"ri-sparkling-2-fill\" />\n </div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n What should {agentName} work on?\n </h1>\n <p style={{ margin: \"8px 0 28px\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\" }}>\n Describe a task — the agent will plan, use tools, and report back.\n </p>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 12, maxWidth: 560, width: \"100%\" }}>\n {suggestions.map((s) => (\n <button\n key={s.text}\n onClick={() => onSuggest(s.text)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n padding: \"14px 16px\",\n textAlign: \"left\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-xl)\",\n cursor: \"pointer\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n <i className={s.icon} style={{ fontSize: 20, color: \"var(--klun-primary-base)\" }} />\n <span>{s.text}</span>\n </button>\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div ref={scrollRef} style={{ flex: 1, overflow: \"auto\" }}>\n <div style={{ maxWidth: 760, margin: \"0 auto\", padding: \"24px 24px 8px\", display: \"flex\", flexDirection: \"column\", gap: 24 }}>\n {messages.map((m) =>\n m.from === \"me\" ? (\n <UserTurn key={m.id} msg={m} initials={userInitials} />\n ) : (\n <AgentTurn key={m.id} msg={m} />\n ),\n )}\n </div>\n </div>\n );\n}\n\n/** Small status pill for the thread header. */\nexport function AgentRunBadge({ busy }: { busy: boolean }) {\n return busy ? (\n <Badge color=\"orange\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-loader-4-line\" style={{ animation: \"klun-agent-spin .9s linear infinite\" }} />}>\n Working\n </Badge>\n ) : (\n <Badge color=\"green\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-check-line\" />}>\n Idle\n </Badge>\n );\n}\n","// Klun UI agent chat — composer with model picker, tool toggle and a send\n// button that flips to a stop control while the agent is running.\nimport { useRef, useState, type ChangeEvent, type CSSProperties } from \"react\";\n\nexport interface AgentComposerProps {\n onSend: (text: string) => void;\n onStop: () => void;\n busy: boolean;\n /** Whether the agent is allowed to call tools this turn. */\n toolsOn: boolean;\n onToggleTools: (on: boolean) => void;\n}\n\nexport function AgentComposer({ onSend, onStop, busy, toolsOn, onToggleTools }: AgentComposerProps) {\n const [text, setText] = useState(\"\");\n const [model, setModel] = useState(\"Klun Agent-1\");\n const taRef = useRef<HTMLTextAreaElement>(null);\n\n const send = () => {\n const t = text.trim();\n if (!t || busy) return;\n onSend(t);\n setText(\"\");\n if (taRef.current) taRef.current.style.height = \"auto\";\n };\n const grow = (e: ChangeEvent<HTMLTextAreaElement>) => {\n setText(e.target.value);\n e.target.style.height = \"auto\";\n e.target.style.height = Math.min(e.target.scrollHeight, 160) + \"px\";\n };\n\n const canSend = !!text.trim() && !busy;\n\n return (\n <div style={{ padding: \"0 24px 20px\" }}>\n <div\n style={{\n maxWidth: 760,\n margin: \"0 auto\",\n borderRadius: \"var(--klun-radius-3xl)\",\n background: \"var(--klun-bg-white-0)\",\n boxShadow: \"var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n padding: 12,\n }}\n >\n <textarea\n ref={taRef}\n value={text}\n onChange={grow}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n send();\n }\n }}\n placeholder=\"Give the agent a task…\"\n rows={1}\n style={{\n width: \"100%\",\n boxSizing: \"border-box\",\n border: \"none\",\n outline: \"none\",\n resize: \"none\",\n background: \"transparent\",\n font: \"var(--klun-text-paragraph-md)\",\n color: \"var(--klun-text-strong-950)\",\n padding: \"6px 6px 10px\",\n maxHeight: 160,\n }}\n />\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <button title=\"Attach file\" style={iconBtn}>\n <i className=\"ri-attachment-2\" />\n </button>\n <button\n type=\"button\"\n onClick={() => onToggleTools(!toolsOn)}\n title=\"Toggle tools\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 6,\n height: 32,\n padding: \"0 10px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-md)\",\n cursor: \"pointer\",\n font: \"var(--klun-text-label-sm)\",\n background: toolsOn ? \"var(--klun-state-feature-lighter)\" : \"var(--klun-bg-weak-50)\",\n color: toolsOn ? \"var(--klun-state-feature-base)\" : \"var(--klun-text-sub-600)\",\n }}\n >\n <i className=\"ri-tools-line\" style={{ fontSize: 16 }} />\n Tools\n </button>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 4,\n height: 32,\n padding: \"0 8px 0 10px\",\n borderRadius: \"var(--klun-radius-md)\",\n background: \"var(--klun-bg-weak-50)\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-sub-600)\",\n cursor: \"pointer\",\n }}\n >\n <i className=\"ri-cpu-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n <select\n value={model}\n onChange={(e) => setModel(e.target.value)}\n style={{\n appearance: \"none\",\n WebkitAppearance: \"none\",\n border: \"none\",\n outline: \"none\",\n background: \"transparent\",\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-sub-600)\",\n cursor: \"pointer\",\n }}\n >\n <option>Klun Agent-1</option>\n <option>Klun Agent-1 Mini</option>\n <option>Klun Agent-1 Pro</option>\n </select>\n <i className=\"ri-arrow-down-s-line\" style={{ fontSize: 16, color: \"var(--klun-icon-soft-400)\" }} />\n </div>\n <div style={{ flex: 1 }} />\n {busy ? (\n <button\n onClick={onStop}\n title=\"Stop\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 36,\n height: 36,\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: \"pointer\",\n background: \"var(--klun-bg-strong-950)\",\n color: \"var(--klun-text-white-0)\",\n fontSize: 18,\n }}\n >\n <i className=\"ri-stop-fill\" />\n </button>\n ) : (\n <button\n onClick={send}\n disabled={!canSend}\n title=\"Send\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 36,\n height: 36,\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: canSend ? \"pointer\" : \"not-allowed\",\n background: canSend ? \"var(--klun-primary-base)\" : \"var(--klun-bg-soft-200)\",\n color: canSend ? \"var(--klun-static-static-white)\" : \"var(--klun-text-soft-400)\",\n fontSize: 20,\n }}\n >\n <i className=\"ri-arrow-up-line\" />\n </button>\n )}\n </div>\n </div>\n <div\n style={{\n maxWidth: 760,\n margin: \"8px auto 0\",\n textAlign: \"center\",\n font: \"var(--klun-text-paragraph-xs)\",\n color: \"var(--klun-text-soft-400)\",\n }}\n >\n The agent can run tools and make mistakes. Review its actions.\n </div>\n </div>\n );\n}\n\nconst iconBtn: CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 32,\n height: 32,\n border: \"none\",\n borderRadius: \"var(--klun-radius-md)\",\n background: \"transparent\",\n color: \"var(--klun-icon-sub-600)\",\n cursor: \"pointer\",\n fontSize: 18,\n};\n","// Klun UI agent chat — full template composition. A simulated agent run that\n// reasons, lays out a plan, calls tools and streams its final answer, with a\n// working Stop control that aborts the run mid-flight.\nimport { useEffect, useRef, useState } from \"react\";\nimport { Button } from \"../../index\";\nimport { AgentSidebar, type AgentSession, type AgentUser } from \"./AgentSidebar\";\nimport {\n AgentThread,\n AgentRunBadge,\n type AgentBlock,\n type AgentMessage,\n type AgentPlanBlock,\n type AgentStep,\n type AgentSuggestion,\n type AgentTextBlock,\n} from \"./AgentThread\";\nimport { AgentComposer } from \"./AgentComposer\";\n\n/* --------------------------------------------------------------- scenarios -- */\n\ninterface Scenario {\n thinking: string;\n thinkSeconds: number;\n planTitle: string;\n /** One label per tool, plus a final \"compose the answer\" step. */\n steps: string[];\n tools: { name: string; icon: string; request: string; result: string }[];\n answer: string;\n}\n\nconst SCENARIOS: Scenario[] = [\n {\n thinking:\n \"The user wants the Q2 numbers summarized. I'll search the knowledge base for the latest financials, read the segment breakdown, then write a short summary with the key drivers. I won't make up figures — everything comes from the files.\",\n thinkSeconds: 3,\n planTitle: \"Plan\",\n steps: [\"Search the knowledge base\", \"Read the matching records\", \"Write the summary\"],\n tools: [\n {\n name: \"search_kb\",\n icon: \"ri-search-2-line\",\n request: 'query: \"Q2 revenue by segment\"\\nlimit: 5',\n result: \"5 documents found:\\n• 2024-Q2-financials.pdf (0.94)\\n• segment-breakdown.csv (0.91)\\n• board-notes.md (0.83)\",\n },\n {\n name: \"read_file\",\n icon: \"ri-file-text-line\",\n request: 'path: \"segment-breakdown.csv\"',\n result: \"segment,revenue,growth\\nSubscriptions,1.82M,+18%\\nServices,0.64M,+4%\\nOne-off,0.21M,-7%\",\n },\n ],\n answer:\n \"Here's the Q2 breakdown: total revenue was $2.67M, up 12.4% over Q1. Growth came almost entirely from subscriptions (+18%, $1.82M), while one-off sales slipped 7%. Want me to chart this or draft a board summary?\",\n },\n {\n thinking:\n \"They want a follow-up email for an overdue invoice. I'll look up the contact, draft the message, and save it as a draft — I will not send anything without explicit confirmation.\",\n thinkSeconds: 2,\n planTitle: \"Plan\",\n steps: [\"Look up the contact\", \"Draft the message\", \"Prepare the draft\"],\n tools: [\n {\n name: \"get_contact\",\n icon: \"ri-contacts-line\",\n request: 'name: \"Apex Ltd\"',\n result: '{ \"name\": \"Apex Ltd\", \"email\": \"ap@apex.example\", \"owner\": \"Arthur\" }',\n },\n {\n name: \"create_draft\",\n icon: \"ri-mail-add-line\",\n request: 'to: \"ap@apex.example\"\\nsubject: \"Friendly reminder — invoice #1042\"',\n result: \"Draft saved (id: dr_7c21). Not sent.\",\n },\n ],\n answer:\n \"I've drafted a friendly reminder to Apex Ltd about invoice #1042 ($2,400, 6 days overdue) and saved it as a draft — I did not send it. Want me to add a payment link, soften the tone, or go ahead and send?\",\n },\n];\n\nconst SUGGESTIONS: AgentSuggestion[] = [\n { icon: \"ri-search-2-line\", text: \"Research our Q2 revenue and summarize it\" },\n { icon: \"ri-mail-send-line\", text: \"Draft and queue an overdue-invoice reminder\" },\n { icon: \"ri-bug-line\", text: \"Find the failing checkout test and propose a fix\" },\n { icon: \"ri-calendar-todo-line\", text: \"Plan my week around 3 deadlines\" },\n];\n\n/* ----------------------------------------------------------------- helpers -- */\n\nfunction mapLastKind<K extends AgentBlock[\"kind\"]>(\n blocks: AgentBlock[],\n kind: K,\n fn: (b: Extract<AgentBlock, { kind: K }>) => AgentBlock,\n): AgentBlock[] {\n for (let i = blocks.length - 1; i >= 0; i--) {\n if (blocks[i].kind === kind) {\n const next = blocks.slice();\n next[i] = fn(blocks[i] as Extract<AgentBlock, { kind: K }>);\n return next;\n }\n }\n return blocks;\n}\n\n/* ------------------------------------------------------------------- view -- */\n\nconst STYLES = `\n@keyframes klun-agent-spin { to { transform: rotate(360deg); } }\n@keyframes klun-agent-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }\n@keyframes klun-agent-bounce { 0%, 80%, 100% { transform: translateY(0); opacity: .4; } 40% { transform: translateY(-4px); opacity: 1; } }\n.klun-agent-caret { display: inline-block; width: 7px; height: 1.05em; margin-left: 2px; transform: translateY(2px); border-radius: 1px; background: var(--klun-primary-base); animation: klun-agent-blink 1s steps(2) infinite; }\n.klun-agent-typing { display: inline-flex; gap: 4px; padding: 6px 2px; }\n.klun-agent-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--klun-icon-soft-400); animation: klun-agent-bounce 1.2s infinite ease-in-out; }\n.klun-agent-typing span:nth-child(2) { animation-delay: .15s; }\n.klun-agent-typing span:nth-child(3) { animation-delay: .3s; }\n`;\n\nexport function AgentChatTemplate() {\n const user: AgentUser = { name: \"Arthur Taylor\", initials: \"AT\", plan: \"Pro plan\" };\n\n const [sessions, setSessions] = useState<AgentSession[]>([\n { id: \"s1\", group: \"today\", title: \"Q2 revenue summary\", state: \"done\" },\n { id: \"s2\", group: \"today\", title: \"Invoice reminder draft\", state: \"done\" },\n { id: \"s3\", group: \"week\", title: \"Fix checkout flake\", state: \"idle\" },\n ]);\n const [activeId, setActiveId] = useState(\"new\");\n const [threads, setThreads] = useState<Record<string, AgentMessage[]>>({ new: [] });\n const [busy, setBusy] = useState(false);\n const [toolsOn, setToolsOn] = useState(true);\n\n const messages = threads[activeId] || [];\n\n // Run bookkeeping. runId invalidates in-flight timers so Stop unwinds cleanly.\n const runIdRef = useRef(0);\n const idRef = useRef(0);\n const runThreadRef = useRef(\"new\");\n const agentMsgIdRef = useRef(\"\");\n const timersRef = useRef<ReturnType<typeof setTimeout>[]>([]);\n const toolsOnRef = useRef(toolsOn);\n toolsOnRef.current = toolsOn;\n const scenarioRef = useRef(0);\n\n useEffect(() => () => timersRef.current.forEach(clearTimeout), []);\n\n const nextId = (p: string) => `${p}${(idRef.current += 1)}`;\n\n const sleep = (ms: number, token: number) =>\n new Promise<void>((resolve, reject) => {\n const id = setTimeout(() => {\n if (token === runIdRef.current) resolve();\n else reject(new Error(\"aborted\"));\n }, ms);\n timersRef.current.push(id);\n });\n\n const setSessionState = (id: string, state: AgentSession[\"state\"]) =>\n setSessions((ss) => ss.map((s) => (s.id === id ? { ...s, state } : s)));\n\n const run = async (prompt: string) => {\n const token = (runIdRef.current += 1);\n const threadId = activeId;\n const agentId = nextId(\"a\");\n runThreadRef.current = threadId;\n agentMsgIdRef.current = agentId;\n\n const sc = SCENARIOS[scenarioRef.current % SCENARIOS.length];\n scenarioRef.current += 1;\n const useTools = toolsOnRef.current;\n\n // Scoped helpers that always target this run's agent message.\n const patch = (updater: (blocks: AgentBlock[]) => AgentBlock[]) =>\n setThreads((t) => {\n const msgs = t[threadId];\n if (!msgs) return t;\n const idx = msgs.findIndex((m) => m.id === agentId);\n if (idx < 0) return t;\n const next = msgs.slice();\n next[idx] = { ...next[idx], blocks: updater(next[idx].blocks || []) };\n return { ...t, [threadId]: next };\n });\n const setStreaming = (streaming: boolean) =>\n setThreads((t) => {\n const msgs = t[threadId];\n if (!msgs) return t;\n const idx = msgs.findIndex((m) => m.id === agentId);\n if (idx < 0) return t;\n const next = msgs.slice();\n next[idx] = { ...next[idx], streaming };\n return { ...t, [threadId]: next };\n });\n const push = (b: AgentBlock) => patch((bl) => [...bl, b]);\n\n setBusy(true);\n if (threadId !== \"new\") setSessionState(threadId, \"running\");\n setThreads((t) => ({\n ...t,\n [threadId]: [...(t[threadId] || []), { id: agentId, from: \"agent\", blocks: [], streaming: true }],\n }));\n\n try {\n // 1. Reason.\n push({ kind: \"thinking\", text: sc.thinking });\n await sleep(1500, token);\n patch((bl) => mapLastKind(bl, \"thinking\", (b) => ({ ...b, seconds: sc.thinkSeconds })));\n\n if (useTools) {\n // 2. Plan.\n const steps: AgentStep[] = sc.steps.map((text, i) => ({ text, status: i === 0 ? \"active\" : \"todo\" }));\n push({ kind: \"plan\", title: sc.planTitle, steps });\n await sleep(700, token);\n\n // 3. Tools — advance the plan as each completes.\n for (let i = 0; i < sc.tools.length; i++) {\n const tool = sc.tools[i];\n push({ kind: \"tool\", name: tool.name, icon: tool.icon, request: tool.request, status: \"running\" });\n await sleep(1500, token);\n patch((bl) => mapLastKind(bl, \"tool\", (b) => ({ ...b, status: \"done\", result: tool.result })));\n patch((bl) =>\n mapLastKind(bl, \"plan\", (p: AgentPlanBlock) => ({\n ...p,\n steps: p.steps.map((s, k) =>\n k === i ? { ...s, status: \"done\" } : k === i + 1 ? { ...s, status: \"active\" } : s,\n ),\n })),\n );\n await sleep(450, token);\n }\n }\n\n // 4. Stream the answer.\n push({ kind: \"text\", text: \"\" });\n const words = sc.answer.split(\" \");\n let acc = \"\";\n for (let i = 0; i < words.length; i++) {\n acc += (i === 0 ? \"\" : \" \") + words[i];\n const cur = acc;\n patch((bl) => mapLastKind(bl, \"text\", (b) => ({ ...b, text: cur })));\n await sleep(28, token);\n }\n\n // 5. Done — close out the plan.\n if (useTools) {\n patch((bl) =>\n mapLastKind(bl, \"plan\", (p: AgentPlanBlock) => ({\n ...p,\n steps: p.steps.map((s) => ({ ...s, status: \"done\" as const })),\n })),\n );\n }\n setStreaming(false);\n if (threadId !== \"new\") setSessionState(threadId, \"done\");\n setBusy(false);\n } catch {\n // Aborted via Stop — handled there.\n }\n };\n\n const stop = () => {\n if (!busy) return;\n runIdRef.current += 1; // invalidate: the in-flight sleep will reject and unwind\n const threadId = runThreadRef.current;\n const agentId = agentMsgIdRef.current;\n setThreads((t) => {\n const msgs = t[threadId];\n if (!msgs) return t;\n const idx = msgs.findIndex((m) => m.id === agentId);\n if (idx < 0) return t;\n const msg = msgs[idx];\n let blocks: AgentBlock[] = (msg.blocks || []).map((b) =>\n b.kind === \"tool\" && b.status === \"running\" ? { ...b, status: \"error\", result: \"Stopped by user.\" } : b,\n );\n const last = blocks[blocks.length - 1];\n if (last && last.kind === \"text\" && !(last as AgentTextBlock).text) blocks = blocks.slice(0, -1);\n blocks = [...blocks, { kind: \"text\", text: \"⏹ Stopped.\" }];\n const next = msgs.slice();\n next[idx] = { ...msg, blocks, streaming: false };\n return { ...t, [threadId]: next };\n });\n if (threadId !== \"new\") setSessionState(threadId, \"idle\");\n setBusy(false);\n };\n\n const ask = (text: string) => {\n if (busy) return;\n setThreads((t) => ({ ...t, [activeId]: [...(t[activeId] || []), { id: nextId(\"u\"), from: \"me\", text }] }));\n run(text);\n };\n\n const newTask = () => {\n if (busy) stop();\n setActiveId(\"new\");\n setThreads((t) => ({ ...t, new: [] }));\n };\n\n const select = (id: string) => {\n setActiveId(id);\n setThreads((t) => (t[id] ? t : { ...t, [id]: [] }));\n };\n\n const title = activeId === \"new\" ? \"New task\" : sessions.find((s) => s.id === activeId)?.title || \"Task\";\n\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <style>{STYLES}</style>\n <AgentSidebar sessions={sessions} activeId={activeId} onSelect={select} onNew={newTask} user={user} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\" }}>\n <header\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n padding: \"14px 24px\",\n borderBottom: \"1px solid var(--klun-stroke-soft-200)\",\n }}\n >\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>{title}</span>\n <AgentRunBadge busy={busy} />\n <div style={{ flex: 1 }} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-share-line\" />} />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" icon={<i className=\"ri-more-2-fill\" />} />\n </header>\n <AgentThread\n messages={messages}\n userInitials={user.initials}\n agentName=\"the agent\"\n suggestions={SUGGESTIONS}\n onSuggest={ask}\n />\n <AgentComposer onSend={ask} onStop={stop} busy={busy} toolsOn={toolsOn} onToggleTools={setToolsOn} />\n </div>\n </div>\n );\n}\n","// Klun UI crypto — trading sidebar.\n\ninterface NavItem {\n id: string;\n label: string;\n icon: string;\n badge?: string;\n}\n\nexport interface CryptoSidebarProps {\n active: string;\n onNavigate: (id: string) => void;\n}\n\nexport function CryptoSidebar({ active, onNavigate }: CryptoSidebarProps) {\n const main: NavItem[] = [\n { id: \"markets\", label: \"Markets\", icon: \"ri-line-chart-line\" },\n { id: \"portfolio\", label: \"Portfolio\", icon: \"ri-pie-chart-2-line\" },\n { id: \"trade\", label: \"Trade\", icon: \"ri-swap-line\" },\n { id: \"wallet\", label: \"Wallet\", icon: \"ri-wallet-3-line\" },\n { id: \"earn\", label: \"Earn\", icon: \"ri-funds-line\", badge: \"New\" },\n ];\n const other: NavItem[] = [\n { id: \"activity\", label: \"Activity\", icon: \"ri-history-line\" },\n { id: \"settings\", label: \"Settings\", icon: \"ri-settings-2-line\" },\n ];\n const Item = ({ it }: { it: NavItem }) => {\n const on = active === it.id;\n return (\n <button onClick={() => onNavigate(it.id)} style={{\n display: \"flex\", alignItems: \"center\", gap: 10, width: \"100%\", height: 38, padding: \"0 12px\",\n border: \"none\", borderRadius: \"var(--klun-radius-lg)\", cursor: \"pointer\", textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\", font: \"var(--klun-text-label-sm)\",\n }}>\n <i className={it.icon} style={{ fontSize: 20, color: on ? \"var(--klun-primary-base)\" : \"var(--klun-icon-sub-600)\" }} />\n <span style={{ flex: 1 }}>{it.label}</span>\n {it.badge ? <span style={{ font: \"var(--klun-text-subheading-2xs)\", padding: \"1px 6px\", borderRadius: \"var(--klun-radius-pill)\", background: \"var(--klun-state-success-lighter)\", color: \"var(--klun-state-success-base)\" }}>{it.badge}</span> : null}\n </button>\n );\n };\n return (\n <aside style={{ width: 256, flexShrink: 0, height: \"100%\", boxSizing: \"border-box\", display: \"flex\", flexDirection: \"column\", padding: 18, background: \"var(--klun-bg-weak-50)\", borderRight: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 8px 18px\" }}>\n <div style={{ width: 34, height: 34, borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-primary-base)\", color: \"var(--klun-static-static-white)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-currency-line\" style={{ fontSize: 20 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Apex Exchange</span>\n </div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{main.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ font: \"var(--klun-text-subheading-2xs)\", letterSpacing: \"var(--klun-subheading-2xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", padding: \"20px 12px 8px\" }}>Account</div>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>{other.map((it) => <Item key={it.id} it={it} />)}</nav>\n <div style={{ flex: 1 }} />\n <div style={{ borderRadius: \"var(--klun-radius-xl)\", background: \"var(--klun-bg-strong-950)\", padding: 16, color: \"var(--klun-static-static-white)\" }}>\n <i className=\"ri-vip-crown-2-line\" style={{ fontSize: 22 }} />\n <div style={{ marginTop: 8, font: \"var(--klun-text-label-sm)\" }}>Upgrade to Pro</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-paragraph-xs)\", opacity: .7 }}>0% maker fees & advanced charts.</div>\n </div>\n </aside>\n );\n}\n","// Klun UI crypto — Markets/Portfolio screen.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Card, Table, Badge, SegmentedControl, Button } from \"../../index\";\n\nfunction Stat({ label, value, delta, trend = \"up\", tint = \"feature\", icon }: {\n label: ReactNode; value: ReactNode; delta?: ReactNode; trend?: \"up\" | \"down\";\n tint?: \"feature\" | \"success\" | \"warning\" | \"information\" | \"error\"; icon?: ReactNode;\n}) {\n const dc = trend === \"up\" ? \"success\" : \"error\";\n return (\n <Card variant=\"stroke\" padding={18}>\n <div style={{ display: \"flex\", alignItems: \"flex-start\", justifyContent: \"space-between\" }}>\n <span style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22, background: `var(--klun-state-${tint}-lighter)`, color: `var(--klun-state-${tint}-base)` }}>{icon}</span>\n {delta != null ? (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 2, height: 20, padding: \"0 6px\", borderRadius: \"var(--klun-radius-capsule)\", font: \"var(--klun-text-label-xs)\", background: `var(--klun-state-${dc}-lighter)`, color: `var(--klun-state-${dc}-base)` }}>\n <i className={trend === \"up\" ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} style={{ fontSize: 14 }} />{delta}\n </span>\n ) : null}\n </div>\n <div style={{ marginTop: 16, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{label}</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{value}</div>\n </Card>\n );\n}\nimport type { TableColumn } from \"../../index\";\n\nfunction coinStyle(sym: string): [string, string] {\n const map: Record<string, [string, string]> = {\n BTC: [\"#F7931A22\", \"#F7931A\"], ETH: [\"#627EEA22\", \"#627EEA\"], SOL: [\"#9945FF22\", \"#9945FF\"],\n XRP: [\"#23292F22\", \"#23292F\"], BNB: [\"#F3BA2F22\", \"#C99A2C\"], USDC: [\"#2775CA22\", \"#2775CA\"],\n AVAX: [\"#E8414222\", \"#E84142\"], ADA: [\"#0033AD22\", \"#0033AD\"],\n };\n return map[sym] || [\"var(--klun-bg-weak-50)\", \"var(--klun-text-sub-600)\"];\n}\n\ninterface CoinIconProps {\n sym: string;\n size?: number;\n}\n\nfunction CoinIcon({ sym, size = 32 }: CoinIconProps) {\n const [bg, fg] = coinStyle(sym);\n return <span style={{ width: size, height: size, borderRadius: \"var(--klun-radius-pill)\", background: bg, color: fg, display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", font: \"var(--klun-text-label-xs)\", fontWeight: 600, flexShrink: 0 }}>{sym.slice(0, 3)}</span>;\n}\n\ninterface SparkProps {\n up: boolean;\n w?: number;\n h?: number;\n}\n\nfunction Spark({ up, w = 96, h = 32 }: SparkProps) {\n const pts = up ? [10, 12, 8, 14, 11, 16, 13, 20, 18, 24, 22, 28] : [26, 22, 24, 18, 20, 16, 18, 12, 14, 10, 12, 8];\n const step = w / (pts.length - 1);\n const d = pts.map((p, i) => `${i ? \"L\" : \"M\"}${(i * step).toFixed(1)},${(h - p).toFixed(1)}`).join(\" \");\n const c = up ? \"var(--klun-state-success-base)\" : \"var(--klun-state-error-base)\";\n return <svg width={w} height={h}><path d={d} fill=\"none\" stroke={c} strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" /></svg>;\n}\n\ninterface Holding {\n sym: string;\n name: string;\n price: string;\n amount: string;\n value: string;\n chg: string;\n up: boolean;\n}\n\nexport function MarketsScreen() {\n const [range, setRange] = useState(\"1w\");\n\n const holdings: Holding[] = [\n { sym: \"BTC\", name: \"Bitcoin\", price: \"$64,210\", amount: \"0.842 BTC\", value: \"$54,065\", chg: \"+2.4%\", up: true },\n { sym: \"ETH\", name: \"Ethereum\", price: \"$3,180\", amount: \"6.20 ETH\", value: \"$19,716\", chg: \"+1.3%\", up: true },\n { sym: \"SOL\", name: \"Solana\", price: \"$142.50\", amount: \"84.0 SOL\", value: \"$11,970\", chg: \"-2.3%\", up: false },\n { sym: \"XRP\", name: \"XRP\", price: \"$0.62\", amount: \"9,400 XRP\", value: \"$5,828\", chg: \"-0.2%\", up: false },\n { sym: \"BNB\", name: \"BNB\", price: \"$590.10\", amount: \"12.0 BNB\", value: \"$7,081\", chg: \"-1.5%\", up: false },\n ];\n const columns: TableColumn<Holding>[] = [\n { key: \"name\", header: \"Asset\", render: (r) => (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <CoinIcon sym={r.sym} />\n <div><div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.name}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{r.sym}</div></div>\n </div>) },\n { key: \"price\", header: \"Price\", render: (r) => <span style={{ font: \"var(--klun-text-label-sm)\" }}>{r.price}</span> },\n { key: \"amount\", header: \"Holdings\", render: (r) => <span style={{ color: \"var(--klun-text-sub-600)\" }}>{r.amount}</span> },\n { key: \"chg\", header: \"24h\", render: (r) => <Badge color={r.up ? \"green\" : \"red\"} variant=\"light\" size=\"small\" leadingIcon={<i className={r.up ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} />}>{r.chg}</Badge> },\n { key: \"value\", header: \"Value\", align: \"right\", render: (r) => <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.value}</span> },\n { key: \"spark\", header: \"\", width: 110, align: \"right\", render: (r) => <Spark up={r.up} /> },\n ];\n\n return (\n <div style={{ padding: 28, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1.6fr 1fr 1fr\", gap: 16 }}>\n <div style={{ gridColumn: \"1 / -1\", display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 16 }}>\n <Stat label=\"Total balance\" value=\"$98,659.40\" delta=\"3.8%\" trend=\"up\" tint=\"feature\" icon={<i className=\"ri-wallet-3-line\" />} />\n <Stat label=\"24h P&L\" value=\"+$1,842.10\" delta=\"1.9%\" trend=\"up\" tint=\"success\" icon={<i className=\"ri-line-chart-line\" />} />\n <Stat label=\"Available\" value=\"$12,430.00\" delta=\"0.0%\" trend=\"up\" tint=\"information\" icon={<i className=\"ri-cash-line\" />} />\n </div>\n </div>\n\n <div style={{ background: \"var(--klun-bg-white-0)\", borderRadius: \"var(--klun-radius-2xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", padding: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: 8 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n <CoinIcon sym=\"BTC\" size={36} />\n <div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>$64,210.40</span>\n <Badge color=\"green\" variant=\"light\" size=\"small\" leadingIcon={<i className=\"ri-arrow-up-line\" />}>2.4%</Badge>\n </div>\n <div style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>Bitcoin · BTC/USD</div>\n </div>\n </div>\n <SegmentedControl value={range} onChange={setRange} items={[{ value: \"1d\", label: \"1D\" }, { value: \"1w\", label: \"1W\" }, { value: \"1m\", label: \"1M\" }, { value: \"1y\", label: \"1Y\" }]} />\n </div>\n <AreaChart />\n </div>\n\n <div style={{ background: \"var(--klun-bg-white-0)\", borderRadius: \"var(--klun-radius-2xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", overflow: \"hidden\" }}>\n <div style={{ padding: \"16px 20px\", display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Your holdings</span>\n <Button variant=\"primary\" size=\"small\" leadingIcon={<i className=\"ri-add-line\" />}>Buy crypto</Button>\n </div>\n <Table columns={columns} rows={holdings} getRowId={(r) => r.sym} style={{ borderRadius: 0, boxShadow: \"none\", borderTop: \"1px solid var(--klun-stroke-soft-200)\" }} />\n </div>\n </div>\n );\n}\n\nfunction AreaChart(): ReactNode {\n const pts = [40, 44, 38, 52, 48, 60, 55, 72, 68, 84, 78, 96, 90, 108, 118];\n const w = 1000, h = 160, max = 130;\n const step = w / (pts.length - 1);\n const line = pts.map((p, i) => `${i ? \"L\" : \"M\"}${(i * step).toFixed(1)},${(h - (p / max) * h).toFixed(1)}`).join(\" \");\n const area = `${line} L${w},${h} L0,${h} Z`;\n return (\n <svg viewBox={`0 0 ${w} ${h}`} preserveAspectRatio=\"none\" style={{ width: \"100%\", height: 160, display: \"block\" }}>\n <defs>\n <linearGradient id=\"cryptoFill\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"var(--klun-primary-base)\" stopOpacity=\"0.18\" />\n <stop offset=\"100%\" stopColor=\"var(--klun-primary-base)\" stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n <path d={area} fill=\"url(#cryptoFill)\" />\n <path d={line} fill=\"none\" stroke=\"var(--klun-primary-base)\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n","// Klun UI crypto — trading dashboard template.\n// Markets/portfolio starting point — balance cards, area chart, holdings table.\nimport { useState } from \"react\";\nimport { Badge, Button } from \"../../index\";\nimport { CryptoSidebar } from \"./CryptoSidebar\";\nimport { MarketsScreen } from \"./MarketsScreen\";\n\nexport function CryptoTemplate() {\n const [active, setActive] = useState(\"portfolio\");\n return (\n <div style={{ display: \"flex\", height: \"100%\" }}>\n <CryptoSidebar active={active} onNavigate={setActive} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}>\n <header style={{ display: \"flex\", alignItems: \"center\", gap: 16, padding: \"16px 28px\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <div style={{ flex: 1 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>Portfolio</h1>\n <Badge color=\"green\" variant=\"light\" size=\"small\" dot>Markets open</Badge>\n </div>\n </div>\n <div style={{ position: \"relative\" }}>\n <i className=\"ri-search-line\" style={{ position: \"absolute\", left: 12, top: \"50%\", transform: \"translateY(-50%)\", fontSize: 18, color: \"var(--klun-icon-soft-400)\" }}></i>\n <input placeholder=\"Search assets\" style={{ width: 220, boxSizing: \"border-box\", height: 36, padding: \"0 12px 0 36px\", borderRadius: \"var(--klun-radius-lg)\", border: \"none\", background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-strong-950)\", outline: \"none\" }} />\n </div>\n <Button iconOnly variant=\"neutral\" appearance=\"stroke\" icon={<i className=\"ri-notification-3-line\" />} />\n <Button variant=\"primary\" leadingIcon={<i className=\"ri-arrow-left-right-line\" />}>Trade</Button>\n </header>\n <main style={{ flex: 1, overflow: \"auto\", background: \"var(--klun-bg-weak-50)\" }}>\n <MarketsScreen />\n </main>\n </div>\n </div>\n );\n}\n","// Klun UI marketing — top nav.\nimport { Button } from \"../../index\";\n\nexport function MarketingNav() {\n const links = [\"Product\", \"Solutions\", \"Pricing\", \"Customers\", \"Docs\"];\n return (\n <header style={{ position: \"sticky\", top: 0, zIndex: 20, background: \"color-mix(in srgb, var(--klun-bg-white-0) 80%, transparent)\", backdropFilter: \"blur(12px)\", borderBottom: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ maxWidth: 1120, margin: \"0 auto\", display: \"flex\", alignItems: \"center\", gap: 24, padding: \"14px 24px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <div style={{ width: 32, height: 32, borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <i className=\"ri-shapes-line\" style={{ fontSize: 18 }} />\n </div>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Klun</span>\n </div>\n <nav style={{ display: \"flex\", gap: 4, flex: 1 }}>\n {links.map((l) => (\n <a key={l} href=\"#\" style={{ padding: \"6px 12px\", borderRadius: \"var(--klun-radius-md)\", font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", textDecoration: \"none\" }}>{l}</a>\n ))}\n </nav>\n <a href=\"#\" style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\", textDecoration: \"none\" }}>Sign in</a>\n <Button variant=\"neutral\" size=\"small\" trailingIcon={<i className=\"ri-arrow-right-line\" />}>Start free</Button>\n </div>\n </header>\n );\n}\n","// Klun UI marketing — page sections.\nimport type { CSSProperties, ReactNode } from \"react\";\nimport { Badge, Button, Card, Accordion, Avatar } from \"../../index\";\n\nfunction Stat({ label, value, delta, trend = \"up\", tint = \"feature\", icon }: {\n label: ReactNode; value: ReactNode; delta?: ReactNode; trend?: \"up\" | \"down\";\n tint?: \"feature\" | \"success\" | \"warning\" | \"information\" | \"error\"; icon?: ReactNode;\n}) {\n const dc = trend === \"up\" ? \"success\" : \"error\";\n return (\n <Card variant=\"stroke\" padding={18}>\n <div style={{ display: \"flex\", alignItems: \"flex-start\", justifyContent: \"space-between\" }}>\n <span style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22, background: `var(--klun-state-${tint}-lighter)`, color: `var(--klun-state-${tint}-base)` }}>{icon}</span>\n {delta != null ? (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 2, height: 20, padding: \"0 6px\", borderRadius: \"var(--klun-radius-capsule)\", font: \"var(--klun-text-label-xs)\", background: `var(--klun-state-${dc}-lighter)`, color: `var(--klun-state-${dc}-base)` }}>\n <i className={trend === \"up\" ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} style={{ fontSize: 14 }} />{delta}\n </span>\n ) : null}\n </div>\n <div style={{ marginTop: 16, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{label}</div>\n <div style={{ marginTop: 2, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>{value}</div>\n </Card>\n );\n}\n\ninterface Feature {\n icon: string;\n t: string;\n d: string;\n}\n\ninterface PricingTier {\n name: string;\n price: string;\n note: string;\n feats: string[];\n cta: string;\n featured: boolean;\n}\n\ninterface FooterColumn {\n h: string;\n l: string[];\n}\n\nexport function MarketingSections() {\n const wrap: CSSProperties = { maxWidth: 1120, margin: \"0 auto\", padding: \"0 24px\" };\n\n const features: Feature[] = [\n { icon: \"ri-contrast-drop-line\", t: \"Semantic tokens\", d: \"Every color, radius and space is a named token that re-themes in one line.\" },\n { icon: \"ri-moon-clear-line\", t: \"Dark mode built-in\", d: \"Light and dark resolve automatically — no duplicate components.\" },\n { icon: \"ri-palette-line\", t: \"Four accent themes\", d: \"Blue, purple, orange or green. Switch with a single data attribute.\" },\n { icon: \"ri-puzzle-2-line\", t: \"50+ components\", d: \"Buttons to command menus, all composable and accessible.\" },\n { icon: \"ri-layout-grid-line\", t: \"Product templates\", d: \"Dashboards, AI chat and trading screens ready to fork.\" },\n { icon: \"ri-code-s-slash-line\", t: \"Figma to code\", d: \"Tokens and structure map straight to your codebase.\" },\n ];\n\n const tiers: PricingTier[] = [\n { name: \"Starter\", price: \"$0\", note: \"for solo makers\", feats: [\"Core tokens\", \"30 components\", \"Community support\"], cta: \"Get started\", featured: false },\n { name: \"Pro\", price: \"$29\", note: \"per editor / month\", feats: [\"All 50+ components\", \"Product templates\", \"Dark mode & themes\", \"Priority support\"], cta: \"Start free trial\", featured: true },\n { name: \"Team\", price: \"Custom\", note: \"for organizations\", feats: [\"Everything in Pro\", \"SSO & roles\", \"Design ops review\", \"SLA\"], cta: \"Contact sales\", featured: false },\n ];\n\n const footerColumns: FooterColumn[] = [\n { h: \"Product\", l: [\"Components\", \"Tokens\", \"Templates\", \"Changelog\"] },\n { h: \"Company\", l: [\"About\", \"Careers\", \"Blog\", \"Contact\"] },\n { h: \"Legal\", l: [\"Privacy\", \"Terms\", \"License\"] },\n ];\n\n return (\n <main>\n {/* Hero */}\n <section style={{ ...wrap, textAlign: \"center\", padding: \"80px 24px 64px\" }}>\n <div style={{ display: \"inline-flex\", marginBottom: 20 }}>\n <Badge color=\"purple\" variant=\"lighter\" leadingIcon={<i className=\"ri-sparkling-2-fill\" />}>Klun UI 2.0 is here</Badge>\n </div>\n <h1 style={{ margin: \"0 auto\", maxWidth: 760, font: \"var(--klun-text-title-h1)\", letterSpacing: \"var(--klun-title-h1-tracking)\", color: \"var(--klun-text-strong-950)\" }}>\n The design system that ships with you\n </h1>\n <p style={{ margin: \"20px auto 0\", maxWidth: 560, font: \"var(--klun-text-paragraph-lg)\", color: \"var(--klun-text-sub-600)\" }}>\n Tokens, components and full product templates — themeable, dark-mode ready, and built to move from Figma to production without the redraw.\n </p>\n <div style={{ display: \"flex\", gap: 12, justifyContent: \"center\", marginTop: 28 }}>\n <Button variant=\"primary\" size=\"large\" trailingIcon={<i className=\"ri-arrow-right-line\" />}>Start building free</Button>\n <Button variant=\"neutral\" appearance=\"stroke\" size=\"large\" leadingIcon={<i className=\"ri-github-fill\" />}>View on GitHub</Button>\n </div>\n <div style={{ marginTop: 40, height: 280, borderRadius: \"var(--klun-radius-3xl)\", background: \"linear-gradient(180deg, var(--klun-bg-weak-50), var(--klun-bg-white-0))\", boxShadow: \"var(--klun-shadow-lg), inset 0 0 0 1px var(--klun-stroke-soft-200)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", color: \"var(--klun-text-disabled-300)\" }}>\n <i className=\"ri-layout-masonry-line\" style={{ fontSize: 56 }} />\n </div>\n </section>\n\n {/* Social proof */}\n <section style={{ ...wrap, padding: \"8px 24px 56px\" }}>\n <p style={{ textAlign: \"center\", font: \"var(--klun-text-subheading-xs)\", letterSpacing: \"var(--klun-subheading-xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", marginBottom: 20 }}>Trusted by teams at</p>\n <div style={{ display: \"flex\", flexWrap: \"wrap\", gap: 40, justifyContent: \"center\", alignItems: \"center\", color: \"var(--klun-text-disabled-300)\" }}>\n {[\"ri-google-fill\", \"ri-microsoft-fill\", \"ri-slack-fill\", \"ri-notion-fill\", \"ri-figma-fill\", \"ri-amazon-fill\"].map((i) => (\n <i key={i} className={i} style={{ fontSize: 30 }} />\n ))}\n </div>\n </section>\n\n {/* Stats */}\n <section style={{ ...wrap, padding: \"16px 24px 64px\" }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(4, 1fr)\", gap: 16 }}>\n <Stat label=\"Components\" value=\"50+\" delta=\"2.0 release\" trend=\"up\" tint=\"feature\" icon={<i className=\"ri-puzzle-2-line\" />} />\n <Stat label=\"Design tokens\" value=\"700+\" delta=\"9 collections\" trend=\"up\" tint=\"information\" icon={<i className=\"ri-palette-line\" />} />\n <Stat label=\"Icons\" value=\"4,200+\" delta=\"line & fill\" trend=\"up\" tint=\"success\" icon={<i className=\"ri-shapes-line\" />} />\n <Stat label=\"Themes\" value=\"4 + dark\" delta=\"instant\" trend=\"up\" tint=\"warning\" icon={<i className=\"ri-contrast-2-line\" />} />\n </div>\n </section>\n\n {/* Features */}\n <section style={{ ...wrap, padding: \"56px 24px\" }}>\n <div style={{ textAlign: \"center\", maxWidth: 560, margin: \"0 auto 40px\" }}>\n <h2 style={{ margin: 0, font: \"var(--klun-text-title-h3)\", letterSpacing: \"var(--klun-title-h3-tracking)\", color: \"var(--klun-text-strong-950)\" }}>Everything you need to design fast</h2>\n <p style={{ margin: \"12px 0 0\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\" }}>One coherent system from the smallest token to the full screen.</p>\n </div>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 16 }}>\n {features.map((f) => (\n <Card key={f.t} variant=\"stroke\" padding={24}>\n <div style={{ width: 40, height: 40, borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-primary-lighter)\", color: \"var(--klun-primary-base)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", fontSize: 22, marginBottom: 16 }}>\n <i className={f.icon} />\n </div>\n <div style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\", marginBottom: 6 }}>{f.t}</div>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>{f.d}</p>\n </Card>\n ))}\n </div>\n </section>\n\n {/* Pricing */}\n <section style={{ ...wrap, padding: \"56px 24px\" }}>\n <div style={{ textAlign: \"center\", marginBottom: 40 }}>\n <h2 style={{ margin: 0, font: \"var(--klun-text-title-h3)\", letterSpacing: \"var(--klun-title-h3-tracking)\", color: \"var(--klun-text-strong-950)\" }}>Simple, fair pricing</h2>\n </div>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(3, 1fr)\", gap: 16, alignItems: \"start\" }}>\n {tiers.map((p) => (\n <div key={p.name} style={{\n borderRadius: \"var(--klun-radius-3xl)\", padding: 28,\n background: p.featured ? \"var(--klun-bg-strong-950)\" : \"var(--klun-bg-white-0)\",\n color: p.featured ? \"var(--klun-static-static-white)\" : \"var(--klun-text-strong-950)\",\n boxShadow: p.featured ? \"var(--klun-shadow-lg)\" : \"inset 0 0 0 1px var(--klun-stroke-soft-200)\",\n }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-label-lg)\" }}>{p.name}</span>\n {p.featured ? <Badge color=\"purple\" variant=\"filled\" size=\"small\">Popular</Badge> : null}\n </div>\n <div style={{ marginTop: 16, display: \"flex\", alignItems: \"baseline\", gap: 6 }}>\n <span style={{ font: \"var(--klun-text-title-h2)\", letterSpacing: \"var(--klun-title-h2-tracking)\" }}>{p.price}</span>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", opacity: .7 }}>{p.note}</span>\n </div>\n <div style={{ margin: \"20px 0\", display: \"flex\", flexDirection: \"column\", gap: 10 }}>\n {p.feats.map((f) => (\n <div key={f} style={{ display: \"flex\", alignItems: \"center\", gap: 8, font: \"var(--klun-text-paragraph-sm)\", opacity: p.featured ? .9 : 1 }}>\n <i className=\"ri-checkbox-circle-fill\" style={{ fontSize: 18, color: p.featured ? \"var(--klun-static-static-white)\" : \"var(--klun-state-success-base)\" }} />{f}\n </div>\n ))}\n </div>\n <button style={{\n width: \"100%\", height: 44, border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", font: \"var(--klun-text-label-md)\",\n background: p.featured ? \"var(--klun-static-static-white)\" : \"var(--klun-primary-base)\",\n color: p.featured ? \"var(--klun-static-static-black)\" : \"var(--klun-static-static-white)\",\n }}>{p.cta}</button>\n </div>\n ))}\n </div>\n </section>\n\n {/* Testimonial */}\n <section style={{ ...wrap, padding: \"56px 24px\" }}>\n <Card variant=\"flat\" padding={40} style={{ textAlign: \"center\", borderRadius: \"var(--klun-radius-4xl)\" }}>\n <div style={{ display: \"flex\", justifyContent: \"center\", gap: 4, color: \"var(--klun-state-away-base)\", marginBottom: 16 }}>\n {[0, 1, 2, 3, 4].map((i) => <i key={i} className=\"ri-star-fill\" style={{ fontSize: 20 }} />)}\n </div>\n <p style={{ margin: \"0 auto\", maxWidth: 680, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\", fontFamily: \"var(--klun-font-display)\" }}>\n “We replaced three internal libraries with Klun UI and shipped our dashboard a month early. The token system alone paid for itself.”\n </p>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"center\", gap: 12, marginTop: 24 }}>\n <Avatar size=\"48\" initials=\"SW\" color=\"purple\" />\n <div style={{ textAlign: \"left\" }}>\n <div style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Sophia Williams</div>\n <div style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>Head of Design, Northwind</div>\n </div>\n </div>\n </Card>\n </section>\n\n {/* FAQ */}\n <section style={{ maxWidth: 720, margin: \"0 auto\", padding: \"56px 24px\" }}>\n <h2 style={{ margin: \"0 0 28px\", textAlign: \"center\", font: \"var(--klun-text-title-h3)\", letterSpacing: \"var(--klun-title-h3-tracking)\", color: \"var(--klun-text-strong-950)\" }}>Frequently asked</h2>\n <Accordion defaultOpen=\"a\" items={[\n { id: \"a\", title: \"Is Klun UI free to use?\", content: \"The Starter tier with core tokens and 30 components is free forever. Pro unlocks the full component set, templates and themes.\" },\n { id: \"b\", title: \"Does it work with my framework?\", content: \"Components ship as framework-agnostic patterns driven by CSS custom properties — drop the tokens into React, Vue, Svelte or plain HTML.\" },\n { id: \"c\", title: \"Can I customize the theme?\", content: \"Yes. Swap the accent (blue/purple/orange/green) and neutral ramp (gray/slate) with a single data attribute, or override any token.\" },\n { id: \"d\", title: \"Do you offer dark mode?\", content: \"Dark mode is built in. Set data-theme=\\\"dark\\\" and every component re-themes through its semantic tokens.\" },\n ]} />\n </section>\n\n {/* CTA */}\n <section style={{ ...wrap, padding: \"40px 24px 80px\" }}>\n <div style={{ borderRadius: \"var(--klun-radius-4xl)\", padding: \"56px 24px\", textAlign: \"center\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-static-static-white)\" }}>\n <h2 style={{ margin: 0, font: \"var(--klun-text-title-h2)\", letterSpacing: \"var(--klun-title-h2-tracking)\" }}>Start designing in harmony</h2>\n <p style={{ margin: \"12px auto 0\", maxWidth: 480, font: \"var(--klun-text-paragraph-lg)\", opacity: .8 }}>Free to start. No credit card required.</p>\n <div style={{ display: \"flex\", gap: 12, justifyContent: \"center\", marginTop: 28 }}>\n <button style={{ height: 48, padding: \"0 24px\", border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", font: \"var(--klun-text-label-md)\", background: \"var(--klun-static-static-white)\", color: \"var(--klun-static-static-black)\" }}>Start free</button>\n <button style={{ height: 48, padding: \"0 24px\", border: \"none\", borderRadius: \"var(--klun-radius-xl)\", cursor: \"pointer\", font: \"var(--klun-text-label-md)\", background: \"var(--klun-alpha-white-alpha-16)\", color: \"var(--klun-static-static-white)\" }}>Book a demo</button>\n </div>\n </div>\n </section>\n\n {/* Footer */}\n <footer style={{ borderTop: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <div style={{ ...wrap, display: \"flex\", gap: 24, flexWrap: \"wrap\", justifyContent: \"space-between\", padding: \"40px 24px\" }}>\n <div style={{ maxWidth: 260 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, marginBottom: 12 }}>\n <div style={{ width: 28, height: 28, borderRadius: \"var(--klun-radius-md)\", background: \"var(--klun-bg-strong-950)\", color: \"var(--klun-text-white-0)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}><i className=\"ri-shapes-line\" style={{ fontSize: 16 }} /></div>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Klun</span>\n </div>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>The design system that ships with you.</p>\n </div>\n {footerColumns.map((c) => (\n <div key={c.h}>\n <div style={{ font: \"var(--klun-text-subheading-xs)\", letterSpacing: \"var(--klun-subheading-xs-tracking)\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", marginBottom: 12 }}>{c.h}</div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n {c.l.map((x) => <a key={x} href=\"#\" style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\", textDecoration: \"none\" }}>{x}</a>)}\n </div>\n </div>\n ))}\n </div>\n <div style={{ ...wrap, display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\", padding: \"20px 24px\", borderTop: \"1px solid var(--klun-stroke-soft-200)\" }}>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>© 2026 Klun. All rights reserved.</span>\n <div style={{ display: \"flex\", gap: 14, color: \"var(--klun-icon-soft-400)\" }}>\n {[\"ri-twitter-x-fill\", \"ri-github-fill\", \"ri-linkedin-fill\"].map((i) => <i key={i} className={i} style={{ fontSize: 18 }} />)}\n </div>\n </div>\n </footer>\n </main>\n );\n}\n","// Klun UI marketing template — SaaS landing page composition.\nimport { MarketingNav } from \"./MarketingNav\";\nimport { MarketingSections } from \"./MarketingSections\";\n\n/** Marketing site starting point — hero, features, pricing, FAQ, footer. */\nexport function MarketingTemplate() {\n return (\n <div>\n <MarketingNav />\n <MarketingSections />\n </div>\n );\n}\n","// Klun UI calendar template — month grid with period nav, filters, event chips\n// and an agenda list. Single-page composition built from klun-ui components.\nimport { useState } from \"react\";\nimport {\n HorizontalFilter,\n Button,\n SegmentedControl,\n AvatarGroup,\n Chip,\n ContentLabel,\n} from \"../../index\";\nimport type { ChipColor } from \"../../index\";\n\ninterface Category {\n color: ChipColor;\n label: string;\n}\n\nconst DOW = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\nconst CAT: Record<string, Category> = {\n meeting: { color: \"blue\", label: \"Meeting\" },\n focus: { color: \"purple\", label: \"Focus\" },\n review: { color: \"green\", label: \"Review\" },\n travel: { color: \"orange\", label: \"Travel\" },\n};\n\ninterface DayEvent {\n c: keyof typeof CAT;\n t: string;\n}\n\n// March 2026 starts on a Sunday; offset so Monday-first grid leads with 6 blanks.\nconst EVENTS: Record<number, DayEvent[]> = {\n 3: [{ c: \"meeting\", t: \"Standup\" }],\n 4: [{ c: \"focus\", t: \"Design review\" }, { c: \"review\", t: \"PR #482\" }],\n 6: [{ c: \"travel\", t: \"Flight SFO\" }],\n 9: [{ c: \"meeting\", t: \"1:1 Mia\" }],\n 12: [{ c: \"meeting\", t: \"Roadmap\" }, { c: \"focus\", t: \"Spec draft\" }, { c: \"review\", t: \"QA pass\" }],\n 17: [{ c: \"review\", t: \"Release\" }],\n 18: [{ c: \"focus\", t: \"Deep work\" }],\n 20: [{ c: \"meeting\", t: \"All-hands\" }],\n 24: [{ c: \"travel\", t: \"Offsite\" }],\n 25: [{ c: \"travel\", t: \"Offsite\" }],\n 27: [{ c: \"meeting\", t: \"Demo day\" }],\n};\n\ninterface DayCellProps {\n day: number;\n today: boolean;\n}\n\nfunction DayCell({ day, today }: DayCellProps) {\n const evs = EVENTS[day] || [];\n return (\n <div style={{ minHeight: 116, padding: 8, background: \"var(--klun-bg-white-0)\", boxShadow: \"inset -1px -1px 0 var(--klun-stroke-soft-200)\", display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n <span style={{\n alignSelf: \"flex-start\", display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\",\n minWidth: 24, height: 24, padding: \"0 6px\", borderRadius: \"var(--klun-radius-pill)\",\n font: \"var(--klun-text-label-xs)\", fontVariantNumeric: \"tabular-nums\",\n background: today ? \"var(--klun-primary-base)\" : \"transparent\",\n color: today ? \"var(--klun-static-static-white)\" : \"var(--klun-text-sub-600)\",\n }}>{day}</span>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 3 }}>\n {evs.slice(0, 3).map((e, i) => {\n const cat = CAT[e.c];\n return (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 6, padding: \"3px 6px\", borderRadius: \"var(--klun-radius-sm)\", background: `var(--klun-${cat.color}-50)`, font: \"var(--klun-text-label-xs)\", color: `var(--klun-${cat.color}-600, var(--klun-text-sub-600))`, overflow: \"hidden\", whiteSpace: \"nowrap\", textOverflow: \"ellipsis\" }}>\n <span style={{ width: 6, height: 6, borderRadius: \"var(--klun-radius-pill)\", background: `var(--klun-${cat.color}-500)`, flex: \"none\" }} />\n <span style={{ overflow: \"hidden\", textOverflow: \"ellipsis\" }}>{e.t}</span>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\ninterface AgendaEntry {\n t: string;\n time: string;\n c: keyof typeof CAT;\n}\n\nconst AGENDA: AgendaEntry[] = [\n { t: \"Roadmap planning\", time: \"10:00 – 11:00\", c: \"meeting\" },\n { t: \"Spec draft\", time: \"13:30 – 15:00\", c: \"focus\" },\n { t: \"QA pass\", time: \"16:00 – 16:30\", c: \"review\" },\n];\n\n/** Calendar starting point — month grid, period nav, filters and agenda. */\nexport function CalendarTemplate() {\n const [filter, setFilter] = useState(\"all\");\n const [view, setView] = useState(\"month\");\n // 6 leading blanks (March 1 2026 = Sunday, Monday-first grid), 31 days.\n const cells: (number | null)[] = [...Array<null>(6).fill(null), ...Array.from({ length: 31 }, (_, i) => i + 1)];\n return (\n <div style={{ maxWidth: 1120, margin: \"0 auto\", padding: \"40px 32px 80px\" }}>\n <header style={{ display: \"flex\", alignItems: \"flex-start\", gap: 16, width: \"100%\", padding: \"0 0 20px\", boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4, flex: 1, minWidth: 0 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-0.01em\" }}>Calendar</h1>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>March 2026 · 11 events this month</p>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8, flex: \"none\" }}><Button leadingIcon={<i className=\"ri-add-line\" />}>New event</Button></div>\n </header>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 16, flexWrap: \"wrap\", margin: \"24px 0 16px\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n <div style={{ display: \"inline-flex\", alignItems: \"center\", gap: 6, height: 36, padding: \"0 4px 0 10px\", borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <button type=\"button\" aria-label=\"Previous period\" onClick={() => {}} style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 28, height: 28, border: \"none\", background: \"transparent\", color: \"var(--klun-icon-sub-600)\", cursor: \"pointer\", fontSize: 18, borderRadius: \"var(--klun-radius-sm)\" }}><i className=\"ri-arrow-left-s-line\" /></button>\n <i className=\"ri-calendar-line\" style={{ fontSize: 18, color: \"var(--klun-icon-soft-400)\" }} />\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 6, font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\", whiteSpace: \"nowrap\", padding: \"0 2px\" }}>Mar 1<span style={{ color: \"var(--klun-text-soft-400)\" }}>→</span>Mar 31</span>\n <button type=\"button\" aria-label=\"Next period\" onClick={() => {}} style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 28, height: 28, border: \"none\", background: \"transparent\", color: \"var(--klun-icon-sub-600)\", cursor: \"pointer\", fontSize: 18, borderRadius: \"var(--klun-radius-sm)\" }}><i className=\"ri-arrow-right-s-line\" /></button>\n </div>\n <Button variant=\"neutral\" appearance=\"ghost\" size=\"small\">Today</Button>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n <AvatarGroup variant=\"stroke\" size=\"24\" avatars={[{ initials: \"AT\", color: \"blue\" }, { initials: \"MB\", color: \"green\" }, { initials: \"JK\", color: \"orange\" }, { initials: \"RP\" }]} />\n <SegmentedControl value={view} onChange={setView} items={[{ value: \"month\", label: \"Month\" }, { value: \"week\", label: \"Week\" }, { value: \"day\", label: \"Day\" }]} />\n </div>\n </div>\n <div style={{ marginBottom: 16 }}>\n <HorizontalFilter value={filter} onChange={setFilter} items={[\n { value: \"all\", label: \"All\", count: 11 },\n { value: \"meeting\", label: \"Meetings\", count: 5, icon: <i className=\"ri-group-line\" /> },\n { value: \"focus\", label: \"Focus\", count: 3 },\n { value: \"review\", label: \"Reviews\", count: 3 },\n { value: \"travel\", label: \"Travel\", count: 3 },\n ]} />\n </div>\n <div style={{ borderRadius: \"var(--klun-radius-2xl)\", overflow: \"hidden\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", background: \"var(--klun-bg-white-0)\" }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(7, 1fr)\" }}>\n {DOW.map((d) => (\n <div key={d} style={{ padding: \"10px 8px\", font: \"var(--klun-text-subheading-2xs, var(--klun-text-label-xs))\", letterSpacing: \".06em\", textTransform: \"uppercase\", color: \"var(--klun-text-soft-400)\", background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset -1px -1px 0 var(--klun-stroke-soft-200)\" }}>{d}</div>\n ))}\n {cells.map((day, i) => day == null\n ? <div key={i} style={{ minHeight: 116, background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset -1px -1px 0 var(--klun-stroke-soft-200)\" }} />\n : <DayCell key={i} day={day} today={day === 12} />)}\n </div>\n </div>\n <div style={{ marginTop: 28 }}>\n <ContentLabel icon={<i className=\"ri-calendar-event-line\" />}>Up next · today</ContentLabel>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8, marginTop: 12 }}>\n {AGENDA.map((e, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 14, padding: \"12px 16px\", borderRadius: \"var(--klun-radius-xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <span style={{ width: 4, height: 36, borderRadius: \"var(--klun-radius-pill)\", background: `var(--klun-${CAT[e.c].color}-500)`, flex: \"none\" }} />\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{e.t}</div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{e.time}</div>\n </div>\n <Chip color={CAT[e.c].color} dot>{CAT[e.c].label}</Chip>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","// Klun UI pricing template — plan toggle, tier cards and an FAQ. Single-page\n// composition built from klun-ui components.\nimport { useState } from \"react\";\nimport {\n SegmentedControl,\n Badge,\n Button,\n ContentLabel,\n Accordion,\n Alert,\n Divider,\n} from \"../../index\";\nimport type { AccordionItem } from \"../../index\";\n\ntype Cycle = \"monthly\" | \"yearly\";\n\ninterface Plan {\n id: string;\n name: string;\n tagline: string;\n monthly: number | null;\n yearly: number | null;\n cta: string;\n featured?: boolean;\n features: string[];\n}\n\nconst PLANS: Plan[] = [\n {\n id: \"starter\", name: \"Starter\", tagline: \"For individuals getting started.\", monthly: 0, yearly: 0, cta: \"Start for free\",\n features: [\"1 workspace\", \"Up to 3 projects\", \"Community support\", \"1 GB storage\"],\n },\n {\n id: \"pro\", name: \"Pro\", tagline: \"For growing teams that ship fast.\", monthly: 24, yearly: 19, cta: \"Start 14-day trial\", featured: true,\n features: [\"Unlimited workspaces\", \"Unlimited projects\", \"Priority support\", \"100 GB storage\", \"Advanced analytics\", \"Custom roles\"],\n },\n {\n id: \"enterprise\", name: \"Enterprise\", tagline: \"For organizations at scale.\", monthly: null, yearly: null, cta: \"Contact sales\",\n features: [\"Everything in Pro\", \"SSO & SCIM\", \"Audit logs\", \"Dedicated manager\", \"99.9% SLA\", \"Custom contracts\"],\n },\n];\n\ninterface PriceProps {\n plan: Plan;\n cycle: Cycle;\n}\n\nfunction Price({ plan, cycle }: PriceProps) {\n if (plan.monthly == null) {\n return <div style={{ font: \"var(--klun-text-title-h3)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.02em\" }}>Custom</div>;\n }\n const amt = cycle === \"yearly\" ? plan.yearly : plan.monthly;\n return (\n <div style={{ display: \"flex\", alignItems: \"baseline\", gap: 4 }}>\n <span style={{ font: \"var(--klun-text-title-h2)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.02em\" }}>${amt}</span>\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-soft-400)\" }}>/ mo</span>\n </div>\n );\n}\n\ninterface PlanCardProps {\n plan: Plan;\n cycle: Cycle;\n}\n\nfunction PlanCard({ plan, cycle }: PlanCardProps) {\n const featured = plan.featured;\n return (\n <div style={{\n position: \"relative\", display: \"flex\", flexDirection: \"column\", gap: 20, padding: 28, flex: 1, minWidth: 0,\n borderRadius: \"var(--klun-radius-4xl, 24px)\", background: \"var(--klun-bg-white-0)\",\n boxShadow: featured\n ? \"inset 0 0 0 2px var(--klun-primary-base), var(--klun-shadow-lg, 0 24px 48px -16px rgba(14,18,27,.16))\"\n : \"inset 0 0 0 1px var(--klun-stroke-soft-200), var(--klun-shadow-xs, 0 1px 2px rgba(10,13,20,.03))\",\n }}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>{plan.name}</span>\n {featured ? <Badge color=\"blue\" variant=\"lighter\">Most popular</Badge> : null}\n </div>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\", minHeight: 40, textWrap: \"pretty\" }}>{plan.tagline}</p>\n <Price plan={plan} cycle={cycle} />\n {featured\n ? <Button kind=\"fancy\" fullWidth>{plan.cta}</Button>\n : <Button fullWidth variant=\"neutral\" appearance=\"stroke\">{plan.cta}</Button>}\n <Divider />\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12 }}>\n {plan.features.map((f, i) => (\n <div key={i} style={{ display: \"flex\", alignItems: \"center\", gap: 10, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n <i className=\"ri-check-line\" style={{ fontSize: 18, color: \"var(--klun-state-success-base)\" }} />{f}\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nconst FAQ: AccordionItem[] = [\n { id: \"f1\", title: \"Can I change plans later?\", content: \"Yes — upgrade or downgrade anytime. Changes are prorated to your billing cycle.\" },\n { id: \"f2\", title: \"Do you offer a free trial?\", content: \"Every paid plan includes a 14-day trial. No card required to start.\" },\n { id: \"f3\", title: \"What payment methods do you accept?\", content: \"All major cards and ACH for annual plans. Enterprise can pay by invoice.\" },\n { id: \"f4\", title: \"Is there a discount for annual billing?\", content: \"Annual billing saves roughly 20% versus paying monthly.\" },\n];\n\n/** Pricing starting point — plan toggle, tier cards and an FAQ. */\nexport function PricingTemplate() {\n const [cycle, setCycle] = useState<Cycle>(\"monthly\");\n return (\n <div style={{ maxWidth: 1080, margin: \"0 auto\", padding: \"72px 32px 96px\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", gap: 16, textAlign: \"center\", marginBottom: 40 }}>\n <ContentLabel color=\"blue\" icon={<i className=\"ri-price-tag-3-line\" />}>Pricing</ContentLabel>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h1)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.03em\", maxWidth: 640, textWrap: \"balance\" }}>Simple pricing that scales with you</h1>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-lg)\", color: \"var(--klun-text-sub-600)\", maxWidth: 520, textWrap: \"pretty\" }}>Start free, then pick a plan when your team is ready. No hidden fees.</p>\n <div style={{ display: \"inline-flex\", alignItems: \"center\", gap: 10, marginTop: 8 }}>\n <SegmentedControl\n value={cycle} onChange={(v) => setCycle(v as Cycle)}\n items={[{ value: \"monthly\", label: \"Monthly\" }, { value: \"yearly\", label: \"Yearly\" }]}\n />\n <Badge color=\"green\" variant=\"lighter\">Save 20%</Badge>\n </div>\n </div>\n <div style={{ display: \"flex\", gap: 20, alignItems: \"stretch\", flexWrap: \"wrap\" }}>\n {PLANS.map((p) => <PlanCard key={p.id} plan={p} cycle={cycle} />)}\n </div>\n <Alert status=\"information\" title=\"Education & nonprofits\" icon={<i className=\"ri-lightbulb-line\" />} style={{ marginTop: 24 }}>Qualifying teams get 50% off any paid plan — reach out to sales to verify eligibility.</Alert>\n <div style={{ marginTop: 72 }}>\n <h2 style={{ margin: \"0 0 8px\", font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-.02em\", textAlign: \"center\" }}>Frequently asked questions</h2>\n <p style={{ margin: \"0 0 28px\", font: \"var(--klun-text-paragraph-md)\", color: \"var(--klun-text-sub-600)\", textAlign: \"center\" }}>Everything you need to know about plans and billing.</p>\n <div style={{ maxWidth: 720, margin: \"0 auto\" }}>\n <Accordion items={FAQ} />\n </div>\n </div>\n </div>\n );\n}\n","// Klun UI settings template — tabbed account settings with a profile form,\n// notification toggles and integrations. Single-page composition built from\n// klun-ui components.\nimport { useState } from \"react\";\nimport type { ChangeEvent, ReactNode } from \"react\";\nimport {\n Alert,\n Tabs,\n Button,\n Input,\n Textarea,\n Label,\n Switch,\n SelectMenu,\n ImageUpload,\n ContentLabel,\n CharacterCounter,\n Badge,\n} from \"../../index\";\nimport type { TabItem } from \"../../index\";\n\ninterface RowProps {\n label: ReactNode;\n hint?: ReactNode;\n children: ReactNode;\n top?: boolean;\n}\n\nfunction Row({ label, hint, children, top }: RowProps) {\n return (\n <div style={{ display: \"grid\", gridTemplateColumns: \"240px 1fr\", gap: 24, padding: \"20px 0\", alignItems: top ? \"flex-start\" : \"center\", boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <Label>{label}</Label>\n {hint ? <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\", textWrap: \"pretty\" }}>{hint}</span> : null}\n </div>\n <div style={{ minWidth: 0 }}>{children}</div>\n </div>\n );\n}\n\nfunction Panel({ children }: { children: ReactNode }) {\n return <div style={{ background: \"var(--klun-bg-white-0)\", borderRadius: \"var(--klun-radius-2xl)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", padding: \"8px 24px 24px\" }}>{children}</div>;\n}\n\nfunction ProfileTab() {\n const [bio, setBio] = useState(\"Product designer focused on systems and tooling.\");\n return (\n <Panel>\n <Row label=\"Photo\" hint=\"PNG or JPG, up to 5MB.\" top>\n <ImageUpload label=\"Upload new photo\" hint=\"Recommended 400×400px\" onRemove={() => {}} src=\"\" />\n </Row>\n <Row label=\"Full name\">\n <div style={{ display: \"flex\", gap: 12 }}>\n <Input defaultValue=\"Arthur\" placeholder=\"First name\" />\n <Input defaultValue=\"Taylor\" placeholder=\"Last name\" />\n </div>\n </Row>\n <Row label=\"Email address\" hint=\"Used for sign-in and notifications.\">\n <Input type=\"email\" defaultValue=\"arthur@klunui.com\" leadingIcon={<i className=\"ri-mail-line\" />} />\n </Row>\n <Row label=\"Role\">\n <SelectMenu value=\"design\" onChange={() => {}} options={[\n { value: \"design\", label: \"Designer\", icon: <i className=\"ri-pencil-ruler-2-line\" /> },\n { value: \"eng\", label: \"Engineer\", icon: <i className=\"ri-code-s-slash-line\" /> },\n { value: \"pm\", label: \"Product manager\", icon: <i className=\"ri-compass-3-line\" /> },\n ]} />\n </Row>\n <Row label=\"Bio\" hint=\"A short description for your profile.\" top>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Textarea value={bio} onChange={(e: ChangeEvent<HTMLTextAreaElement>) => setBio(e.target.value)} rows={3} maxLength={160} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\" }}><CharacterCounter value={bio.length} max={160} /></div>\n </div>\n </Row>\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 10, paddingTop: 20 }}>\n <Button variant=\"neutral\" appearance=\"stroke\">Cancel</Button>\n <Button>Save changes</Button>\n </div>\n </Panel>\n );\n}\n\ninterface NotificationItemDef {\n k: string;\n label: string;\n hint: string;\n}\n\nfunction NotificationsTab() {\n const [s, setS] = useState<Record<string, boolean>>({ product: true, weekly: true, mentions: true, security: true, marketing: false });\n const set = (k: string) => setS((p) => ({ ...p, [k]: !p[k] }));\n const items: NotificationItemDef[] = [\n { k: \"product\", label: \"Product updates\", hint: \"New features and improvements.\" },\n { k: \"weekly\", label: \"Weekly digest\", hint: \"A summary of activity every Monday.\" },\n { k: \"mentions\", label: \"Mentions & comments\", hint: \"When someone @mentions you.\" },\n { k: \"security\", label: \"Security alerts\", hint: \"Sign-ins and password changes.\" },\n { k: \"marketing\", label: \"Marketing emails\", hint: \"Tips, offers and news.\" },\n ];\n return (\n <Panel>\n <ContentLabel style={{ paddingTop: 20, display: \"block\" }}>Email</ContentLabel>\n {items.map((it) => (\n <Row key={it.k} label={it.label} hint={it.hint}>\n <div style={{ display: \"flex\", justifyContent: \"flex-end\" }}>\n <Switch checked={s[it.k]} onChange={() => set(it.k)} />\n </div>\n </Row>\n ))}\n <Alert status=\"information\" icon={<i className=\"ri-information-2-line\" />} style={{ marginTop: 20 }}>Security alerts can't be turned off — they protect your account.</Alert>\n </Panel>\n );\n}\n\ninterface IntegrationDef {\n k: string;\n name: string;\n icon: string;\n desc: string;\n}\n\nfunction IntegrationsTab() {\n const [c, setC] = useState<Record<string, boolean>>({ slack: true, github: true, figma: false, linear: false });\n const set = (k: string) => setC((p) => ({ ...p, [k]: !p[k] }));\n const rows: IntegrationDef[] = [\n { k: \"slack\", name: \"Slack\", icon: \"ri-slack-line\", desc: \"Post notifications to a channel.\" },\n { k: \"github\", name: \"GitHub\", icon: \"ri-github-line\", desc: \"Link commits and pull requests.\" },\n { k: \"figma\", name: \"Figma\", icon: \"ri-figma-line\", desc: \"Embed frames and prototypes.\" },\n { k: \"linear\", name: \"Linear\", icon: \"ri-flashlight-line\", desc: \"Sync issues two ways.\" },\n ];\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12 }}>\n {rows.map((r) => (\n <div key={r.k} style={{ display: \"flex\", alignItems: \"center\", gap: 12, padding: 16, borderRadius: \"var(--klun-radius-2xl)\", background: \"var(--klun-bg-white-0)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" }}>\n <span style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\", width: 40, height: 40, flex: \"none\", borderRadius: \"var(--klun-radius-lg)\", background: \"var(--klun-bg-weak-50)\", boxShadow: \"inset 0 0 0 1px var(--klun-stroke-soft-200)\", color: \"var(--klun-icon-sub-600)\", fontSize: 22 }}><i className={r.icon} /></span>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2, flex: 1, minWidth: 0 }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.name}</span>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-sub-600)\" }}>{r.desc}</span>\n </div>\n <Switch checked={c[r.k]} onChange={() => set(r.k)} />\n </div>\n ))}\n </div>\n );\n}\n\nconst TABS: TabItem[] = [\n { value: \"profile\", label: \"Profile\" },\n { value: \"notifications\", label: \"Notifications\" },\n { value: \"integrations\", label: \"Integrations\", badge: \"4\" },\n];\n\n/** Account settings starting point — tabbed sections, profile form, notifications, integrations. */\nexport function SettingsTemplate() {\n const [tab, setTab] = useState(\"profile\");\n return (\n <div style={{ maxWidth: 880, margin: \"0 auto\", padding: \"48px 32px 80px\" }}>\n <header style={{ display: \"flex\", alignItems: \"flex-start\", gap: 16, width: \"100%\", padding: \"0 0 20px\", boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4, flex: 1, minWidth: 0 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\", letterSpacing: \"-0.01em\" }}>Settings</h1>\n <p style={{ margin: 0, font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>Manage your profile, notifications and connected apps.</p>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8, flex: \"none\" }}><Badge color=\"green\" variant=\"lighter\" dot>All changes saved</Badge></div>\n </header>\n <div style={{ margin: \"24px 0 28px\" }}>\n <Tabs items={TABS} value={tab} onChange={setTab} />\n </div>\n {tab === \"profile\" ? <ProfileTab /> : tab === \"notifications\" ? <NotificationsTab /> : <IntegrationsTab />}\n </div>\n );\n}\n","// Metronic example — app sidebar: brand, navigation (badge + a nested group)\n// and the signed-in user card.\nimport { useState } from \"react\";\nimport { Avatar } from \"../../index\";\n\nexport interface MetronicNavChild {\n key: string;\n label: string;\n}\n\nexport interface MetronicNavItem {\n key: string;\n label: string;\n /** Remix Icon class, e.g. `ri-dashboard-line`. */\n icon: string;\n badge?: string;\n children?: MetronicNavChild[];\n}\n\nexport interface MetronicSidebarProps {\n /** Active item key. */\n active: string;\n onNavigate: (key: string) => void;\n}\n\nconst ITEMS: MetronicNavItem[] = [\n { key: \"dashboard\", label: \"Dashboard\", icon: \"ri-dashboard-line\" },\n { key: \"orders\", label: \"Orders\", icon: \"ri-shopping-bag-line\", badge: \"5\" },\n { key: \"products\", label: \"Products\", icon: \"ri-archive-line\" },\n { key: \"customers\", label: \"Customers\", icon: \"ri-team-line\" },\n { key: \"users\", label: \"Users\", icon: \"ri-user-3-line\" },\n { key: \"roles\", label: \"Roles\", icon: \"ri-shield-keyhole-line\" },\n {\n key: \"reports\",\n label: \"Reports\",\n icon: \"ri-bar-chart-box-line\",\n children: [\n { key: \"sales\", label: \"Sales\" },\n { key: \"traffic\", label: \"Traffic\" },\n ],\n },\n { key: \"settings\", label: \"Settings\", icon: \"ri-settings-3-line\" },\n];\n\nexport function MetronicSidebar({ active, onNavigate }: MetronicSidebarProps) {\n const [reportsOpen, setReportsOpen] = useState(false);\n\n const Item = ({ item }: { item: MetronicNavItem }) => {\n const on = active === item.key;\n const hasKids = Boolean(item.children?.length);\n return (\n <button\n onClick={() => {\n if (hasKids) setReportsOpen((o) => !o);\n else onNavigate(item.key);\n }}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n width: \"100%\",\n height: 38,\n padding: \"0 12px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: \"pointer\",\n textAlign: \"left\",\n background: on ? \"var(--klun-primary-lighter)\" : \"transparent\",\n color: on ? \"var(--klun-primary-base)\" : \"var(--klun-text-sub-600)\",\n font: \"var(--klun-text-label-sm)\",\n }}\n >\n <i\n className={item.icon}\n style={{ fontSize: 19, color: on ? \"var(--klun-primary-base)\" : \"var(--klun-icon-sub-600)\" }}\n />\n <span style={{ flex: 1 }}>{item.label}</span>\n {item.badge ? (\n <span\n style={{\n font: \"var(--klun-text-label-xs)\",\n padding: \"1px 7px\",\n borderRadius: \"var(--klun-radius-pill)\",\n background: \"var(--klun-bg-weak-50)\",\n color: \"var(--klun-text-sub-600)\",\n }}\n >\n {item.badge}\n </span>\n ) : null}\n {hasKids ? (\n <i\n className=\"ri-arrow-down-s-line\"\n style={{ fontSize: 16, transform: reportsOpen ? \"rotate(180deg)\" : \"none\", transition: \"transform .15s ease\" }}\n />\n ) : null}\n </button>\n );\n };\n\n return (\n <aside\n style={{\n width: 248,\n flexShrink: 0,\n height: \"100%\",\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 14,\n padding: \"16px 12px\",\n background: \"var(--klun-bg-white-0)\",\n borderRight: \"1px solid var(--klun-stroke-soft-200)\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10, padding: \"4px 8px 6px\" }}>\n <span\n style={{\n width: 30,\n height: 30,\n borderRadius: \"var(--klun-radius-md)\",\n background: \"var(--klun-primary-base)\",\n color: \"var(--klun-text-white-0)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n font: \"var(--klun-text-label-md)\",\n }}\n >\n M\n </span>\n <b style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>Metronic</b>\n </div>\n\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n {ITEMS.map((item) => (\n <div key={item.key}>\n <Item item={item} />\n {item.children && reportsOpen ? (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2, padding: \"4px 0 4px 30px\" }}>\n {item.children.map((kid) => (\n <button\n key={kid.key}\n onClick={() => onNavigate(kid.key)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n height: 32,\n padding: \"0 10px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-md)\",\n cursor: \"pointer\",\n textAlign: \"left\",\n background: active === kid.key ? \"var(--klun-primary-lighter)\" : \"transparent\",\n color: active === kid.key ? \"var(--klun-primary-base)\" : \"var(--klun-text-sub-600)\",\n font: \"var(--klun-text-label-sm)\",\n }}\n >\n {kid.label}\n </button>\n ))}\n </div>\n ) : null}\n </div>\n ))}\n </nav>\n\n <div\n style={{\n marginTop: \"auto\",\n padding: 10,\n borderRadius: \"var(--klun-radius-lg)\",\n background: \"var(--klun-bg-weak-50)\",\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n }}\n >\n <Avatar size=\"32\" initials=\"AK\" color=\"blue\" status=\"online\" />\n <div style={{ minWidth: 0 }}>\n <div style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>Anna Krause</div>\n <div style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-soft-400)\" }}>Admin</div>\n </div>\n </div>\n </aside>\n );\n}\n","// Metronic example — top bar: search field on the left, quick actions right.\nimport { Button, Input } from \"../../index\";\n\nexport function MetronicTopBar() {\n return (\n <header\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 12,\n padding: \"10px 24px\",\n background: \"var(--klun-bg-white-0)\",\n borderBottom: \"1px solid var(--klun-stroke-soft-200)\",\n }}\n >\n <div style={{ width: 300, maxWidth: \"45%\" }}>\n <Input size=\"small\" placeholder=\"Search…\" leadingIcon={<i className=\"ri-search-line\" />} />\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 6 }}>\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" size=\"small\" icon={<i className=\"ri-notification-3-line\" />} aria-label=\"Notifications\" />\n <Button iconOnly variant=\"neutral\" appearance=\"ghost\" size=\"small\" icon={<i className=\"ri-question-line\" />} aria-label=\"Help\" />\n <span style={{ width: 1, height: 20, background: \"var(--klun-stroke-soft-200)\", margin: \"0 4px\" }} />\n <Button size=\"small\" leadingIcon={<i className=\"ri-add-line\" />}>\n New order\n </Button>\n </div>\n </header>\n );\n}\n","// Metronic example — inline SVG charts (sparkline / bars / donut).\n// Dependency-free: no chart library is needed, so the template can be copied\n// as-is. All colors come from semantic tokens, so the charts follow the\n// Metronic skin (and dark mode) automatically.\nimport { useId } from \"react\";\n\n/** Semantic tone → chart color. */\nexport type ChartTone = \"primary\" | \"success\" | \"danger\" | \"info\" | \"warning\" | \"feature\";\n\nconst TONE: Record<ChartTone, string> = {\n primary: \"var(--klun-primary-base)\",\n success: \"var(--klun-state-success-base)\",\n danger: \"var(--klun-state-error-base)\",\n info: \"var(--klun-state-information-base)\",\n warning: \"var(--klun-state-warning-base)\",\n feature: \"var(--klun-state-feature-base)\",\n};\n\nexport interface SparklineProps {\n data: number[];\n tone?: ChartTone;\n width?: number;\n height?: number;\n}\n\n/** KPI sparkline — a soft area line for stat cards. */\nexport function Sparkline({ data, tone = \"primary\", width = 200, height = 40 }: SparklineProps) {\n const gid = useId();\n const color = TONE[tone];\n const max = Math.max(...data);\n const min = Math.min(...data);\n const span = max - min || 1;\n const step = width / (data.length - 1);\n const y = (v: number) => height - 3 - ((v - min) / span) * (height - 8);\n const line = data.map((v, i) => `${i ? \"L\" : \"M\"}${(i * step).toFixed(1)},${y(v).toFixed(1)}`).join(\" \");\n const area = `${line} L${width},${height} L0,${height} Z`;\n return (\n <svg\n viewBox={`0 0 ${width} ${height}`}\n preserveAspectRatio=\"none\"\n style={{ width: \"100%\", height, display: \"block\" }}\n aria-hidden\n >\n <defs>\n <linearGradient id={gid} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={color} stopOpacity=\"0.22\" />\n <stop offset=\"100%\" stopColor={color} stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n <path d={area} fill={`url(#${gid})`} />\n <path d={line} fill=\"none\" stroke={color} strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nexport interface BarChartProps {\n data: Array<{ label: string; value: number }>;\n tone?: ChartTone;\n height?: number;\n showValues?: boolean;\n}\n\n/** Column chart with optional value labels. */\nexport function BarChart({ data, tone = \"primary\", height = 200, showValues = true }: BarChartProps) {\n const max = Math.max(...data.map((d) => d.value), 1);\n const color = TONE[tone];\n const maxBar = height - (showValues ? 44 : 26);\n return (\n <div style={{ display: \"flex\", alignItems: \"flex-end\", gap: 10, height, paddingTop: 4 }}>\n {data.map((d) => (\n <div\n key={d.label}\n style={{\n flex: 1,\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n gap: 6,\n height: \"100%\",\n }}\n >\n {showValues ? (\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-soft-400)\" }}>{d.value}</span>\n ) : null}\n <div\n style={{\n width: \"100%\",\n maxWidth: 34,\n height: Math.max(4, Math.round((d.value / max) * maxBar)),\n borderRadius: \"var(--klun-radius-md) var(--klun-radius-md) 3px 3px\",\n background: color,\n opacity: 0.9,\n }}\n />\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-sub-600)\" }}>{d.label}</span>\n </div>\n ))}\n </div>\n );\n}\n\nexport interface DonutChartProps {\n data: Array<{ label: string; value: number }>;\n centerValue?: string;\n centerLabel?: string;\n size?: number;\n thickness?: number;\n}\n\n/** Ring chart with a center metric and a legend. */\nexport function DonutChart({\n data,\n centerValue,\n centerLabel,\n size = 168,\n thickness = 22,\n}: DonutChartProps) {\n const r = (size - thickness) / 2;\n const c = 2 * Math.PI * r;\n const total = data.reduce((s, d) => s + d.value, 0) || 1;\n const palette = [TONE.primary, TONE.success, TONE.info, TONE.feature, TONE.warning];\n let acc = 0;\n return (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 20, flexWrap: \"wrap\" }}>\n <div style={{ position: \"relative\", width: size, height: size, flexShrink: 0 }}>\n <svg\n viewBox={`0 0 ${size} ${size}`}\n width={size}\n height={size}\n style={{ display: \"block\", transform: \"rotate(-90deg)\" }}\n aria-hidden\n >\n {data.map((d, i) => {\n const frac = d.value / total;\n const dash = `${(frac * c).toFixed(2)} ${(c - frac * c).toFixed(2)}`;\n const offset = -acc * c;\n acc += frac;\n return (\n <circle\n key={d.label}\n cx={size / 2}\n cy={size / 2}\n r={r}\n fill=\"none\"\n stroke={palette[i % palette.length]}\n strokeWidth={thickness}\n strokeDasharray={dash}\n strokeDashoffset={offset}\n />\n );\n })}\n </svg>\n <div\n style={{\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 2,\n }}\n >\n {centerValue ? (\n <span style={{ font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>\n {centerValue}\n </span>\n ) : null}\n {centerLabel ? (\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n {centerLabel}\n </span>\n ) : null}\n </div>\n </div>\n <ul\n style={{\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n flex: 1,\n minWidth: 140,\n }}\n >\n {data.map((d, i) => (\n <li key={d.label} style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span\n style={{\n width: 8,\n height: 8,\n borderRadius: \"var(--klun-radius-pill)\",\n background: palette[i % palette.length],\n flexShrink: 0,\n }}\n />\n <span style={{ flex: 1, font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n {d.label}\n </span>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n {Math.round((d.value / total) * 100)}%\n </span>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n\nexport interface AreaChartProps {\n data: number[];\n /** Optional x-axis labels rendered under the plot. */\n labels?: string[];\n tone?: ChartTone;\n height?: number;\n /** Format the y-axis ticks; defaults to a compact 12k style. */\n formatValue?: (v: number) => string;\n}\n\n/** Full-width area chart with grid lines and y/x labels. */\nexport function AreaChart({ data, labels, tone = \"primary\", height = 220, formatValue }: AreaChartProps) {\n const gid = useId();\n const color = TONE[tone];\n const W = 720;\n const H = 240;\n const max = Math.max(...data, 1) * 1.08;\n const step = W / (data.length - 1);\n const y = (v: number) => H - (v / max) * H;\n const line = data.map((v, i) => `${i ? \"L\" : \"M\"}${(i * step).toFixed(1)},${y(v).toFixed(1)}`).join(\" \");\n const area = `${line} L${W},${H} L0,${H} Z`;\n const fmt = formatValue ?? ((v: number) => (v >= 1000 ? `${Math.round(v / 100) / 10}k` : String(Math.round(v))));\n const ticks = [1, 0.75, 0.5, 0.25, 0];\n return (\n <div style={{ display: \"flex\", gap: 10 }}>\n <div\n style={{\n width: 46,\n flexShrink: 0,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n paddingBottom: labels ? 24 : 0,\n textAlign: \"right\",\n }}\n >\n {ticks.map((t) => (\n <span key={t} style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n {fmt(max * t)}\n </span>\n ))}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ height }}>\n <svg\n viewBox={`0 0 ${W} ${H}`}\n preserveAspectRatio=\"none\"\n style={{ width: \"100%\", height: \"100%\", display: \"block\" }}\n aria-hidden\n >\n <defs>\n <linearGradient id={gid} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={color} stopOpacity=\"0.22\" />\n <stop offset=\"100%\" stopColor={color} stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n {ticks.slice(0, -1).map((t) => (\n <line\n key={t}\n x1=\"0\"\n x2={W}\n y1={(H * (1 - t)).toFixed(1)}\n y2={(H * (1 - t)).toFixed(1)}\n stroke=\"var(--klun-stroke-soft-200)\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n ))}\n <path d={area} fill={`url(#${gid})`} />\n <path\n d={line}\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n </div>\n {labels ? (\n <div style={{ display: \"flex\", justifyContent: \"space-between\", marginTop: 6 }}>\n {labels.map((l) => (\n <span key={l} style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-sub-600)\" }}>\n {l}\n </span>\n ))}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","// Metronic example — shared page widgets used by the business screens.\nimport type { ReactNode } from \"react\";\nimport { Card } from \"../../index\";\nimport { Sparkline } from \"./charts\";\nimport type { ChartTone } from \"./charts\";\n\n/** Chart tone → the matching `--klun-state-*` token family. */\nconst STATE_TOKEN: Record<Exclude<ChartTone, \"primary\">, string> = {\n success: \"success\",\n danger: \"error\",\n info: \"information\",\n warning: \"warning\",\n feature: \"feature\",\n};\n\n/** Resolve a tone to its foreground/background token pair. */\nexport function toneVars(tone: ChartTone): { fg: string; bg: string } {\n if (tone === \"primary\") {\n return { fg: \"var(--klun-primary-base)\", bg: \"var(--klun-primary-lighter)\" };\n }\n const s = STATE_TOKEN[tone];\n return { fg: `var(--klun-state-${s}-base)`, bg: `var(--klun-state-${s}-lighter)` };\n}\n\nexport interface KpiProps {\n label: string;\n value: string;\n delta: string;\n trend?: \"up\" | \"down\";\n tone?: ChartTone;\n icon: ReactNode;\n spark: number[];\n}\n\n/** KPI tile with an icon, a trend delta and a sparkline. */\nexport function Kpi({ label, value, delta, trend = \"up\", tone = \"primary\", icon, spark }: KpiProps) {\n const { fg, bg } = toneVars(tone);\n const deltaTone = trend === \"up\" ? \"success\" : \"error\";\n return (\n <Card variant=\"stroke\" padding={18}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 8 }}>\n <span\n style={{\n font: \"var(--klun-text-label-xs)\",\n letterSpacing: \"0.02em\",\n textTransform: \"uppercase\",\n color: \"var(--klun-text-soft-400)\",\n }}\n >\n {label}\n </span>\n <span\n style={{\n width: 32,\n height: 32,\n borderRadius: \"var(--klun-radius-md)\",\n background: bg,\n color: fg,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: 16,\n }}\n >\n {icon}\n </span>\n </div>\n <div style={{ display: \"flex\", alignItems: \"baseline\", gap: 10, marginTop: 10, flexWrap: \"wrap\" }}>\n <span style={{ font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\", lineHeight: 1 }}>\n {value}\n </span>\n <span\n style={{\n font: \"var(--klun-text-label-sm)\",\n color: `var(--klun-state-${deltaTone}-base)`,\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 2,\n }}\n >\n <i className={trend === \"up\" ? \"ri-arrow-up-line\" : \"ri-arrow-down-line\"} style={{ fontSize: 14 }} />\n {delta}\n </span>\n </div>\n <div style={{ marginTop: 10 }}>\n <Sparkline data={spark} tone={tone} height={36} />\n </div>\n </Card>\n );\n}\n\nexport interface MiniStatProps {\n label: string;\n value: ReactNode;\n hint?: ReactNode;\n /** Tints the optional hint line. */\n tone?: ChartTone;\n}\n\n/** Compact stat tile — label, value and an optional tinted hint. */\nexport function MiniStat({ label, value, hint, tone = \"primary\" }: MiniStatProps) {\n const { fg } = toneVars(tone);\n return (\n <Card variant=\"stroke\" padding={16}>\n <div\n style={{\n font: \"var(--klun-text-label-xs)\",\n letterSpacing: \"0.02em\",\n textTransform: \"uppercase\",\n color: \"var(--klun-text-soft-400)\",\n }}\n >\n {label}\n </div>\n <div style={{ marginTop: 6, font: \"var(--klun-text-title-h5)\", color: \"var(--klun-text-strong-950)\" }}>\n {value}\n </div>\n {hint ? (\n <div style={{ marginTop: 2, font: \"var(--klun-text-label-xs)\", color: fg }}>{hint}</div>\n ) : null}\n </Card>\n );\n}\n","// Metronic example — dashboard screen: page header, KPI tiles with sparklines,\n// a performance bar chart + traffic donut, and the recent-orders table.\nimport { useState } from \"react\";\nimport {\n Avatar,\n AvatarGroup,\n Badge,\n Button,\n Card,\n Table,\n Tabs,\n} from \"../../index\";\nimport type { TableColumn } from \"../../index\";\nimport { BarChart, DonutChart } from \"./charts\";\nimport { Kpi } from \"./widgets\";\n\n/* ---- orders table ---- */\n\ninterface Order {\n id: string;\n customer: string;\n date: string;\n status: \"Paid\" | \"Pending\" | \"Refunded\";\n total: string;\n}\n\nconst ORDERS: Order[] = [\n { id: \"#A-1042\", customer: \"Anna Krause\", date: \"Jun 18\", status: \"Paid\", total: \"$420.00\" },\n { id: \"#A-1041\", customer: \"Ben Ortiz\", date: \"Jun 18\", status: \"Pending\", total: \"$215.50\" },\n { id: \"#A-1040\", customer: \"Chloe Lin\", date: \"Jun 17\", status: \"Paid\", total: \"$980.00\" },\n { id: \"#A-1039\", customer: \"Dmitri Volkov\", date: \"Jun 17\", status: \"Refunded\", total: \"$120.00\" },\n { id: \"#A-1038\", customer: \"Erin Walsh\", date: \"Jun 16\", status: \"Paid\", total: \"$66.00\" },\n];\n\nconst STATUS_COLOR = { Paid: \"green\", Pending: \"yellow\", Refunded: \"gray\" } as const;\n\nconst customerInitials = (name: string) =>\n name\n .split(\" \")\n .map((s) => s[0])\n .join(\"\");\n\nconst ORDER_COLUMNS: TableColumn<Order>[] = [\n {\n key: \"id\",\n header: \"Order\",\n render: (r) => (\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.id}</span>\n ),\n },\n {\n key: \"customer\",\n header: \"Customer\",\n render: (r) => (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 8 }}>\n <Avatar size=\"24\" initials={customerInitials(r.customer)} color=\"blue\" />\n {r.customer}\n </span>\n ),\n },\n { key: \"date\", header: \"Date\" },\n {\n key: \"status\",\n header: \"Status\",\n render: (r) => (\n <Badge color={STATUS_COLOR[r.status]} variant=\"light\" size=\"small\" dot>\n {r.status}\n </Badge>\n ),\n },\n {\n key: \"total\",\n header: \"Total\",\n align: \"right\",\n render: (r) => (\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.total}</span>\n ),\n },\n];\n\n/* ---- screen ---- */\n\nexport function DashboardScreen() {\n const [tab, setTab] = useState(\"revenue\");\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"flex-end\", justifyContent: \"space-between\", gap: 16 }}>\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n Dashboard\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n Welcome back — here's your store today.\n </p>\n </div>\n <AvatarGroup\n size=\"32\"\n max={4}\n avatars={[\n { initials: \"AK\", color: \"blue\" },\n { initials: \"BO\", color: \"green\" },\n { initials: \"CL\", color: \"purple\" },\n { initials: \"DV\", color: \"orange\" },\n { initials: \"EW\", color: \"gray\" },\n ]}\n />\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(240px, 1fr))\", gap: 16 }}>\n <Kpi\n label=\"Revenue\"\n value=\"$84,920\"\n delta=\"12.4%\"\n tone=\"primary\"\n icon={<i className=\"ri-money-dollar-circle-line\" />}\n spark={[10, 14, 12, 18, 16, 24, 22, 30]}\n />\n <Kpi\n label=\"Orders\"\n value=\"1,284\"\n delta=\"6.1%\"\n tone=\"success\"\n icon={<i className=\"ri-shopping-bag-line\" />}\n spark={[8, 10, 9, 14, 13, 16, 18, 22]}\n />\n <Kpi\n label=\"Customers\"\n value=\"9,402\"\n delta=\"2.3%\"\n trend=\"down\"\n tone=\"danger\"\n icon={<i className=\"ri-team-line\" />}\n spark={[20, 18, 19, 15, 16, 14, 13, 12]}\n />\n <Kpi\n label=\"Conversion\"\n value=\"3.6%\"\n delta=\"0.8%\"\n tone=\"info\"\n icon={<i className=\"ri-percent-line\" />}\n spark={[2, 3, 2.5, 3.2, 3, 3.4, 3.5, 3.6]}\n />\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"minmax(0, 1.6fr) minmax(0, 1fr)\", gap: 16, alignItems: \"start\" }}>\n <Card variant=\"stroke\" padding={20}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 12, marginBottom: 16 }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Performance</span>\n <Tabs\n variant=\"pill\"\n value={tab}\n onChange={setTab}\n items={[\n { value: \"revenue\", label: \"Revenue\" },\n { value: \"orders\", label: \"Orders\" },\n ]}\n />\n </div>\n <BarChart\n height={200}\n tone={tab === \"revenue\" ? \"primary\" : \"success\"}\n data={\n tab === \"revenue\"\n ? [\n { label: \"Mon\", value: 32 },\n { label: \"Tue\", value: 48 },\n { label: \"Wed\", value: 40 },\n { label: \"Thu\", value: 64 },\n { label: \"Fri\", value: 58 },\n { label: \"Sat\", value: 30 },\n { label: \"Sun\", value: 22 },\n ]\n : [\n { label: \"Mon\", value: 120 },\n { label: \"Tue\", value: 168 },\n { label: \"Wed\", value: 142 },\n { label: \"Thu\", value: 210 },\n { label: \"Fri\", value: 196 },\n { label: \"Sat\", value: 88 },\n { label: \"Sun\", value: 64 },\n ]\n }\n />\n </Card>\n\n <Card variant=\"stroke\" padding={20}>\n <div style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\", marginBottom: 16 }}>\n Traffic sources\n </div>\n <DonutChart\n centerValue=\"68%\"\n centerLabel=\"Organic\"\n data={[\n { label: \"Organic\", value: 68 },\n { label: \"Direct\", value: 18 },\n { label: \"Referral\", value: 9 },\n { label: \"Social\", value: 5 },\n ]}\n />\n </Card>\n </div>\n\n <Card variant=\"stroke\" padding={0}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 12, padding: \"16px 20px\" }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>Recent orders</span>\n <Button size=\"small\" variant=\"neutral\" appearance=\"stroke\">\n View all\n </Button>\n </div>\n <Table\n columns={ORDER_COLUMNS}\n rows={ORDERS}\n getRowId={(r) => r.id}\n style={{ borderRadius: 0, boxShadow: \"none\", borderTop: \"1px solid var(--klun-stroke-soft-200)\" }}\n />\n </Card>\n </div>\n );\n}\n","// Metronic example — Orders: a full data-grid business page built on the\n// klun-ui Table (selection + bulk actions, filters, sorting, CSV export,\n// pagination and a client-side search in the toolbar).\nimport { useMemo, useState } from \"react\";\nimport { Avatar, Badge, Button, Input, Money, Table } from \"../../index\";\nimport type { TableColumn } from \"../../index\";\n\ninterface Order {\n id: string;\n date: string;\n customer: string;\n items: number;\n status: \"Fulfilled\" | \"Processing\" | \"Pending\" | \"Refunded\";\n payment: string;\n total: number;\n}\n\nconst ORDERS: Order[] = [\n { id: \"#A-1042\", date: \"2026-09-16\", customer: \"Anna Krause\", items: 3, status: \"Fulfilled\", payment: \"Visa •• 4242\", total: 420.0 },\n { id: \"#A-1041\", date: \"2026-09-16\", customer: \"Ben Ortiz\", items: 1, status: \"Pending\", payment: \"PayPal\", total: 215.5 },\n { id: \"#A-1040\", date: \"2026-09-15\", customer: \"Chloe Lin\", items: 6, status: \"Fulfilled\", payment: \"Visa •• 1881\", total: 980.0 },\n { id: \"#A-1039\", date: \"2026-09-15\", customer: \"Dmitri Volkov\", items: 2, status: \"Refunded\", payment: \"Mastercard •• 5501\", total: 120.0 },\n { id: \"#A-1038\", date: \"2026-09-14\", customer: \"Erin Walsh\", items: 1, status: \"Fulfilled\", payment: \"Apple Pay\", total: 66.0 },\n { id: \"#A-1037\", date: \"2026-09-14\", customer: \"Farid Haddad\", items: 4, status: \"Processing\", payment: \"Visa •• 9034\", total: 512.4 },\n { id: \"#A-1036\", date: \"2026-09-13\", customer: \"Grace Miller\", items: 2, status: \"Fulfilled\", payment: \"PayPal\", total: 148.0 },\n { id: \"#A-1035\", date: \"2026-09-12\", customer: \"Hugo Silva\", items: 5, status: \"Processing\", payment: \"Mastercard •• 2210\", total: 764.9 },\n { id: \"#A-1034\", date: \"2026-09-12\", customer: \"Ivy Chen\", items: 1, status: \"Pending\", payment: \"Visa •• 7742\", total: 89.0 },\n { id: \"#A-1033\", date: \"2026-09-11\", customer: \"Jonas Weber\", items: 3, status: \"Fulfilled\", payment: \"Bank transfer\", total: 355.0 },\n { id: \"#A-1032\", date: \"2026-09-10\", customer: \"Karla Novak\", items: 2, status: \"Refunded\", payment: \"PayPal\", total: 210.0 },\n { id: \"#A-1031\", date: \"2026-09-10\", customer: \"Liam Byrne\", items: 7, status: \"Fulfilled\", payment: \"Visa •• 3360\", total: 1284.0 },\n];\n\nconst STATUS_COLOR = {\n Fulfilled: \"green\",\n Processing: \"blue\",\n Pending: \"yellow\",\n Refunded: \"gray\",\n} as const;\n\nconst initials = (name: string) =>\n name\n .split(\" \")\n .map((s) => s[0])\n .join(\"\");\n\nexport function OrdersScreen() {\n const [query, setQuery] = useState(\"\");\n const [selected, setSelected] = useState<Array<string | number>>([]);\n\n const rows = useMemo(() => {\n const q = query.trim().toLowerCase();\n if (!q) return ORDERS;\n return ORDERS.filter(\n (o) => o.id.toLowerCase().includes(q) || o.customer.toLowerCase().includes(q),\n );\n }, [query]);\n\n const columns: TableColumn<Order>[] = [\n {\n key: \"id\",\n header: \"Order\",\n render: (r) => (\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{r.id}</span>\n ),\n },\n { key: \"date\", header: \"Date\" },\n {\n key: \"customer\",\n header: \"Customer\",\n render: (r) => (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 8 }}>\n <Avatar size=\"24\" initials={initials(r.customer)} color=\"blue\" />\n {r.customer}\n </span>\n ),\n },\n { key: \"items\", header: \"Items\", align: \"center\" },\n {\n key: \"status\",\n header: \"Status\",\n filters: [\n { label: \"Fulfilled\", value: \"Fulfilled\" },\n { label: \"Processing\", value: \"Processing\" },\n { label: \"Pending\", value: \"Pending\" },\n { label: \"Refunded\", value: \"Refunded\" },\n ],\n render: (r) => (\n <Badge color={STATUS_COLOR[r.status]} variant=\"light\" size=\"small\" dot>\n {r.status}\n </Badge>\n ),\n },\n { key: \"payment\", header: \"Payment\" },\n {\n key: \"total\",\n header: \"Total\",\n align: \"right\",\n render: (r) => (\n <Money\n value={r.total}\n currency=\"USD\"\n locale=\"en-US\"\n tone={r.status === \"Refunded\" ? \"refund\" : \"default\"}\n style={{ font: \"var(--klun-text-label-sm)\" }}\n />\n ),\n },\n ];\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"flex-end\", justifyContent: \"space-between\", gap: 16, flexWrap: \"wrap\" }}>\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n Orders\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n Track, filter and fulfil every order in one place.\n </p>\n </div>\n <div style={{ display: \"flex\", gap: 8 }}>\n <Button variant=\"neutral\" appearance=\"stroke\" size=\"small\" leadingIcon={<i className=\"ri-download-2-line\" />}>\n Export\n </Button>\n <Button size=\"small\" leadingIcon={<i className=\"ri-add-line\" />}>\n New order\n </Button>\n </div>\n </div>\n\n <Table\n columns={columns}\n rows={rows}\n getRowId={(r) => r.id}\n title=\"All orders\"\n toolbar={\n <div style={{ width: 220 }}>\n <Input\n size=\"small\"\n placeholder=\"Search orders…\"\n leadingIcon={<i className=\"ri-search-line\" />}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n />\n </div>\n }\n selectable\n selected={selected}\n onSelectRow={(id) =>\n setSelected((prev) => (prev.includes(id) ? prev.filter((x) => x !== id) : [...prev, id]))\n }\n onSelectAll={(ids) => setSelected(ids)}\n selectionActions={(rowsSelected, clear) => (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n {rowsSelected.length} selected\n </span>\n <Button size=\"tiny\" variant=\"neutral\" appearance=\"stroke\" leadingIcon={<i className=\"ri-check-line\" />}>\n Mark fulfilled\n </Button>\n <Button size=\"tiny\" variant=\"neutral\" appearance=\"ghost\" onClick={clear}>\n Clear\n </Button>\n </div>\n )}\n sortable\n exportable={{ filename: \"orders.csv\" }}\n pagination={{ defaultPageSize: 6, pageSizeOptions: [6, 12] }}\n />\n </div>\n );\n}\n","// Metronic example — shared product model for the CRUD screens.\n// The list, the modal quick-edit and the route-style wizard all share these\n// types and helpers.\n\nexport type ProductStatus = \"Active\" | \"Low stock\" | \"Out of stock\";\n\nexport interface Product {\n id: string;\n name: string;\n sku: string;\n category: string;\n price: number;\n stock: number;\n capacity: number;\n status: ProductStatus;\n description?: string;\n}\n\n/** Everything an editor form edits (id is assigned on create). */\nexport type ProductDraft = Omit<Product, \"id\">;\n\nexport const CATEGORIES = [\"Peripherals\", \"Displays\", \"Accessories\", \"Audio\", \"Office\", \"Video\"] as const;\n\nexport const STATUS_COLOR = { Active: \"green\", \"Low stock\": \"yellow\", \"Out of stock\": \"gray\" } as const;\n\n/** Status follows stock level — editors never set it directly. */\nexport const deriveStatus = (stock: number, capacity: number): ProductStatus =>\n stock === 0 ? \"Out of stock\" : stock / capacity < 0.25 ? \"Low stock\" : \"Active\";\n\nexport function emptyDraft(): ProductDraft {\n return {\n name: \"\",\n sku: \"\",\n category: \"Accessories\",\n price: 0,\n stock: 0,\n capacity: 100,\n status: \"Active\",\n description: \"\",\n };\n}\n","// Metronic example — Products: route-style editor.\n// The full-page alternative to the modal quick-edit: a three-step wizard\n// (basics → pricing & stock → review) built on the klun-ui Wizard component.\n// With a router, mount this at /products/new and /products/:id/edit.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport {\n Badge,\n Breadcrumb,\n Button,\n Card,\n CounterInput,\n Input,\n Label,\n Money,\n Select,\n Wizard,\n} from \"../../index\";\nimport type { WizardStep } from \"../../index\";\nimport { CATEGORIES, STATUS_COLOR, deriveStatus } from \"./productModel\";\nimport type { ProductDraft } from \"./productModel\";\n\nexport interface ProductWizardPageProps {\n mode: \"create\" | \"edit\";\n initial: ProductDraft;\n onCancel: () => void;\n onSave: (draft: ProductDraft) => void;\n}\n\nfunction Field({\n label,\n hint,\n children,\n}: {\n label: string;\n hint?: ReactNode;\n children: ReactNode;\n}) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Label>{label}</Label>\n {children}\n {hint ? (\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>{hint}</span>\n ) : null}\n </div>\n );\n}\n\nfunction ReviewRow({ label, children }: { label: string; children: ReactNode }) {\n return (\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 16, padding: \"10px 0\" }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-soft-400)\" }}>{label}</span>\n <span\n style={{\n font: \"var(--klun-text-label-sm)\",\n color: \"var(--klun-text-strong-950)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n }}\n >\n {children}\n </span>\n </div>\n );\n}\n\nexport function ProductWizardPage({ mode, initial, onCancel, onSave }: ProductWizardPageProps) {\n const [draft, setDraft] = useState<ProductDraft>(initial);\n const [step, setStep] = useState(0);\n const [triedNext, setTriedNext] = useState(false);\n\n const set = (patch: Partial<ProductDraft>) => setDraft((d) => ({ ...d, ...patch }));\n\n const nameError = triedNext && step === 0 && draft.name.trim().length === 0;\n const skuError = triedNext && step === 0 && draft.sku.trim().length === 0;\n const stockError = triedNext && step === 1 && (draft.stock < 0 || draft.stock > draft.capacity);\n\n const nextStatus = deriveStatus(draft.stock, draft.capacity);\n const title = mode === \"create\" ? \"New product\" : \"Edit product\";\n\n const steps: WizardStep[] = [\n {\n title: \"Basics\",\n content: (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"2fr 1fr\", gap: 16 }}>\n <Field label=\"Name\" hint={nameError ? \"A product name is required.\" : undefined}>\n <Input\n error={nameError}\n value={draft.name}\n placeholder=\"Aero Wireless Keyboard\"\n onChange={(e) => set({ name: e.target.value })}\n />\n </Field>\n <Field label=\"SKU\" hint={skuError ? \"A unique SKU is required.\" : undefined}>\n <Input\n error={skuError}\n value={draft.sku}\n placeholder=\"KB-1042\"\n onChange={(e) => set({ sku: e.target.value })}\n />\n </Field>\n </div>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 16 }}>\n <Field label=\"Category\">\n <Select value={draft.category} onChange={(e) => set({ category: e.target.value })}>\n {CATEGORIES.map((c) => (\n <option key={c} value={c}>\n {c}\n </option>\n ))}\n </Select>\n </Field>\n </div>\n <Field label=\"Description\" hint=\"Shown to teammates in the inventory — not on the storefront.\">\n <Input\n value={draft.description ?? \"\"}\n placeholder=\"Short internal description\"\n onChange={(e) => set({ description: e.target.value })}\n />\n </Field>\n </div>\n ),\n },\n {\n title: \"Pricing & stock\",\n content: (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 16 }}>\n <Field label=\"Price (USD)\">\n <Input\n type=\"number\"\n value={String(draft.price)}\n leadingIcon={<i className=\"ri-money-dollar-circle-line\" />}\n onChange={(e) => set({ price: Number(e.target.value) || 0 })}\n />\n </Field>\n <Field label=\"Capacity\" hint=\"Used for the stock bar — how many units fit.\">\n <CounterInput value={draft.capacity} min={1} max={1000} step={10} onChange={(v) => set({ capacity: v })} />\n </Field>\n </div>\n <Field\n label=\"Stock on hand\"\n hint={stockError ? \"Stock must be between 0 and capacity.\" : \"Status is derived from this level.\"}\n >\n <CounterInput value={draft.stock} min={0} max={draft.capacity} onChange={(v) => set({ stock: v })} />\n </Field>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n padding: \"12px 14px\",\n borderRadius: \"var(--klun-radius-lg)\",\n background: \"var(--klun-bg-weak-50)\",\n }}\n >\n <i className=\"ri-information-line\" style={{ fontSize: 18, color: \"var(--klun-icon-sub-600)\" }} />\n <span style={{ font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n With this stock level the product will be saved as\n </span>\n <Badge color={STATUS_COLOR[nextStatus]} variant=\"light\" size=\"small\" dot>\n {nextStatus}\n </Badge>\n </div>\n </div>\n ),\n },\n {\n title: \"Review\",\n content: (\n <div>\n <div style={{ boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <ReviewRow label=\"Name\">{draft.name || \"—\"}</ReviewRow>\n <ReviewRow label=\"SKU\">{draft.sku || \"—\"}</ReviewRow>\n <ReviewRow label=\"Category\">{draft.category}</ReviewRow>\n <ReviewRow label=\"Description\">{draft.description || \"—\"}</ReviewRow>\n </div>\n <div style={{ boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <ReviewRow label=\"Price\">\n <Money value={draft.price} currency=\"USD\" locale=\"en-US\" />\n </ReviewRow>\n <ReviewRow label=\"Stock\">\n {draft.stock} of {draft.capacity}\n </ReviewRow>\n <ReviewRow label=\"Status\">\n <Badge color={STATUS_COLOR[nextStatus]} variant=\"light\" size=\"small\" dot>\n {nextStatus}\n </Badge>\n </ReviewRow>\n </div>\n <span\n style={{\n display: \"block\",\n marginTop: 14,\n font: \"var(--klun-text-paragraph-xs)\",\n color: \"var(--klun-text-soft-400)\",\n }}\n >\n Click Finish to save — the product {mode === \"create\" ? \"is added to\" : \"is updated in\"} the inventory.\n </span>\n </div>\n ),\n },\n ];\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div>\n <Breadcrumb\n items={[\n { label: \"Products\" },\n { label: mode === \"create\" ? \"New product\" : draft.name || \"Edit product\" },\n ]}\n />\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-end\",\n justifyContent: \"space-between\",\n gap: 16,\n marginTop: 8,\n flexWrap: \"wrap\",\n }}\n >\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n {title}\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n Route-style editor — three steps, saved at the end.\n </p>\n </div>\n <Button\n variant=\"neutral\"\n appearance=\"stroke\"\n size=\"small\"\n leadingIcon={<i className=\"ri-arrow-left-line\" />}\n onClick={onCancel}\n >\n Back to list\n </Button>\n </div>\n </div>\n\n <Card variant=\"stroke\" padding={20}>\n <Wizard\n steps={steps}\n current={step}\n onStepChange={(n) => {\n // gate forward navigation on the current step's validation\n if (n > step) {\n setTriedNext(true);\n if (step === 0 && (draft.name.trim() === \"\" || draft.sku.trim() === \"\")) return;\n if (step === 1 && (draft.stock < 0 || draft.stock > draft.capacity)) return;\n }\n setTriedNext(false);\n setStep(n);\n }}\n onFinish={() => onSave({ ...draft, status: nextStatus })}\n />\n </Card>\n </div>\n );\n}\n","// Metronic example — Products: full CRUD with two editor flows.\n// – list (filters / sort / column settings / export) + detail drawer\n// – quick add/edit in a MODAL, and a route-style full-page WIZARD editor\n// (mount `ProductWizardPage` at /products/new · /products/:id/edit with a\n// router — here the \"route\" is local state)\n// Deletes run through the imperative Confirm dialog. Local state only — wire\n// the handlers to your API.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport {\n Badge,\n Button,\n Confirm,\n CounterInput,\n Drawer,\n Dropdown,\n Input,\n Label,\n Modal,\n Money,\n ProgressBar,\n Select,\n Table,\n} from \"../../index\";\nimport type { TableColumn } from \"../../index\";\nimport { MiniStat } from \"./widgets\";\nimport { ProductWizardPage } from \"./ProductWizardPage\";\nimport { CATEGORIES, STATUS_COLOR, deriveStatus, emptyDraft } from \"./productModel\";\nimport type { Product, ProductDraft } from \"./productModel\";\n\nconst INITIAL_PRODUCTS: Product[] = [\n { id: \"p1\", name: \"Aero Wireless Keyboard\", sku: \"KB-1042\", category: \"Peripherals\", price: 129.0, stock: 84, capacity: 120, status: \"Active\" },\n { id: \"p2\", name: \"Lumen 27\\\" 4K Monitor\", sku: \"MN-2210\", category: \"Displays\", price: 549.0, stock: 12, capacity: 80, status: \"Low stock\" },\n { id: \"p3\", name: \"Pulse USB-C Dock\", sku: \"DK-3301\", category: \"Accessories\", price: 89.5, stock: 0, capacity: 60, status: \"Out of stock\" },\n { id: \"p4\", name: \"Nimbus Laptop Stand\", sku: \"ST-1187\", category: \"Accessories\", price: 45.0, stock: 132, capacity: 200, status: \"Active\" },\n { id: \"p5\", name: \"Vertex Mechanical Mouse\", sku: \"MS-2205\", category: \"Peripherals\", price: 79.0, stock: 18, capacity: 100, status: \"Low stock\" },\n { id: \"p6\", name: \"Echo Conference Speaker\", sku: \"SP-4402\", category: \"Audio\", price: 219.0, stock: 47, capacity: 90, status: \"Active\" },\n { id: \"p7\", name: \"Flux Desk Lamp\", sku: \"LP-0913\", category: \"Office\", price: 64.0, stock: 0, capacity: 40, status: \"Out of stock\" },\n { id: \"p8\", name: \"Orbit Webcam 4K\", sku: \"WC-5520\", category: \"Video\", price: 149.0, stock: 63, capacity: 120, status: \"Active\" },\n];\n\nconst CATEGORY_TONE: Record<string, { bg: string; fg: string; icon: string }> = {\n Peripherals: { bg: \"var(--klun-state-feature-lighter)\", fg: \"var(--klun-state-feature-base)\", icon: \"ri-keyboard-line\" },\n Displays: { bg: \"var(--klun-state-information-lighter)\", fg: \"var(--klun-state-information-base)\", icon: \"ri-computer-line\" },\n Accessories: { bg: \"var(--klun-state-success-lighter)\", fg: \"var(--klun-state-success-base)\", icon: \"ri-plug-line\" },\n Audio: { bg: \"var(--klun-state-warning-lighter)\", fg: \"var(--klun-state-warning-base)\", icon: \"ri-volume-up-line\" },\n Office: { bg: \"var(--klun-state-error-lighter)\", fg: \"var(--klun-state-error-base)\", icon: \"ri-lightbulb-line\" },\n Video: { bg: \"var(--klun-primary-lighter)\", fg: \"var(--klun-primary-base)\", icon: \"ri-vidicon-line\" },\n};\n\nconst stockColor = (p: Product) =>\n p.stock === 0 ? \"error\" : p.stock / p.capacity < 0.25 ? \"warning\" : \"success\";\n\nfunction Field({ label, children }: { label: string; children: ReactNode }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Label>{label}</Label>\n {children}\n </div>\n );\n}\n\n/* ---- create / edit (modal form) ---- */\n\ninterface ProductEditorProps {\n open: boolean;\n mode: \"create\" | \"edit\";\n draft: ProductDraft;\n onChange: (patch: Partial<ProductDraft>) => void;\n onClose: () => void;\n onSave: () => void;\n}\n\nfunction ProductEditor({ open, mode, draft, onChange, onClose, onSave }: ProductEditorProps) {\n const valid = draft.name.trim().length > 0 && draft.sku.trim().length > 0;\n return (\n <Modal\n open={open}\n onClose={onClose}\n title={mode === \"create\" ? \"New product\" : \"Edit product\"}\n description={\n mode === \"create\"\n ? \"The product appears in the inventory as soon as you save it.\"\n : draft.sku\n }\n okText={mode === \"create\" ? \"Create product\" : \"Save changes\"}\n okButtonProps={{ disabled: !valid }}\n onOk={() => valid && onSave()}\n width={560}\n >\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"2fr 1fr\", gap: 14 }}>\n <Field label=\"Name\">\n <Input\n value={draft.name}\n placeholder=\"Aero Wireless Keyboard\"\n onChange={(e) => onChange({ name: e.target.value })}\n />\n </Field>\n <Field label=\"SKU\">\n <Input\n value={draft.sku}\n placeholder=\"KB-1042\"\n onChange={(e) => onChange({ sku: e.target.value })}\n />\n </Field>\n </div>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 14 }}>\n <Field label=\"Category\">\n <Select value={draft.category} onChange={(e) => onChange({ category: e.target.value })}>\n {CATEGORIES.map((c) => (\n <option key={c} value={c}>\n {c}\n </option>\n ))}\n </Select>\n </Field>\n <Field label=\"Price (USD)\">\n <Input\n type=\"number\"\n value={String(draft.price)}\n leadingIcon={<i className=\"ri-money-dollar-circle-line\" />}\n onChange={(e) => onChange({ price: Number(e.target.value) || 0 })}\n />\n </Field>\n </div>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 14 }}>\n <Field label=\"Stock on hand\">\n <CounterInput value={draft.stock} min={0} max={draft.capacity} onChange={(v) => onChange({ stock: v })} />\n </Field>\n <Field label=\"Capacity\">\n <CounterInput value={draft.capacity} min={1} max={1000} step={10} onChange={(v) => onChange({ capacity: v })} />\n </Field>\n </div>\n <Field label=\"Description\">\n <Input\n value={draft.description ?? \"\"}\n placeholder=\"Short internal description\"\n onChange={(e) => onChange({ description: e.target.value })}\n />\n </Field>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n Status follows stock: 0 = out of stock, below 25% of capacity = low stock.\n </span>\n </div>\n </Modal>\n );\n}\n\n/* ---- read (detail drawer) ---- */\n\nfunction DetailRow({ label, children }: { label: string; children: ReactNode }) {\n return (\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 16 }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-soft-400)\" }}>{label}</span>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{children}</span>\n </div>\n );\n}\n\ninterface ProductDetailProps {\n product: Product | null;\n onClose: () => void;\n onEdit: (p: Product) => void;\n onOpenPage: (p: Product) => void;\n onDelete: (p: Product) => void;\n}\n\nfunction ProductDetail({ product, onClose, onEdit, onOpenPage, onDelete }: ProductDetailProps) {\n return (\n <Drawer\n open={product !== null}\n onClose={onClose}\n title=\"Product details\"\n width={420}\n footer={\n product ? (\n <div style={{ display: \"flex\", justifyContent: \"space-between\", gap: 8, width: \"100%\" }}>\n <Button\n size=\"small\"\n variant=\"error\"\n appearance=\"lighter\"\n leadingIcon={<i className=\"ri-delete-bin-line\" />}\n onClick={() => onDelete(product)}\n >\n Delete\n </Button>\n <span style={{ display: \"flex\", gap: 8 }}>\n <Button size=\"small\" variant=\"neutral\" appearance=\"ghost\" onClick={() => onOpenPage(product)}>\n Full editor\n </Button>\n <Button size=\"small\" leadingIcon={<i className=\"ri-edit-line\" />} onClick={() => onEdit(product)}>\n Edit product\n </Button>\n </span>\n </div>\n ) : null\n }\n >\n {product ? (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 12 }}>\n <Thumb category={product.category} />\n <div style={{ minWidth: 0 }}>\n <div style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>\n {product.name}\n </div>\n <div style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n {product.sku}\n </div>\n </div>\n <span style={{ marginLeft: \"auto\" }}>\n <Badge color={STATUS_COLOR[product.status]} variant=\"light\" size=\"small\" dot>\n {product.status}\n </Badge>\n </span>\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12 }}>\n <DetailRow label=\"Category\">{product.category}</DetailRow>\n <DetailRow label=\"Price\">\n <Money value={product.price} currency=\"USD\" locale=\"en-US\" />\n </DetailRow>\n <DetailRow label=\"Stock\">\n {product.stock} of {product.capacity}\n </DetailRow>\n </div>\n\n <ProgressBar value={product.stock} max={product.capacity} color={stockColor(product)} />\n\n {product.description ? (\n <span\n style={{\n font: \"var(--klun-text-paragraph-sm)\",\n color: \"var(--klun-text-sub-600)\",\n boxShadow: \"inset 0 1px 0 var(--klun-stroke-soft-200)\",\n paddingTop: 16,\n }}\n >\n {product.description}\n </span>\n ) : null}\n </div>\n ) : null}\n </Drawer>\n );\n}\n\nfunction Thumb({ category }: { category: string }) {\n const tone = CATEGORY_TONE[category] ?? CATEGORY_TONE.Accessories;\n return (\n <span\n style={{\n width: 34,\n height: 34,\n borderRadius: \"var(--klun-radius-md)\",\n background: tone.bg,\n color: tone.fg,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: 17,\n flexShrink: 0,\n }}\n >\n <i className={tone.icon} />\n </span>\n );\n}\n\nexport function ProductsScreen() {\n const [products, setProducts] = useState<Product[]>(INITIAL_PRODUCTS);\n const [editor, setEditor] = useState<{ mode: \"create\" | \"edit\"; product?: Product } | null>(null);\n const [draft, setDraft] = useState<ProductDraft>(emptyDraft);\n const [detail, setDetail] = useState<Product | null>(null);\n // \"Route\" state — swap for real routes (/products/new · /products/:id/edit)\n // when the app has a router; the wizard page renders instead of the list.\n const [route, setRoute] = useState<{ name: \"list\" | \"create\" | \"edit\"; product?: Product }>({\n name: \"list\",\n });\n\n const toDraft = (p: Product): ProductDraft => {\n const { id: _id, ...rest } = p;\n return rest;\n };\n\n /** Shared save path for the modal editor and the wizard page. */\n const upsert = (d: ProductDraft, mode: \"create\" | \"edit\", id?: string) => {\n if (mode === \"create\") {\n setProducts((prev) => [{ id: `p${Date.now()}`, ...d }, ...prev]);\n return;\n }\n if (id) {\n setProducts((prev) => prev.map((p) => (p.id === id ? { ...p, ...d } : p)));\n setDetail((x) => (x && x.id === id ? { ...x, ...d } : x));\n }\n };\n\n if (route.name !== \"list\") {\n const mode = route.name;\n const editing = mode === \"edit\" ? route.product : undefined;\n return (\n <ProductWizardPage\n mode={mode}\n initial={editing ? toDraft(editing) : emptyDraft()}\n onCancel={() => setRoute({ name: \"list\" })}\n onSave={(d) => {\n upsert(d, mode, editing?.id);\n setRoute({ name: \"list\" });\n }}\n />\n );\n }\n\n const totals = {\n skus: products.length,\n low: products.filter((p) => p.status === \"Low stock\").length,\n out: products.filter((p) => p.status === \"Out of stock\").length,\n value: products.reduce((sum, p) => sum + p.price * p.stock, 0),\n };\n\n const openCreate = () => {\n setDraft(emptyDraft());\n setEditor({ mode: \"create\" });\n };\n\n const openEdit = (p: Product) => {\n setDraft(toDraft(p));\n setEditor({ mode: \"edit\", product: p });\n };\n\n const saveDraft = () => {\n const status = deriveStatus(draft.stock, draft.capacity);\n upsert({ ...draft, status }, editor?.mode ?? \"create\", editor?.product?.id);\n setEditor(null);\n };\n\n const removeProduct = async (p: Product) => {\n const res = await Confirm({\n title: `Delete ${p.name}?`,\n description: `${p.sku} will be removed from the inventory. This can't be undone.`,\n intent: \"danger\",\n confirmText: \"Delete product\",\n });\n if (res === true || (typeof res === \"object\" && res.confirmed)) {\n setProducts((prev) => prev.filter((x) => x.id !== p.id));\n setDetail((d) => (d && d.id === p.id ? null : d));\n }\n };\n\n const columns: TableColumn<Product>[] = [\n {\n key: \"name\",\n header: \"Product\",\n render: (p) => (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 10 }}>\n <Thumb category={p.category} />\n <span style={{ display: \"flex\", flexDirection: \"column\" }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{p.name}</span>\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-soft-400)\" }}>{p.sku}</span>\n </span>\n </span>\n ),\n },\n { key: \"category\", header: \"Category\" },\n {\n key: \"price\",\n header: \"Price\",\n align: \"right\",\n render: (p) => <Money value={p.price} currency=\"USD\" locale=\"en-US\" style={{ font: \"var(--klun-text-label-sm)\" }} />,\n },\n {\n key: \"stock\",\n header: \"Stock\",\n width: 190,\n render: (p) => (\n <span style={{ display: \"flex\", alignItems: \"center\", gap: 10, minWidth: 150 }}>\n <span style={{ flex: 1 }}>\n <ProgressBar value={p.stock} max={p.capacity} color={stockColor(p)} />\n </span>\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-sub-600)\", width: 32, textAlign: \"right\" }}>\n {p.stock}\n </span>\n </span>\n ),\n },\n {\n key: \"status\",\n header: \"Status\",\n filters: [\n { label: \"Active\", value: \"Active\" },\n { label: \"Low stock\", value: \"Low stock\" },\n { label: \"Out of stock\", value: \"Out of stock\" },\n ],\n render: (p) => (\n <Badge color={STATUS_COLOR[p.status]} variant=\"light\" size=\"small\" dot>\n {p.status}\n </Badge>\n ),\n },\n {\n key: \"actions\",\n header: \"\",\n width: 56,\n align: \"right\",\n exportable: false,\n render: (p) => (\n <Dropdown\n align=\"right\"\n width={190}\n trigger={\n <Button\n kind=\"compact\"\n appearance=\"ghost\"\n icon={<i className=\"ri-more-2-line\" />}\n aria-label={`Actions for ${p.name}`}\n />\n }\n items={[\n { label: \"View details\", icon: <i className=\"ri-eye-line\" />, onClick: () => setDetail(p) },\n { label: \"Quick edit — modal\", icon: <i className=\"ri-edit-line\" />, onClick: () => openEdit(p) },\n { label: \"Edit in page\", icon: <i className=\"ri-layout-top-line\" />, onClick: () => setRoute({ name: \"edit\", product: p }) },\n { label: \"Duplicate\", icon: <i className=\"ri-file-copy-line\" />, onClick: () => openCreate() },\n { divider: true },\n { label: \"Delete product\", icon: <i className=\"ri-delete-bin-line\" />, danger: true, onClick: () => void removeProduct(p) },\n ]}\n />\n ),\n },\n ];\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"flex-end\", justifyContent: \"space-between\", gap: 16, flexWrap: \"wrap\" }}>\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n Products\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n Inventory levels, pricing and availability — full create, edit and delete flows.\n </p>\n </div>\n <Dropdown\n align=\"right\"\n width={220}\n trigger={\n <Button size=\"small\" leadingIcon={<i className=\"ri-add-line\" />}>\n Add product\n </Button>\n }\n items={[\n { label: \"Quick add — modal\", icon: <i className=\"ri-add-box-line\" />, onClick: openCreate },\n {\n label: \"Full-page editor\",\n icon: <i className=\"ri-layout-top-line\" />,\n onClick: () => setRoute({ name: \"create\" }),\n },\n ]}\n />\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(180px, 1fr))\", gap: 16 }}>\n <MiniStat label=\"SKUs\" value={totals.skus} hint=\"across 6 categories\" />\n <MiniStat label=\"Low stock\" value={totals.low} hint=\"needs restocking\" tone=\"warning\" />\n <MiniStat label=\"Out of stock\" value={totals.out} hint=\"not purchasable\" tone=\"danger\" />\n <MiniStat label=\"Inventory value\" value={<Money value={totals.value} currency=\"USD\" locale=\"en-US\" size=\"lg\" />} hint=\"at cost price\" tone=\"success\" />\n </div>\n\n <Table\n columns={columns}\n rows={products}\n getRowId={(p) => p.id}\n title=\"Inventory\"\n toolbar={\n <Button size=\"tiny\" variant=\"neutral\" appearance=\"stroke\" leadingIcon={<i className=\"ri-filter-3-line\" />}>\n Filters\n </Button>\n }\n sortable\n columnSettings\n exportable={{ filename: \"products.csv\" }}\n />\n\n <ProductEditor\n open={editor !== null}\n mode={editor?.mode ?? \"create\"}\n draft={draft}\n onChange={(patch) => setDraft((d) => ({ ...d, ...patch }))}\n onClose={() => setEditor(null)}\n onSave={saveDraft}\n />\n\n <ProductDetail\n product={detail}\n onClose={() => setDetail(null)}\n onEdit={(p) => {\n setDetail(null);\n openEdit(p);\n }}\n onOpenPage={(p) => {\n setDetail(null);\n setRoute({ name: \"edit\", product: p });\n }}\n onDelete={(p) => void removeProduct(p)}\n />\n </div>\n );\n}\n","// Metronic example — Customers: CRM-style list with segments, lifetime spend\n// and live relative times, plus a summary strip.\nimport { Avatar, Button, Chip, Money, RelativeTime, Table } from \"../../index\";\nimport type { ChipColor, TableColumn } from \"../../index\";\nimport { MiniStat } from \"./widgets\";\n\ninterface Customer {\n id: string;\n name: string;\n email: string;\n segment: \"VIP\" | \"Regular\" | \"New\";\n orders: number;\n spend: number;\n lastSeen: string;\n country: string;\n}\n\nconst CUSTOMERS: Customer[] = [\n { id: \"c1\", name: \"Anna Krause\", email: \"anna@acme.io\", segment: \"VIP\", orders: 42, spend: 18420.0, lastSeen: \"2026-09-16T08:30:00Z\", country: \"Germany\" },\n { id: \"c2\", name: \"Ben Ortiz\", email: \"ben@northwind.co\", segment: \"Regular\", orders: 17, spend: 5210.5, lastSeen: \"2026-09-16T06:10:00Z\", country: \"Mexico\" },\n { id: \"c3\", name: \"Chloe Lin\", email: \"chloe@lumen.dev\", segment: \"VIP\", orders: 55, spend: 24980.0, lastSeen: \"2026-09-15T19:45:00Z\", country: \"Singapore\" },\n { id: \"c4\", name: \"Dmitri Volkov\", email: \"dmitri@volk.io\", segment: \"New\", orders: 2, spend: 340.0, lastSeen: \"2026-09-15T12:05:00Z\", country: \"Georgia\" },\n { id: \"c5\", name: \"Erin Walsh\", email: \"erin@walsh.ie\", segment: \"Regular\", orders: 23, spend: 7690.0, lastSeen: \"2026-09-14T16:20:00Z\", country: \"Ireland\" },\n { id: \"c6\", name: \"Farid Haddad\", email: \"farid@levant.sa\", segment: \"Regular\", orders: 11, spend: 3980.0, lastSeen: \"2026-09-14T09:00:00Z\", country: \"Saudi Arabia\" },\n { id: \"c7\", name: \"Grace Miller\", email: \"grace@miller.us\", segment: \"New\", orders: 1, spend: 148.0, lastSeen: \"2026-09-13T20:12:00Z\", country: \"United States\" },\n { id: \"c8\", name: \"Hugo Silva\", email: \"hugo@silva.br\", segment: \"VIP\", orders: 38, spend: 15340.0, lastSeen: \"2026-09-13T10:40:00Z\", country: \"Brazil\" },\n];\n\nconst SEGMENT_COLOR: Record<Customer[\"segment\"], ChipColor> = {\n VIP: \"purple\",\n Regular: \"blue\",\n New: \"green\",\n};\n\nconst initials = (name: string) =>\n name\n .split(\" \")\n .map((s) => s[0])\n .join(\"\");\n\nexport function CustomersScreen() {\n const totalSpend = CUSTOMERS.reduce((sum, c) => sum + c.spend, 0);\n\n const columns: TableColumn<Customer>[] = [\n {\n key: \"name\",\n header: \"Customer\",\n render: (c) => (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 10 }}>\n <Avatar size=\"32\" initials={initials(c.name)} color=\"blue\" />\n <span style={{ display: \"flex\", flexDirection: \"column\" }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{c.name}</span>\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-soft-400)\" }}>{c.email}</span>\n </span>\n </span>\n ),\n },\n {\n key: \"segment\",\n header: \"Segment\",\n filters: [\n { label: \"VIP\", value: \"VIP\" },\n { label: \"Regular\", value: \"Regular\" },\n { label: \"New\", value: \"New\" },\n ],\n render: (c) => (\n <Chip color={SEGMENT_COLOR[c.segment]} dot>\n {c.segment}\n </Chip>\n ),\n },\n { key: \"country\", header: \"Country\" },\n { key: \"orders\", header: \"Orders\", align: \"center\" },\n {\n key: \"spend\",\n header: \"Lifetime spend\",\n align: \"right\",\n render: (c) => (\n <Money\n value={c.spend}\n currency=\"USD\"\n locale=\"en-US\"\n tone={c.segment === \"VIP\" ? \"increase\" : \"default\"}\n style={{ font: \"var(--klun-text-label-sm)\" }}\n />\n ),\n },\n {\n key: \"lastSeen\",\n header: \"Last active\",\n render: (c) => (\n <RelativeTime\n date={c.lastSeen}\n live={false}\n style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\" }}\n />\n ),\n },\n ];\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"flex-end\", justifyContent: \"space-between\", gap: 16, flexWrap: \"wrap\" }}>\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n Customers\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n Segments, spend and engagement across your customer base.\n </p>\n </div>\n <Button size=\"small\" leadingIcon={<i className=\"ri-user-add-line\" />}>\n Invite customer\n </Button>\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(180px, 1fr))\", gap: 16 }}>\n <MiniStat label=\"Customers\" value=\"9,402\" hint=\"+2.3% this month\" />\n <MiniStat label=\"New (30d)\" value=\"384\" hint=\"+12.4% vs last month\" tone=\"success\" />\n <MiniStat label=\"Repeat rate\" value=\"46%\" hint=\"+1.8 pts\" tone=\"success\" />\n <MiniStat label=\"Lifetime value shown\" value={<Money value={totalSpend} currency=\"USD\" locale=\"en-US\" size=\"lg\" />} hint=\"top 8 customers\" tone=\"feature\" />\n </div>\n\n <Table\n columns={columns}\n rows={CUSTOMERS}\n getRowId={(c) => c.id}\n title=\"All customers\"\n sortable\n exportable={{ filename: \"customers.csv\" }}\n pagination={{ defaultPageSize: 8 }}\n />\n </div>\n );\n}\n","// Metronic example — RBAC: team members (users).\n// Full CRUD on the user list: invite/edit via a modal form, suspend/restore\n// and remove via the imperative Confirm dialog. Local state only — wire the\n// handlers to your API.\nimport { useState } from \"react\";\nimport { Avatar, Badge, Button, Chip, Confirm, Dropdown, Input, Label, Modal, RelativeTime, Select, Switch, Table } from \"../../index\";\nimport type { ChipColor, TableColumn } from \"../../index\";\n\ntype RoleId = \"Owner\" | \"Admin\" | \"Manager\" | \"Editor\" | \"Viewer\";\ntype UserStatus = \"Active\" | \"Invited\" | \"Suspended\";\n\ninterface User {\n id: string;\n name: string;\n email: string;\n role: RoleId;\n status: UserStatus;\n twoFA: boolean;\n lastSeen: string;\n}\n\nconst ROLES: RoleId[] = [\"Owner\", \"Admin\", \"Manager\", \"Editor\", \"Viewer\"];\n\nconst INITIAL_USERS: User[] = [\n { id: \"u1\", name: \"Anna Krause\", email: \"anna@acme.io\", role: \"Owner\", status: \"Active\", twoFA: true, lastSeen: \"2026-09-16T08:30:00Z\" },\n { id: \"u2\", name: \"Ben Ortiz\", email: \"ben@acme.io\", role: \"Admin\", status: \"Active\", twoFA: true, lastSeen: \"2026-09-16T06:10:00Z\" },\n { id: \"u3\", name: \"Chloe Lin\", email: \"chloe@acme.io\", role: \"Manager\", status: \"Active\", twoFA: false, lastSeen: \"2026-09-15T19:45:00Z\" },\n { id: \"u4\", name: \"Dmitri Volkov\", email: \"dmitri@acme.io\", role: \"Editor\", status: \"Invited\", twoFA: false, lastSeen: \"2026-09-15T12:05:00Z\" },\n { id: \"u5\", name: \"Erin Walsh\", email: \"erin@acme.io\", role: \"Editor\", status: \"Active\", twoFA: true, lastSeen: \"2026-09-14T16:20:00Z\" },\n { id: \"u6\", name: \"Farid Haddad\", email: \"farid@acme.io\", role: \"Viewer\", status: \"Suspended\", twoFA: false, lastSeen: \"2026-09-02T09:00:00Z\" },\n { id: \"u7\", name: \"Grace Miller\", email: \"grace@acme.io\", role: \"Viewer\", status: \"Active\", twoFA: false, lastSeen: \"2026-09-13T20:12:00Z\" },\n];\n\nconst ROLE_COLOR: Record<RoleId, ChipColor> = {\n Owner: \"purple\",\n Admin: \"blue\",\n Manager: \"teal\",\n Editor: \"green\",\n Viewer: \"gray\",\n};\n\nconst STATUS_COLOR: Record<UserStatus, \"green\" | \"blue\" | \"gray\"> = {\n Active: \"green\",\n Invited: \"blue\",\n Suspended: \"gray\",\n};\n\nconst initials = (name: string) =>\n name\n .split(\" \")\n .map((s) => s[0])\n .join(\"\");\n\ninterface EditorState {\n mode: \"create\" | \"edit\";\n user?: User;\n}\n\nexport function UsersScreen() {\n const [users, setUsers] = useState<User[]>(INITIAL_USERS);\n const [editor, setEditor] = useState<EditorState | null>(null);\n const [form, setForm] = useState<{ name: string; email: string; role: RoleId; twoFA: boolean }>({\n name: \"\",\n email: \"\",\n role: \"Viewer\",\n twoFA: false,\n });\n\n const openCreate = () => {\n setForm({ name: \"\", email: \"\", role: \"Viewer\", twoFA: false });\n setEditor({ mode: \"create\" });\n };\n\n const openEdit = (user: User) => {\n setForm({ name: user.name, email: user.email, role: user.role, twoFA: user.twoFA });\n setEditor({ mode: \"edit\", user });\n };\n\n const save = () => {\n if (!editor) return;\n if (editor.mode === \"create\") {\n setUsers((prev) => [\n ...prev,\n {\n id: `u${Date.now()}`,\n name: form.name.trim() || \"New teammate\",\n email: form.email.trim() || \"teammate@acme.io\",\n role: form.role,\n status: \"Invited\",\n twoFA: form.twoFA,\n lastSeen: new Date().toISOString(),\n },\n ]);\n } else if (editor.user) {\n setUsers((prev) =>\n prev.map((u) =>\n u.id === editor.user!.id\n ? { ...u, name: form.name.trim() || u.name, email: form.email.trim() || u.email, role: form.role, twoFA: form.twoFA }\n : u,\n ),\n );\n }\n setEditor(null);\n };\n\n const toggleSuspend = (user: User) => {\n setUsers((prev) =>\n prev.map((u) =>\n u.id === user.id ? { ...u, status: u.status === \"Suspended\" ? \"Active\" : \"Suspended\" } : u,\n ),\n );\n };\n\n const remove = async (user: User) => {\n const res = await Confirm({\n title: `Remove ${user.name}?`,\n description: `${user.email} will lose access to the workspace immediately. This can't be undone.`,\n intent: \"danger\",\n confirmText: \"Remove user\",\n });\n if (res === true || (typeof res === \"object\" && res.confirmed)) {\n setUsers((prev) => prev.filter((u) => u.id !== user.id));\n }\n };\n\n const columns: TableColumn<User>[] = [\n {\n key: \"name\",\n header: \"User\",\n render: (u) => (\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: 10 }}>\n <Avatar size=\"32\" initials={initials(u.name)} color=\"blue\" />\n <span style={{ display: \"flex\", flexDirection: \"column\" }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{u.name}</span>\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-soft-400)\" }}>{u.email}</span>\n </span>\n </span>\n ),\n },\n {\n key: \"role\",\n header: \"Role\",\n filters: ROLES.map((r) => ({ label: r, value: r })),\n render: (u) => (\n <Chip color={ROLE_COLOR[u.role]} dot>\n {u.role}\n </Chip>\n ),\n },\n {\n key: \"status\",\n header: \"Status\",\n filters: ([\"Active\", \"Invited\", \"Suspended\"] as UserStatus[]).map((s) => ({ label: s, value: s })),\n render: (u) => (\n <Badge color={STATUS_COLOR[u.status]} variant=\"light\" size=\"small\" dot>\n {u.status}\n </Badge>\n ),\n },\n {\n key: \"twoFA\",\n header: \"2FA\",\n align: \"center\",\n render: (u) =>\n u.twoFA ? (\n <Badge color=\"green\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-lock-2-line\" />}>\n On\n </Badge>\n ) : (\n <Badge color=\"gray\" variant=\"lighter\" size=\"small\" leadingIcon={<i className=\"ri-lock-unlock-line\" />}>\n Off\n </Badge>\n ),\n },\n {\n key: \"lastSeen\",\n header: \"Last active\",\n render: (u) => (\n <RelativeTime\n date={u.lastSeen}\n live={false}\n style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\" }}\n />\n ),\n },\n {\n key: \"actions\",\n header: \"\",\n width: 60,\n align: \"right\",\n exportable: false,\n render: (u) => (\n <Dropdown\n align=\"right\"\n width={190}\n trigger={\n <Button\n kind=\"compact\"\n appearance=\"ghost\"\n icon={<i className=\"ri-more-2-line\" />}\n aria-label={`Actions for ${u.name}`}\n />\n }\n items={[\n { label: \"Edit details\", icon: <i className=\"ri-edit-line\" />, onClick: () => openEdit(u) },\n { label: \"Send reset link\", icon: <i className=\"ri-mail-send-line\" />, onClick: () => {} },\n {\n label: u.status === \"Suspended\" ? \"Restore access\" : \"Suspend access\",\n icon: <i className={u.status === \"Suspended\" ? \"ri-play-circle-line\" : \"ri-pause-circle-line\"} />,\n onClick: () => toggleSuspend(u),\n },\n { divider: true, label: \"\" },\n { label: \"Remove user\", icon: <i className=\"ri-delete-bin-line\" />, danger: true, onClick: () => void remove(u) },\n ]}\n />\n ),\n },\n ];\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"flex-end\", justifyContent: \"space-between\", gap: 16, flexWrap: \"wrap\" }}>\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n Team members\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n Invite people, assign roles and control access. Roles are managed on the Roles page.\n </p>\n </div>\n <Button size=\"small\" leadingIcon={<i className=\"ri-user-add-line\" />} onClick={openCreate}>\n Invite user\n </Button>\n </div>\n\n <Table\n columns={columns}\n rows={users}\n getRowId={(u) => u.id}\n title={`Members (${users.length})`}\n sortable\n exportable={{ filename: \"team.csv\" }}\n pagination={{ defaultPageSize: 8 }}\n />\n\n <Modal\n open={editor !== null}\n onClose={() => setEditor(null)}\n title={editor?.mode === \"create\" ? \"Invite user\" : \"Edit user\"}\n description={\n editor?.mode === \"create\"\n ? \"They'll receive an email with a link to set their password.\"\n : editor?.user?.email\n }\n okText={editor?.mode === \"create\" ? \"Send invite\" : \"Save changes\"}\n onOk={save}\n width={480}\n >\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 14 }}>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Label>Full name</Label>\n <Input\n placeholder=\"Jane Cooper\"\n value={form.name}\n onChange={(e) => setForm((f) => ({ ...f, name: e.target.value }))}\n />\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Label>Role</Label>\n <Select value={form.role} onChange={(e) => setForm((f) => ({ ...f, role: e.target.value as RoleId }))}>\n {ROLES.map((r) => (\n <option key={r} value={r}>\n {r}\n </option>\n ))}\n </Select>\n </div>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Label>Email address</Label>\n <Input\n type=\"email\"\n placeholder=\"jane@acme.io\"\n leadingIcon={<i className=\"ri-mail-line\" />}\n value={form.email}\n onChange={(e) => setForm((f) => ({ ...f, email: e.target.value }))}\n />\n </div>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 16,\n paddingTop: 4,\n }}\n >\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n Require two-factor authentication\n </span>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-sub-600)\" }}>\n Ask for a second factor at every sign-in.\n </span>\n </div>\n <Switch checked={form.twoFA} onChange={(c) => setForm((f) => ({ ...f, twoFA: c }))} />\n </div>\n </div>\n </Modal>\n </div>\n );\n}\n","// Metronic example — RBAC: roles & permissions.\n// Role list on the left, a module × action permission matrix on the right.\n// Edits are local state (Save marks the baseline); wire `onSave` to your API.\nimport { useState } from \"react\";\nimport { Badge, Button, Card, Checkbox } from \"../../index\";\n\ninterface Role {\n id: string;\n name: string;\n description: string;\n members: number;\n}\n\nconst ROLES: Role[] = [\n { id: \"owner\", name: \"Owner\", description: \"Full access including billing and workspace settings.\", members: 1 },\n { id: \"admin\", name: \"Admin\", description: \"Manages people, roles and everything in the workspace.\", members: 3 },\n { id: \"manager\", name: \"Manager\", description: \"Runs day-to-day operations across orders and products.\", members: 8 },\n { id: \"editor\", name: \"Editor\", description: \"Creates and edits content; cannot delete or manage users.\", members: 14 },\n { id: \"viewer\", name: \"Viewer\", description: \"Read-only access to dashboards and reports.\", members: 46 },\n];\n\nconst MODULES = [\"Dashboard\", \"Orders\", \"Products\", \"Customers\", \"Reports\", \"Users\", \"Billing\"] as const;\nconst ACTIONS = [\"View\", \"Create\", \"Edit\", \"Delete\", \"Manage\"] as const;\n\ntype ModuleName = (typeof MODULES)[number];\ntype Action = (typeof ACTIONS)[number];\ntype PermKey = `${ModuleName}:${Action}`;\ntype RolePerms = Record<PermKey, boolean>;\n\nconst key = (m: ModuleName, a: Action): PermKey => `${m}:${a}`;\n\nfunction seed(fn: (m: ModuleName, a: Action) => boolean): RolePerms {\n const out = {} as RolePerms;\n for (const m of MODULES) for (const a of ACTIONS) out[key(m, a)] = fn(m, a);\n return out;\n}\n\nconst OPERATIONS: ModuleName[] = [\"Orders\", \"Products\", \"Customers\"];\n\nconst INITIAL: Record<string, RolePerms> = {\n owner: seed(() => true),\n admin: seed(() => true),\n manager: seed((m, a) => (OPERATIONS.includes(m) ? a !== \"Manage\" : a === \"View\")),\n editor: seed((m, a) => (OPERATIONS.includes(m) ? a === \"View\" || a === \"Create\" || a === \"Edit\" : a === \"View\")),\n viewer: seed((m, a) => (OPERATIONS.includes(m) ? a === \"View\" : false)),\n};\n\nexport function RolesScreen() {\n const [roleId, setRoleId] = useState(\"manager\");\n const [perms, setPerms] = useState<RolePerms[]>(() => ROLES.map((r) => ({ ...INITIAL[r.id] })));\n const [baseline, setBaseline] = useState<RolePerms[]>(() => ROLES.map((r) => ({ ...INITIAL[r.id] })));\n\n const roleIndex = ROLES.findIndex((r) => r.id === roleId);\n const current = perms[roleIndex];\n const base = baseline[roleIndex];\n const dirty = JSON.stringify(current) !== JSON.stringify(base);\n const role = ROLES[roleIndex];\n\n const setCell = (m: ModuleName, a: Action, value: boolean) => {\n setPerms((prev) => prev.map((p, i) => (i === roleIndex ? { ...p, [key(m, a)]: value } : p)));\n };\n\n const setRow = (m: ModuleName, value: boolean) => {\n setPerms((prev) =>\n prev.map((p, i) => {\n if (i !== roleIndex) return p;\n const next = { ...p };\n for (const a of ACTIONS) next[key(m, a)] = value;\n return next;\n }),\n );\n };\n\n const granted = MODULES.filter((m) => ACTIONS.every((a) => current[key(m, a)])).length;\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n Roles & permissions\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n Control what each role can see and do. Changes apply to every member of the role.\n </p>\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"300px minmax(0, 1fr)\", gap: 20, alignItems: \"start\" }}>\n {/* role list */}\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n {ROLES.map((r) => {\n const on = r.id === roleId;\n return (\n <button\n key={r.id}\n onClick={() => setRoleId(r.id)}\n style={{\n textAlign: \"left\",\n padding: \"12px 14px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-xl)\",\n cursor: \"pointer\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"inset 0 0 0 1px var(--klun-stroke-soft-200), var(--klun-shadow-xs)\" : \"none\",\n }}\n >\n <span style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n {r.name}\n </span>\n <Badge color=\"gray\" variant=\"lighter\" size=\"small\">\n {r.members}\n </Badge>\n </span>\n <span\n style={{\n display: \"block\",\n marginTop: 2,\n font: \"var(--klun-text-paragraph-xs)\",\n color: \"var(--klun-text-soft-400)\",\n }}\n >\n {r.description}\n </span>\n </button>\n );\n })}\n </div>\n\n {/* permission matrix */}\n <Card variant=\"stroke\" padding={0}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 12,\n padding: \"16px 20px\",\n boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\",\n flexWrap: \"wrap\",\n }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}>\n <span style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>\n {role.name} permissions\n </span>\n <Badge color=\"blue\" variant=\"light\" size=\"small\">\n {role.members} {role.members === 1 ? \"member\" : \"members\"}\n </Badge>\n {dirty ? (\n <Badge color=\"yellow\" variant=\"light\" size=\"small\" dot>\n Unsaved changes\n </Badge>\n ) : null}\n </div>\n <div style={{ display: \"flex\", gap: 8 }}>\n <Button\n size=\"small\"\n variant=\"neutral\"\n appearance=\"ghost\"\n disabled={!dirty}\n onClick={() =>\n setPerms((prev) => prev.map((p, i) => (i === roleIndex ? { ...base } : p)))\n }\n >\n Reset\n </Button>\n <Button\n size=\"small\"\n disabled={!dirty}\n onClick={() =>\n setBaseline((prev) => prev.map((p, i) => (i === roleIndex ? { ...current } : p)))\n }\n >\n Save changes\n </Button>\n </div>\n </div>\n\n <div style={{ padding: \"8px 20px 20px\" }}>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"minmax(140px, 1fr) repeat(5, 74px) 64px\",\n alignItems: \"center\",\n gap: 4,\n padding: \"10px 8px\",\n }}\n >\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-soft-400)\", textTransform: \"uppercase\", letterSpacing: \"0.02em\" }}>\n Module\n </span>\n {ACTIONS.map((a) => (\n <span\n key={a}\n style={{\n font: \"var(--klun-text-label-xs)\",\n color: \"var(--klun-text-soft-400)\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.02em\",\n textAlign: \"center\",\n }}\n >\n {a}\n </span>\n ))}\n <span\n style={{\n font: \"var(--klun-text-label-xs)\",\n color: \"var(--klun-text-soft-400)\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.02em\",\n textAlign: \"center\",\n }}\n >\n All\n </span>\n </div>\n\n {MODULES.map((m, i) => {\n const all = ACTIONS.every((a) => current[key(m, a)]);\n const some = !all && ACTIONS.some((a) => current[key(m, a)]);\n return (\n <div\n key={m}\n style={{\n display: \"grid\",\n gridTemplateColumns: \"minmax(140px, 1fr) repeat(5, 74px) 64px\",\n alignItems: \"center\",\n gap: 4,\n padding: \"10px 8px\",\n boxShadow: \"inset 0 1px 0 var(--klun-stroke-soft-200)\",\n }}\n >\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{m}</span>\n {ACTIONS.map((a) => (\n <span key={a} style={{ display: \"flex\", justifyContent: \"center\" }}>\n <Checkbox\n size=\"small\"\n checked={current[key(m, a)]}\n onChange={(c) => setCell(m, a, c)}\n />\n </span>\n ))}\n <span style={{ display: \"flex\", justifyContent: \"center\" }}>\n <Checkbox size=\"small\" checked={all} indeterminate={some} onChange={(c) => setRow(m, c)} />\n </span>\n </div>\n );\n })}\n\n <div\n style={{\n marginTop: 14,\n paddingTop: 14,\n boxShadow: \"inset 0 1px 0 var(--klun-stroke-soft-200)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 12,\n flexWrap: \"wrap\",\n }}\n >\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n Full access to {granted} of {MODULES.length} modules\n </span>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n Owner role is always unrestricted\n </span>\n </div>\n </div>\n </Card>\n </div>\n </div>\n );\n}\n","// Metronic example — Reports: analytics page with a range switcher, KPI tiles,\n// a large area chart, a donut breakdown, a \"top\" list and a detail table.\n// `view` switches between the Sales and Traffic report variants.\nimport { useState } from \"react\";\nimport { Card, Money, ProgressBar, SegmentedControl, Table } from \"../../index\";\nimport type { TableColumn } from \"../../index\";\nimport { AreaChart, DonutChart } from \"./charts\";\nimport { Kpi } from \"./widgets\";\n\nexport type ReportsView = \"sales\" | \"traffic\";\n\ntype Range = \"7d\" | \"30d\" | \"90d\";\n\nconst RANGES: Array<{ value: Range; label: string }> = [\n { value: \"7d\", label: \"7d\" },\n { value: \"30d\", label: \"30d\" },\n { value: \"90d\", label: \"90d\" },\n];\n\ninterface Series {\n data: number[];\n labels: string[];\n}\n\nconst SALES_SERIES: Record<Range, Series> = {\n \"7d\": { data: [8200, 9100, 7800, 10400, 12600, 11200, 14800], labels: [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"] },\n \"30d\": { data: [38200, 41600, 39800, 47400, 52100], labels: [\"W1\", \"W2\", \"W3\", \"W4\", \"W5\"] },\n \"90d\": { data: [98200, 110400, 106800, 121600, 134200, 148900], labels: [\"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\"] },\n};\n\nconst TRAFFIC_SERIES: Record<Range, Series> = {\n \"7d\": { data: [12400, 13800, 12950, 15600, 17200, 14900, 18600], labels: [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"] },\n \"30d\": { data: [58600, 61200, 59400, 66800, 72300], labels: [\"W1\", \"W2\", \"W3\", \"W4\", \"W5\"] },\n \"90d\": { data: [142000, 156800, 149500, 168200, 178400, 192600], labels: [\"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\"] },\n};\n\ninterface Row {\n key: string;\n label: string;\n value: number;\n share: number;\n}\n\nconst SALES_REGIONS: Array<{ region: string; orders: number; revenue: number; share: number }> = [\n { region: \"Europe\", orders: 512, revenue: 42860, share: 50 },\n { region: \"North America\", orders: 388, revenue: 26400, share: 31 },\n { region: \"Asia Pacific\", orders: 241, revenue: 11240, share: 13 },\n { region: \"Rest of world\", orders: 143, revenue: 4420, share: 6 },\n];\n\nconst TRAFFIC_DEVICES: Array<{ device: string; sessions: number; share: number }> = [\n { device: \"Desktop\", sessions: 73420, share: 57 },\n { device: \"Mobile\", sessions: 44180, share: 34 },\n { device: \"Tablet\", sessions: 9420, share: 7 },\n { device: \"Other\", sessions: 2520, share: 2 },\n];\n\nconst SALES_TOP: Row[] = [\n { key: \"1\", label: \"Lumen 27\\\" 4K Monitor\", value: 24860, share: 100 },\n { key: \"2\", label: \"Aero Wireless Keyboard\", value: 18240, share: 73 },\n { key: \"3\", label: \"Echo Conference Speaker\", value: 12980, share: 52 },\n { key: \"4\", label: \"Orbit Webcam 4K\", value: 9640, share: 39 },\n { key: \"5\", label: \"Pulse USB-C Dock\", value: 6210, share: 25 },\n];\n\nconst TRAFFIC_TOP: Row[] = [\n { key: \"1\", label: \"/pricing\", value: 12480, share: 100 },\n { key: \"2\", label: \"/docs/getting-started\", value: 9860, share: 79 },\n { key: \"3\", label: \"/blog/design-tokens\", value: 7420, share: 59 },\n { key: \"4\", label: \"/changelog\", value: 5140, share: 41 },\n { key: \"5\", label: \"/contact\", value: 2380, share: 19 },\n];\n\nexport function ReportsScreen({ view = \"sales\" }: { view?: ReportsView }) {\n const [range, setRange] = useState<Range>(\"7d\");\n const sales = view === \"sales\";\n const series = (sales ? SALES_SERIES : TRAFFIC_SERIES)[range];\n\n const regionColumns: TableColumn<(typeof SALES_REGIONS)[number]>[] = [\n { key: \"region\", header: \"Region\" },\n { key: \"orders\", header: \"Orders\", align: \"center\" },\n {\n key: \"revenue\",\n header: \"Revenue\",\n align: \"right\",\n render: (r) => <Money value={r.revenue} currency=\"USD\" locale=\"en-US\" style={{ font: \"var(--klun-text-label-sm)\" }} />,\n },\n {\n key: \"share\",\n header: \"Share\",\n width: 170,\n render: (r) => (\n <span style={{ display: \"flex\", alignItems: \"center\", gap: 10, minWidth: 140 }}>\n <span style={{ flex: 1 }}>\n <ProgressBar value={r.share} />\n </span>\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-sub-600)\", width: 34, textAlign: \"right\" }}>\n {r.share}%\n </span>\n </span>\n ),\n },\n ];\n\n const deviceColumns: TableColumn<(typeof TRAFFIC_DEVICES)[number]>[] = [\n { key: \"device\", header: \"Device\" },\n {\n key: \"sessions\",\n header: \"Sessions\",\n align: \"center\",\n render: (r) => r.sessions.toLocaleString(\"en-US\"),\n },\n {\n key: \"share\",\n header: \"Share\",\n width: 170,\n render: (r) => (\n <span style={{ display: \"flex\", alignItems: \"center\", gap: 10, minWidth: 140 }}>\n <span style={{ flex: 1 }}>\n <ProgressBar value={r.share} color=\"primary\" />\n </span>\n <span style={{ font: \"var(--klun-text-label-xs)\", color: \"var(--klun-text-sub-600)\", width: 34, textAlign: \"right\" }}>\n {r.share}%\n </span>\n </span>\n ),\n },\n ];\n\n const top = sales ? SALES_TOP : TRAFFIC_TOP;\n\n return (\n <div style={{ padding: 24, display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <div style={{ display: \"flex\", alignItems: \"flex-end\", justifyContent: \"space-between\", gap: 16, flexWrap: \"wrap\" }}>\n <div>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n {sales ? \"Sales report\" : \"Traffic report\"}\n </h1>\n <p style={{ margin: \"4px 0 0\", font: \"var(--klun-text-paragraph-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n {sales\n ? \"Revenue, channels and the products that drive them.\"\n : \"Sessions, sources and where visitors spend their time.\"}\n </p>\n </div>\n <SegmentedControl items={RANGES} value={range} onChange={(v) => setRange(v as Range)} />\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(240px, 1fr))\", gap: 16 }}>\n {sales ? (\n <>\n <Kpi label=\"Revenue\" value=\"$84,920\" delta=\"12.4%\" tone=\"primary\" icon={<i className=\"ri-money-dollar-circle-line\" />} spark={[10, 14, 12, 18, 16, 24, 22, 30]} />\n <Kpi label=\"Orders\" value=\"1,284\" delta=\"6.1%\" tone=\"success\" icon={<i className=\"ri-shopping-bag-line\" />} spark={[8, 10, 9, 14, 13, 16, 18, 22]} />\n <Kpi label=\"Avg. order value\" value=\"$66.10\" delta=\"1.2%\" tone=\"warning\" icon={<i className=\"ri-shopping-cart-2-line\" />} spark={[60, 62, 61, 64, 63, 65, 66, 66]} />\n <Kpi label=\"Conversion\" value=\"3.6%\" delta=\"0.8%\" tone=\"info\" icon={<i className=\"ri-percent-line\" />} spark={[2, 3, 2.5, 3.2, 3, 3.4, 3.5, 3.6]} />\n </>\n ) : (\n <>\n <Kpi label=\"Sessions\" value=\"128,540\" delta=\"8.2%\" tone=\"primary\" icon={<i className=\"ri-line-chart-line\" />} spark={[12, 14, 13, 16, 15, 18, 17, 20]} />\n <Kpi label=\"Users\" value=\"84,210\" delta=\"5.4%\" tone=\"success\" icon={<i className=\"ri-group-line\" />} spark={[8, 9, 8, 10, 9, 11, 10, 12]} />\n <Kpi label=\"Bounce rate\" value=\"32.4%\" delta=\"1.1%\" trend=\"down\" tone=\"danger\" icon={<i className=\"ri-logout-box-r-line\" />} spark={[40, 38, 39, 36, 35, 34, 33, 32]} />\n <Kpi label=\"Avg. session\" value=\"4m 12s\" delta=\"2.0%\" tone=\"info\" icon={<i className=\"ri-timer-line\" />} spark={[3.4, 3.5, 3.7, 3.6, 3.9, 4.0, 4.1, 4.2]} />\n </>\n )}\n </div>\n\n <Card variant=\"stroke\" padding={20}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 12, marginBottom: 16 }}>\n <span style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\" }}>\n {sales ? \"Revenue over time\" : \"Sessions over time\"}\n </span>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n Last {range}\n </span>\n </div>\n <AreaChart\n data={series.data}\n labels={series.labels}\n tone={sales ? \"primary\" : \"info\"}\n height={220}\n formatValue={sales ? (v) => `$${v >= 1000 ? `${Math.round(v / 100) / 10}k` : Math.round(v)}` : undefined}\n />\n </Card>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"minmax(0, 1fr) minmax(0, 1fr)\", gap: 16, alignItems: \"start\" }}>\n <Card variant=\"stroke\" padding={20}>\n <div style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\", marginBottom: 16 }}>\n {sales ? \"Sales by channel\" : \"Traffic sources\"}\n </div>\n <DonutChart\n centerValue={sales ? \"52%\" : \"48%\"}\n centerLabel={sales ? \"Online\" : \"Organic\"}\n data={\n sales\n ? [\n { label: \"Online\", value: 52 },\n { label: \"Retail\", value: 28 },\n { label: \"Partner\", value: 14 },\n { label: \"Other\", value: 6 },\n ]\n : [\n { label: \"Organic\", value: 48 },\n { label: \"Direct\", value: 22 },\n { label: \"Referral\", value: 18 },\n { label: \"Social\", value: 12 },\n ]\n }\n />\n </Card>\n\n <Card variant=\"stroke\" padding={20}>\n <div style={{ font: \"var(--klun-text-label-lg)\", color: \"var(--klun-text-strong-950)\", marginBottom: 16 }}>\n {sales ? \"Top products\" : \"Top pages\"}\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 14 }}>\n {top.map((row) => (\n <div key={row.key} style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <div style={{ display: \"flex\", alignItems: \"baseline\", justifyContent: \"space-between\", gap: 12 }}>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>\n {row.label}\n </span>\n <span style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-sub-600)\" }}>\n {sales ? `$${row.value.toLocaleString(\"en-US\")}` : `${row.value.toLocaleString(\"en-US\")} views`}\n </span>\n </div>\n <ProgressBar value={row.share} color={sales ? \"primary\" : \"success\"} />\n </div>\n ))}\n </div>\n </Card>\n </div>\n\n {sales ? (\n <Table columns={regionColumns} rows={SALES_REGIONS} getRowId={(r) => r.region} title=\"Regional breakdown\" />\n ) : (\n <Table columns={deviceColumns} rows={TRAFFIC_DEVICES} getRowId={(r) => r.device} title=\"Devices\" />\n )}\n </div>\n );\n}\n","// Klun UI · Metronic example — settings.\n// Port of the design-system `design-system/metronic/examples/` settings card:\n// breadcrumb + left nav column, with profile-photo, personal-information and\n// notification sections. Root carries `data-mode=\"metronic\"` (the Metronic 9.0\n// skin); remove it to fall back to the default theme.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport {\n Avatar,\n Badge,\n Breadcrumb,\n Button,\n Card,\n Input,\n Label,\n Select,\n Switch,\n Textarea,\n} from \"../../index\";\n\n/* ---- small building blocks ---- */\n\nfunction Field({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 6 }}>\n <Label>{label}</Label>\n {children}\n </div>\n );\n}\n\ninterface SectionProps {\n title: string;\n subtitle?: string;\n children: ReactNode;\n footer?: ReactNode;\n}\n\nfunction Section({ title, subtitle, children, footer }: SectionProps) {\n return (\n <Card variant=\"stroke\" padding={0}>\n <div style={{ padding: \"16px 20px\", boxShadow: \"inset 0 -1px 0 var(--klun-stroke-soft-200)\" }}>\n <div style={{ font: \"var(--klun-text-label-md)\", color: \"var(--klun-text-strong-950)\" }}>{title}</div>\n {subtitle ? (\n <div style={{ marginTop: 2, font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n {subtitle}\n </div>\n ) : null}\n </div>\n <div style={{ padding: 20 }}>{children}</div>\n {footer ? (\n <div\n style={{\n padding: \"14px 20px\",\n boxShadow: \"inset 0 1px 0 var(--klun-stroke-soft-200)\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: 8,\n }}\n >\n {footer}\n </div>\n ) : null}\n </Card>\n );\n}\n\ninterface NavItem {\n key: string;\n label: string;\n /** Remix Icon class. */\n icon: string;\n}\n\nconst NAV: NavItem[] = [\n { key: \"profile\", label: \"Profile\", icon: \"ri-user-line\" },\n { key: \"account\", label: \"Account\", icon: \"ri-shield-user-line\" },\n { key: \"notifications\", label: \"Notifications\", icon: \"ri-notification-3-line\" },\n { key: \"billing\", label: \"Billing\", icon: \"ri-bank-card-line\" },\n { key: \"api\", label: \"API keys\", icon: \"ri-key-2-line\" },\n];\n\nexport function MetronicSettingsTemplate() {\n const [tab, setTab] = useState(\"profile\");\n\n return (\n <div\n data-mode=\"metronic\"\n data-density=\"compact\"\n style={{\n minHeight: \"100%\",\n overflow: \"auto\",\n background: \"var(--klun-bg-weak-50)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n <div\n style={{\n maxWidth: 1000,\n margin: \"0 auto\",\n padding: 28,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 20,\n }}\n >\n <div>\n <Breadcrumb items={[{ label: \"Home\" }, { label: \"Settings\" }]} />\n <div style={{ display: \"flex\", alignItems: \"flex-end\", justifyContent: \"space-between\", gap: 16, marginTop: 8 }}>\n <h1 style={{ margin: 0, font: \"var(--klun-text-title-h4)\", color: \"var(--klun-text-strong-950)\" }}>\n Settings\n </h1>\n <Badge color=\"green\" variant=\"light\" dot>\n All changes saved\n </Badge>\n </div>\n </div>\n\n <div style={{ display: \"grid\", gridTemplateColumns: \"220px minmax(0, 1fr)\", gap: 20, alignItems: \"start\" }}>\n <nav style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n {NAV.map((item) => {\n const on = tab === item.key;\n return (\n <button\n key={item.key}\n onClick={() => setTab(item.key)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n height: 36,\n padding: \"0 12px\",\n border: \"none\",\n borderRadius: \"var(--klun-radius-lg)\",\n cursor: \"pointer\",\n textAlign: \"left\",\n background: on ? \"var(--klun-bg-white-0)\" : \"transparent\",\n boxShadow: on ? \"inset 0 0 0 1px var(--klun-stroke-soft-200)\" : \"none\",\n color: on ? \"var(--klun-text-strong-950)\" : \"var(--klun-text-sub-600)\",\n font: \"var(--klun-text-label-sm)\",\n }}\n >\n <i\n className={item.icon}\n style={{ fontSize: 16, color: on ? \"var(--klun-primary-base)\" : \"var(--klun-icon-sub-600)\" }}\n />\n {item.label}\n </button>\n );\n })}\n </nav>\n\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 20 }}>\n <Section title=\"Profile photo\" subtitle=\"PNG or JPG, at least 200×200px.\">\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 20, flexWrap: \"wrap\" }}>\n <div style={{ position: \"relative\", width: 76, height: 76, flexShrink: 0 }}>\n <Avatar size=\"72\" initials=\"AK\" color=\"blue\" />\n <button\n aria-label=\"Change photo\"\n style={{\n position: \"absolute\",\n right: 0,\n bottom: 0,\n width: 26,\n height: 26,\n borderRadius: \"var(--klun-radius-pill)\",\n border: \"2px solid var(--klun-bg-white-0)\",\n background: \"var(--klun-primary-base)\",\n color: \"var(--klun-text-white-0)\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n fontSize: 13,\n }}\n >\n <i className=\"ri-camera-line\" />\n </button>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n <div style={{ display: \"flex\", gap: 8 }}>\n <Button size=\"small\">Upload new</Button>\n <Button size=\"small\" variant=\"neutral\" appearance=\"ghost\">\n Remove\n </Button>\n </div>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-soft-400)\" }}>\n Recommended 400×400px, max 2MB.\n </span>\n </div>\n </div>\n </Section>\n\n <Section\n title=\"Personal information\"\n footer={\n <>\n <Button variant=\"neutral\" appearance=\"ghost\">\n Cancel\n </Button>\n <Button>Save changes</Button>\n </>\n }\n >\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 16 }}>\n <Field label=\"First name\">\n <Input defaultValue=\"Anna\" />\n </Field>\n <Field label=\"Last name\">\n <Input defaultValue=\"Krause\" />\n </Field>\n </div>\n <Field label=\"Email\">\n <Input defaultValue=\"anna@acme.io\" leadingIcon={<i className=\"ri-mail-line\" />} />\n </Field>\n <div style={{ display: \"grid\", gridTemplateColumns: \"1fr 1fr\", gap: 16 }}>\n <Field label=\"Role\">\n <Select defaultValue=\"designer\">\n <option value=\"designer\">Product designer</option>\n <option value=\"eng\">Engineer</option>\n <option value=\"pm\">Product manager</option>\n </Select>\n </Field>\n <Field label=\"Timezone\">\n <Select defaultValue=\"cet\">\n <option value=\"cet\">CET — Berlin</option>\n <option value=\"pst\">PST — San Francisco</option>\n <option value=\"jst\">JST — Tokyo</option>\n </Select>\n </Field>\n </div>\n <Field label=\"Bio\">\n <Textarea rows={3} defaultValue=\"Product designer focused on design systems and tooling.\" />\n </Field>\n </div>\n </Section>\n\n <Section title=\"Notifications\">\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <ToggleRow\n first\n title=\"Email notifications\"\n desc=\"Order updates, mentions and weekly summaries.\"\n defaultChecked\n />\n <ToggleRow\n title=\"Push notifications\"\n desc=\"Real-time alerts on your devices.\"\n defaultChecked\n />\n <ToggleRow title=\"Product newsletter\" desc=\"Occasional news about new features.\" />\n </div>\n </Section>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\ninterface ToggleRowProps {\n title: string;\n desc: string;\n defaultChecked?: boolean;\n first?: boolean;\n}\n\nfunction ToggleRow({ title, desc, defaultChecked, first }: ToggleRowProps) {\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 16,\n padding: \"14px 0\",\n boxShadow: first ? \"none\" : \"inset 0 1px 0 var(--klun-stroke-soft-200)\",\n }}\n >\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <b style={{ font: \"var(--klun-text-label-sm)\", color: \"var(--klun-text-strong-950)\" }}>{title}</b>\n <span style={{ font: \"var(--klun-text-paragraph-xs)\", color: \"var(--klun-text-sub-600)\" }}>{desc}</span>\n </div>\n <Switch defaultChecked={defaultChecked} onChange={() => {}} />\n </div>\n );\n}\n","// Klun UI · Metronic example — admin app shell.\n// Port of the design-system Metronic examples onto klun-ui components, inside\n// the Metronic 9.0 skin (`data-mode=\"metronic\"`). The sidebar drives a set of\n// business screens: dashboard, orders, products, customers, reports\n// (sales / traffic) and settings. Copy this folder as a starting point and\n// drop the attribute to fall back to the default theme.\nimport { useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { MetronicSidebar } from \"./Sidebar\";\nimport { MetronicTopBar } from \"./TopBar\";\nimport { DashboardScreen } from \"./DashboardScreen\";\nimport { OrdersScreen } from \"./OrdersScreen\";\nimport { ProductsScreen } from \"./ProductsScreen\";\nimport { CustomersScreen } from \"./CustomersScreen\";\nimport { UsersScreen } from \"./UsersScreen\";\nimport { RolesScreen } from \"./RolesScreen\";\nimport { ReportsScreen } from \"./ReportsScreen\";\nimport { MetronicSettingsTemplate } from \"../metronic-settings\";\n\nexport { MetronicSidebar } from \"./Sidebar\";\nexport type { MetronicSidebarProps, MetronicNavItem, MetronicNavChild } from \"./Sidebar\";\nexport { MetronicTopBar } from \"./TopBar\";\nexport { DashboardScreen } from \"./DashboardScreen\";\nexport { OrdersScreen } from \"./OrdersScreen\";\nexport { ProductsScreen } from \"./ProductsScreen\";\nexport { ProductWizardPage } from \"./ProductWizardPage\";\nexport type { ProductWizardPageProps } from \"./ProductWizardPage\";\nexport { CATEGORIES, STATUS_COLOR, deriveStatus, emptyDraft } from \"./productModel\";\nexport type { Product, ProductDraft, ProductStatus } from \"./productModel\";\nexport { CustomersScreen } from \"./CustomersScreen\";\nexport { UsersScreen } from \"./UsersScreen\";\nexport { RolesScreen } from \"./RolesScreen\";\nexport { ReportsScreen } from \"./ReportsScreen\";\nexport type { ReportsView } from \"./ReportsScreen\";\nexport { Kpi, MiniStat } from \"./widgets\";\nexport type { KpiProps, MiniStatProps } from \"./widgets\";\nexport { Sparkline, BarChart, DonutChart, AreaChart } from \"./charts\";\nexport type { SparklineProps, BarChartProps, DonutChartProps, AreaChartProps, ChartTone } from \"./charts\";\n\nconst SCREENS: Record<string, ReactNode> = {\n dashboard: <DashboardScreen />,\n orders: <OrdersScreen />,\n products: <ProductsScreen />,\n customers: <CustomersScreen />,\n users: <UsersScreen />,\n roles: <RolesScreen />,\n reports: <ReportsScreen view=\"sales\" />,\n sales: <ReportsScreen view=\"sales\" />,\n traffic: <ReportsScreen view=\"traffic\" />,\n settings: <MetronicSettingsTemplate />,\n};\n\nfunction Placeholder({ name }: { name: string }) {\n return (\n <div\n style={{\n padding: 64,\n textAlign: \"center\",\n color: \"var(--klun-text-soft-400)\",\n font: \"var(--klun-text-paragraph-lg)\",\n }}\n >\n <i className=\"ri-inbox-line\" style={{ fontSize: 40, display: \"block\", marginBottom: 12 }} />\n “{name}” isn't part of this demo.\n </div>\n );\n}\n\nexport function MetronicDashboardTemplate() {\n const [active, setActive] = useState(\"dashboard\");\n return (\n <div\n data-mode=\"metronic\"\n data-density=\"compact\"\n style={{\n display: \"flex\",\n height: \"100%\",\n background: \"var(--klun-bg-weak-50)\",\n color: \"var(--klun-text-strong-950)\",\n }}\n >\n <MetronicSidebar active={active} onNavigate={setActive} />\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\" }}>\n <MetronicTopBar />\n <main style={{ flex: 1, overflow: \"auto\" }}>{SCREENS[active] ?? <Placeholder name={active} />}</main>\n </div>\n </div>\n );\n}\n"]}
|